본문 바로가기
DevOps/IaC 자동화

[Ansible] Serial 병렬실행 지정하기

by 마이자몽 🌻♚ 2021. 5. 23.

Ansible Serial 옵션

Ansible의 task 실행은 기본적으로 병렬로 처리가 됩니다. 즉, 실행이 필요한 호스트에 동시 실행이 되는 것 입니다. task를 병렬로 실행되었을 때... 대표적으로 발생할 수 있는 문제는 실시간으로 서비스가 안될 수 있다는 점 입니다. 예를 들어 3개의 노드에서 HA 구성되어 실행되고 있는 웹서버가 있습니다. 새로운 feature가 추가되어 패치를 하려고하는데 ansible로 진행하면 병렬로 패치되어 어느 한 순간에 서비스가 동작하지 않는 문제가 발생할 수 있습니다. 이를 해결하기 위해 ansible에서는 serial 필드로 한번에 task가 실행되는 노드의 수를 지정할 수 있어 rolling update가 가능해집니다.

 

---
- hosts: all
  gather_facts: no
  serial: 1
  tasks:
    - name: upgrade openssl
      yum:
        name: openssl
        state: latest
  • 예제로 openssl 패키지를 최신 버전으로 업데이트 한다.
  • serial 필드는 1로 설정하여 한번에 하나의 노드에 업데이트할 수 있도록 한다.

 

 

serial 명령을 이용하여 배치를 통제할 수 있습니다.

태그

댓글0