为什么模块os_keypair没有返回private_key?

我正在使用OpenStack模块部署到Rackspace Cloud。

我正在面对SSH密钥对创build的问题。 它创build公钥,并将其安装在主机上。 不过,我可以看到返回的JSON不包含private_key键值对。

- name: SSH key check os_keypair: auth: auth_url: "{{ os_auth_url }}" project_name: "{{ os_project_name }}" username: "{{ os_username }}" password: "{{ os_password }}" state: present region_name: "{{ os_region }}" name: "{{ os_key_name }}" register: keypair - name: Create local public local_action: module: copy content: "{{ keypair.key.public_key }}" dest: "~/.ssh/{{ keypair.key.name }}.pub" - name: Create local private key local_action: module: copy content: "{{ keypair.key.private_key }}" dest: "~/.ssh/{{ keypair.key.name }}" ignore_errors: True 

密钥对var的值:

 { "changed": false, "id": "openstack", "key": { "public_key": "ssh-rsa AAAAByouknowwhatapublickeylookslikeyouknowwhatapublickeylookslikeyouknowwhatapublickeylookslikeyouknowwhatapublickeylookslikeyouknowwhatapublickeylookslikeyouknowwhatapublickeylookslikeyouknowwhatapublickeylookslikeyouknowwhatapublickeylookslikeyouknowwhatapublickeylookslikeyouknowwhatapublickeylookslikeyouknowwhatapublickeylookslikeyouknowwhatapublickeylookslikeJiln Generated-by-Nova", "NAME_ATTR": "name", "name": "openstack", "fingerprint": "89:e9:3d:s0:m3:nu:mb:3r:41:d5:09:8b:a9:b8:50:65", "id": "openstack", "human_id": null, "request_ids": [], "HUMAN_ID": false, "x_openstack_request_ids": [] } } 

正如你可以看到private_key不存在。 根据文档,它应该返回它。

所有这些都相当新颖,所以要温柔:)

我相信os_keypair模块没有对系统进行任何更改。 您的keypairvariables的内容表明:

 { "changed": false, ... } 

不可能的文档说这是关于返回一个private_key

只有在为用户生成密钥对时(例如,创build密钥对和未指定公钥时)。

如果公钥存在,我不认为模块会产生一个新的密钥对。