Skip to content

Installing Ansible

Prerequisites

Control Nodes

  1. Control Node는 Linx 또는 Unix 시스템이어야 하고, Microsoft Windows는 지원하지 않습니다.
  2. Python 2는 2.7 버전 이상, Python 3는 3.5 버전이 설치되어 있어야 합니다.
  3. Manage Node와 SSH 통신이 가능해야합니다.

Python 버전 확인

yum list installed python
python --version

Manage Nodes

  1. 특별한 Agent 설치가 필요 없으며, Control Node와 동일하게 Python을 필요로 합니다.
  2. Python 2는 2.7 버전 이상, Python 3는 3.5 버전이 설치되어 있어야 합니다.
  3. 만약 SELinux가 활성화 되어 있으면, libselinux-python 패키지도 필요합니다.
  4. Windows는 PowerShell 3.0 이상과 .NET Framework 4.0 버전 이상이 필요합니다.
  5. Windows는 SSH가 아닌 WinRM 서비스로 Control Node와 연결되기 때문에 WinRM 서비스가 활성화 되어 있어야합니다.
  6. Windows에 대한 자세한 정보는 Windows Guide를 참고하시길 바랍니다.
  7. 라우터 및 스위치와 같은 Network 장치들은 전용 모듈이 제공되며, Control Node에서 실행됩니다. 자세한 내용은 Ansible for Network Automation을 참고하시길 바랍니다.
Ansible’s supported Windows versions
Windows Version (ServicePack)
Windows 7 (SP1)
Windows 8.1
Windows 10
Windows Server 2008 (SP2)
Windows Server 2008 R2 (SP1)
Windows Server 2012
Windows Server 2012 R2
Windows Server 2016
Windows Server 2019

Practice Environment

CentOS 8.1 (Minimal Intall) 설치 후 테스트하였습니다.
이전 버전에서 사용한 yumdnf와 동일하게 사용 가능하니 참고하시길 바랍니다.

Online-Install

인터넷 사용이 가능한 환경에서는 dnf를 이용하여 쉽게 설치가 가능합니다.
기본으로 제공되는 AppStream, Base, Extras Repository에는 Ansible 패키지가 없기 때문에 EPEL repository를 추가해야 합니다.

EPEL

EPEL(Extra Packages for Enterprise Linux)은 Fedora 환경에서 개발 및 테스트를 거쳐 기능 개선, 검증된 패키지를 RHEL(Redhat Enterprise Linux)에서 사용할 수 있도록 하는데 목표를 둔 Project 입니다.

dnf install epel-release
Last metadata expiration check: 0:11:52 ago on Fri 22 May 2020 12:33:13 PM KST.
Dependencies resolved.
====================================================================================================================================
 Package                            Architecture                 Version                         Repository                    Size
====================================================================================================================================
Installing:
 epel-release                       noarch                       8-8.el8                         extras                        23 k

Transaction Summary
====================================================================================================================================
Install  1 Package

Total download size: 23 k
Installed size: 32 k
Is this ok [y/N]: y
Downloading Packages:
epel-release-8-8.el8.noarch.rpm                                                                     268 kB/s |  23 kB     00:00    
------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                24 kB/s |  23 kB     00:00     
warning: /var/cache/dnf/extras-2770d521ba03e231/packages/epel-release-8-8.el8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
CentOS-8 - Extras                                                                                   1.5 MB/s | 1.6 kB     00:00    
Importing GPG key 0x8483C65D:
 Userid     : "CentOS (CentOS Official Signing Key) <security@centos.org>"
 Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
Is this ok [y/N]: y
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                            1/1
  Installing       : epel-release-8-8.el8.noarch                                                                                1/1
  Running scriptlet: epel-release-8-8.el8.noarch                                                                                1/1
  Verifying        : epel-release-8-8.el8.noarch                                                                                1/1

Installed:
  epel-release-8-8.el8.noarch                                                                                                      

Complete!

dnf repolist로 추가된 EPEL Repository를 확인 합니다.

dnf repolist
CentOS-8 - AppStream                                                                                 10 MB/s | 7.0 MB     00:00    
CentOS-8 - Base                                                                                     3.6 MB/s | 2.2 MB     00:00    
CentOS-8 - Extras                                                                                    12 kB/s | 5.9 kB     00:00    
Extra Packages for Enterprise Linux Modular 8 - x86_64                                               59 kB/s | 118 kB     00:01    
Extra Packages for Enterprise Linux 8 - x86_64                                                      397 kB/s | 6.7 MB     00:17    
repo id                                   repo name                                                                           status
AppStream                                 CentOS-8 - AppStream                                                                5,318
BaseOS                                    CentOS-8 - Base                                                                     1,661
epel                                     Extra Packages for Enterprise Linux 8 - x86_64                                      5,607
epel-modular                             Extra Packages for Enterprise Linux Modular 8 - x86_64                                  0
extras                                    CentOS-8 - Extras

dnf를 이용하여 Ansible을 설치 합니다.

#dnf install ansible
Last metadata expiration check: 0:03:33 ago on Fri 22 May 2020 12:46:20 PM KST.
Dependencies resolved.
====================================================================================================================================
 Package                         Architecture        Version                                           Repository              Size
====================================================================================================================================
Installing:
 ansible                         noarch              2.9.9-1.el8                                       epel                    17 M
Installing dependencies:
 python3-babel                   noarch              2.5.1-5.el8                                       AppStream              4.8 M
 python3-jinja2                  noarch              2.10.1-2.el8_0                                    AppStream              538 k
 python3-jmespath                noarch              0.9.0-11.el8                                      AppStream               45 k
 python3-markupsafe              x86_64              0.23-19.el8                                       AppStream               39 k
 python3-pip                     noarch              9.0.3-15.el8                                      AppStream               19 k
 python3-pyasn1                  noarch              0.3.7-6.el8                                       AppStream              126 k
 python3-pytz                    noarch              2017.2-9.el8                                      AppStream               54 k
 python36                        x86_64              3.6.8-2.module_el8.1.0+245+c39af44f               AppStream               19 k
 python3-pyyaml                  x86_64              3.12-12.el8                                       BaseOS                 193 k
 python3-setuptools              noarch              39.2.0-5.el8                                      BaseOS                 162 k
 libsodium                       x86_64              1.0.18-2.el8                                      epel                   162 k
 python3-bcrypt                  x86_64              3.1.6-2.el8.1                                     epel                    44 k
 python3-pynacl                  x86_64              1.3.0-5.el8                                       epel                   100 k
 sshpass                         x86_64              1.06-9.el8                                        epel                    27 k
Installing weak dependencies:
 python3-paramiko                noarch              2.4.3-1.el8                                       epel                   289 k
Enabling module streams:
 python36                                            3.6                                                                           

Transaction Summary
====================================================================================================================================
Install  16 Packages

Total download size: 24 M
Installed size: 124 M
Is this ok [y/N]: y
Downloading Packages:
(1/16): python3-jmespath-0.9.0-11.el8.noarch.rpm                                                    879 kB/s |  45 kB     00:00    
(2/16): python3-markupsafe-0.23-19.el8.x86_64.rpm                                                   6.8 MB/s |  39 kB     00:00    
(3/16): python3-pip-9.0.3-15.el8.noarch.rpm                                                         4.0 MB/s |  19 kB     00:00    
(4/16): python3-pyasn1-0.3.7-6.el8.noarch.rpm                                                       4.8 MB/s | 126 kB     00:00    
(5/16): python3-jinja2-2.10.1-2.el8_0.noarch.rpm                                                    5.5 MB/s | 538 kB     00:00    
(6/16): python3-pytz-2017.2-9.el8.noarch.rpm                                                        5.6 MB/s |  54 kB     00:00    
(7/16): python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64.rpm                                     3.5 MB/s |  19 kB     00:00    
(8/16): python3-setuptools-39.2.0-5.el8.noarch.rpm                                                  8.9 MB/s | 162 kB     00:00    
(9/16): python3-babel-2.5.1-5.el8.noarch.rpm                                                         34 MB/s | 4.8 MB     00:00    
(10/16): python3-pyyaml-3.12-12.el8.x86_64.rpm                                                      3.9 MB/s | 193 kB     00:00    
(11/16): python3-bcrypt-3.1.6-2.el8.1.x86_64.rpm                                                     10 kB/s |  44 kB     00:04    
(12/16): libsodium-1.0.18-2.el8.x86_64.rpm                                                           21 kB/s | 162 kB     00:07    
(13/16): python3-pynacl-1.3.0-5.el8.x86_64.rpm                                                       18 kB/s | 100 kB     00:05    
(14/16): sshpass-1.06-9.el8.x86_64.rpm                                                               20 kB/s |  27 kB     00:01    
(15/16): python3-paramiko-2.4.3-1.el8.noarch.rpm                                                     20 kB/s | 289 kB     00:14    
(16/16): ansible-2.9.9-1.el8.noarch.rpm                                                              18 kB/s |  17 MB     16:49    
------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                24 kB/s |  24 MB     16:51     
warning: /var/cache/dnf/epel-6519ee669354a484/packages/ansible-2.9.9-1.el8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY
Extra Packages for Enterprise Linux 8 - x86_64                                                      1.6 MB/s | 1.6 kB     00:00    
Importing GPG key 0x2F86D6A1:
 Userid     : "Fedora EPEL (8) <epel@fedoraproject.org>"
 Fingerprint: 94E2 79EB 8D8F 25B2 1810 ADF1 21EA 45AB 2F86 D6A1
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
Is this ok [y/N]: Y
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                            1/1
  Installing       : python3-setuptools-39.2.0-5.el8.noarch                                                                    1/16
  Installing       : python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64                                                       2/16
  Running scriptlet: python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64                                                       2/16
  Installing       : python3-pip-9.0.3-15.el8.noarch                                                                           3/16
  Installing       : sshpass-1.06-9.el8.x86_64                                                                                 4/16
  Installing       : python3-bcrypt-3.1.6-2.el8.1.x86_64                                                                       5/16
  Installing       : libsodium-1.0.18-2.el8.x86_64                                                                             6/16
  Installing       : python3-pynacl-1.3.0-5.el8.x86_64                                                                         7/16
  Installing       : python3-pyyaml-3.12-12.el8.x86_64                                                                         8/16
  Installing       : python3-pytz-2017.2-9.el8.noarch                                                                          9/16
  Installing       : python3-babel-2.5.1-5.el8.noarch                                                                         10/16
  Installing       : python3-pyasn1-0.3.7-6.el8.noarch                                                                        11/16
  Installing       : python3-paramiko-2.4.3-1.el8.noarch                                                                      12/16
  Installing       : python3-markupsafe-0.23-19.el8.x86_64                                                                    13/16
  Installing       : python3-jinja2-2.10.1-2.el8_0.noarch                                                                     14/16
  Installing       : python3-jmespath-0.9.0-11.el8.noarch                                                                     15/16
  Installing       : ansible-2.9.9-1.el8.noarch                                                                               16/16
  Running scriptlet: ansible-2.9.9-1.el8.noarch                                                                               16/16
  Verifying        : python3-babel-2.5.1-5.el8.noarch                                                                          1/16
  Verifying        : python3-jinja2-2.10.1-2.el8_0.noarch                                                                      2/16
  Verifying        : python3-jmespath-0.9.0-11.el8.noarch                                                                      3/16
  Verifying        : python3-markupsafe-0.23-19.el8.x86_64                                                                     4/16
  Verifying        : python3-pip-9.0.3-15.el8.noarch                                                                           5/16
  Verifying        : python3-pyasn1-0.3.7-6.el8.noarch                                                                         6/16
  Verifying        : python3-pytz-2017.2-9.el8.noarch                                                                          7/16
  Verifying        : python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64                                                       8/16
  Verifying        : python3-pyyaml-3.12-12.el8.x86_64                                                                         9/16
  Verifying        : python3-setuptools-39.2.0-5.el8.noarch                                                                   10/16
  Verifying        : ansible-2.9.9-1.el8.noarch                                                                               11/16
  Verifying        : libsodium-1.0.18-2.el8.x86_64                                                                            12/16
  Verifying        : python3-bcrypt-3.1.6-2.el8.1.x86_64                                                                      13/16
  Verifying        : python3-paramiko-2.4.3-1.el8.noarch                                                                      14/16
  Verifying        : python3-pynacl-1.3.0-5.el8.x86_64                                                                        15/16
  Verifying        : sshpass-1.06-9.el8.x86_64                                                                                16/16

Installed:
  ansible-2.9.9-1.el8.noarch                           python3-paramiko-2.4.3-1.el8.noarch   python3-babel-2.5.1-5.el8.noarch       
  python3-jinja2-2.10.1-2.el8_0.noarch                 python3-jmespath-0.9.0-11.el8.noarch  python3-markupsafe-0.23-19.el8.x86_64  
  python3-pip-9.0.3-15.el8.noarch                      python3-pyasn1-0.3.7-6.el8.noarch     python3-pytz-2017.2-9.el8.noarch       
  python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64  python3-pyyaml-3.12-12.el8.x86_64     python3-setuptools-39.2.0-5.el8.noarch
  libsodium-1.0.18-2.el8.x86_64                        python3-bcrypt-3.1.6-2.el8.1.x86_64   python3-pynacl-1.3.0-5.el8.x86_64      
  sshpass-1.06-9.el8.x86_64                           

Complete!

설치가 완료되면 ansible --version으로 설치된 Ansible 버전 정보 등을 확인할 수 있습니다.

ansible --version

1번 라인에서 설치된 Ansible 버전을 확인할 수 있습니다.
2번 라인은 Ansible 패키지 설치 시 제공되는 설정 파일입니다. 지금은 경로만 참고하시길 바랍니다.

1
2
3
4
5
6
ansible 2.9.9
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.6.8 (default, Nov 21 2019, 19:31:34) [GCC 8.3.1 20190507 (Red Hat 8.3.1-4)]

Offline-Install

인터넷 사용이 어려운 경우에는 패키지를 저장장치 등을 이용하여 오프라인 환경에 반입 한 후 설치 해야합니다.
우선 인터넷 사용이 가능한 시스템에서 패키지를 다운로드하고, /var/log/dnf.rpm.log 파일을 확인하여 설치한 패키지를 확인합니다.

cat /var/log/dnf.rpm.log
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
020-05-21T13:02:57Z INFO --- logging initialized ---
2020-05-21T13:36:59Z INFO --- logging initialized ---
2020-05-22T03:24:56Z INFO --- logging initialized ---
2020-05-22T03:26:21Z INFO --- logging initialized ---
2020-05-22T03:26:35Z INFO --- logging initialized ---
2020-05-22T03:26:43Z INFO --- logging initialized ---
2020-05-22T03:26:49Z INFO --- logging initialized ---
2020-05-22T03:32:33Z INFO --- logging initialized ---
2020-05-22T03:33:12Z INFO --- logging initialized ---
2020-05-22T03:45:05Z INFO --- logging initialized ---
2020-05-22T03:45:12Z SUBDEBUG Installed: epel-release-8-8.el8.noarch
2020-05-22T03:45:12Z SUBDEBUG Installed: epel-release-8-8.el8.noarch
2020-05-22T03:46:01Z INFO --- logging initialized ---
2020-05-22T03:46:05Z INFO --- logging initialized ---
2020-05-22T03:49:47Z INFO --- logging initialized ---
2020-05-22T03:49:52Z INFO --- logging initialized ---
2020-05-22T04:20:24Z SUBDEBUG Installed: python3-setuptools-39.2.0-5.el8.noarch
2020-05-22T04:20:25Z SUBDEBUG Installed: python3-setuptools-39.2.0-5.el8.noarch
2020-05-22T04:20:25Z SUBDEBUG Installed: python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64
2020-05-22T04:20:25Z SUBDEBUG Installed: python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64
2020-05-22T04:20:25Z SUBDEBUG Installed: python3-pip-9.0.3-15.el8.noarch
2020-05-22T04:20:25Z SUBDEBUG Installed: python3-pip-9.0.3-15.el8.noarch
2020-05-22T04:20:25Z SUBDEBUG Installed: sshpass-1.06-9.el8.x86_64
2020-05-22T04:20:25Z SUBDEBUG Installed: sshpass-1.06-9.el8.x86_64
2020-05-22T04:20:25Z SUBDEBUG Installed: python3-bcrypt-3.1.6-2.el8.1.x86_64
2020-05-22T04:20:25Z SUBDEBUG Installed: python3-bcrypt-3.1.6-2.el8.1.x86_64
2020-05-22T04:20:25Z SUBDEBUG Installed: libsodium-1.0.18-2.el8.x86_64
2020-05-22T04:20:25Z SUBDEBUG Installed: libsodium-1.0.18-2.el8.x86_64
2020-05-22T04:20:25Z SUBDEBUG Installed: python3-pynacl-1.3.0-5.el8.x86_64
2020-05-22T04:20:25Z SUBDEBUG Installed: python3-pynacl-1.3.0-5.el8.x86_64
2020-05-22T04:20:25Z SUBDEBUG Installed: python3-pyyaml-3.12-12.el8.x86_64
2020-05-22T04:20:25Z SUBDEBUG Installed: python3-pyyaml-3.12-12.el8.x86_64
2020-05-22T04:20:25Z SUBDEBUG Installed: python3-pytz-2017.2-9.el8.noarch
2020-05-22T04:20:25Z SUBDEBUG Installed: python3-pytz-2017.2-9.el8.noarch
2020-05-22T04:20:25Z SUBDEBUG Installed: python3-babel-2.5.1-5.el8.noarch
2020-05-22T04:20:26Z SUBDEBUG Installed: python3-babel-2.5.1-5.el8.noarch
2020-05-22T04:20:26Z SUBDEBUG Installed: python3-pyasn1-0.3.7-6.el8.noarch
2020-05-22T04:20:26Z SUBDEBUG Installed: python3-pyasn1-0.3.7-6.el8.noarch
2020-05-22T04:20:26Z SUBDEBUG Installed: python3-paramiko-2.4.3-1.el8.noarch
2020-05-22T04:20:26Z SUBDEBUG Installed: python3-paramiko-2.4.3-1.el8.noarch
2020-05-22T04:20:26Z SUBDEBUG Installed: python3-markupsafe-0.23-19.el8.x86_64
2020-05-22T04:20:26Z SUBDEBUG Installed: python3-markupsafe-0.23-19.el8.x86_64
2020-05-22T04:20:26Z SUBDEBUG Installed: python3-jinja2-2.10.1-2.el8_0.noarch
2020-05-22T04:20:27Z SUBDEBUG Installed: python3-jinja2-2.10.1-2.el8_0.noarch
2020-05-22T04:20:27Z SUBDEBUG Installed: python3-jmespath-0.9.0-11.el8.noarch
2020-05-22T04:20:27Z SUBDEBUG Installed: python3-jmespath-0.9.0-11.el8.noarch
2020-05-22T04:20:27Z SUBDEBUG Installed: ansible-2.9.9-1.el8.noarch
2020-05-22T04:20:41Z SUBDEBUG Installed: ansible-2.9.9-1.el8.noarch

패키지를 다운로드하기 위해 표준 출력 결과를 가공하여 패키지명만 출력합니다.

cat /var/log/dnf.rpm.log | awk '{print $4}' | grep -Ev "logging|epel" | uniq | cut -d "-" -f 1-2 > package_list.txt
cat package_list.txt
python3-setuptools
python36-3.6.8
python3-pip
sshpass-1.06
python3-bcrypt
libsodium-1.0.18
python3-pynacl
python3-pyyaml
python3-pytz
python3-babel
python3-pyasn1
python3-paramiko
python3-markupsafe
python3-jinja2
python3-jmespath
ansible-2.9.9

dnf를 이용하여 패키지를 다운로드 합니다.

dnf download `cat package_list.txt`
CentOS-8 - AppStream                                                                                9.9 kB/s | 4.3 kB     00:00    
CentOS-8 - Base                                                                                     4.5 kB/s | 3.9 kB     00:00    
CentOS-8 - Extras                                                                                   2.0 kB/s | 1.5 kB     00:00    
Extra Packages for Enterprise Linux Modular 8 - x86_64                                               15 kB/s | 8.0 kB     00:00    
Extra Packages for Enterprise Linux 8 - x86_64                                                       11 kB/s | 6.5 kB     00:00    
CentOS-8 - AppStream                          194% [================================================================================CentOS-8 - Base                               194% [================================================================================(1/16): python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64.rpm                                     290 kB/s |  19 kB     00:00    
(2/16): python3-pip-9.0.3-15.el8.noarch.rpm                                                         258 kB/s |  19 kB     00:00    
(3/16): python3-setuptools-39.2.0-5.el8.noarch.rpm                                                  2.0 MB/s | 162 kB     00:00    
(4/16): sshpass-1.06-9.el8.x86_64.rpm                                                               162 kB/s |  27 kB     00:00    
(5/16): python3-bcrypt-3.1.6-2.el8.1.x86_64.rpm                                                     226 kB/s |  44 kB     00:00    
(6/16): python3-pyyaml-3.12-12.el8.x86_64.rpm                                                       7.9 MB/s | 193 kB     00:00    
(7/16): python3-pynacl-1.3.0-5.el8.x86_64.rpm                                                       1.4 MB/s | 100 kB     00:00    
(8/16): libsodium-1.0.18-2.el8.x86_64.rpm                                                           714 kB/s | 162 kB     00:00    
(9/16): python3-pytz-2017.2-9.el8.noarch.rpm                                                        2.6 MB/s |  54 kB     00:00    
(10/16): python3-pyasn1-0.3.7-6.el8.noarch.rpm                                                      5.0 MB/s | 126 kB     00:00    
(11/16): python3-markupsafe-0.23-19.el8.x86_64.rpm                                                  7.1 MB/s |  39 kB     00:00    
(12/16): python3-jinja2-2.10.1-2.el8_0.noarch.rpm                                                    11 MB/s | 538 kB     00:00    
(13/16): python3-babel-2.5.1-5.el8.noarch.rpm                                                        47 MB/s | 4.8 MB     00:00    
(14/16): python3-paramiko-2.4.3-1.el8.noarch.rpm                                                    2.9 MB/s | 289 kB     00:00    
(15/16): python3-jmespath-0.9.0-11.el8.noarch.rpm                                                   1.7 MB/s |  45 kB     00:00    
(16/16): ansible-2.9.9-1.el8.noarch.rpm                                                              17 MB/s |  17 MB     00:01  

ls명령어를 이용하여 다운 받은 파일을 확인합니다.

ls
ansible-2.9.9-1.el8.noarch.rpm                           python3-paramiko-2.4.3-1.el8.noarch.rpm
libsodium-1.0.18-2.el8.x86_64.rpm                        python3-pip-9.0.3-15.el8.noarch.rpm
package_list.txt                                         python3-pyasn1-0.3.7-6.el8.noarch.rpm
python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64.rpm  python3-pynacl-1.3.0-5.el8.x86_64.rpm
python3-babel-2.5.1-5.el8.noarch.rpm                     python3-pytz-2017.2-9.el8.noarch.rpm
python3-bcrypt-3.1.6-2.el8.1.x86_64.rpm                  python3-pyyaml-3.12-12.el8.x86_64.rpm
python3-jinja2-2.10.1-2.el8_0.noarch.rpm                 python3-setuptools-39.2.0-5.el8.noarch.rpm
python3-jmespath-0.9.0-11.el8.noarch.rpm                 sshpass-1.06-9.el8.x86_64.rpm
python3-markupsafe-0.23-19.el8.x86_64.rpm

패키지를 압축하거나 개별적으로 저장장치 또는 외부로 전송합니다. Windows 및 MacOS 환경에서 SSH Client를 이용하여 패키지를 다운받은 Linux서버에 접속하고 있다면, lrzsz 패키지를 이용하여 쉽게 Client로 전송이 가능합니다. package_list.txt 파일은 삭제한 후 targz을 이용하여 현재 디렉토리에 위치한 패키지를 압축합니다.

Info

동일한 버전이 필요하신 분들은 압축 파일을 다운로드 할 수 있습니다. ( ansible.tar.gz)

rm -f package_list.txt
tar cvfz ansible.tar.gz ./*
./ansible-2.9.9-1.el8.noarch.rpm
./libsodium-1.0.18-2.el8.x86_64.rpm
./python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64.rpm
./python3-babel-2.5.1-5.el8.noarch.rpm
./python3-bcrypt-3.1.6-2.el8.1.x86_64.rpm
./python3-jinja2-2.10.1-2.el8_0.noarch.rpm
./python3-jmespath-0.9.0-11.el8.noarch.rpm
./python3-markupsafe-0.23-19.el8.x86_64.rpm
./python3-paramiko-2.4.3-1.el8.noarch.rpm
./python3-pip-9.0.3-15.el8.noarch.rpm
./python3-pyasn1-0.3.7-6.el8.noarch.rpm
./python3-pynacl-1.3.0-5.el8.x86_64.rpm
./python3-pytz-2017.2-9.el8.noarch.rpm
./python3-pyyaml-3.12-12.el8.x86_64.rpm
./python3-setuptools-39.2.0-5.el8.noarch.rpm
./sshpass-1.06-9.el8.x86_64.rpm

ansible.tar.gz 파일에 패키지가 잘 압축됬는지 확인합니다.

#tar tvf ansible.tar.gz
-rw-r--r-- root/root  18096400 2020-05-22 13:41 ./ansible-2.9.9-1.el8.noarch.rpm
-rw-r--r-- root/root    165988 2020-05-22 13:41 ./libsodium-1.0.18-2.el8.x86_64.rpm
-rw-r--r-- root/root     19506 2020-05-22 13:41 ./python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64.rpm
-rw-r--r-- root/root   5018176 2020-05-22 13:41 ./python3-babel-2.5.1-5.el8.noarch.rpm
-rw-r--r-- root/root     44612 2020-05-22 13:41 ./python3-bcrypt-3.1.6-2.el8.1.x86_64.rpm
-rw-r--r-- root/root    550536 2020-05-22 13:41 ./python3-jinja2-2.10.1-2.el8_0.noarch.rpm
-rw-r--r-- root/root     45892 2020-05-22 13:41 ./python3-jmespath-0.9.0-11.el8.noarch.rpm
-rw-r--r-- root/root     39672 2020-05-22 13:41 ./python3-markupsafe-0.23-19.el8.x86_64.rpm
-rw-r--r-- root/root    296092 2020-05-22 13:41 ./python3-paramiko-2.4.3-1.el8.noarch.rpm
-rw-r--r-- root/root     19664 2020-05-22 13:41 ./python3-pip-9.0.3-15.el8.noarch.rpm
-rw-r--r-- root/root    129348 2020-05-22 13:41 ./python3-pyasn1-0.3.7-6.el8.noarch.rpm
-rw-r--r-- root/root    102360 2020-05-22 13:41 ./python3-pynacl-1.3.0-5.el8.x86_64.rpm
-rw-r--r-- root/root     55364 2020-05-22 13:41 ./python3-pytz-2017.2-9.el8.noarch.rpm
-rw-r--r-- root/root    197680 2020-05-22 13:41 ./python3-pyyaml-3.12-12.el8.x86_64.rpm
-rw-r--r-- root/root    166368 2020-05-22 13:41 ./python3-setuptools-39.2.0-5.el8.noarch.rpm
-rw-r--r-- root/root     28064 2020-05-22 13:41 ./sshpass-1.06-9.el8.x86_64.rpm

dnf를 이용하여 lrzsz 패키지를 설치 합니다.

Info

lrzsz 패키지는 X/Y/Z Modem 프로토콜을 이용하여 파일을 전송하는 패키지 입니다. 일부 SSH Client 프로그램에서 지원하지 않을 수 있습니다. (XShell, SecureCRT에서는 가능합니다.) 자세한 정보는 공식 사이트를 참고하시길 바랍니다.

dnf install lrzsz
Last metadata expiration check: 0:14:25 ago on Fri 22 May 2020 01:41:28 PM KST.
Dependencies resolved.
====================================================================================================================================
 Package                     Architecture                 Version                                Repository                    Size
====================================================================================================================================
Installing:
 lrzsz                       x86_64                       0.12.20-43.el8                         BaseOS                        84 k

Transaction Summary
====================================================================================================================================
Install  1 Package

Total download size: 84 k
Installed size: 190 k
Is this ok [y/N]: y
Downloading Packages:
lrzsz-0.12.20-43.el8.x86_64.rpm                                                                     1.1 MB/s |  84 kB     00:00    
------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                               156 kB/s |  84 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                            1/1
  Installing       : lrzsz-0.12.20-43.el8.x86_64                                                                                1/1
  Running scriptlet: lrzsz-0.12.20-43.el8.x86_64                                                                                1/1
  Verifying        : lrzsz-0.12.20-43.el8.x86_64                                                                                1/1

Installed:
  lrzsz-0.12.20-43.el8.x86_64                                                                                                       

Complete!

sz명령어를 이용하여 파일을 SSH Client 측으로 전송합니다. 파일을 저장할 위치를 물어보는 창이 열린 후, 경로를 지정해주시면 전송되는 것을 확인할 수 있습니다.

sz ansible.tar.gz

Tip

lrzsz 패키지가 설치되어 있으면, #rz 혹은 파일을 SSH Client에 Drag&Drop하면 Client 측 파일을 SSH 서버쪽으로 전송하는 것도 가능합니다.

Tab-Completion

TAB키를 이용하여 bash 명령어를 자동완성 해주는 bash-completion 패키지가 있듯이 Ansible 명령어를 자동으로 완성해주는 python-argcomplete 패키지가 있습니다. EPEL Repository에서 제공 하며 #dnf install python3-argcomplete 명령어를 이용하여 설치가 가능합니다. 패키지 설치 후 #activate-global-python-argcomplete, #sh /etc/bash_completion.d/python-argcomplete.sh 명령어를 입한 후, soruce 명령어를 통해 Profile 관련 파일을 실행하거나 재로그인을 합니다.