Como passar o prompt em ansible?

0

Estou tentando passar um prompt em ansible quando ele executa o comando abaixo. Quando eu faço manualmente no servidor, pede um prompt. Como devo fazer isso com ansible usando o módulo shell.Por favor, ajude a passar o prompt em ansible

ubuntu@ip-xx-xxx-xx-xx:~$ tsm pending-changes apply
This operation will perform a server restart. Are you sure you wish to continue?
(y/n): 

Meu script ansible:

- name: Apply pending configuration changes
  shell: source /etc/profile.d/tableau_server.sh && tsm pending-changes apply -u ubuntu -p '{{ tableau_server_admin_password }}' |
    expect "This operation will perform a server restart. Are you sure you wish to continue?\(y\/n\)"
    send "y\n"
  args:
    executable: /bin/bash
  when: inventory_hostname == "xx.xxx.xx.xx"
    
por Swat 20.08.2018 / 17:46

1 resposta

0

Isso é o que o módulo ansible expect é para:

- name: Apply pending configuration changes
  expect:
    command: /bin/bash -c "source /etc/profile.d/tableau_server.sh && tsm pending-changes apply -u ubuntu -p '{{ tableau_server_admin_password }}'"
    responses:
      '(y/n):': y
  when: inventory_hostname == "xx.xxx.xx.xx"

(Não é possível testar, mas algo assim é como deve funcionar)

    
por 18.09.2018 / 11:07

Tags