我对ansible不是很熟悉。 我目前遇到的问题如下: 我有一个主节点环境,有多个节点。 我的ansible需要访问我的节点,但无法访问它们。
SSH Error: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
我能够从我的主节点SSH到每个节点,但只能使用密钥:
ssh -i key-to-node.pem centos@ec2...
是否可以设置某些内容以允许ansible连接到创建的主机?
答案 0 :(得分:1)
您可以在ansible.cfg:
中定义pem文件private_key_file=key-to-node.pem
如果您没有,请在Playbook所在的位置或/etc/ansible/ansible.cfg
内创建一个。
如果您的主机有不同的密钥,您还可以在inventory中定义密钥:
ansible_ssh_private_key_file=key-to-node.pem
此外,如果您已将ssh配置为工作而未显式传递私钥文件(在.ssh/config
中),Ansible将自动生效。
在OpenShift页面中添加一个示例,如评论中所述。
我个人从未以这种方式配置它(因为我已经通过~/.ssh/config
设置了所有内容,但根据文档,它应该像这样工作:
[masters]
master.example.com ansible_ssh_private_key_file=1.pem
# host group for nodes, includes region info
[nodes]
node1.example.com openshift_node_labels="{'region': 'primary', 'zone': 'east'}" ansible_ssh_private_key_file=2.pem
或者,由于您有多个节点,并且所有节点可能具有相同的键,因此您可以定义单独的nodes:vars
部分
[nodes:vars]
ansible_ssh_private_key_file=2.pem