본문 바로가기

리눅스

[draft] Ansible을 위한 기본 Bash 자동 완성을 설치하는 방법

Ansible을 위한 기본 Bash 자동 완성을 설치하는 방법(Basic bash completion for Ansible)

Ansible CLI(ansible, ansible-playbook, ansible-doc 등)는 기본적으로 Bash 자동 완성이 포함되어 있지 않습니다.

1. bash-completion 패키지 설치 및 활성화

sudo yum install -y bash-completion
source /etc/bash_completion

2. ansible-completion 다운로드

GitHub 저장소를 클론합니다.

git clone https://github.com/dysosmus/ansible-completion.git
$ ls -l ansible-completion
total 68
-rw-rw-r-- 1 vagrant vagrant  5835 Nov  7 14:01 ansible-completion.bash
-rw-rw-r-- 1 vagrant vagrant   334 Nov  7 14:01 ansible-doc-completion.bash
-rw-rw-r-- 1 vagrant vagrant  1072 Nov  7 14:01 ansible-galaxy-completion.bash
-rw-rw-r-- 1 vagrant vagrant  1165 Nov  7 14:01 ansible-playbook-completion.bash
-rw-rw-r-- 1 vagrant vagrant   595 Nov  7 14:01 ansible-pull-completion.bash
-rw-rw-r-- 1 vagrant vagrant   685 Nov  7 14:01 ansible-vault-completion.bash
-rw-rw-r-- 1 vagrant vagrant 35120 Nov  7 14:01 LICENSE
-rw-rw-r-- 1 vagrant vagrant  2526 Nov  7 14:01 README.md

3. Bash 자동 완성 스크립트 설치

각 Ansible 명령에 맞는 completion 스크립트를 /etc/bash_completion.d/ 디렉터리에 복사합니다.

 

ansible 명령 자동 완성

sudo cp ansible-completion/ansible-completion.bash /etc/bash_completion.d/

ansible-playbook 자동 완성

sudo cp ansible-completion/ansible-playbook-completion.bash /etc/bash_completion.d/.

ansible-doc 자동 완성

sudo cp ansible-completion/ansible-doc-completion.bash /etc/bash_completion.d/.
source ~/.bashrc

4. Bash 설정 다시 로드

source ~/.bashrc

5. 자동 완성 동작 확인

ansible 명령 입력 후 Tab,Tab

$ ansible -i ./inventory --

ansible

ansible-playbook 명령 입력 후 Tab,Tab

$ ansible-playbook -i ./inventory --

ansible-playbook

6. 트러블슈팅

자동 완성이 동작하지 않을 경우

 

Bash 사용 여부 확인

echo $SHELL

bash-completion 로딩 확인

ls /etc/bash_completion.d/

.bashrc 에 다음 줄이 있는지 확인

[ -f /etc/bash_completion ] && source /etc/bash_completion

Ansible 실행 파일 경로 확인

which ansible

 

참고URL

- Ansible 명령 셸 완성 추가 : https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#adding-ansible-command-shell-completion