2017-11-22 11 views
1

Anonymous v2.4.0.0사용 방법 wait_for를 사용하여 여러 줄의 명령 상태를 확인할 수 있습니까?

나는 Ansible 작업에서 다음을 실행하는 Gitlab-CE를 설치합니다. 보시다시피 일부 프로세스는 중단되었지만 결국 프로세스가 시작됩니다.

# gitlab-ctl status 
run: gitlab-workhorse: 0s, normally up 
run: logrotate: 1s, normally up 
down: nginx: 0s, normally up 
down: postgresql: 1s, normally up 
run: redis: 0s, normally up 
run: sidekiq: 0s, normally up 
run: unicorn: 0s, normally up 

모든 서비스가 실행 상태에 있는지 확인하려면 어떻게해야합니까? IOW 나는 단지 내가이

# gitlab-ctl status 
run: gitlab-workhorse: 0s, normally up 
run: logrotate: 1s, normally up 
run: nginx: 0s, normally up 
run: postgresql: 1s, normally up 
run: redis: 0s, normally up 
run: sidekiq: 0s, normally up 
run: unicorn: 0s, normally up 
+0

"* 사용 방법 wait_for를 사용하면 여러 줄의 명령 상태를 확인할 수 있습니까?" "- 한 줄로 명령 상태를 확인하기 위해 wait_for를 어떻게 사용합니까? – techraf

+0

@techraf, 답변보기 –

+0

"답변보기"란 무엇을 의미합니까? 대답은'wait_for' 모듈에 대해서는 언급하지 않았습니다. – techraf

답변

1

을 볼 때 retries/until 방법을 사용할 수 있습니다 다음 작업으로 진행하려면 :

- command: gitlab-ctl status 
    register: cmd_res 
    retries: 5 
    until: cmd_res.stdout_lines | reject('search','^run') | list | count == 0 

우리는 run로 시작하고 계산 출력에서 ​​모든 줄을 놓습니다. 그런 선이 남아 있지 않은 경우에만 다음 작업을 진행하십시오.

+0

감사합니다. 다시 시도 사이에 지연을 넣을 수 있습니까, 예 : 지연? –

+0

'지연'옵션에 대한 설명서를 확인하십시오. http://docs.ansible.com/ansible/latest/playbooks_loops.html#do-until-loops –