■ Ansible 이란?
· Open Source IT 자동화 도구
· 시스템 구성 및 SW 배포 기능
· YAML 언어 사용
· 분산 구조 설계
· Kerberos / LDAP 등 인증 관리 시스템에 연결이 쉬움
■ Ansible 특징
· IaC 도구 중 하나
· 시스템을 자동화하도록 구성
· Infra Templete 영역은 제외 -> OS 설치 이후부터 관리 가능
· Agentlress -> SSH를 사용
· 멱등성
■ Ansible 구성 요소
□ 물리적 요소
· 컨트롤 시스템 : 엔진 및 모듈을 설치해서 관리작업을 진행하는 시스템
· 관리 대상 호스트 : ssh / python 설치 여부 확인
· 네트워크 연결 : 각 시스템이 연결 되어 있는지 확인 -> 편의를 위해서 DNS Service 사용
■ 사용 사례
· 구성 관리
· App 배포
· 프로비저닝
· 지속적인 배포
· 보안 및 규정 준수
· 오케스트레이션 (Orchestration)
■ Ansible 설정 항목
□ 구성파일
□ ansible.cfg
[defaults] : 일반적인 동작과 관련된 설정
inventory = [경로 파일 설정]
remote_user = [원격 유저 설정]
host_key_checking = [true / false]
ask_pass = [true / false]
[privilege_escalation] : 권한 상승과 관련된 내용 설정 * sudo
become = [true / false]
become_ask_pass = [true / false]
☞ ansible.cfg
※ 구성
지시문 | 설명 |
inventory | 인벤토리 파일의 경로 지정 |
remote_user | 관리 호스트에 로그인할 사용자의 이름 |
ask_pass | SSH 암호를 요청하는 메시지 표시 여부 |
become | 관리 호스트에서 자동으로 사용자를 전환할지 여부 |
become_method | 사용자 전환 방식 |
become_user | 관리 호스트에서 전환할 사용자 |
become_ask_pass | become_method의 암호를 요청하는 메시지 표시 여부 |
□ Inventory
· Ansible에서 관리할 호스트 목록 정의
· 단일 호스트 및 그룹 단위로 관리
· 정적 / 동적 인벤토리 지원
□ Inventory File
· '/etc/ansible/hosts' 기본적으로 저장되어 있는 위치
· 일반적으로 현재 디렉토리에 작성 -> 구성파일에서 경로를 작성
· 관리대상을 지정 -> 개별 호스트 / 그룹
· 변수를 설정 가능 -> 호스트 / 그룹
☞ inventory
□ Playbook
· 하나 이상의 파일을 정의해둔 파일 -> ex) 스크립트
· name, hosts, tasks 항목이 기본
· 구성파일에 설정하는 각종 항목을 재정의 가능
· YAML 언어 사용 -> 들여쓰기에 민감
· 리스트 형식의 구조 -> '-' 기호로 시작
· 주석처리 가능 -> '#'
· name 항목은 관리에 유리 -> 생략가능
· 시작은 '---', 끝은 '...'로 약속 -> 생략가능
☞ user.yaml (user 생성 playbook)
'Cloud > Ansible' 카테고리의 다른 글
[Ansible] 변수 (0) | 2021.09.11 |
---|---|
[Ansible] PlayBook (0) | 2021.09.10 |
[Ansible] AD-HOC (0) | 2021.09.10 |
[Ansible] Ansible 설치 (0) | 2021.09.09 |
[Ansible] IaC (0) | 2021.09.06 |