从Puppet转移到Ansible.就像它是代理更少和SSH驱动的事实.我只是设置了两个测试VM.一个作为Ansible服务器(是矫枉过正),另一个作为示例客户端(随机
Linux服务器).我们所有的服务器都只使用公钥私钥对.这对Ansible最初有些问题.我非常(几乎可以肯定)Ansible可以使用密钥对,但我似乎无法找到一个很好的例子.
我通过做一个专门为Ansible创建了一个密钥对
ssh-keygen -t rsa -b 4096
然后我将公钥复制到客户端.当我通过标准SSH进行测试时,密钥对身份验证效果很好.现在来测试一下Ansible.我将测试客户端放在Ansible主机文件中,并使用看起来一半正确的唯一语法来使密钥对工作.
[TEST] 10.0.0.5 ansible_ssh_private_key_file=~/.ssh/id_rsa
当我尝试运行这样的基本测试模块时
sudo ansible all -m ping
我收到以下错误消息
10.0.0.5 | Failed => SSH Error: Permission denied (publickey,password). while connecting to 10.0.0.5:22 It is sometimes useful to re-run the command using -vvvv,which prints SSH debug output to help diagnose the issue.
显然,我对如何设置Ansible以使用密钥对的语法或概念性理解是有缺陷的.有什么建议?谢谢
DUH!它在ansible配置文件中是正确的(/etc/ansible/ansible.cfg)
# if set,always use this private key file for authentication,same as # if passing --private-key to ansible or ansible-playbook private_key_file = /home/<username>/.ssh/id_rsa
现在一切似乎都有效
10.0.0.5 | success >> { "changed": false,"ping": "pong" }