본문 바로가기
AWS/Part 4. Ch04 앤서블을 이용한 서버 형상 관리

CH04_07. 변수 (Variables)

by Engineer-Lee 2022. 6. 17.
반응형

이번 시간에는 앤서블 변수에 대해 알아보자

아래 링크는 앤서블 변수에 대한 공식 문서이다.

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 옵션을 추가하면 속성을 전달할 수 있다.

 

속성으로는 파일자체도 넘겨줄 수 있다.

 

반응형