#ansible
#ansible
Вопрос:
Я настраиваю корневой центр сертификации на маршрутизаторе Cisco IOS и пытаюсь использовать модуль ios_command для запуска команды crypto pki server my-ca start
.
При его запуске происходит следующее:
GW1(config)#do crypto pki server my-ca start
%Some server settings cannot be changed after CA certificate generation.
% Please enter a passphrase to protect the private key
% or type Return to exit
Password:
Re-enter password:
% Certificate Server enabled.
GW1(config)#
При попытке автоматизировать это в ansible, это то, что я пытался:
- name: Respond to double-password prompt
ios_command:
commands:
- command: crypto pki server my-ca start
prompt: 'assword:'
answer: "mypasswordr"
Результат при запуске playbook выглядит следующим образом:
"stdout_lines": [
[
"%Some server settings cannot be changed after CA certificate generation.",
"% Please enter a passphrase to protect the private key",
"% or type Return to exit",
"Password: ",
"",
"Re-enter password: ",
"% Aborted."
]
]
Похоже, что второе приглашение просто отменяет его, отправляя » r» вместо повторной отправки «mypassword r», как это было в первом приглашении.
Я дал строку запроса ios_command ‘assword:’, поэтому она должна была соответствовать как «Password: «, так и «Повторно введите пароль:», но это не имело значения.
Есть ли способ заставить модуль ios_command обрабатывать это двойное приглашение? Насколько я могу судить, я не могу ввести пароль в crypto pki server my-ca
команду запуска.
Ответ №1:
На этот вопрос ответил Ганеш Налаваде из группы Google Ansible Project в этой теме. Его ответ был следующим:
Вы можете использовать модуль cli_command, доступный в Ansible версии 2.7 и далее
https://docs.ansible.com/ansible/latest/modules/cli_command_module.html
Задачу можно изменить, как показано ниже, для поддержки нескольких запросов.
- name: Respond to double-password prompt
cli_command:
commands:
- command: crypto pki server my-ca start
check_all: True
prompt:
- "password"
- "enter password"
answer:
- "mypasswordr"
- "mypasswordr"