[Ansible] #2.2 Ansible 용어 2

[Ansible] #2.2 Ansible 용어 2

Ansible 의 용어에 대해서 알아보자.
모듈(Module) , 작업(Task) , Ad-hoc 명령 , 플레이북(Playbook), 플레이(Play) .


1

Ansible 아키텍쳐

5. 모듈(Module)


Ansible 의 작업을 실행하는 Python 코드 조각으로 Ansible 의 핵심이라고 할 수 있다.

총 7~8천개 정도가 존재한다.

모듈 의 목록은 아래 명령어로 조회할 수 있다.

ansible-doc -t module -l

https://docs.ansible.com/ansible/latest/collections/index_module.html

위 링크에서도 확인 가능하다.
우리가 필요한 대부분의 기능이 이미 모듈로 구현되어 있다.

Ansible구성 관리 도구 이지만 프로비저닝 기능도 가지고 있다.
이 프로비저닝 기능이 모듈 에 포함되어 있는 것이다.
Windows 에 대한 모듈도 존재한다.
WindowsUnix 게열이 아니기 때문에 제어 노드 는 될 수 없지만, 관리 노드 는 될 수 있기 때문에 관리 노드 용으로 모듈 이 존재한다.

6. 작업(Task)


Ansible 의 작업 실행 단위이다.

모듈 을 실행하면 하나의 작업 이 실행되며,
Ad-hoc 명령(ansible) 을 통해 하나의 모듈 을 정의해 하나의 작업 을 실행한다.

Playbook을 통해 여러 모듈 을 정의해 여러 작업 을 한번에 실행하는 것이 가능하다.

즉 하나의 모듈 은 하나의 Task 로 이어지므로, 하나의 모듈 은 하나의 작업 만 실행할 수 있다.

약간 쓰레드 와도 비슷한 개념이다.

Playbook 은 절차형이기 때문에 순서에 따라 여러 모듈 을 정의해서 여러 개의 작업을 실행하는 것이다.

7. Ad-hoc 명령


ansible 명령으로 단일 모듈을 이용해 단일 작업을 실행할 수 있다.
예시를 보자.

ansible -m apt -a "name=apache2 state=present"
ansible -m service -a "name=apache2 state=started enabled=true"
ansible -m copy -a "src=my.cnf.tmpl dest=/etc/my.cnf"

모든 모듈ansible 로 시작하며, 뒤로 오는것은 분류, 그 다음이 모듈 이름이다.
세번째 파라미터인 모듈 이름만 써도 되고, 풀 네임으로 써도 된다.
-a 뒤에는 argument가 온다.

모듈 하나만 지정할 수 있음에 주의하자.

8. 플레이북(Playbook), 플레이(Play)


플레이북 :

  • 하나 이상의 플레이를 가지고 있는 YAML 파일
  • ansible-playbook 명령으로 실행됨

플레이 :

  • 하나 이상의 순서가 있는 모듈이 지정된 작업 목록

플레이북에는 여러개의 플레이가 속할 수 있다.

서로 다른 노드, 서로 다른 시스템(웹서버, DB서버) 등에 대한 서로 다른 작업을 포함하여 구성할 수 있다.
예시를 보자.

1

플레이북 및 플레이 예시

YAML 파일을 플레이북 이라고 한다.
hosts플레이 ,
apt , service모듈 이다.
하나의 모듈 은 하나의 작업(Task) 이므로, hosts 플레이는 여러 개의 모듈 이자 작업 을 포함한다.

플레이에서는 순서가 있다는 것이 중요하다.

플레이북 - 파일

플레이 - 하나 이상의 모듈이 존재

개념을 확실히 알고 가자.

또한 어원으로는 Ansible 의 개발자인 마이클 드한이 야구 광인데, 야구 시작할 때 플레이라고 외치는게 어원이라고 한다.

다음 글로 이어진다.


© 2022. All rights reserved.