Ansible 모듈
- ansible 에서 사용 하는 명령어
- managed node에 구성을 수행
- namespace 단위로 관리
- ansible.builtin namespace는 Ansible 기본 모듈
- ansible-doc - ansible document 확인 명령
- 모듈은 기본적으로 멱등성( Idempotent )를 가진다.
- Ansible 에서는 모듈( module ), 태스크( task ), Ad-hoc, Playbook은 멱등성을 가진다.
- 멱등성이 없는 모듈
- 중요 모듈
- 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 파일명>
---
- name: ping test
hosts: managed
tasks:
- name: ping
ping:
-
playbook
managed node에 적용할 코드 집합
-
play
한 번에 일괄적으로 수행할 작업단위 - task 모음
-
task
실제 수행할 작업 내용 - 모듈로 표현
Reference