머리말
Ansible은 파이썬(Python)이 구성된 환경에서 설치 및 구동이 가능하다. 윈도우 운영체제에서도 설치는 가능하지만 일반적으로 리눅스 운영체제에서 설치하고 운영하는 것이 일반적이다. 리눅스 운영체제에서 Ansible을 설치하는 방법은 3가지로 구분할 수 있는데, 소스를 컴파일해서 수동으로 설치하는 방법과 운영체제 패키지 관리자를 통한 방법 그리고 파이썬 패키지 관리자를 통해 설치하는 방법이 있을 수 있다. 설치하는 방법에 따라 장점과 단점이 존재하며 상황에 따라 선택지가 정해질 수 있다. 본 포스팅에서는 파이썬 패키지 관리자(PIP)를 통해 Ansible을 설치하는 방법에 대해서 소개하도록 한다.
Ansible 설치 방법
Ansible 설치를 위한 하드웨어 최소/권장 사양은 아래와 같다. 2018년 기준으로 산정된 시스템 요구사항이지만, Ansible 목적과 역할상 시간이 지나도 하드웨어 요구사항에 큰 변화는 없을 것으로 예상한다. 본 설치 가이드는 운영체제 개발 도구 설치, 파이썬 및 버전 관리 도구 설치 그리고 Ansible 설치 순서로 소개한다.
CPU | Memory | Disk | Linux Kernel | |
최소 | Single Core | 2GB | 3GB | 3.10 |
권장 | Dual Core | 4GB | 10GB | 3.10 |
개발 도구 설치
가장 먼저 리눅스 운영체제에서 소스 빌드에 필요한 기본적인 개발 도구를 설치한다. Ansible과 파이썬을 설치 및 구동하는 과정에 문제가 발생하지 않도록 사전에 미리 설치하는 것을 권장한다. 리눅스 개발도구가 설치되지 않은 상태에서 설치 과정에 문제가 발생하면 복잡한 패키지 종속성 문제에 부딪힐 수 있다. 시스템에 따라 다르지만 설치 과정은 대략적으로 5-10분 정도 소요된다.
[root@wookoa ~]# yum groupinstall -y "Development Tools"
[root@wookoa ~]# yum install -y openssl-devel libffi-devel bzip2-devel
파이썬 버전 관리(pyenv) 도구 설치
Ansible 설치 과정에 있어서 파이썬 버전 관리 도구는 필수 사항이 아니다. 하지만 파이썬에 의존적인 Ansible을 효과적으로 관리하기 위해 설치를 권장한다. 파이썬 버전 관리 도구를 사용하면 추후 파이썬 버전 변경에 따라 유연하게 대응이 가능하기 때문이다. 아래의 명령어와 같이 git 저장소에 등록된 소스를 다운로드 한 뒤 환경 변수를 설정하는 것으로 설치는 간단히 완료된다. 만약 git 명령어를 사용할 때 command not found 오류가 발생한다면 아래의 명령어를 참고해서 git 패키지도 설치한다.
# git 패키지 설치
[root@wookoa ~]# yum install -y git
# pyenv 소스 다운로드
[root@wookoa ~]# git clone https://github.com/pyenv/pyenv.git ~/.pyenv
# 환경 변수 설정
[root@wookoa ~]# echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
[root@wookoa ~]# echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
# 환경 변수 적용
[root@wookoa ~]# source ~/.bashrc
파이썬 버전 관리 도구 설치가 완료되면 아래와 같은 명령어로 설치된 버전을 확인할 수 있다. 현재 기준 2.4.3 버전이 최신이며 2.0 버전 이상 설치되면 문제없이 파이썬을 설치할 수 있다. 파이썬 버전 관리 도구에도 버전이 존재하고 해당 git 저장소에서 버전 별로 다운로드 및 설치가 가능하지만 특별히 버전을 신경 쓸 필요는 없다.
[root@wookoa ~]# pyenv --version
pyenv 2.4.3
Python3 설치
다음으로 Ansible 구동을 위해 필수적인 파이썬 패키지를 설치할 차례다. 파이썬의 버전에 따라 설치할 수 있는 Ansible 버전이 다르며 본 포스팅에서는 파이썬 3 버전을 기준으로 작성되다. 버전 관리 도구를 통해 현재 기준으로 가장 안정화된 파이썬 3.9.16 버전을 설치한다. 파이썬의 주요 버전만 동일하다면 마이너 버전은 최신 버전으로 설치해도 무관하다. 아래와 같은 명령어를 입력하면 설치 가능한 파이썬 목록을 확인할 수 있다.
[root@wookoa ~]# pyenv install -list | grep '3.9'
3.9.0
3.9-dev
3.9.1
3.9.2
3.9.4
3.9.5
3.9.6
3.9.7
3.9.8
3.9.9
3.9.10
3.9.11
3.9.12
3.9.13
3.9.14
3.9.15
3.9.16
3.9.17
3.9.18
3.9.19
파이썬 버전 관리 도구를 통해 설치 가능한 버전을 확인했다면 설치 방법 또한 간단하다. 아래 명령어와 같이 파이썬 버전 관리 도구의 명령어를 사용해서 파이썬 3.9.16 버전을 설치할 수 있다.
[root@wookoa ~]# pyenv install 3.9.16
Downloading Python-3.9.16.tar.xz...
-> https://www.python.org/ftp/python/3.9.16/Python-3.9.16.tar.xz
Installing Python-3.9.16...
patching file Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst
patching file configure
patching file configure.ac
Traceback (most recent call last):
파이썬 설치가 완료되면 pyenv versions 명령어를 통해 파이썬 버전 관리 도구에 등록된 파이썬 버전 별 목록을 확인할 수 있다. 하지만 파이썬 버전 관리 도구에 등록된 파이썬일 뿐 실제로 시스템에서 사용되는 파이썬 버전이 아니다. 그렇기 때문에 파이썬 버전 관리 도구에 등록된 파이썬 중 특정 버전을 시스템 변수에 등록해 주는 과정이 필요하다. 버전 별로 파이썬을 설치한 뒤 환경 변수를 재 등록하는 과정을 통해 다양한 버전을 어렵지 않게 사용할 수 있는 것이 파이썬 버전 관리 도구의 강점이다. 아래와 같은 명령어를 통해 시스템 변수에 특정 파이썬 버전을 등록할 수 있으며, 환경 변수에 등록된 파이썬 버전은 시스템에서 사용 가능하므로 python -V 명령어를 통해 수행 가능한 파이썬 버전을 출력할 수 있다. 참고로 파이썬 명령어 중 -V 옵션은 버전을 출력하는 옵션인데 대문자라는 사실에 주의한다.
# 파이썬 버전 관리 도구에 등록된 파이썬 버전 목록
[root@wookoa ~]# pyenv versions
* 3.9.16 (set by /root/.pyenv/version)
# 파이썬 3.9.16 버전을 시스템 변수에 등록
[root@wookoa ~]# pyenv global 3.9.16
# 파이썬 명령어를 통해 버전 출력
[root@wookoa ~]# python -V
Python 3.9.16
Ansible 설치
파이썬 설치를 정상적으로 수행했다면 Ansible 설치를 위한 모든 준비는 완료되었다. 아래와 같이 pip 명령어를 통해 Ansible을 간단하게 설치할 수 있다.
# pip 명령어를 통한 Ansible 설치
[root@wookoa ~]# pip3 install ansible
# Ansible 버전 출력
[root@wookoa ~]# ansible --version
ansible [core 2.15.12]
config file = None
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /root/.pyenv/versions/3.9.16/lib/python3.9/site-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /root/.pyenv/versions/3.9.16/bin/ansible
python version = 3.9.16 (default, Jun 16 2024, 10:10:34) [GCC 8.5.0 20210514 (Red Hat 8.5.0-4)] (/root/.pyenv/versions/3.9.16/bin/python3.9)
jinja version = 3.1.4
libyaml = True
꼬리말
Ansible 구동을 위한 모듈 및 라이브러리는 파이썬에 종속적으로 수행된다. 그렇기 때문에 파이썬만 정상적으로 구동될 수 있는 환경이면 pip 명령어를 통해 설치하는 것이 가장 안정적일 수 있다. 운영체제와 파이썬 사이의 호환성만 신경 쓰면 되기 때문에 운영체제의 패키지 관리자를 통해 설치하는 것보다 관련 라이브러리 충돌을 최대한 회피할 수 있다. 파이썬 pip 명령어를 통해 Ansible 오픈소스를 설치하는 방법에 대해 소개한 본 포스팅은 이로써 마무리를 짓도록 한다.
소중한 댓글 (0)