연재 시리즈

Ansible 소개

악분 2024. 1. 9. 01:49
반응형

Ansible이란?

Ansible은 여러 시스템에 코드를 동일하게 실행하는 도구입니다. 시스템 상태 체크, 시스템 구축 등 여러 시스템에 동일한 작업을 할 때 사용합니다.

 

 

아키텍처

Ansible은 control-node가 ansible을 실행하여 managed-node에 코드를 실행하는 구조입니다. control-node는 ssh프로콜을 사용하여 managed-node에 ansible모듈을 복사합니다. managed-node는 전달받은 ansible모듈을 파이썬으로 실행합니다.

 

Ansible이 실행되는 동안 managed-node 프로세스 상태를 확인하면, 파이썬이 Ansible모듈을 실행하고 있는 것이 보입니다.

 

 

Terrform과 비교

첫 번째 차이는 상태관리 입니다. Ansible은 상태가 없고 Terraform은 상태를 관리합니다. Ansible은 상태를 관리하지 않기 때문에 상태 비교과정이 없습니다. 그러므로 Ansible은 시스템이 이미 코드가 반영되어 있더라도 실행(Ansible 모듈에 따라 실행안할 수 있음)합니다. 반면 Terraform은 상태를 관리하므로 테라폼 코드가 이미 반영되어 있다면 코드를 실행하지 않습니다.

 

두 번째 차이는 코드 실행구조입니다. Ansible은 ssh프로토콜을 사용하여 코드를 실행하지만 terraform은 provider가 제공하는 API를 사용하여 코드를 실행합니다.

 

세 번째 차이는 사용목적입니다. Anisble은 여러 시스템에 동일한 작업을 할 때 사용합니다. 반면 Terraform은 주로 한 시스템(예: AWS, 솔루션)의 설정 또는 리소스 관리에 사용합니다.

 

Ansible을 운영할 때 장단점

장점

Ansible은 코드를 node에 복사해서 실행하기 때문에, Agent설치가 필요없는 Agentless입니다.

 

단점

ssh프로토콜을 사용하기 위한 설정이 필요합니다. 또한 control-node와 managed-node모드 파이썬 설치가 필요합니다. 따라서 파이썬 단점을 가지고 있습니다. 운영체제 종류와 버전에 민감하며 파이썬 버전에 따라 실행이 안되는 Ansible모듈이 있습니다.

반응형