sudo apt update
sudo apt install sshpass -y
安装SSH工具
执行以下命令安装sshpass工具,用于非交互式SSH密码验证:
bash
sudo apt update
sudo apt install sshpass -y
主机清单配置
/etc/ansible/hosts文件定义了主机分组和连接变量:
ini
[master]
192.168.56.106
[node]
192.168.56.107
192.168.56.108
[master:vars]
ansible_user=vagrant
ansible_password=vagrant
ansible_become=yes
ansible_become_method=sudo
ansible_become_password=vagrant
[node:vars]
ansible_user=vagrant
ansible_password=vagrant
ansible_become=yes
ansible_become_method=sudo
ansible_become_password=vagrant
配置文件优化
/etc/ansible/ansible.cfg禁用SSH主机密钥检查:
ini
[defaults]
host_key_checking = False
安全改进建议
-
使用SSH密钥认证替代明文密码 在目标主机上部署公钥后,移除
ansible_password和ansible_become_password参数 -
启用vault加密敏感数据 对密码等敏感信息使用ansible-vault加密:
bashansible-vault encrypt_string 'vagrant' --name 'ansible_password' -
最小权限原则 在sudoers文件中限制权限:
inivagrant ALL=(ALL) NOPASSWD: /usr/bin/apt,/usr/bin/systemctl
连接测试方法
验证节点连通性:
bash
ansible all -m ping
变量管理替代方案
考虑使用group_vars目录替代内联变量:
bash
mkdir -p /etc/ansible/group_vars/{master,node}
每个组变量文件示例(/etc/ansible/group_vars/master/main.yml):
yaml
ansible_user: vagrant
ansible_become: yes