개요

Ansible 설치하기

이전에 설명한 바와 같이 Ansible은 Python과 밀접한 관계가 있으면 Python 버전에 따라 설치 및 호환이 된다.

CentOS 7에서 사용할 수 있는 가장 높은 버전의 파이썬은 3.6.8이며, 이에 호환이 되는 가장 높은 버전의 ansible은 4.10.0 이다.

  • 컨트롤 노드의 파이썬 3.6 일 경우 Ansible-core는 2.11 까지 설치 가능
  • Ansible-core가 2.11인 Ansible 커뮤니티 릴리즈 버전은 4.x 버전
  • 커뮤니티 릴리즈 중 4.x의 최신 버전은 4.10.0 이다.

만약 이보다 더 높은 버전의 ansible을 사용해야 한다면 어떻게 해야할까?

예를들어 7.5.0 버전을 설치해야 할 경우 필요한 파이썬 버전은 어떻게 될까?

  • 커뮤니티 릴리즈 7.x에서 사용하는 Ansible-core 는 2.14
  • Ansible-core 2.14에서 필요로 하는 파이썬 버전은 3.9 이상
  • 따라서 파이썬 3.9 이상의 버전을 설치해야 Ansible 7.5.0을 설치할 수 있다.



파이썬 3.9 설치하기

하지만 CentOS 7에서 yum으로 설치할 수 있는 최대 버전은 3.6.8이다.

이 경우 파이썬 3.9 버전의 소스 코드를 다운로드 받아 컴파일 설치를 진행해야 한다.

다만 여기서 주의해야 할 점이 있다.

  • yum으로 설치한 파이썬 3.6.8 뿐만 아니라 기존에 사용하는 파이썬 2.x 는 서로의 환경이 서로 독립되어 있다.
  • CentOS 내부적으로나 기본이 되는 패키지들 (ex : OpenSSL)이 기존에 설치한 파이썬 2.x에 의존하여 사용되고 있기 때문이다.
  • 마찬가지로 현재 설치하고자 하는 파이썬 3.9도 이들과 전혀 관계없는 독립된 환경에 설치를 해줘야 한다.
  • 여기서는 Ansible 설치를 위한 파이썬 3.9 버전 설치이므로, ansible 계정을 따로 생성하고 해당 계정에서만 동작하도록 할 것이다.
# root 계정에서 실행 (의존성 패키지 설치)
yum install -y gcc zlib-devel openssl openssl-devel libffi-devel

# ansible 계정에서 실행 (su - ansible)
wget https://www.python.org/ftp/python/3.9.16/Python-3.9.16.tar.xz
tar xvf Python-3.9.16.tar.xz
cd Python-3.9.16
mkdir -p /home/ansible/package
./configure --prefix=/home/ansible/package/Python-3.9.16
make && make install

# ansible 계정에서 실행 (su - ansible)
# pip 설치
wget https://bootstrap.pypa.io/get-pip.py
/home/ansible/package/Python-3.9.16/bin/python3 ./get-pip.py



virtualenv 설치

# ansible 계정에서 실행
cd /home/ansible/package/Python-3.9.16/bin
./pip3 install virtualenv
./pip3 install virtualenvwrapper

# vi로 아래의 내용 2줄을 맨 아래에 삽입후 저장
vi ~/.bashrc
export VIRTUALENVWRAPPER_PYTHON=/home/ansible/package/Python-3.9.16/bin/python3
source /home/ansible/package/Python-3.9.16/bin/virtualenvwrapper.sh

# vi로 아래의 내용 3줄을 맨 아래에 삽입 후 저장
vi ~/.bash_profile
PATH=$HOME/package/Python-3.9.16/bin:$PATH:$HOME/bin
export WORKON_HOME=$HOME/.virtualenvs
export PATH

# ansible 계정 재접속 후 아래 명령 입력
mkvirtualenv -p /home/ansible/package/Python-3.9.16/bin/python3 ansible



가상환경 ansible 접속

아래와 같이 ansible 환경으로 접속했는지 확인하고, 접속되지 않았다면 다음의 명령어를 참고

# 가상환경 ansible 접속
workon ansible

# 가상환경 ansible 종료
deactivate



ansible 설치

# ansible 계정에서 실행
pip install ansible==7.5.0



참고자료

Ansible & AWX (설치부터 기본 활용 및 NHN Cloud Deploy 연동까지)

프로비저닝 자동화를 위한 Ansible AWX, 설치부터 엔터프라이즈 환경 적용까지 - 1