Ansible 相关概念

noteId: D8F3104B60A547E0BFD58A8532F1AB5F · 原始路径:/ALL/Ansible 自动化管理/Ansible 相关概念.note

Ansible相关概念

Control node 主控端

任何装有Ansible的机器都可以被称为主控端。主控端通过分别通过ansible和ansible-playbook命令执行命令或剧本。

Managed nodes 受控端

被控端指通过Ansible管理的网络设备或服务器。受控端不需要安装Ansible。

Inventory 主机清单

受控端列表。设备信息必须预先存储在清单,否则Ansible无法对其进行控制。

Modules 模块

Ansible的最小执行单元。模块用于执行不同类型的命令。

Tasks 任务

Ansible中的基本动作单元。一个任务的目标就是执行一条临时命令(ad-hoc command)。

Playbooks 剧本

剧本包括变量和任务。剧本采用YAML编写,可以执行一系列有序任务。

Ansible 任务模式

Ad-hoc模式

点对点模式,使用单个模块,对一台或多台主机,执行单条命令。

ansible 10.22.0.51 -a 'netstat -ulntp'ansible 10.22.0.51 -a 'shutdown -r now'ansible 10.22.0.51 -a 'uptime'ansible all -a 'uptime'

playbook模式

剧本模式,多个task集合完成一类功能,如Web服务的批量安装部署、数据库服务器的批量备份等。可以简单地把playbook理解为通过组合多条ad-hoc操作的配置文件。

比如下方剧本配置了两条任务,共同完成安装并运行mysql服务这个运维目标

---# 安装并运行mysql服务- hosts: node1 remote_user: root tasks: - name: install mysql-server package apt: name=mysql-server state=present - name: starting mysqld service service: name=mysql state=started

Ansible工作过程

加载配置文件:

查找对应的主机配置文件,找到要执行的主机或者组;

加载模块文件,如 command;

通过ansible将模块或命令生成对应的临时py文件(python脚本), 并将该文件传输至被控服务器;

执行被控主机的

~/.ansible/tmp/XXX/XXX.py文件;

给文件 +x 执行权限;

执行并返回结果;

删除临时py文件,退出进程;

查看生成的缓存py文件

ansible 192.168.10.99 -m shell -a 'ls ~/.ansible/tmp | sleep 3 | cp -r ~/.ansible/ /tmp/' -k