2017-01-23 8 views
0

다음 main.yml이 있습니다. 다른 호스트에 대해 하나씩 병렬로 실행하고 싶습니다. 예를 들어, 먼저 Rolling Update Batch Size 장에서 ..는 "고정 표시기"역할 등을 실행 완료, 병렬의 모든 호스트의 "클러스터 전제 조건"가능 : 다른 호스트에 병렬 역할을 어떻게 배치 할 수 있습니까?

- hosts: masters:private_agent:public_agent 
    remote_user: "{{user}}" 
    become: True 
    serial: 1 
    roles: 
    - role: cluster_prerequisites 

- hosts: bootstrap:masters:private_agent:public_agent 
    remote_user: "{{user}}" 
    become: True 
    serial: 1 
    roles: 
    - role: docker 

- hosts: bootstrap 
    remote_user: "{{user}}" 
    become: True 
    serial: 1 
    roles: 
    - role: prepare_bootstrap 

- hosts: masters 
    remote_user: "{{user}}" 
    become: True 
    serial: 1 
    roles: 
    - role: run_masters 

- hosts: private_agent 
    remote_user: "{{user}}" 
    become: True 
    serial: 1 
    roles: 
    - role: run_private_agents 

- hosts: public_agent 
    remote_user: "{{user}}" 
    become: True 
    serial: 1 
    roles: 
    - role: run_public_agents 

답변

1

을 역할을 실행하는 데 기본적으로

, Ansible 시도합니다 재생에서 참조되는 모든 기계를 병렬로 관리 할 수 ​​있습니다. 롤링 업데이트가 케이스를 사용하십시오 당신이 당신의 연극에서 serial: 1를 제거하는 경우, 당신은, 그래서 ... serial 키워드를 사용하여 Ansible는 한 번에 관리하는 방법을 많은 호스트

를 정의 할 수 있습니다, Ansible 모두에 작업을 실행합니다 플레이중인 호스트가 병행합니다.

serial: 1으로 설정하면 Anonymous에게 하나씩 호스트를 가져오고 이전에 모든 작업이 완료된 경우에만 다음 호스트로 이동하도록 지시합니다.

일반적으로 서버 일부가 클라이언트의 요청을 계속 처리 할 수 ​​있기 때문에 일련의 백엔드 서버에서 일련의 작업을 실행하여 서비스 중단 시간을 방지하기 위해 일괄 적으로 업데이트해야합니다.

+0

정말로 감사합니다 !! 그것은 나를 위해 좋은 작품 :) –