TIL AWS Ansible 2

sundays·2022년 9월 21일
0

Ansible 모듈

  • ansible 에서 사용 하는 명령어
  • managed node에 구성을 수행
  • namespace 단위로 관리
    • ansible.builtin namespace는 Ansible 기본 모듈
    • ansible-doc - ansible document 확인 명령
  • 모듈은 기본적으로 멱등성( Idempotent )를 가진다.
  • Ansible 에서는 모듈( module ), 태스크( task ), Ad-hoc, Playbook은 멱등성을 가진다.
  • 멱등성이 없는 모듈
    • command
    • shell
    • raw
  • 중요 모듈
    • user 모듈
      사용자 추가/삭제 관리 모듈
      name 파라미터 - 추가/삭제 사용자 명
    • state 파라미터
      • present - 생성 (default)
      • absent - 소멸

ansible <host 패턴> -m user -a <명령> --become

  • yum 모듈
    RedHat 배포판 패키지 관리 명령인 yum에 대한 모듈
    유사 모듈 - apt, dnf 모듈
    state 파라미터
    present, installed - 설치
    latest - upgrade
    absent, remove - 삭제

ansible <host 패턴> -m yum -a <명령> --become

  • service 모듈
    • 시스템 서비스( 데몬 프로세스 )에 대한 시작, 종료, 재시작등의 기능 제공 모듈
    • 유사 모듈 - systemd 모듈
    • state 파라미터
      • started - 시작
      • stopped - 중지
      • restarted - 재시작
      • reloaded - 재로드

ansible <host 패턴> -m service -a <명령> --become

  • service 모듈 테스트
  • copy 모듈
    • 제어 노드에서 매니지드 노드로 파일 복사
    • src 파라미터 : 복사( 전송 )할 파일 이름( 경로 포함 )
    • dest 파라미터 :복사( 전송 )될 위치
    • copy 모듈 테스트

YAML

  • 데이터를 표현하는 목적으로 사용하는 script 형식
  • 선언정보나 환경 설정 정보를 기술하는 목적
  • ansible에서 playbook을 작성시 사용
  • 파일 시작
    • ansible에서 사용하는 yaml 파일시작은 -(대시) 기호 3개로 구성
    • playbook 최상단 위치, 생략가능
  • 파일 끝
    • ... 으로 구성
    • playbook 파일 끝 표시는 생략 가능
  • 주석
    • 설명 정보
    • 해시태그(#)
  • 자료형
    • 문자열
      • 따옴표로 묶을 필요가 없다
      • 일반적인 모든 자료 형태
    • boolean
      • native boolean true/false로 해석
    • Collection
      • 리스트
        • yaml에서는 sequence 라 ㅏㅎㄴ다
        • 대시로 구분
        • [] 묶는 인라인 포맷 지원
      • 딕셔너리
        • dict 자료형과 유사
        • 매핑이라 부른다
        • key:value 형식
        • 인라인 포맷
    • 라인 폴딩
      • 파일 콘텐츠를 보기좋게 관리하기 위해 여러 라인에 나누어 표기
      • (>) 문자로 라인 폴딩을 사용
    • YAML 내용은 각 단계( level )에 대한 표현은 스페이스( space )를 이용하여 표현
      • 단계 표현을 위한 들여쓰기( indentation )은 스페이스 2칸을 사용

Playbook

  • 인벤토리에 정의된 managed node에서 무엇을 해야 할 것인가( 서버 구성 정보 )를 정의한 내용
  • 자동화 절차를 기술한 코드 파일
  • YAML 포맷으로 표현
  • 설정이나 프로세스에 대한 모델 정의를 표현한 최소한의 문법으로 구성
  • Playbook의 목표는 managed node 그룹을 잘 정의된 Ansible 내에서 Task로 불리는 역할( role )에 매핑해 주는 것

실행

ansible-playbook [ 옵션 ] <playbook 파일명>

  • -i <인벤토리 파일> - 사용자가 지정한 위치의 인벤토리 파일 사용

  • -e <추가 변수> - 추가 변수 지정, key=value 형식

  • 실행 예제

---
- name: ping test
  hosts: managed
  tasks:
    - name: ping
      ping: 

  • playbook
    managed node에 적용할 코드 집합

  • play
    한 번에 일괄적으로 수행할 작업단위 - task 모음

  • task
    실제 수행할 작업 내용 - 모듈로 표현

Reference

profile
develop life

0개의 댓글