Ansible 이란?

tw·2024년 2월 3일

개요

Ansible은 현대 IT 환경에서 필수적인 도구로 인정받고 있으며, 시스템 관리자, 개발자, 운영 팀 등 IT 전문가들 사이에서 널리 사용되고 있다. Ansible을 배우면 IT 인프라 관리 및 자동화 업무를 효과적으로 수행할 수 있으며, 현대 IT에서 중요하게 다루고 있다.

좀더 전문성을 갖춰서 말하자면, Ansible은 Python으로 개발된 오픈소스 IaC 솔루션이며, IT 자동화 도구이다.

시스템을 구성하고, 애플리케이션을 배포하는 등 IT 작업을 자동화 및 관리할 수 있다.

Ansible의 주요 목표중에 하나가 심플함을 추구하므로, 난이도가 낮은 YAML or JSON 파일을 사용하여 IT 애플리케이션 환경을 구성하여 관리하고 있다.

Ansible은 서버의 리소스나 대수가 기하급수적으로 증가해 기존 관리 방식이 어려웠던 Shell Script 방식을 대체하게되며, 소규모부터 수천 개의 서버를 관리하는 앤터프라이즈 환경에 이르기까지 모든 환경을 관리하는데 적합하다.

Ansible의 구성

앤서블은 다음과 같은 요소를 통해 서비스를 구현할 수 있다.

Ansible 본체

앤서블은 소프트웨어 그 자체. 앤서블은 서버/클라이언트 구성과 같은 형태를 취하지 않고, 상주 프로세스를 둘 필요가 없다.

Inventory

관리 대상이 되는 서버 접속 정보를 표시하는 정의이다. 인벤토리는 여러 개의 서버를 그룹화하여 정의하거나, 각각의 서버와 그룹에 대한 변수를 사용한 파라미터를 설정할 수 있다.

Module

앤서블에서 실행된 하나하나의 명령과 같은 것으로 다음과 같은 구성을 가진다.

  • OS 내의 작업(패키지 설치와 서비스, 사용자 관리)
  • 파일 작업(복사와 편집, 탬플릿 열기)
  • 데이터베이스 작업(MySQL, Postgresql 의 사용자와 테이블 관리()
  • 클라우드 서비스 작업(aws, azure, gcp, openstack 등)
yum -y install httpd 모듈 : ansible all -m yum -a “name=httpd state=present” 

Playbook

모듈이 앤서블에서 명령이라고 하면, 플레이북은 앤서블에서 스크립트(코드)이며 앤서블을 사용할 때 필요한 작업은 플레이북의 구현과 실행이라고 할 수 있다. 플레이북은 프로그래밍 대신 YAML을 사용한다.

Reference

https://www.redhat.com/en/technologies/management/ansible/ansible-lightspeed?extIdCarryOver=true&sc_cid=701f2000001OH7YAAW

https://docs.ansible.com/ansible/latest/index.html

profile
안녕하세요

0개의 댓글