맘가는 대로

앤서블(Ansible)에 대해 본문

자동화/앤서블

앤서블(Ansible)에 대해

ALIVEisANSWER 2019. 6. 2. 15:58

Ansible 공식 로고

앤서블이란?

앤서블을 간단하게 설명하자면 SSH 와 파이썬을 이용하여 서버 혹은 컴퓨팅 장비를 설정할 수 있게 하는 자동화 도구이다. 언뜻 보기에 단순해 보이는 두 구성요소로 인해 다른 자동화 도구들과 다르게 특별하게 하는 점들이 많다. 차근차근 알아보도록 하자.

 

- 없다, 에이전트

다른 자동화 도구들과 다르게 가장 큰 앤서블만의 특징을 말해보라고 하면 에이전트가 없다는 것이다(agentless). 앤서블의 편한 점은 원격 호스트에 대해 관리자 권한을 가진 계정에 대해서 키 파일이 있으면 바로 접속을 할 수 있다는 점이다. 이는 바로 호스트 접속을 SSH 를 통해서 하기 때문이다. 

 

이를 통해 별도로 원격 호스트에 에이전트를 별도로 설치가 없어지며, 정말 적은 컴퓨트 자원을 사용한다고 하더라도 에이전트로 인한 낭비 자체가 생길 이유가 없어진다.

 

- 최소화한 의존성

앤서블을 사용하기 위해서 별도의 추가 소프트웨어 설치가 필요하지 않다. 많은 서버 운영체제에서 SSH 및 파이썬은 기본적으로 지원되고 있고, 앤서블 또한 SSH 와 파이썬이 필요하기 때문에 앤서블을 설치하는 호스트 노드는 물론, 원격 호스트에도 추가 설치가 필요하지 않다.

 

앤서블은 서버로 많이 사용되는 리눅스 배포판들에서 기본적으로 패키지 저장소를 통해 제공되고 있기 때문에, 패키지 매니저를 통해 앤서블을 설치만 하면 사용할 준비가 거의 혹은 전부 다 되었다고 할 수 있다.

 

- 푸시(밀어주기) 기반

다른 자동화 도구들은 대개 필요한 작업이 있다면 일정한 시간 주기를 두고 에이전트에서 설정을 가져가 작업이 진행되길 기다리거나 직접 원격 서버에 접속하여 수동으로 에이전트가 작동하여 작업이 진행되게 해야 한다. 필요할 경우 별도의 플러그인 등을 통해 푸시를 할 수 있다.

 

앤서블은 처음부터 푸시 기반으로 설계되었기 때문에 한 대의 서버에서 다른 원격 호스트들에 작업을 진행되게 명령을 내리는 형식이다. 따라서 한 곳에서 원하는 방식으로 작업 수행을 지정할 수 있다. 반대로 필요할 경우 풀(당겨오기) 방식으로 설정할 수 있다.

 

- 강력한 보안

앤서블에서 원격 호스트를 접속할 때에는 SSH 를 사용한다. 그렇기에 강력한 보안은 SSH 를 사용하여 얻는 장점이다. SSH 는 xNIX 서버라면 대부분 사용하게 되는 접속 방법이며, 많은 사람들이 사용하고, 많은 보안 전문가들이 유심히 보고 있는 도구이기 때문에 자연스레 접속에 대한 보안성을 얻게 된다.

 

또한 에이전트가 없어서 추가적으로 포트를 열 필요도 없기 때문에 비교적 더 보안을 확보한다고 할 수 있다.

 

- 간편한 조작과 설정

앤서블은 설계 원리에서부터 간편함을 추구하고 있기 때문에 앤서블을 통한 조작과 설정은 간편하고, 배우기도 쉽다. 앤서블에서 사용하는 기본적인 모듈의 이름들은 대부분 xNIX 서버들에서 기존부터 사용해왔던 명령어들을 따르고 있어 명령어를 입력할 때에도 또 별도로 알아야 하는 점들이 많지 않으며, 앤서블에서 사용하는 일종의 스크립트라고 할 수 있는 플레이북은 yaml 서식을 사용하여 비교적 간단하게 진행할 절차들을 쉽게 작성할 수 있다.

 

- 안정된 지원

앤서블은 레드햇에서 인수한 회사명이기도 하다. 현재 앤서블은 레드햇에서 강력하게 지원은 물론, 홍보와 개발, 주 상품에 포함시키고 있는 주요한 소프트웨어이다. 또한 오픈 소스이기 때문에 관련 사용자들과 커뮤니티에서 사용과 개발을 하고 있기 때문에 보다 빠른 패치와 업데이트가 진행되고 있으며, 사례들이 많다.

 

인기

위에서 나열한 점 말고도 알면 재밌는 면도 있다.

 

아래의 그래프는 2004 년 부터 2019 년 06 월의 글쓴 시점까지의 각 자동화 도구에 대한 구글 트렌드 그래프이다.

 

이전부터 사용되어 왔던 Puppet 과 Chef 는 2004 년부터 꽤 인지도가 있었지만 2010 년대에 와서 만들어진 Ansible 과 Saltstack 은 그래프의 곡선이 나타난 지가 비교적 최근이다.

 

그래프가 명백히 보여주지만, 앤서블이 2016 년 1 월에는 퍼펫을, 2017 년 2 월에는 쉐프를 검색 순위에서 앞서게 된다. 물론, 검색 순위가 모든 것을 설명해주는 것은 아니지만, 사람들의 관심이 빠르게 앤서블로 옮겨간 것을 확인할 수 있다. 그만큼 앤서블이 쓰기 쉽다는 것을 간접적으로 잘 설명해주는 것이라고 생각한다.

 

구글 트렌드로 본 자동화 도구 검색 순위

마치며

많은 서버들을 편하고 빠르게 조작하기 위해서는 자동화 도구가 필요할 것이다. 특히, 온프레미스 환경뿐만 아니라 비교적 짧은 시간에 많은 서버들을 조작해야하는 클라우드 환경에서는 필수적인 요소라고 생각된다.

 

또한 IT 부서에 많은 사람들이 서로 협업하기 위해 일종의 설계도라고 할 수 있는 서버 설정을 간편하게 공유하기 위해서 코드화된 설정문을 사용할 때에도 많은 도움이 될 것이다.

 

앤서블은 이전에 주로 사용되던 자동화 도구들에서 많은 장점을 가져온 것은 물론, 필요한 변화에 대해 구현을 해냈다.

 

특히, 앤서블은 그 간편함에 많은 사람들이 좋아하고 있으며, 필자도 그 점을 높이 사서 글을 쓰고 있다.

 

이후 앤서블 관련하여 글을 많이 쓰려고 한다.

 

출처

 

Ansible is Simple IT Automation

Ansible is the simplest way to automate apps and IT infrastructure. Application Deployment + Configuration Management + Continuous Delivery.

www.ansible.com

 

ansible/ansible

Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications — automat...

github.com

 

Ansible Documentation — Ansible Documentation

Ansible Documentation About Ansible Ansible is an

docs.ansible.com

 

'자동화 > 앤서블' 카테고리의 다른 글

Ansible 을 통해 파일 작성하기  (0) 2019.11.03
Ansible 로 LAMP 구성하기  (0) 2019.09.29
앤서블 인벤토리 설정  (0) 2019.06.09
앤서블 실습 환경 구성  (0) 2019.06.08
앤서블의 구조와 작동 방식  (0) 2019.06.02
Comments