【ansible】1.介绍ansible
目录
1.简述Ansible及其优势?
2.Ansible 的架构由哪些部分组成,各部分作用是什么?
3.什么是 Play、Playbook ,它们在 Ansible 里起什么作用?
4.Ansible 中任务、Play 和 Playbook 的幂等性有什么意义,实际运维怎么利用?
5.准备控制节点运行 Ansible Playbook ,需要完成哪些关键步骤?
6.受管主机为 Linux 系统时,需要满足哪些条件才能被 Ansible 控制节点管理?
1.简述Ansible及其优势?
Ansible是一款极其简单的开源的自动化运维工具,基于Python开发,用于配置管理、应用部署、任务编排、批量操作等场景,通过自动化减少重复劳动,提升运维效率,降低人为错误。
优势:
- (1)无代理架构:被控节点无需安装客户端软件,仅通过 SSH 即可通信,减少了节点维护成本,尤其适合大规模集群环境(避免代理程序的版本兼容、资源占用问题)。
- (2)使用简单,学习成本低:基于 YAML 语法编写自动化剧本(Playbook),格式直观易懂,能快速上手,无需深入学习复杂编程语言。
- (3)模块化设计:内置丰富的模块(如文件操作、服务管理、包管理等),支持自定义模块,可灵活满足不同场景需求(如部署 Web 服务、配置防火墙、批量执行命令等)。
- (4)幂等性保障:设计上保证操作的幂等性(多次执行同一操作,结果一致),避免重复执行导致的意外问题。
- (5)强大的扩展性:支持通过角色(Role)实现任务的模块化拆分与复用,便于团队协作管理;同时可集成云平台(如 AWS、阿里云)、容器平台(Docker、K8s)等,适应混合云环境。
- (6)实时反馈与可视化:执行过程中实时输出结果,便于排查问题;结合 Ansible Tower 等工具可实现图形化管理、任务调度和权限控制,提升大规模运维的效率。
2.Ansible 的架构由哪些部分组成,各部分作用是什么?
Ansible 架构主要包含控制节点和受管主机。
- (1)控制节点:安装并运行 Ansible 的计算机,存放 Ansible 项目文件副本,用于编排、发起自动化任务,向受管主机发送指令。
- (2)受管主机:即被管理的主机,列在清单中,可被分组管理,接收并执行控制节点下发的任务。清单可静态定义(文本文件)或动态确定(通过外部脚本获取群组、主机信息)。
3.什么是 Play、Playbook ,它们在 Ansible 里起什么作用?
- (1)Play是 Ansible 中用于确保主机或主机组处于特定状态的高级别定义,按指定顺序对主机执行一系列任务。比如可定义一个Play,让一组 Web 服务器主机安装并启动 Nginx 服务。
- (2)Playbook:是包含一个或多个Play、采用 YAML 格式的文本文件,用于描述自动化任务流程,能将复杂运维作按逻辑组织起来,实现 IT 基础架构的自动化配置、部署等,让运维作可重复、易管理。
4.Ansible 中任务、Play 和 Playbook 的幂等性有什么意义,实际运维怎么利用?
幂等性指在相同主机上多次运行任务、Play 或 Playbook ,结果稳定。系统状态正确时,运行不会做多余更改;状态不符时,能将其调整到指定状态。这保障了自动化运维的安全性、可重复性,避免重复操作引发意外问题。
实际利用:编写 Playbook 时,借助模块的幂等性,可放心设置定时任务自动执行 Playbook 来巡检、修复系统状态;在多环境部署中,重复运行 Playbook 能确保各环境配置一致,不用担忧多次执行破坏现有正确配置。
5.准备控制节点运行 Ansible Playbook ,需要完成哪些关键步骤?
- (1)安装自动化内容导航器:在控制节点执行命令 sudo dnf install ansible-navigator 安装(需有效 Ansible 自动化平台订阅 )。
- (2)验证安装:通过命令 ansible-navigator --version 验证自动化内容导航器是否安装成功。
- (3)登录容器镜像仓库:执行 podman login,输入用户名和密码登录,用于拉取执行环境的容器镜像。
- (4)下载执行环境镜像:使用命令 podman pull 拉取与自动化内容导航器搭配的执行环境容器镜像,也可在运行 命令时自动下载默认执行环境。
- (5)验证镜像是否已下载:ansible-navigator images 。
6.受管主机为 Linux 系统时,需要满足哪些条件才能被 Ansible 控制节点管理?
- (1)Python 版本:需安装 Python 3.8 或更高版本。
- (2)若受管主机启用了 SELinux,需确保已安装 python3-libselinux 软件包,这样才能使用与复制、文件或模板功能相关的模块;若安装了其他 Python 组件,可使用 ansible.builtin.dnf 或ansible.builtin.package 等 Ansible 模块确保该软件包已安装。
- (3)网络连接与权限:Ansible 控制节点需能使用SSH协议连接受管主机;若以普通用户身份连接,受管主机需支持使用 sudo 等机制获取超级用户访问权限。
- (4)模块额外要求:部分模块可能有额外要求,如 ansible.builtin.dnf 模块在 Fedora 系统上安装软件包时,可能要求安装 python3-dnf 软件包。