Я хотел бы использовать модуль ansible
os_keypair
для генерации пары ключей ssh с openstack
.Для этого я использую следующий код:
- name: create openstack ssh key pair
os_keypair:
name: my-key
auth: my authentication parameters
auth_type: password
state: present
register: key
Когда этот код запускается с нуля, т.е. без сгенерированного ранее ключа, он работает в том смысле, что ключ сгенерирован и загружен в openstack
.Тем не менее, мне нужен закрытый ключ для выполнения последующих действий через ansible (например, local_action
для копирования закрытого ключа в файл).В документации модуля сказано, что закрытый ключ доступен как одно из возвращаемых значений.При проверке моих возвращаемых значений я получаю следующее:
"key": {
"created_at": null,
"fingerprint": null,
"id": null,
"is_deleted": null,
"location": null,
"name": null,
"private_key": null,
"public_key": null,
"type": "ssh",
"user_id": null
}
, что мне кажется несколько загадочным.Это нормальное поведение или что-то не так с этим модулем?
[ОБНОВЛЕНИЕ] Вот полная книга воспроизведения, которая воспроизводит такое поведение:
---
- hosts: localhost
become_user: ansible
become: True
tasks:
- name: create openstack ssh key pair
os_keypair:
name: my-key
auth:
auth_url: http://cloudsrv1.ill.fr:5000/v3
username: ansible-test
password: 1234
project_name: k8s
project_domain_name: default
user_domain_name: default
auth_type: password
state: present
register: key
- debug:
var: key
Книга воспроизведения, выполненная с python3 в качестве интерпретатора python.
Вывод:
TASK [debug] ********************************************************************************************************************
ok: [localhost] => {
"key": {
"changed": true,
"failed": false,
"id": "my-key",
"key": {
"created_at": null,
"fingerprint": null,
"id": null,
"is_deleted": null,
"location": null,
"name": null,
"private_key": null,
"public_key": null,
"type": "ssh",
"user_id": null
}
}
}
, но ключ генерируется, как видно из снимка openstack
.