반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로세스
- 데브옵스
- devops
- kubernetes
- 도커 이미지
- linux
- 컨테이너
- swift 클로저
- os
- 부스트코스
- docker
- 운영체제
- 리눅스
- 도커
- 클라우드
- k8s
- 네트워크
- 도커 명령어
- 도커 컨테이너
- Python
- 인프라
- centOS
- ios
- centOS7
- AWS
- boj
- 쿠버네티스
- Swift
- NGINX
- C++
Archives
- Today
- Total
귀염둥이의 메모
[Ansible] Ansible이란? 본문
반응형
개념
- IaC (Infrastructure as Code)를 지향하는 오픈소스 기반 자동화 도구
- 시스템 구성 및 소프트웨어 배포 기능을 제공
- 지속적인 배포와 다운 타임 없는 롤링 업데이트 지원
- 주요 목적은 단순성과 사용의 용의성, 보안과 신뢰성 중점
- 사람이 이해하기 편하도록 YAML 언어를 사용
- 다양한 유형의 사용자(개발자, 시스템 관리자, IT 관리자 등)를 위한 디자인
- 소규모 환경부터 엔터프라이즈 환경까지 지원
- 분산 구조로 설계
- Kerberos / LDAP 등 인증 관리 시스템에 연결이 쉬움
장점
- ssh를 통한 구성으로 Agentless ➡️ 구성 관리가 편리하다
- YAML 언어 사용으로 접근성이 높고, 쉽고 단순한 구조로 가독성이 높다
- 변수 기능 사용으로 재사용성 증가
- 다른 도구보다 훨씬 간소화, 다양한 플랫폼 지원
- 멱등성(indempotence)
- 동일한 기능을 수행했을 때 이전의 수행한 결과값이 있으면 변경하지 않고, 작업도 실행되지 않는다
- YAML로 작성된 Playbook을 여러 차례 반복을 해도 결과를 동일하게 출력시킴
- 결과가 달라지지 않도록 구성되어, 멱등성을 일관되게 수행할 수 있음
단점
- DSL을 통한 로직 수행 - 수시로 문서 확인이 필요
- 변수 등록으로 인한 복잡성
- 변수 값 확인의 어려움
- 입력/출력/구성 파일 간의 형식 일관성이 없다
- 때때로 성능 속도가 저하된다
Ansible 아키텍처
- 제어 노드 (Control node)
- 원격으로 관리 노드를 제어한다
- /usr/bin/ansbile 이나 /usr/bin/ansible-playbook 명령을 이용하여 관리한다
- Linux / Unix 시스템만 가능 (windows 시스템은 지원❌)
- Python 2.6 이상
- RHEL8 에서는 platform-python으로 대체
- 관리 대상노드 = 매니지드 노드 (Managed node)
- Linux / Unix
- Python 2.6 이상
- SSH 및 SFTP 필요 (SCP로 대체 가능)
- Windows
- PowerShell 3.0 이상 원격 작업 구성 필요
- .Net Framework 4.0 이상
- Network 장비
- Cisco IOS, IOS XR, NX-OS; Juniper Junos; Arista EOS 및 VyOS 기반 네트워킹 장치 지원
- SSH를 통한 CLI or XML or HTTP를 통한 API를 사용
- Linux / Unix
- 인벤토리 (Inventory)
- 관리 대상노드 목록 = 인벤토리
- 인벤토리 파일 = 호스트 파일
- 각 대상 노드에 대한 IP 주소, 호스트 정보, 변수와 같은 정보를 지정 가능
- 모듈 (Module)
- Ansible이 실행하는 코드 단위
- 데이터베이스 처리, 사용자 관리 등 다양한 용도로 사용
- 단일 모듈 호출 또는 플레이북에서 여러 모듈 호출 가능
- 태스크 (Task)
- Ansible의 작업 단위
- ad-hoc 명령을 사용하여 단일 작업을 한번에 실행
- 플레이북 (Playbook)
- 순서가 지정된 태스크 목록이 지정되어, 지정된 작업을 해당 순서로 반복적으로 실행 가능
- 변수와 작업이 포함될 수 있음
- YAML로 작성됨
참고자료
반응형
'Infra & Devops > Ansible' 카테고리의 다른 글
[Ansible] Ansible 인벤토리(inventory), ansible.cfg (0) | 2021.09.06 |
---|---|
[Ansible] Ansible 설치, 패스워드 없이 접속 (0) | 2021.09.06 |
Comments