Cloud/Ansible

[Ansible] Ansible 개념

twoDeveloper 2021. 9. 8. 18:03

■ 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