一、环境搭建
两台可以通信的主机ansible和node1,都具有完整的软件仓库。
主控机 ansible 172.25.254.107
受控机 node1 172.25.254.207
二、Ansible的作用
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。
三、安装
1、方法一
epel源 在浏览器中搜索epel for linux ,下载安装包到本地,安装即可。(此方法不建议,下载速度过慢)
2、方法二
直接下载镜像中不存在的依赖性软件。即复制两个安装包到本地某一目录中。  复制文件到主控机ansible下的/mnt目录中; 查看是否下载完成; 使用ansible --version 查看ansible版本测试是否安装成功。 
3、Ansible的基本信息
信息 | 意义 |
---|
/etc/ansible/ansible.conf | 全局配置文件,默认很少修改 | /etc/ansible/hosts | 全局主机清单文件 |

四、构建Ansible清单
清单就是Ansible所控制的主机的列表 其中/etc/ansible/hosts 即为全局清单文件
1、直接书写
直接书写受控主机名或ip,每行一个
node1.westos.com
172.25.254.207
未书写时不能列出清单内容,会显示清单内容为空的提示; 在/etc/ansible/hosts 清单文件的最后添加受控主机ip,保存后退出; 再次列出清单内容,显示207主机,但不能够ping通 
2、设定受控主机的组
(1)、清单查看
ansible 清单中组名称 [-i 清单文件] --list-hosts
ansuible ungrouped --list-hosts
ansible all --list-hosts
      
 -------------------- 
(2)、单层清单
各个清单相互独立,不会有相互重叠的ip或主机名称
[list1]
node1.westos.com
node2.westos.com
[list2]
node2.westos.com
[list3]
172.25.254.240
  

(3)、嵌套清单
一个主清单会包含另外一个或多个清单
[westos:children]
list1
list3

(4)、主机规格的范围化操作
通过指定主机名称IP范围可以简化Ansible主机清单
语法:
[start:end]
[westostest]
172.25.254.[100:108]
[root@ansible ansible]
hosts (9):
172.25.254.100
172.25.254.101
172.25.254.102
172.25.254.103
172.25.254.104
172.25.254.105
172.25.254.106
172.25.254.107
172.25.254.108
    
(5)、指定其他清单文件
vim inventory
172.25.254.240
[westostest]
172.25.254.100
172.25.254.200
测试:
ansible all -i inventory --list-hosts
ansible westostest -i inventory --list-hosts
ansible ungrouped -i inventory --list-hosts
ansible命令指定清单的正则表达式
符号 | 意义 |
---|
* | 所有 | : | 逻辑或 | :& | 逻辑与 | :! | 逻辑非 | ~ | 以关键字开头 | ~(str1 | str2) |
172.25.254.*
westos*
westos1:linux
172.25.254.100:172.25.254.200
westos1:&linux
主机即在westos1清单也在linux清单中:!
westos1:!linux
在westos1中不在linux中
举例:
vim /mnt/inventory
172.25.0.250
192.25.0.250
[westos_list1]
node1.westos.com
[westos_list2]
172.25.0.2
172.25.0.1
[westos_list3]
172.25.0.1
172.25.0.3
[westos_all:children]
westos_list2
westos_list3
五、Ansible配置文件参数详解
ansible 清单中组名称 -m 模块 -u remote_user
1.配置文件的分类与优先级
/etc/ansible/ansible.cfg
~/.ansible.cfg
./ansible.cfg
2.常用配置参数
[default]
inventory=
remote_user=
ask_pass=
library=
local_tmp=
remote_tmp=
forks=
host_key_checking=
sudo_user=
ask_sudo_pass=
module_name=
log_path=
六、构建用户级Ansible操作环境
暂时欠着
|