본문 바로가기

Automation Tools/Ansible

0. ansible 설치

반응형

1. 설치

[root@ANSIBLE ~]# yum install epel-release
[root@ANSIBLE ~]# yum install ansible
[root@ANSIBLE ~]# rpm -qa | grep ansible
ansible-2.9.16-1.el7.noarch

 

2. host 등록

## 기본 경로
[root@ANSIBLE ansible]# pwd
/etc/ansible
 
## inventory 파일 (target host 정의)
[root@OANSIBLE ansible]# cat hosts
...
 
[test]
test02  ansible_host={host ip} ansible_user={host ssh user} ansible_port={host ssh port} ansible_connection=ssh ansible_ssh_pass="**********"
 
## 기본적으로 ssh를 통해 통신하며 패스워드를 이 파일에 기입 할수도 있으나 ssh rsa key 교환을 통하는 것이 안전하다.
## ansible_ssh_pass : SSH 연결시 사용할 비밀번호. 이것은 보안에 취약하므로 –ask-pass 또는 SSH Keys 방식을 사용할 것은 권장
## ansible_ssh_private_key_file : SSH 연결시에 사용할 SSH 비밀키 파일
## ansible_ssh_common_args : sftp, scp, ssh와 같은 기본 명력을 사용할 때 항상 추가할 설정을 지정가능
## ansible_sftp_extra_args : sftp 연결에 기본으로 추가할 설정을 지정
## ansible_scp_extra_args : scp 연결에 기본으로 추가할 설정을 지정
## ansible_ssh_extra_args : ssh 연결에 기본으로 추가할 설정을 지정
 
 
## 작업전 작업 대상 호스트 확인
[root@ANSIBLE ansible]# ansible --list-hosts all
  hosts (1):
    test02

 

3. ad-hoc 방식의 간단 테스트

[root@ANSIBLE ansible]# ansible -i hosts -m ping test02
test02 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
 
## -i : inventory 파일 지정
## -m : 모듈

 

4. playbook 테스트는 하위 카테고리 참조

 

5. ansible.cfg 수정

# 최초 시스템 ssh 접속시 known_host fingerprint 오류가 발생하는데 ssh의 접속 옵션에 -o StrictHostKeyChecking=no 와 같이 수정.
[root@ANSIBLE roles]# vim ../ansible.cfg
...
 
# uncomment this to disable SSH key host checking
host_key_checking = False
...

# log path 설정
# log는 playbook으로 출력되는 그대로를 기록한다.
log_path = /var/log/ansible.log

 

6. selinux

 - selinux 설정이 enforce, permissive 로 되어 있는 경우 sudo 권한이 필요한 작업을 할 경우 sudo 획득에 실패 할 수 있으므로 disabled로 설정 하는 것이 좋다. 

 - senenforce 0을 통해 permissive로  되어 있는 경우 visudo로 직접 ansible 계정에 권한을 준다.

반응형