📚 IaC/Ansible

[Ansible] Ansible 개요와 설치

heywantodo 2023. 6. 7. 17:11
728x90
반응형

[Ansible] Ansible 개요와 설치

 

Ansible?

인프라스트럭처 자동화 도구로, 구성 관리, 애플리케이션 배포, 오케스트레이션 등

다양한 작업을 자동화하는 데 사용됨

 

에이전트 없이 원격 시스템에 명령을 전달하고 구성을 적용하는 기능을 제공

 

SSH 프로토콜을 통해 목표 시스템에 접속하여 필요한 작업을 실행하고,

대상 시스템에는 추가적인 에이전트 설치가 필요 없음 

 

Ansible의 기본 개념

  • 제어노드
    • 앤서블을 실행하는 노드
    • /usr/bin/ansible
    • /usr/bin/ansible-playbook
  • 인벤토리
    • 각 매니지드 노드에 대한 IP주소, 호스트 정보, 변수와 같은 정보 지정
  • 매니지드 노드
    • 앤서블로 관리하는 서버 (HOST)
    • 매니지드 노드에는 앤서블을 설치하지 않음 
  • 모듈
    • 앤서블이 실행하는 코드 단위
    • 200개 이상의 모듈
  • 태스크
    • 앤서블의 작업 단위
    • 애드훅 명령을 사용하여 단일 작업을 한 번 실행 가능
  • 플레이북
    • 어떻게 작업을 할 것인지에 대한 목록
    • YAML로 작성, 변수와 작업 등이 포함

 

Ansible의 동작 방식

앤서블의 작동 목표와 원리

  • 시스템을 원하는 상태로 표현하여 필요한 변경만 수행
  • 각 Task에서는 특정 항목이 특정 상태에 있는지 확인 
  • 앤서블에서는 상태를 확인 후 시스템이 그 상태가 아니면 Task에서 해당 상태로 만들도록 실행 

 

Ansible의 장점

  • 앤서블은 기본적으로 Push 기반
    • ansible-playbook 명령을 수행함과 동시에, Ansible은 원격 서버에 연결하고 작업을 수행
      1. 사용자 : 플레이북을 변경
      2. 사용자 : 새 플레이북을 실행
      3. Ansible : 서버에 연결하여 서버 상태를 변경하는 모듈을 실행
  • 규모 확장 기능
    • 단순히 하나의 플레이북 작성으로 단일 노드를 쉽게 구성 할 수 있음
  • 매우 얇은 추상화 레이어
    • 다른 운영 체제를 실행하는 서버를 관리할 수 있도록 추상화 계층을 제공
    • 실제 프로그램을 직접 사용 
  • 쉘 스크립트보다 훨씬 더 많은 기능을 제공 

 

Ansible 설치

ubuntu 22.04 (제어노드)

sudo apt update -y
sudo apt install ansible -y
ansible --version

 

728x90
반응형