앤서블에서 힌트를 전달하는 방법은 무엇입니까?

앤서블에서 힌트를 전달하는 방법은 무엇입니까?

다음 명령을 실행하는 동안 ansible에서 프롬프트 y를 전달하려고 합니다. 서버에서 수동으로 수행하면 프롬프트가 표시됩니다. 쉘 모듈을 사용하여 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): 

내 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"

답변1

이것은앤서블 기대 모듈사용:

- 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"

(테스트할 수는 없지만 비슷한 것이 이와 같을 것입니다)

관련 정보