이번 시간에는 앤서블 변수에 대해 알아보자
아래 링크는 앤서블 변수에 대한 공식 문서이다.
https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html
Using Variables — Ansible Documentation
Using Variables Ansible uses variables to manage differences between systems. With Ansible, you can execute tasks and playbooks on multiple different systems with a single command. To represent the variations among those different systems, you can create v
docs.ansible.com
첫 번째로 앤서블의 변수명에 대해 설명하고 있다.
변수 정의는 yaml 구문을 사용하고 변수 참조는 이중 중괄호를 사용한다.
Jinja2는 파이썬에서 많이 사용하는 템플릿 언어이다.
이제 playbook.yaml 파일을 보자
https://github.com/tedilabs/fastcampus-devops/tree/main/2-ansible/06-vars
GitHub - tedilabs/fastcampus-devops: 🚀 패스트캠퍼스 데브옵스 초격차 코스 자료
🚀 패스트캠퍼스 데브옵스 초격차 코스 자료. Contribute to tedilabs/fastcampus-devops development by creating an account on GitHub.
github.com
우선 Example이라는 플레이가 있고 ubuntu 호스트에 대해 동작한다.
task로는 Create a user라는 task가 있다. 이는 bash shell로 posquit0라는 사용자를 만든다.
이 플레이북을 실행하고 우분투 인스턴스에 접속하자
그리고 sudo cat /etc/passwd 명령어로 파일을 열어보면 posquit0라는 사용자가 생성된 걸 볼 수 있다.
여기까지 기본적으로 변수 없이 플레이북을 사용한 방법이다
이제 변수를 이용해서 playbook.yaml 파일의 task를 설정해보자
name, comment, shell, uid에 변수가 사용되었고 이 값은 vars.yaml 파일에 정의되어 있다.
그리고 다시 플레이북을 실행하고 우분투 인스턴스로 접속해서 passwd 파일을 읽어보자
파일경로가 from vars.yaml로 posquit0라는 사용자가 생성된 걸 볼 수 있다.
이 외에도 커맨더라인을 통해 속성을 바로 넘겨줄 수도 있다.
ansible-playbook -i default.inv playbook.yaml 명령어에 -e 옵션을 추가하면 속성을 전달할 수 있다.
속성으로는 파일자체도 넘겨줄 수 있다.
'AWS > Part 4. Ch04 앤서블을 이용한 서버 형상 관리' 카테고리의 다른 글
CH04_09. 조건문 (Conditional) (0) | 2022.06.17 |
---|---|
CH04_08. 반복문 (Loop) (0) | 2022.06.17 |
CH04_06. 핸들러 (Handler) (0) | 2022.06.17 |
CH04_05. 모듈 (Module) (0) | 2022.06.16 |
CH04_04. 플레이북 (Playbook) (0) | 2022.06.16 |