Ansible - 특정 작업에 대해 새로운 SSH 연결을 강제합니다.

Ansible - 특정 작업에 대해 새로운 SSH 연결을 강제합니다.

나는 iptables를 관리하기 위한 플레이북을 작성 중입니다. (예, 알고 있습니다.이 문제를 해결하는 모듈이 있습니다, 그러나 나는 사용자 정의 스크립트를 사용하는 것을 선호합니다). 새로운 규칙을 로드한 후 USR1신호를 기다립니다 . 그렇지 않다면 롤백하겠습니다.

따라서 관련 Ansible 작업은 다음과 같습니다.

  - name: Restore iptables
    shell: /root/load_iptables_rules.sh
    async: 45
    poll: 0

  - name: Test SSH connection
    shell: /root/send_usr1.sh
    register: exit_code
    until: exit_code.rc == 0
    retries: 10
    async: 45
    poll: 3

두 번째 작업("SSH 연결 테스트")을 새롭고 다른 SSH 연결에서 실행하고 싶습니다. 이렇게 하면 내 호스트가진짜새로운 SSH 연결을 수락합니다. 그렇지 않으면 Ansible이 내 요구 사항에 맞지 않는 이미 설정된 연결을 사용할 수 있습니다.

파이프와 비동기에 관한 내용을 읽었지만 작동시킬 수 없습니다.

답변1

당신이 찾고있는meta모듈 reset_connection작업;이렇게 하면 연결이 중단되어 후속 작업에서 새 연결을 설정해야 합니다. 이는 다음과 같을 수 있습니다:

- name: Restore iptables
  shell: /root/load_iptables_rules.sh
  async: 45
  poll: 0

- name: Reset connection
  meta: reset_connection

- name: Test SSH connection
  shell: /root/send_usr1.sh
  register: exit_code
  until: exit_code.rc == 0
  retries: 10
  async: 45
  poll: 3

관련 정보