工作原理
1、在Ansible管理体系中,存在“管理节点”和“被管理节点”
2、被管理节点通常被称为”资产“
3、在管理节点上,Ansible将AdHoc或PlayBook转换为python脚本。并通过SSH将这些python脚本传递到被管理服务器上。在被管理服务器上依次执行,并实时的将结果返回给管理节点。
安装
yum install epel-release -y && yum install ansible -y
安装完成后查看版本
管理节点与被管理节点建立SSH信任关系
管理节点(ansible)中创建密钥对
ssh-keygen -t rsa
将本地的公钥传输到被管理节点
ssh-copy-id root@192.168.40.137
每个被管理节点都需要传递
过程中需要被管理节点的用户名以及密码
显示上述输出后进行测试,成功免密登录
快速入门
场景一:在管理节点上,测试与所有被管理节点的网络连通性
被管理节点:192.168.40.137,192.168.40.138
ansible all -i 192.168.40.137,192.168.40.138 -m ping
注意:-i 参数后面的是一个列表(List)。因此当为一个被管理节点时,我们后面一定要加一个英文逗号(,)告知时List
否则会出错:
[root@GYQ ~]# ansible all -i 192.168.40.137 -m ping
[WARNING]: Unable to parse /root/192.168.40.137 as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit
localhost does not match 'all'
上图说明管理节点与被管理节点互通
场景二:在管理节点上,确保文件/tmp/a.conf发布到所有被管理节点
ansible all -i 192.168.40.137,192.168.40.138 -m copy -a "src=/tmp/a.conf dest=/tmp/a.conf"
参数解释:
all // ansible中,将其叫做pattern,即匹配。我通常称它为资产选择器。就是匹配资产(-i参数指定)中的一部分。这里的all是匹配所有指定的所有资产。
-i 指定Ansible的资产,也就是被管理服务器。
-m 指定要运行的模块,比如这里的ping模块和copy模块
-a 指定模块的参数,这里模块ping没有指定参数。模块copy模块src和dest参数