Я бы решил эту проблему, используя модуль shell в сочетании с / usr / bin / wait в качестве исполняемого файла.Это дает вам больше гибкости во взаимодействии с системой и позволяет следить за ходом процесса в отдельном файле журнала.
- name: Interact with system
shell: |
set timeout 120
log_file {{ '~/logs/your_log_file.explog' }}
spawn telnet {{ inventory_hostname }}
expect "username: "
send "{{ your_username }}\n"
expect "password:"
send "{{ your_password }}\n"
expect "# "
send "term length 0"
expect "# "
send "en"
expect "# "
send "conf -t"
args:
executable: /usr/bin/expect
changed_when: yes
delegate_to: localhost
Или вы можете использовать модуль script , чтобы хранить свои игровые книги.опрятный и чистый.
- name: Interact with system
script: interact-with-system.expect
args:
executable: /usr/bin/expect
changed_when: yes
delegate_to: localhost
PS: Если вы используете шебанг, вам даже не нужно добавлять исполняемый файл.
Посмотрите на страницу ожидаемого руководства или онлайн-примеры, чтобы увидетьчто вы можете сделать с ожиданием.Он довольно мощный, но требует некоторого привыкания.