2 minute read

일지

강의듣는거는 저 하늘위로

대충 플레이북 어떤구조고 어떻게 짜는지, 무슨요소가 있는지는 이해하고 있으니까
다음미니프로젝트때 Ansible로 LAMP서버 구축하는거 영상몇개보고
그거참조해서 플레이북 구성하면 끝나는거 아닐까?

앤서블은 인프라 관리도구다 보니
미니프로젝트를 진행한다고해서 특별히 뭔가 서비스나 다른걸 추가해서해보기가 쉽지않을거같다
뭐그래도 막상닥치면 이것저것찾아보면서 더 추가할게 있으면 찾아보겠지만
지금 마음가짐으로는 별도팀프로젝트가 훨씬 더 재밌고 성취감이 있어서(와! 결과가 카톡으로와!)
여기에 더 집중하게 되는듯

주요 키워드

오늘의 할일

  • 220420 TIL 작성
  • 별도 팀프로젝트; 카카오톡 그룹메세지발송 기능구현
  • 정보공유 스터디 진행

추가로 정리해야할 부분

수업 정리

Ansible

  • 블록의 개념
    • 블록은 플레이에 하나 이상의 작업을 논리적으로 그룹화 할 수 있음
      • 그룹화의 장점은 대부분 단일 작업에서 적용했던 플레이북 키워드를 블록 수준에서 적용할 수 있음
      • 조건문(when), 권한상승(become) 등 블록에 구성할 수 가능
      • 블록에 구성된 키워드는 블록에 속한 모든 작업에 공통으로 적용
      • 단 반복문은 블록에 적용 X
    • 대부분의 프로그래밍 언어에 있듯이 예외 처리 기능을 제공
      • 블록의 하나 이상의 작업이 실패한 경우, 실패한 작업에 대응(롤 백, 오류 수정 등)하는 작업을 지정 가능
  • 작업의 그룹화
    • 블록의 모든 작업은 블록 수준에서 적용된 지시문을 상속
    • 단일 작업에 적용할 수 있는 대부분(반복문(loop) 제외)은 블록 수준에서 적용할 수 있으므로 블록을 사용하면 작업에 공통적인 데이터나 지시문을 훨씬 쉽게 설정 가능
    • 지시문은 블록 자체에 영향을 미치지 않으며 블록으로 묶인 작업에 의해서만 상속
      • when 문은 블록 자체가 아니라 블록 내의 작업에 적용
  • 오류 처리
    • rescue및 always섹션이 있는 블록을 사용하여 Ansible이 작업 오류에 응답하는 방식을 제어할 수 있음
    • 복구 블록은 블록의 이전 작업이 실패할 때 실행할 작업을 지정
      • 접근 방식은 많은 프로그래밍 언어의 예외 처리와 유사
    • Ansible은 작업이 ‘실패’ 상태를 반환한 후에만 복구 블록을 실행
      • 잘못된 작업 정의와 연결할 수 없는 호스트는 복구 블록을 트리거하지 않음
    • 블록의 작업 중 하나라도 실패가 있으면, Rescue 섹션의 작업이 실행
      • 블록의 작업 중 실패가 없으면, Rescue 섹션은 실행 X
  • 태그(tags)
    • 많은 작업이 있는 플레이북의 경우 플레이북 전체를 실행하는 대신 특정 일부분 만 실행하는 것이 유용할 수 있음
    • Ansible 태그로 특정 작업만 실행하거나, 특정 작업을 실행하지 않을 수 있음
    • 태그는 플레이, 블록, 역할, 작업에 설정하고, 플레이북 실행 시 태그를 선택
  • 아티팩트 개념
    • Ansible 플레이북 작성 시 하나의 매우 큰 파일에 플레이 및 작업을 작성할 수 있음
    • 단일 플레이북의 복잡한 작업을 다른 파일로 나누어 작업 집합으로 구성할 수 있음
    • 더 작고 분산된 아티팩트를 통해 변수, 작업 및 플레이를 여러 플레이북에서 재사용 가능
    • 재사용 가능한 아티팩트:
      • 변수 파일
      • 작업 파일
      • 플레이북 파일
      • 역할
  • 플레이북에서 변수 재사용
    • 플레이북에서 vars_files 키워드 및 include_vars 모듈을 사용하여 외부 변수 파일을 가져올 수 있음
    • vars_files 키워드
      • 플레이 안에서 변수 파일을 불러와서 참조함
    • include_vars 모듈
      • tasks 영역에서 변수 파일을 불러와서 참조함
  • 인벤토리 / 플레이북 디렉토리에서 변수 재사용
    • Ansible Automation Engine은 인벤토리 또는 플레이북 파일이 있는 디렉토리에서 group_vars/ 또는 host_vars 디렉토리의 YAML 형식의 변수 파일을 가져올 수 있음
    • 별도로 플레이북 키워드나 모듈을 사용하지 않아도 Ansible Automation Engine이 group_vars/ 또는 host_vars/ 디렉토리가 있으면 읽어 들임
      • 그룹 변수: group_vars/ 디렉토리
      • 호스트 변수: host_vars/ 디렉토리
  • 플레이북, 플레이, 작업 일부, 변수를 재사용하기 위해 include_* 및 import_* 모듈을 사용할 수 있음
    • include_* 모듈
      • include_* 모듈의 주요 용도는 반복문에서 사용하는 것
      • include_* 모듈과 반복문을 함께 사용하면 포함된 작업이 루프의 각 항목에 대해 한 번씩 실행

Categories:

Updated:

Leave a comment