Ansible 기초

신민창·2021년 4월 5일

Ansible

목록 보기
2/4

Ansible 기초

Control Node에서 /etc/hosts 파일을 아래 사진처럼아래 사진처럼 수정한다.

$ sudo vi /etc/hosts

이렇게 작성하면 기존에

$ ssh user@192.168.100.21

을 입력하여 접속할 수 있던게

$ ssh user@managed1

해당 명령어를 입력하여 접속할 수 있다.

키 복사도 동일하게 적용할 수 있다.

$ ssh-copy-id user@managed2.example.local

Ansible Bash Completion 설치

$ sudo -i
# cd /etc/bash_completion.d/
# wget https://raw.githubusercontent.com/dysosmus/ansible-completion/master/ansible-completion.bash
# exit
$ exec bash  //bash 추가시 적용 명령어

Ansible 실습용 디렉터리 생성 및 파일 생성

$ cd
$ mkdir ansible
$ cd ansible
$ cat > inventory
managed1.example.local
managed2.example.local

$ cat > ansible.cfg 
[defaults]
inventory = ./inventory
remote_user = user
ask_pass = false

[privilege_escalation]
become = true
become_method = sudo
become_user = root
become_ask_pass =true

Ansible 명령 동작 확인 명령어

$ ansible -m user -a ‘name=testuser state=present’ all

root 비밀번호 입력 자동화

$ ssh user@managed1.example.local

$ sudo -i

# vi /etc/sudoers.d/<사용자이름>
# vi /etc/sudoers.d/user
user        ALL=(ALL)       NOPASSWD: ALL

이렇게 파일을 만들고 저장한다.
그 후 exit를 입력하고 다시 sudo -i를 입력하면 root 비밀번호 입력없이 바로 root로 접속된다.

이제 Control Node에서 확인하기 위해서

$ vi ansible.cfg

을 become_ask_pass = false로 수정한다.
그리고

$ ansible -m user -a 'name=testuser state=present' all  명령어 입력

하게 되면

방금 설정한 managed1 서버는 잘 작동되는데 반해서 managed2 서버는 해당 설정을 하지 않았기 때문에 실패한 모습이다.

0개의 댓글