becool

20210802 (월) ansible 작업제어 #1 본문

ansible

20210802 (월) ansible 작업제어 #1

gusalstm 2021. 8. 2. 16:52
반응형

작업 제어
 ignore_errors  :  true인 경우 작업이 실패한 경우에도 플레이를 진행할 수 있음
 ignore_unreachable :  true인 경우 통신이 안되는 Host를 무시하고 작업 진행
 force_handlers :  true인 경우 이전 task에서 실패하여 플레이가 중단되더라도 통지(notify)된 핸들러가 실행됨

failed_when:  CONDITION   :   task가 실패하는 조건을 다르게 지정할 필요가 있는 경우 사용
changed_when:  CONDITION    :  changed 조건을 다르게 지정할 필요가 있는 경우에 사용

 

반응형

과제 2
다음 작업을 수행하는 플레이북을 작성 하시오

- Apach HTTPD 서버 설치

 handler 실행 Start web service

- vsftpd 서버 설치

 handler 실행 Start ftp service

- Handler "Start web service" : 웹 서비스 시작

- Handler "Start ftp service" : ftp 서비스 시작

 

조건:

- 플레이북을 다시 실행하여도 Start web service Handler가 실행되어야 함

- "bind9" 패키지 설치 작업이 실패하여도 Handler는 정상 실행되게 함.

  다른 작업 실패시에는 Handler가 실행되지 않음

 

---
- name: examination
  hosts: all
  become: true

  tasks:
  - name: Install Apache Web Service  → register의 값으로 출력되는 값들 중에 result_httpd.rc / result_httpd.failed 등의 값으로 changed_when 처리해 줄 수 있음
    yum:
      name: httpd
      state: latest
    register: result_httpd
    changed_when: result_httpd.failed == false
    notify: Start web service
  - name: Display result install apache httpd
    debug:
      msg: "{{ result_httpd }}"
  - name: Install FTP
    yum:
      name: vsftpd
      state: latest
    notify: Start ftp service
  - name: Install BIND
    block:
    - yum:
        name: bind9
        state: latest
    ignore_errors: true

  handlers:
  - name: Start web service
    service:
      name: httpd
      state: started
      enabled: true
  - name: Start ftp service
    service:
      name: vsftpd
      state: started
      enabled: true

 

 

728x90
Comments