问题描述
在设置 Ansible 在一个新环境中管理数千台机器时,想了解关于 SSH 认证(无密码、基于密钥等)的最佳实践,以及在企业环境中使用无密码 SSH 的最佳方法和原因。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
最佳实践:基于密钥的 SSH 认证
在设置 Ansible 时,使用基于密钥的 SSH 认证是最佳实践。以下是使用基于密钥的 SSH 认证的几个原因:
1. 可以使用相同的密钥或不同的密钥来 SSH 连接多台主机。
2. 如果在运行 Ansible playbook 时重新启动机器,它会再次使用您提供的密钥进行 SSH 连接,因此您的 Ansible playbook 可以无错误地运行。
3. 您可以使用适当的用户进行身份验证。
在 Ansible 中,您可以使用 inventory.ini
文件来配置主机和 SSH 认证。以下是一个示例 inventory.ini
文件的配置:
[hostMachine]
ubuntu@xx.xx.xx.xx ansible_ssh_user=ubuntu ansible_ssh_private_key_file=/path of your pem file
[ABCDMachine]
ABCD@xx.xx.xx.xx ansible_ssh_user=ABCD ansible_ssh_private_key_file=/path of your pem file
在上面的示例中,我们定义了两个主机组 hostMachine
和 ABCDMachine
。每个主机都指定了 SSH 用户和私钥文件的路径。
您可以使用以下命令运行 Ansible playbook:
ansible-playbook -i inventory.ini main.yml
请注意,这只是一个基本的示例,您可以根据您的实际需求进行更多的配置和定制化。
综上所述,使用基于密钥的 SSH 认证是在设置 Ansible 时的最佳实践。它提供了更好的安全性和灵活性,并且可以确保 Ansible playbook 的顺利运行。
正文完