반응형

간단한(?) Ping 테스트.

- inventory 파일 정보
[workers]
worker1 ansible_host=192.168.0.12 ansible_user=root
worker2 ansible_host=192.168.0.14 ansible_user=root

- ping을 쏴보자. (-m 옵션은 module 이라는 의미)
ansible workers -m ping
당연히 될줄 알았으나 Error 발생

worker1 | FAILED! => {
    "msg": "to use the 'ssh' connection type with passwords, you must install the sshpass program"
}
worker2 | FAILED! => {
    "msg": "to use the 'ssh' connection type with passwords, you must install the sshpass program"
}

sshpass 프로그램이 없다고 하길래 sshpass 프로그램을 설치했다.
apt install sshpass.

그리고 다시 시도!. 그리고 다시 Error

worker1 | FAILED! => {
    "changed": false, 
    "module_stderr": "Shared connection to 192.168.0.12 closed.\r\n", 
    "module_stdout": "/bin/sh: 1: /usr/bin/python: not found\r\n", 
    "msg": "MODULE FAILURE", 
    "rc": 127
}

python 이 없다고 나옴. 생각해보니 master 에 ansible 만 설치했지 다른 노드에는 아무것도 안한 상태였다. 그래서 각각의 노드에 python 을 설치했다. (apt install python)

그리고 나서 다시 했더니 다음과 같은 Error 가 나온다.

worker1 | UNREACHABLE! => {
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: root@192.168.0.12: Permission denied (publickey,password).\r\n", 
    "unreachable": true
}
worker2 | UNREACHABLE! => {
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: root@192.168.0.14: Permission denied (publickey,password).\r\n", 
    "unreachable": true
}

흠... 패스워드 문제인것 같아서 옵션을 줘보고 실행을 해봤다.

ansible all -m ping -k

-k : 이 옵션은 실행시에 password 를 물어보도록 하는 옵션이다.
이렇게 실행을 했더니 정상적으로 실행이 되었다. 

root@myserver-001:~# ansible all -m ping -k
SSH password: 
worker1 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
worker2 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

 

728x90
반응형

'Development > Ansible' 카테고리의 다른 글

Ansible Inventory 파일  (0) 2021.11.12
반응형

호스트 파일에는 목적지 노드의 정보를 담고 있다. 

1. 파일 위치 : /etc/ansible/hosts (설치위치에 따라 달라질수는 있다.) 
실제로 ansible.cfg 파일을 보면 다음과 같이 default 로 정의되어있다.
# some basic default values...
#inventory      = /etc/ansible/hosts

2. 사용 방법

test test.com

[test]
test.com

[web]
web1.com
web2.com

[db]
db.com

[mail]
mail.com

[workers]
worker1 ansible_host=192.168.0.12 ansible_user=root 
worker2 ansible_host=192.168.0.14 ansible_user=root 

[all_servers:children]
test
web
db
mail

- test test.com : test 는 alias 이며 test.com 이 실제 접속 주소이다.
- [] : [] 으로 표현된 부분은 group 이름이다. 
- ansible_user : 각각의 노드에 user 가 다를 경우 ansible_user 로 정의 해준다.
- [그룹명:children] : 그룹들로 서로 묶을 수 있다.

 

728x90
반응형

'Development > Ansible' 카테고리의 다른 글

Ansible Ping 테스트 해보자.  (0) 2021.11.12

+ Recent posts