【问题标题】:How to tell ansible to use a key如何告诉 ansible 使用密钥
【发布时间】:2016-02-01 22:19:23
【问题描述】:

我对 ansible 不是很熟悉。 我目前遇到的问题如下: 我有一个具有多个节点的主节点环境。 我的 ansible 需要访问我的节点,但无法访问它们。

SSH Error: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

我能够从我的主节点通过 SSH 连接到每个节点,但只能使用密钥:

ssh -i key-to-node.pem centos@ec2...

是否可以设置一些东西以允许 ansible 连接到创建的主机?

【问题讨论】:

    标签: ssh amazon-ec2 ansible


    【解决方案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 页面添加一个示例,如 cmets 中所述。

    我个人从来没有这样配置过(因为我已经通过~/.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
    

    【讨论】:

    • 谢谢,必须更改 remote_user 才能使我的登录成为可能(没有问题)
    • 我的库存文件类似于docs.openshift.com/enterprise/3.0/install_config/install/… 上的“示例 1. 单主多节点库存文件”。我怎样才能在那边使用2把钥匙。一个用于我的主节点,一个用于我的节点?
    • 我在上面添加了一个例子。
    • 所以我可以用它们的键在库存末尾添加 [nodes:vars] 和 [master:vars] 吗?
    • 是的,应该可以。我刚刚找到了你的另一个问题,并用一个例子回答了那里。
    猜你喜欢
    • 2014-09-14
    • 2020-04-14
    • 1970-01-01
    • 2020-11-20
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    相关资源
    最近更新 更多