8. Ansible을 통한 코드 작성 표준 메뉴얼
1. 인벤토리
인벤토리는 앤서블에 의해 제어되어 infrastructure as a code의 대상이 될 서버들의 목록을 정의하는 파일이다.
일반적으로 hosts 파일에 정의해 사용하는데 vRealize Automation에서는 이 hosts 파일을 통합 관리하게 되면, deploy간의 순서를 특정하지. 못해 충돌이 일어나기 때문에 각 deployment 마다 새로 디렉토리를 생성하여 그안에 hosts 파일과 host variable등을 관리한다
2. 플레이북
플레이북은 yaml 포맷으로 되어있는 파일로서, 인벤터리 파일에서 정의된 서버들에서 어떤 작업들을 실행할지 정의한다. 일반적으로 앤서블을 사용한다고 하면, 플레이북을 사용하는것이 일반적이며, 플레이북 내부에는 role이라는 앤서블의 요소를 사용해 여러개의 플레이북을 정의해 사용한다.
3. role (롤)
[ 롤의 구성요소 ]
- ㅛ files : 정적파일을 두는 곳입니다. task에서는 files폴더에서 필요한 파일들을 끌어다 사용 할수 있습니다.
- handlers : tasks에서 사용할 handler들을 두는 폴더입니다.
- tasks : role의 핵심 폴더입니다. role이 실제로 동작할 내용이 담겨져 있습니다.
- templates: 파이썬의 jinja2 템플릿 엔진에 기반한 파일을 저장해놓는 디렉토리이며, 템플릿의 변수들을 담을수 있습니다.
- vars: role에서 사용할 변수들의 목록입니다. template이나 task에서 변수를 호출해 사용할수 있습니다.
4. module (모듈)
모듈은 플레이북에서 tasks가 어떻게 수행될지를 나타내는 요소이다.
모듈의 종류가 총 49가지인데, bin/bash 기반의 스크립트로 수행되는 작업들을 모듈을 통해서 처리하게 되면, 가독성과 멱등성, 유 지보수성에 강점이 있다.
주로 사용하는 module들에 대해서 포스팅을 해서 다뤄보도록 하겠다
- yum repository, yum, apt
- blockinfile, replace, lineinfile
- debug
- copy, template, unarchive
-
- ansible.builtin.systemd – Manage systemd units
- ansible.builtin.sysvinit – Manage SysV services.
- ansible.builtin.service – Manage services
우선 내가 자주 사용하고, 소개할수 있는 모듈에 대해서 먼저 소개하도록 하겠다.
다음 포스팅에 ^^
'DevOps > Ansible' 카테고리의 다른 글
[A101] 1.Ansible 설치 (0) | 2024.01.07 |
---|---|
[Ansible] 9. ansible Module (systemd, service) (0) | 2021.07.27 |
[Ansible] 7. ansible Module (텍스트 수정) (0) | 2021.07.20 |
[Ansible] 6. ansible Module (yum repository) (0) | 2021.07.20 |
[Ansible] 5. mariadb 바이너리 설치 (0) | 2021.07.09 |