Ansible基础
Ansible介绍
Ansible是由创始人Michael DeHaan于2012年基于Python开发的一款自动化运维工具,结合众了众多运维工具的优点,可实现批量系统配置、批量程序部署、批量运行命令等复杂的 IT 任务。2015年被RedHat收购后,其未来发展潜力更是不可估量。
传统运维在服务器部署时,需要一台一台的修改密码、安装软件、修改配置,尤其在服务器数量非常庞大时,需要花费大量时间完成重复的操作。而使用自动化运维可在短时间完成大批量的部署操作,即批量进行服务器密码的修改、批量完成软件包的安装以及批量修改配置等,大大提高了运维人员的工作效率。
部署软件
提前配置好yum源,安装软件
[root@pubserver ~]# yum install -y ansible
修改主配置文件
Ansible安装后默认生成全局配置文件/etc/ansible/ansible.cfg,该文件中定义了Ansible主机的默认配置部分。也可以参考默认全局配置文件自行创建ansible.cfg文件。
Ansible从控制节点上存在多个可能的位置,配置文件查找顺序:
首先检测ANSIBLE_CONFIG变量定义的配置文件
其次检查当前目录下的./ansible.cfg文件
再次检查当前用户家目录下~/ansible.cfg文件
最后检查/etc/ansible/ansible.cfg文件
代码示意如下:
[root@pubserver ~]# mkdir ansible
[root@pubserver ~]# cd ansible
[root@pubserver ansible]# vim ansible.cfg # 文件名必须是ansible.cfg
[defaults]
host_key_checking = false # 不检查主机密钥,=号两边空格可有可无。
inventory = inventory # 定义主机清单文件为当前目录的inventory
主机清单文件
主机清单(inventory)用来记录被管理端主机的列表,指定清单文件的路径由配置文件ansible.cfg中的inventory字段定义。Ansible安装后默认生成的主机清单文件为/etc/ansible/hosts。
一套Ansible软件可管理多种环境, 往往通过创建不同的工作目录来实现不同的管理需求。 将某一环境下的主机写入到对应工作目录中的主机清单文件,那么进入对应的工作目录执行管理任务,就可以管理相应环境的主机。
创建主机清单文件时写在[ ]里的是组名,[ ]下面的是组内的主机名,代码示意如下:
[root@pubserver ansible]# vim inventory
[webservers]
web[1:2] # web1和web2的简化写法,表示从1到2
[dbs]
db1
[cluster:children] # cluster是组名,自定义的;:children是固定写法,表示下面的组名是cluster的子组
webservers
dbs