(一)a ansible 软件自动化环境架构规划 (服务端: yum install -y ansible 客户端: 无需任何安装操作)
管理主机 1 台:
10.0.0.61 m01
受控主机 3 台:
- 10.0.0.41 backup
- 10.0.0.31 nfs01
- 10.0.0.7 web01
Linux 系统 6.9
b ansible 软件自动化部署条件
建议基于 ssh 密钥方式建立远程连接
a ssh 密钥对创建 (管理主机)
ssh-keygen -t dsa
影响免交互创建密钥对创建因素:
1) 需要指定私钥存放路径
-f /root/.ssh/id_dsa
2) 需要进行私钥文件密码设定
- -N/-P
- -N ""/-P""
免交互创建密钥对方法
sh-keygen -t dsa -f /root/.ssh/id_dsa -N ""
(二) 分发公钥文件 (管理主机进行分发)
ssh-copy-id -i /root/.ssh/id_dsa.pub 172.16.1.31
影响免交互批量分发密钥因素
1) 需要有确认连接过程, 需要输入 yes/no
- -o StrictHostKeyChecking=no(不要再进行询问我了)
- ssh-copy-id -i /root/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no 172.16.1.31"
2) 需要解决密码问题
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub 172.16.1.31 注意: sshpass 需要 yum 安装
免交互发送公钥给客户端
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no 172.16.1.31"
免交互批量分发公钥脚本:
- #!/bin/bash
- rm /root/.ssh/id_dsa
- ssh-keygen -t dsa -f /root/.ssh/id_dsa -N ""
- for ip in 31 41 7
- do
- sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no 172.16.1.$ip"
- done
(三) 检查是否可以进行基于密钥远程管理
ssh 172.16.1.31 uptime
免交互批量检查测试脚本
- #!/bin/bash
- for ip in 31 41 7
- do
- ssh 172.16.1.$ip uptime
- done
基于 ssh 口令方式建立远程连接 (也可以)
- vim /etc/ansible/hosts
- [oldboy]
- 172.16.1.7
- 172.16.1.31 ansible_user=root ansible_password=123456
- 172.16.1.41
ansible 172.16.1.31 -m command -a "hostname" -k --- 实现口令交互式远程管理
- SSH password:
- 172.16.1.31 | SUCCESS | rc=0>>
- nfs01
ansible 软件下载安装
ansible 管理主机软件安装:
yum install -y ansible
ansible 受控主机软件安装:(可选)
yum install -y libselinux-python
ansible 软件受控主机添加配置
- cat /etc/ansible/hosts
- [oldboy]
- 172.16.1.7
- 172.16.1.31
- 172.16.1.41
来源: http://www.bubuko.com/infodetail-2638318.html