Ansible, 특정 동작 대기/확인 하기
Ansible 을 사용할때에 특정 동작에 대해서 대기한 후에 진행하도록 해야할 필요가 있다. 대표적인 것이 Tomcat 과 같은 경우인데, Tomcat 이 시작을 하게 되면 애플리케이션이 동작하기까지 몇 초의 시간이 더 걸린다. 웹 애플리케이션이 정상적으로 접속을 받기 전에 또 다른 작업을 하게 될 경우에 문제가 된다.
wait_for
Ansible 에서는 위와같은 경우를 위해서 wait_for 라는 것을 지원한다. 예제를 보면 단번에 이해할 수 있다.
1 2 3 4 5 6 7 8 9 10 |
# roles/apache/tasks/restart.yml - name: Restart webserver service: name: httpd state: restarted - name: Wait for webserver to start wait_for: port: 80 delay: 10 |
포트 80 을 체크해 10초동안 딜레이를 가진다.
다음 예제를 보자.
1 2 3 4 |
tasks: - name: Tomcat pid check wait_for: path: /opt/tomcat/tmp/tomcat.pid |
tomcat.pid 파일이 생성되면 다음 스텝으로 진행 된다.
또 다음 예제를 보자.
1 2 3 4 5 |
tasks: - name: Tomcat pid check wait_for: path: /opt/tomcat/tmp/tomcat.pid state: absent |
tomcat.pid 파일이 삭제되면 다음을 진행한다.
위 예제2,3을 활용하면 Tomcat 웹 애플리케이션을 배포할때에 활용가능하다.