Я пытаюсь использовать Ansible с модулем ожидать, чтобы присоединить сервер Linux к активному каталогу с помощью sssd.
код из задачи:
- name: join domain
expect:
command: /bin/bash -c "/usr/sbin/realm join --user=join-user domain.loc"
response:
password: "secret"
Я получил код по этой ссылке, так как я погуглил, прежде чем спрашивать здесь: https://groups.google.com/forum/#!msg/ansible-project/L0Es3aGAKV8/DmPRaiGcBwAJ
Фактическая проблема в том, что Ansible не отвечает на запрос. Потому что, когда я запускаю playbook, он просто истекает. Я тестировал это напрямую через ssh, и он работает. Учетные данные в порядке, и соединение с контроллером домена работает.
Вывод playbook по истечении времени ожидания:
fatal: [192.168.11.1]: FAILED! => {
"changed": true,
"cmd": "/bin/bash -c \"/usr/sbin/realm join --user=join-user domain.loc\"",
"delta": "0:00:30.112149",
"end": "2017-03-22 08:37:18.320832",
"failed": true,
"invocation": {
"module_args": {
"chdir": null,
"command": "/bin/bash -c \"/usr/sbin/realm join --user=join-user domain.loc\"",
"creates": null,
"echo": false,
"removes": null,
"responses": {
"password": "secret"
},
"timeout": 30
},
"module_name": "expect"
},
"msg": "command exceeded timeout",
"rc": null,
"start": "2017-03-22 08:36:48.208683",
"stdout": "Password for join-user: ",
"stdout_lines": [
"Password for join-user: "
]
}
Любая помощь приветствуется.
ответ должен соответствовать строке stdout, или вы можете использовать регулярное выражение, в вашем случае вы можете использовать:
response:
Password for join-user: "secret"
или
response:
Password for .*: "secret"
из док
Вопрос или ключ под ответами - это совпадение регулярного выражения Python. Поиск без учета регистра обозначается префиксом? I.