특정 TCP 포트가 열려 있는지 확인하는 Ansible wait_for 모듈을 사용할 수 있습니다 .
이 경우 모든 포트가 이미 열려 있어야하므로 최소 no를 사용할 수 있습니다. 재시도 횟수, 네트워크 문제를 다루기에 충분합니다.
- name: Check all port numbers are accessible from current host
wait_for:
host: mywebserver.com
port: "{{ item }}"
state: started # Port should be open
delay: 0 # No wait before first check (sec)
timeout: 3 # Stop checking after timeout (sec)
ignore_errors: yes
with_items:
- 443
- 80
- 80443
기본적으로 Ansible은 sleep
초당 1 회 (속성을 사용하여 Ansible 2.3에서 구성 가능 ) 확인하므로 포트 당 3 번 확인됩니다.
400 개 이상의 호스트 인벤토리에 대해 플레이 북에서이를 실행하십시오. Ansible은 모든 호스트가 mywebserver.com
해당 포트에서 도달 할 수 있는지 병렬로 확인합니다 .
ignore_errors: yes
오류가 빨간색으로 표시되지만 실행을 중지하지 않도록 여기에서 사용 합니다.
열린 포트는 ok
출력 항목 으로보고 되고 닫힌 포트는 다음과 같이보고됩니다 failed
( 이 출력을 보려면 -vv
플래그를 사용해야 함 ansible-playbook
).
미세 조정 출력
성공 및 실패 사례에 대해보다 구체적인 출력을 원하면 코드를 더 복잡하게하여 두 번째 작업을 추가해야합니다.
wait_for
작업은 register
변수 여야 합니다
- 두 번째 과제는 사용하는 출력을 생성
debug
(예 Jinja2하여 성공 / 실패 상태에 기초한 조건식 )
- 그런 다음이 두 작업을 모두
with_items
루프 없이 포함 파일에 넣고 include
... with_items
를 사용하여 포트 당 한 번 포함 파일을 호출 하는 기본 플레이 북 작업을 작성해야합니다 .
host: mywebserver.com
.