Sense categoria

Ansible 알아보기

Ansible 알아보기

서론

평소에 Ansible 은 꽤나 자주 듣어봤지만 한번도 접해보거나 찾아보진 않았다 (이놈의 귀차니즘은 …)

사실 서버를 클러스터링 해서 쓸 필요성도 못 느끼고있었고, 서버를 그렇게 많이 관리하는것이 아니다 보니 그럴만할지도 모르겠다.

마침 오늘 vue로 포트폴리오를 만들다가 갑자기 너무 하기싫어서 뭘하지 하다보니 Ansible이 떠올랐고, 야매로(?) 공부한 부분들을 간단하게 정리해보고자 한다.

그리고 필자는 Ansible을 엔시블이라고 발음해야될지 엔서블이라고 발음해야될지 모르겠기에 그냥 Ansible 이라고 쓰겠다. (사실 이미 귀찮아서 복사 해놨다.)

Ansible 이란?

“여러대의 서버를 쉽고 빠르게 관리하는 도구” 로 많은 사람들이 정의하고있다.

좀 고오급진 말로 표현하면 “시스템 환경 설정 및 어플리케이션 배포 자동화 플랫폼” 정도로 이야기할 수 있는데,

python 으로 개발하고 YAML 로 설정하고 json API로 슥삭슥삭 할 수 있어서 배우는것도 굉장히 쉽게 배울수있다고 한다. 멱등성 이라는것을 보장하는데, 쉽게 말하면 “한번 설치한 건 다시 설치하지 않는다.” 정도로 이야기 할 수 있다.

http://docs.ansible.com/ 에서 공식 문서를 볼 수 있다.

비교

난 당연히 클러스터링 플랫폼에 아는게 없기때문에 Ansible이 유일무이한것 인줄 알았는데 꽤나 비슷한게 많이 있었다.

CHEF,PUPPET,SALTSTACK,ANSIBLE 4개를 비교한 것이다. 사실 나도 귀찮아서 뭐라는지 자세히는 안읽어봤다. 아무튼 중요한건 Ansible이 가장 구성하기 심플하다는 것이다

특징

가장 큰 특징으로는 agent가 없어도 된다는 것이다!!

Ansible 을 실행할 서버 이외의 관리당할 서버에는 agent를 따로 설치할 필요가 없다. ssh를 통해서 agent의 역할을 대체한다.

구조가 잘 설명된 그림이 있어서 가져왔다.

유저가 Ansible콘솔에서 명령을 날리면, 클라우드 환경이든 온프레미스 환경이든 네트워크 장비든 한꺼번에 관리할 수 있는것이다. 내부/외부망에 관계없이 말이다.

구성

  • 인벤토리(inventory) : ‘어디에서’ 앤서블을 실행하는가
  • 모듈(module) : ‘무엇을’ 앤서블에서 실행하는가
  • 플레이북(playbook) : ‘어떻게’ 앤서블을 실행하는가

이렇게 Ansible Stack 이 이루어 진다.

인벤토리는 서버의 접속 정보를 확인할 수 있게 해주고,

모듈은 Ansible을 통해 실행할 수 있는 각각의 명령 (쉽게말하면 플러그인),

플레이북은 Shell Script와 같은 스크립트로 작성된 모듈의 집합이다.

오늘은 졸려서 이정도로 간단히 정리만 하고자한다. 내일 일어나서 Ansible 설치해서 가지고 놀고 후기를 남기도록 하겠다 :)

Compartir