티스토리 뷰

반응형

 

1. 개요

최신 안정 릴리스 LTS인인 2.9버전을 설치할 것이며 CentOS 7 환경에 설치할 것입니다.


Ansible 설치는 엄청 간단하며 다른 애플리케이션처럼 별도 데이터베이스나 동작하는 서비스(데몬)이 존재하지 않아 설치 시간이 길지도 않습니다.
그리고 원격 머신을 관리할 때 Ansible을 사용하기 위해 설치되는 별도 소프트웨어가 존재하지않으며, 실행중인 프로세스 또한 더더욱 없기 때문에 새로운 버전으로 이동할 때나 업그레이드해야 할 상황에 대한 문제점은 실질적으로 존재하지 않습니다.

Ansible은 하나의 시스템(서버)에만 설치를 하면 되고, 설치한 시스템(제어 노드)과 SSH가 연결되는 모든 시스템(관리 호스트)을 관리할 수 있게 됩니다.


2. Ansible 설치 가능 환경

Ansible은 Python으로 동작합니다. 그러므로 무조건!!! Python을 설치해줘야 합니다.


Python의 버전은 2(2.7 이상)버전과 3(3.5 이상)버전 중 하나를 선택해서 설치를 진행하면 됩니다.

Ansible을 설치할 수 있는 OS는 CentOS, Debian, MacOS 등 대부분의 Linux와 Unix 시스템은 설치가 가능합니다.
하지만 Windows에는 설치가 불가능합니다.(WSL이나 VM을 사용하면 가능)

최소 필요한 하드웨어 리소스는 아래와 같습니다

  • MEM - 2GB
  • DISK - 20GB

3. Ansible을 설치하기 전

Ansible을 설치할 수 있는 방법은 아래와 같습니다
ㅇ OS 패키지 관리자를 사용하여 최신 릴리스를 설치 (Red Hat Enterprise Linux(TM), CentOS, Fedora, Debian 또는 Ubuntu용).
ㅇ pip(Python 패키지 관리자)로 설치
ㅇ 직접 소스에서 설치하여 개발(devel)버전에 접근하여 최신 기능을 설치

Package로 설치하는 방법은 CentOS 7 기준으로 설명드리겠습니다.

ansible을 설치하기 전 epel-release 패키지를 설치를 진행해줘야 합니다.

 

3.1. Epel 저장소란?

Epel이란 Fedora Project 에서 제공되는 저장소로 RHEL 및 파생 OS들의 각종 패키지를 최신 버전을 제공하는 저장소입니다.
EPel 패키지가 지원되는 OS는 아래와 같습니다
ㅇ Red Hat Enterprise Linux (RHEL)
ㅇ CentOS
ㅇ 사이언티픽 리눅스(SL)
ㅇ 오라클 리눅스(OL)

 

4. Ansible 설치 진행

4.1. OS 패키지 관리자 사용

Epel 패키지 설치 진행하는 명령은 아래와 같습니다.

yum install -y epel-release



만약 Epel 패키지가 존재하지 않는다면 아래의 방법으로 해결하면 됩니다.

yum install -y wget
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install epel-release-latest-7.noarch.rpm


CentOS 7 버전이 아닐 경우 다른 Epel 패키지를 설치해야하고, 다른 버전을 선택하는 방법은 https://dl.fedoraproject.org/pub/epel/로 직접 들어가 확인하면 됩니다.

Epel 패키지 설치를 성공한다면 ansible을 설치할 수 있게 됩니다.

yum install ansible -y

 


4.2. pip 설치 방법 (실패)

yum install -y epel-release
yum install -y python python-pip python-devel
===
Installed:
  python-devel.x86_64 0:2.7.5-90.el7
  python2-pip.noarch 0:8.1.2-14.el7                                                                                                                                     
Dependency Installed:
  python-rpm-macros.noarch 0:3-34.el7                    python-srpm-macros.noarch 0:3-34.el7                    python2-rpm-macros.noarch 0:3-34.el7                   

Updated:
  python.x86_64 0:2.7.5-90.el7                                                                                                                                          

Dependency Updated:
  python-libs.x86_64 0:2.7.5-90.el7                                                                                                                                     

Complete!
===

pip install ansible
===
Successfully installed MarkupSafe-2.0.1 PyYAML-6.0 ansible-4.10.0 ansible-core-2.11.7 cffi-1.15.0 cryptography-36.0.1 jinja2-3.0.3 packaging-21.3 pycparser-2.21 pyparsing-3.0.6 resolvelib-0.5.4
===
error ===
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-cbb0v3oc/cryptography/
===
catch ===
# pip install --upgrade --ignore-installed pip setuptools
result ===
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting pip
  Downloading https://files.pythonhosted.org/packages/a4/6d/6463d49a933f547439d6b5b98b46af8742cc03ae83543e4d7688c2420f8b/pip-21.3.1-py3-none-any.whl (1.7MB)
    100% |████████████████████████████████| 1.7MB 673kB/s 
Collecting setuptools
  Downloading https://files.pythonhosted.org/packages/b0/3a/88b210db68e56854d0bcf4b38e165e03be377e13907746f825790f3df5bf/setuptools-59.6.0-py3-none-any.whl (952kB)
    100% |████████████████████████████████| 962kB 1.1MB/s 
Installing collected packages: pip, setuptools
===



4.3. 직접 소스 설치(실패)

4.3.1. os 패키지 이용

yum install -y epel-release
yum install -y git python-pip
git clone https://github.com/ansible/ansible.git
cd ./ansible
make rpm
Error ===
Traceback (most recent call last):
  File "packaging/release/versionhelper/version_helper.py", line 9, in <module>
    from packaging.version import Version, VERSION_PATTERN
ImportError: No module named packaging.version
Makefile:35: *** "version_helper failed".  Stop.
===



4.3.2. python 이용

 

curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
python get-pip.py
git clone https://github.com/ansible/ansible.git
cd ./ansible
make rpm
Error ===
Traceback (most recent call last):
  File "packaging/release/versionhelper/version_helper.py", line 9, in <module>
    from packaging.version import Version, VERSION_PATTERN
ImportError: No module named packaging.version
Makefile:35: *** "version_helper failed".  Stop.
===

sudo rpm -Uvh ./rpm-build/ansible-*.noarch.rpm


5. Ansible 테스트

Ansible 설치가 완료하였다면 테스트를 진행해주셔서 잘 구동이 되나 확인해봅니다
아래와 명령을 이용하여 테스트를 진행하겠습니다.

# ansible localhost -m ping
localhost | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}


위 명령에 대해 간략하게 설명을 드리겠습니다
# (ansible 명령) (관리 서버의 IP 또는 Hostname) -m (Ansible 모듈) [-i (Inventory 주소)]

 

Ansible 명령에 대한 자세한 내용은 다음 게시글에서 안내드리겠습니다.

 

지금까지 제어노드에 Ansible 설치 방법에 대해 설명드렸습니다.

비록 테스트하다 실패한 부분들이 많지만.. 도움이 되셨으면 좋겠습니다.

 

혹시 궁금한 부분을 질문하신다거나 틀린부분 혹은 조언을 해주시면 감사히 받겠습니다.

지금까지 읽어주셔서 감사합니다.

반응형
댓글