Installing Ansible¶
Prerequisites¶
Control Nodes¶
- Control Node는 Linx 또는 Unix 시스템이어야 하고, Microsoft Windows는 지원하지 않습니다.
- Python 2는 2.7 버전 이상, Python 3는 3.5 버전이 설치되어 있어야 합니다.
- Manage Node와 SSH 통신이 가능해야합니다.
Python 버전 확인
yum list installed python
python --version
Manage Nodes¶
- 특별한 Agent 설치가 필요 없으며, Control Node와 동일하게 Python을 필요로 합니다.
- Python 2는 2.7 버전 이상, Python 3는 3.5 버전이 설치되어 있어야 합니다.
- 만약 SELinux가 활성화 되어 있으면,
libselinux-python패키지도 필요합니다. - Windows는 PowerShell 3.0 이상과 .NET Framework 4.0 버전 이상이 필요합니다.
- Windows는 SSH가 아닌 WinRM 서비스로 Control Node와 연결되기 때문에 WinRM 서비스가 활성화 되어 있어야합니다.
- Windows에 대한 자세한 정보는 Windows Guide를 참고하시길 바랍니다.
- 라우터 및 스위치와 같은 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) 설치 후 테스트하였습니다.
이전 버전에서 사용한 yum도 dnf와 동일하게 사용 가능하니 참고하시길 바랍니다.
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 | |
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 | |
패키지를 다운로드하기 위해 표준 출력 결과를 가공하여 패키지명만 출력합니다.
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 파일은 삭제한 후 tar와 gz을 이용하여 현재 디렉토리에 위치한 패키지를 압축합니다.
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 관련 파일을 실행하거나 재로그인을 합니다.