Ssoon
[ Part-2 ] 앤서블 기본 사용법 - 첫 번째 플레이북 작성하기 본문
CloudNet@ 가시다님이 진행하는 Ansible 101 Study
"앤서블로 시작하는 인프라 자동화" (한빛미디어) 로 진행
✅ 플레이북 환경 설정
- playbook
- 대상 호스트에서 수행될 작업들을 정의
- ansible.cfg 환경 설정 파일이 존재하는 디렉터리 ▶ 앤서블 프로젝트 디렉터리
💠 앤서블 환경 설정 파일
- 각 섹션에 키-값 깡으로 정의된 설정 포함
- 여러 개의 섹션으로 구성
- 기본적인 실행을 위해 [default] 와 [previlege-escalation] 두 개의 섹션으로 구성
[default]
inventory = ./inventory
remote_user = user
ask_pass = false
[previledge_escalation]
become = true
become_method = sudo
become_user = root
become_ask_pass = false
- [default] 섹션
- 관리 호스트 연결하는 방법을 제어하는 가장 중요한 매개 변수 설정되어 있음
- 앤서블 은 실행 시 로컬 사용자와 같은 사용자 이름을 사용하여 관리 호스트에 연결
매개변수 | 설명 |
invenroty | 인벤토리 파일의 경로 지정 |
remote_user | 앤서블이 관리 호스트에 연결할 때 사용하는 사용자 이름 # 사용자 이름을 지정하지 않으면 현재 사용자 이름으로 지정 |
ask_pass | SSH 암호를 묻는 메시지 표시 여부 지정 # SSH 공개 키 인증을 사용하는 경우 기본값은 false 임 |
- [previlege-escalation] 섹션
매개변수 | 설명 |
become | 기본적으로 권한 에스컬레이션을 활성화할 떄 사용 연결 후 관리 호스트에서 자동으로 사용자를 전환할지 여부 지정 # 일반적으로 root 로 전환되며, playbook 에서도 지정할 수 있음 |
become_method | 권한을 에스컬레이션하는 사용자 전환 방식을 의미 # 기본값은 sudo 를 사용, su 는 옵션느로 설정할 수 있음 |
become_user | 관리 호스트에서 전환할 사용자를 지정 # 일반적으로 기본값은 root |
become_ask_pass | become_method 매개 변수에 대한 암호를 묻는 메시지 표시 여부를 지정 # 기본값은 false 권한 에스컬레이션하기 위해 사용자가 암호를 입력해야 하는 경우 구성파일에 become_ask_pass = true 매개 변수 설정 |
💠 앤서블 접근을 위한 SSH 인증 구성
- 로컬 사용자에세 개인 SSH 키가 있거나 관리 호스트에서 원격 사용자임을 인증 가능한 키가 구성된 경우 ▶ 자동 로그인
- SSH 키 기반 인증 ▶ ssh-keygen 이용 생성
- ssh-keygen ▶ ssh 키 생성
- ssh-copy-id ▶ 노드로 복사
ubuntu /etc/ssh/sshd_config.d
PermitRootLogin yes 추가
systemctl restart sshd
- ansible.cfg 파일 수정
[defaults]
inventory = ./inventory
remote_user = root
ask_pass = false
[priviledge_escalation]
become = true
become_method = sudo
become_user = root
become_ask_pass = false
- ansible 명령어를 이용하여 ping 테스트 진행
- --ask-pass 옵션 추가
✅ 첫 번째 플레이북 작성하기
- YAML 포맷으로 작성된 텍스트 파일
- .yml 이라는 확장자로 저장
- 대상 호스트나 호스트 집합에 수행할 작업을 정의 ▶ 실행
- 득정 작업 단위를 수행 ▶ 모듈 적용
💠 플레이북 작성하기
- debug 모듈을 이용 ▶ hello ansible world 출력
---
- hosts: all
tasks:
- name: print message
debug:
msg: hello ansible world
- 플레이북 문법 체크
ansible-playbook --syntax-check first-playbook.yml
- 에러 시 오류 내용 확인
✅ 첫 번째 플레이북 실행하기
- 환경 설정 파일인 ansible.cfg 가 존재하는 디렉터리 내에서 실행
💠 playbook 실행
💠 playbook 실행 점검
- --check 옵션
- 앤서블에서 플레이북을 실행해도 관리 호스트는 실제오 변경되지 않고 변경 내용만 미리 알수 있음
- sshd 서비스 재시작하는 restart-service.yaml 생성
[root@ansible-server my-ansible]# cat restart-service.yml
---
- hosts: all
tasks:
- name: restart sshd service
ansible.builtin.service:
name: sshd
state: restarted
- --check 옵션을 빼고 ansible-playbook 을 실행
- tnode1-centos 에서 sshd 서비스 재시작 로그 확인
'Ansible 101 Study' 카테고리의 다른 글
[ Part-2 ] 앤서블 기본 사용법 - Ansible Vault (0) | 2024.01.13 |
---|---|
[ Part-2 ] 앤서블 기본 사용법 - 변수 (0) | 2024.01.08 |
[ Part-2 ] 앤서블 기본 사용법 - 자동화 대상 호스트 선정하기 (0) | 2024.01.08 |
[ Part-1 ] 앤서블 시작하기 - 앤서블 실습 환경 준비하기 (0) | 2024.01.08 |
[ Part-1 ] 앤서블 시작하기 - 앤서블 소개 / 앤서블 아키텍트 (0) | 2024.01.08 |
Comments