Ansible 삽질 - 절망편

Ansible을 지원하는 운영체제

현존하는 거의 모든 운영체제에 Ansible을 설치할 수 있다.

여기에 거의라는 표현을 쓴 이유는 Window의 경우 Ansible을 통해 관리할 수 있지만 Ansible을 설치하여 다른 노드들을 관리할 수 없다.

실습

실습을 할 때 강의에서는 VirtualBox를 사용하여 가상환경을 구축하였지만.. 나는 귀찮으니까 편리한 Docker를 사용하였다.

4대의 도커 컨테이너를 준비하였다.

도커 내부에는 private IP라고 해서 도커 고유의 IP가 존재한다.

나는 이 4대의 도커 중 한대의 도커에 앤서블 코어를 설치하고 나머지 도커 컨에티너 3대를 운용하고자 한다.

docker4

앤서블 코어란

동작에 필요한 최소한 기능들을 포함한 패키지이다.

이를 패키징하고 UI를 포함한 것이 Ansible Tower이다.

우리는 한대의 컨테이너에 앤서블을 설치해볼 것이다.

Ansible 설치 ( 실패 )

결론부터 얘기하면 아래의 실습은 실패하였다.

다시 처음부터 쭉 밀고 인프런 강좌에 있는 centOs가 아닌 ubuntu로 실습하여 성공하였다.

그래도 적어놓은게 아까워서 남겨 놓은 것이니 실제 실습은 다음장에서 하는걸로

그래도 누군가는 나와 비슷한 오류가 있으신 분들은 도움이 되실 것 같아서 남겨놓아봄.

삽질 (따라하지 마시오, 눈으로만 보시오)

Main 서버 한대에 Ansible 코어를 설치하자.

yum install ansible

그러나 ansible을 찾을 수 없다고 나온다.

어쩔 수 없이 파이썬과 pip3를 다운받아서 설치하였다.

스크린샷 2020-04-14 오후 4 14 01

yum install -y python3 python3-pip
alternatives --set python /usr/bin/python3
python --version
// Python 3.6.8
pip3 install ansible --user
ansible --version
// ansible 2.9.6

설치가 잘 되었다. 이제 시작해보자!

ansible all -m ping -k

입력하면 SSH 패스워드를 입력하라고 할 것이고 엔터를 치면 다음과 같은 에러가 표시될 것이다.

[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

일단 이 부분은 넘어가고, /etc/ansible/ansible.cfg 파일을 수정해보자.

스크린샷 2020-04-14 오후 4 24 21

어... 없네?

이런 일이 생길 때 마다 역시 인생은 호락호락하지 않구나라는 생각이 든다.

당황하지않고 ansbile --version을 입력해보면 다음과 같이 출력된다.

스크린샷 2020-04-14 오후 4 26 23

config file이 존재하지 않는 것을 알 수 있다.

역시나 당황하지 말고 침착하게 스택오버플로우에 검색을 해보면 나와 같이 삽질하고 있는 비슷한 사람을 많이 만날 수 있다.

스크린샷 2020-04-14 오후 4 26 06

그리고 이렇게 도움도 얻을 수 있다.

잘 보면 폴더가 없다면 직접 ansible 폴더를 만들고 그 안에 ansible.cfg를 만들면 ansible이 자동으로 감지한다고 한다.

좋다. 해결책을 알았으니 직접 해보자.

스크린샷 2020-04-14 오후 4 29 27

cfg 파일에는 우리가 접속할 도커 컨테이너의 private ip를 명시해주자.

private ip을 알아내는 방법은 private ip를 알고 싶은 컨테이너에 접속하여 다음 명령어를 입력하면 된다.

ip addr show eth0

그러면 inet 옆에 아이피가 보일텐데 그 아이피가 도커 private ip이다.

ansible all -m ping

hosts 파일에 입력한 호스트들에게 핑을 보내보자.

스크린샷 2020-04-14 오후 4 38 17

안된다.

역시 인생은 호락호락하지 않다.

이유를 좀 찾아보니 ssh가 없다고 한다.

centos에 ssh를 설치해줘야하는데 무지막지하게 짜증나고 귀찮으니까 차라리 아래에 ssh가 적용된 이미지를 다운 받자 그게 정신건강에 좋다

https://hub.docker.com/r/jdeathe/centos-ssh/

는 이부분 하다가 망해서 다시 처음부터 밀고 시작했다.

Reference

인프런 조훈님 강의 - 처음부터 설치하며 배우는 Ansible

https://unix.stackexchange.com/questions/546578/failed-to-install-ansible-on-centos-8



© 2022. by minkuk

Powered by minkuk