리그캣의 개발놀이터

[ansible / 앤서블] 설치하기 , install, 시작하기 본문

인프라/Ansible

[ansible / 앤서블] 설치하기 , install, 시작하기

리그캣 2020. 2. 3. 20:48

앤서블 설치

앤서블은 각종 배포판의 패키지 매니저(Apt, Yum, Homebrew 등)을 사용해서 설치할 수 있다.

여기서는 pip를 설치하겠다. pip를 사용하면서 설치하면 다양한 os에 설치할 수 있으며 버전지정이 가능하다는 장점이 있다. 

사전준비사항

python2.6~2.7 또는 3.6버전 이상이 설치되어있다고 가정한다.

2020년 이상부터 python2.x 버전의 유지보수가 중단된다고 하지만 일단 나는 2.7.5 버전이 설치되어있다는 가정하에 진행하도록 하겠다.

  • python 설치

  • pip 설치

ansible 설치

python2이 설치되어있다면 아래와 같은 명령어로 간단하게 ansible 설치가 가능하다

$pip install ansible 

python3인 경우

$pip3 install ansible

 

만약 버전을 지정해서 설치하고 싶다면 다음과 같이 입력하면 된다.

ex)

$pip install ansible==2.2.1.1

 

아래와 같은 문구가 나왔다면 정상적으로 설치가 완료된 것이다.

Successfully built ansible

Installing collected packages: ansible

Successfully installed ansible-2.9.4

ansible 확인

ansible이 잘동작하는지 확인해보자

ansible 명령은 모듈을 단독으로 실행해준다. 이러한 기능을 ad hoc 이라고 한다.

 

localhost에 ping을 날리는 모듈 실행하기

$ansible localhost -m ping

 

다음과 같이 ‘success’가 떠야 정상이다.

[WARNING]: No inventory was parsed, only implicit localhost is available


localhost | SUCCESS => {

    "changed": false,

    "ping": "pong"

}

[WARNING]: No inventory was parsed, only implicit localhost is available

위의 이미는 아직 우리가 inventory를 지정해주지 않아 발생하는 에러이다.

인벤터리는 앤서블이 작업하는 노드 or 서버로 “어디에서” 앤서블이 동작할지를 정의하고 알려주는 역할이다.

 

ansible은 여러개의 서버 or 노드를 상대로 동작하는 도구이다. 그렇기에 vmware / virtualbox, vagrant / 클라우드 환경을 통해 2~3개의 서로 통신가능한 유닉스 서버를 구축한다음에 앤서블 사용을 시작해야 한다.

 

나는 virtual box를 통해 진행하였다. 클라우드 환경이든 , vm ware 든 통하여 서버 하나를 추가적으로 더 구성하도록 하자.

나는 vagrant와 virtualbox를 이용하기로 하였다.

 

vagrant와 virtualbox를 설치하는 방법은 아래에 포스팅 해놓았다.

링크 : https://league-cat.tistory.com/375

 

vagrant를 이용하여 centos7.2 이미지를 다운받아 vagrant up 해보자.

그 후 아래의 명령어를 입력하면 다음과 같이 나올것이다.

$ vagrant ssh-config



Host default

  HostName 127.0.0.1

  User vagrant

  Port 2222

  UserKnownHostsFile /dev/null

  StrictHostKeyChecking no

  PasswordAuthentication no

  IdentityFile /home/ansible/ansible-tutorial/.vagrant/machines/default/virtualbox/private_key

  IdentitiesOnly yes

  LogLevel FATAL

 

위에서 굵은 글씨가 ssh 접속시 필요한 정보이다. 앤서블은 기본적으로 ssh접근 방식이기에 위에 내용을 따로 저장해두도록 하자.

다음시간엔 위에 생긴 정보로 앤서블을 사용하도록 하겠다. 물론, 클라우드 환경이나 다른환경으로 진행해도 ssh접근시 필요한 정보만 알면 문제가없다.



'인프라 > Ansible' 카테고리의 다른 글

[Ansible] Ansible 이란? Ansible 소개  (0) 2020.01.23
Comments