要使用Ansible进行自动化管理,SSH互信是一个重要的前提。以下是建立SSH互信的步骤:
生成秘钥对
:首先,在Ansible管理机上使用
ssh-keygen
命令生成SSH密钥对。可以使用以下命令:
ssh-keygen -t rsa -b 2048
这将生成一个RSA密钥对,存储在默认位置
~/.ssh/id_rsa
(私钥)和
~/.ssh/id_rsa.pub
(公钥)。
配置Ansible hosts文件
:在Ansible的
hosts
文件中定义所有需要互信的主机。例如:
[all]
host1 ansible_host=192.168.1.1
host2 ansible_host=192.168.1.2
批量建立互信
:对于大量主机,可以使用Ansible的
authorized_key
模块来批量添加公钥。创建一个Playbook,如下所示:
”`yaml
hosts: all
tasks:
name: Ensure the SSH public key is present
authorized_key:
user: your_username
state: present
key: “{{ lookup(‘file’, ‘~/.ssh/id_rsa.pub’) }}”
“
然后运行
ansible-playbook`命令来执行这个Playbook。
测试互信
:互信建立后,可以使用
ssh -i ~/.ssh/id_rsa your_username@host
命令测试是否可以无密码登录。
配置ansible.cfg
:为了提高效率,可以在
ansible.cfg
文件中关闭SSH密钥检查:
[defaults]
host_key_checking = False
以上步骤可以帮助你快速地为Ansible管理机和目标主机之间建立SSH互信。记得在操作过程中,确保所有文件的权限设置正确,以保证安全性。