Я написал игру Ansible, в которой мне предлагается ввести пароль в интерактивном режиме для SSH и SUDO, как показано ниже.Ожидайте сценария для запуска Ansible playbooks
$ ansible-playbook -i test --limit dev app_name.yml -vv --tags=stop
SSH password:
SUDO password[defaults to SSH password]:
Существуют различные варианты с анзибль как определение пароля в ansible_ssh_password под group_vars, но это не похоже на работу для меня, так как я не могу быть sshpass установлен на моем целевом сервере, ни я имею право делать какие-либо изменения в файле sudoers.
Я попытался выполнить анзибль-пьесы из немного ожидать сценарий ниже
#!/usr/bin/expect -f
set password PASSWORD
set where_to_execute [lindex $argv 0]
set which_app_to_execute [lindex $argv 1]
set what_to_execute [lindex $argv 2]
send "ansible-playbook -i test --limit $where_to_execute $which_app_to_execute -vv --tags=$what_to_execute \r"
expect "SSH password:"
send "$password \r"
expect "SUDO password*"
send "$password \r"
expect "$"
send "exit \r"
К сожалению, это тоже не работает, может быть, потому что процесс SSH не порожден ожидать. Кто-нибудь пробовал этот метод и заработал. Пожалуйста, предложите. Благодарю.
Не могли бы вы предоставить свой код для воспроизведения? –
Спасибо, что посмотрели. Это просто не происходит с playbook, даже если я хочу выполнить некоторые команды adhoc через Ansible, он подскажет мне пароль, который ожидается, и что я хочу автоматизировать ввод пароля через ожидание –
Пожалуйста, скажите мне, если вы не знакомы с python. Я могу дать вам небольшую дополнительную помощь, чтобы перевести ваш сценарий ожидания на pexpect –