初学Ansible
虚机:Centos 7.X
- 安装Ansible
yum install -y epel-release
yum install -y ansible
- 查看Ansible
ansible --version
- 配置Ansible Hosts文件
ls -la /etc/ansible/
-
hosts 文件 - 主要定义被管理的设备 inventory
-
ansible.cfg - 主要 ansible 配置文件
修改hosts文件:sudo vi /etc/ansible/hosts
查看所有hosts
- 配置SSH可信认证(无密码访问)— 在控制机上执行:ssh-keygen(创建秘钥)
创建好秘钥后通过ssh-copy-id的命令来下发到被管理的Linux上
ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.47.119.189
ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.47.119.169
上面步骤完成后,可以使用ssh root@10.47.119.189,ssh root@10.47.119.169这两个命令来测试一下是否是免密登录另外两个Linux的虚机
使用ansible来ping通一下两个被控制的Linux节点:ansible 10.47.119.189 -m ping
也可以一次ping两个Linux虚机
- 能ping通后使用ansible的shell模块来让webservers组的服务器显示“hello ansible”
拓展:
ansible命令执行过程
- 加载自己的配置文件 默认/etc/ansible/ansible.cfg
- 加载自己对应的模块文件,如:command
- 通过ansible将模块或命令生成对应的临时py文件,并将该文件传输至远程服务器的对应执行用户$HOME/.ansible/tmp/ansible-tmp-数字/XXX.PY文件
- 给文件+x权限执行
- 执行并返回结果
- 删除临时py文件,退出