728x90
Ansible의 설정파일
Ansible의 설정파일은 ansible.cfg 에 적을 수 있다. 작동되는 방식에 대해 설정할 수 있다.
그런데 Ansible은 설정파일의 우선순위에 따라서 적용되는 설정이 다르다. 즉, 우선순위가 높은 설정을 기준으로 설정된다.
Ansible 설정파일의 우선순위
1. ANSIBLE_CONFIG 환경 변수
2. 현재 디렉토리의 ansible.cfg
3. 홈 디렉토리의 ansible.cfg
4. /etc/ansible/ansible.cfg
예를 들어서 환경변수가 없으면 현재 디렉토리의 ansible.cfg가 실행될것이며, 현재 디렉토리에도 설정파일이 없으면 홈 디렉토리에 있는 설정 파일이 실행될 것이다. 아무것도 설정파일을 따로 만들지 않는 경우에는 /etc/ansible/ansible.cfg 에 있는 설정파일 값으로 실행된다.
ansible.cfg 설정파일 예시
[defaults]
inventory = ./new-inventory
remote_user = vagrant
ask_pass = false
[privilege_escalation]
become = true
become_method = sudo
become_user = root
become_ask_pass = false
[defaults] :기본값 설정 내용
- inventory : 사용할 인벤토리를 지정한다.
- remote_user : 원격접속 시 어떤 유저로 접속할 것인지 설정할 수 있다. ssh로 접속시에 반드시 계정명을 써주어야 한다.
ex) vagrant@192.168.56.11
remote_user를 설정하지 않으면 기본값은 현재 사용자이다. - ask_pass : 접속 시에 패스워드를 물을 지 설정한다. false로 설정했으므로 비밀번호를 묻지 않는다. 단, false로 설정 시에 OpenSSH key 기반 인증을 설정해 두어야 한다.
[privilege_escalation] : 권한 상승을 허용할 것인지 설정하는 것이다. - become : true 로 설정하는 것은 권한 상승을 가능하도록 설정한다는 것이다. 설정하지 않으면 기본 값은 false이다.
- become_method : 권한 상승을 할 때 명령어를 설정할 수 있다. 보통은 sudo 로 설정한다.
- become_user : 권한 상승 시에 어느 유저 권한으로 상승할 것인지 설정한다.
- become_ask_pass : 권한 상승 시에 패스워드를 물을 것인지 설정 여부이다. 그러나 이 설정을 false 값으로 넣어주기 위해서는 /etc/sudoers.d/vagrant에 계정명이 들어가 있어야 한다. sudoers.d 는 sudo 명령을 사용할 수 있는 사용자들의 정보이다.
$ sudo cat /etc/sudoers.d/vagrant
vagrant ALL=(ALL) NOPASSWD:ALL
현재 위치에서 적용된 설정 확인
$ ansible-config view
예시
$ ansible-config view
[defaults]
inventory = ./new-inventory
remote_user = vagrant
ask_pass = false
[privilege_escalation]
become = true
become_method = sudo
become_user = root
become_ask_pass = false
참고로 적어준 인벤토리 파일은 현재 디렉토리에 있는 new-inventory로 설정해 주었다.
vagrant@ansi-master1:~/work
$ ls
ansible.cfg new-inventory
728x90
'Cloud Engineering > Ansible' 카테고리의 다른 글
[Ansible] Playbook 변수 사용하기 / vars_prompt / filter (필터) / lookup (조회) (0) | 2023.02.28 |
---|---|
[Ansible] Playbook (플레이북) 이란? (0) | 2023.02.28 |
[Ansible] Ad-Hoc 명령 (0) | 2023.02.27 |
[Ansible] Inventory (인벤토리) 란? (1) - 정적 인벤토리 (0) | 2023.02.27 |
[DevOps] Ansible이란? (0) | 2023.02.27 |