ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Ansible Core 설치와 Node 세팅
    Ansible 2021. 8. 16. 16:00

    이번 포스팅은 Ansible Core 설치와 이에 필요한 Node 세팅에 대해 다룬다. 

     

    참고로 서버 환경은 AWS centos7 ec2를 이용하였으며 

    편의상 ansible core를 설치한 서버를 ansible server, 관리할 서버를 node라고 하겠다. 

     

     

    Ansible이란?

     

    - 가장 많이 사용되는 구성관리 툴

    - 이외에도 chef, salt, puppet등이 더 있는데 복잡하고 사용하기 어렵다. 

    - agent 설치가 필요없으며 기술적으로 복잡도가 낮다. 

     

     

     

    1. ansible core 설치하기 

     

    ansible core는 ansible-server에 설치한다.  

     

    1) ansible 설치 패키지를 다운로드할 수 있는 공간을 위해 epel-release 설치 

    sudo yum install epel-release -y

     

     

    2) ansible 설치하기 

    sudo yum install ansible -y

     

     

     

    2. Node 환경 구축하기 

     

    ansible로 접속할 node의 환경을 구축한다. 

     

    1) ansible server에서 password로 접근하기 

     

     

    ansible은 agent없이 ssh를 이용하여 구성관리를 하므로 노드의ssh 권한을 수정하자.

     

    root권한으로 접속할것이므로 

    /etc/ssh/sshd_config에서 PermitRootLogin과 PasswordAuthentication을 둘 다 yes

     

    마지막으로 root 계정으로 passwd 생성 

     

     

    2) ansible server에서 key로 접근하기 

     

    위에서 했던 설정 중 /etc/ssh/sshd_config에서 PermitRootLogin만 yes로 변경

     

    ansible server에서 publickey를 생성한 후, 노드에게 건네준다. 

    ssh-keygen
    ssh-copy-id root@[노드의 IP]

     

     

     

    3. 호스트와 연결 확인

     

    처음 ansible 설치 후, ping을 보내면 host list가 empty하다는 메시지와 함께 이용가능하지 않다고 나온다. 

    ansible all -m ping -k

     

     

     

    /etc/ansible/host에 호스트 IP를 추가하여 재확인한다. 

    sudo vi /etc/ansible/host

     

     

    한번 로그인하면 그 이후로는 -k를 안 붙여줘도 된다.(뇌피셜)

    (만약 퍼블릭 키를 이용하여 접속했다면 -k 옵션은 없어도 된다)

     

     

     

    4. 설정 파일

     

    1) 앤서블 환경 설정 파일

    /etc/ansible/ansible.cfg

     

    2) 앤서블의 호스트 정보

    /etc/ansible/hosts

     

     

     

    5. 옵션 

     

    1) -i (--inventory-file)

     

    특정 IP만 담긴 test파일을 생성

    echo "10.0.1.235" > test

     

    특정 호스트만 명령을 내릴 때 인벤토리를 이용하여 명령을 내릴 노드를 자유롭게 조절할 수 있다. 

     

     

    또는 /etc/ansible/hosts에 그룹을 지정하여 사용할 수도 있다. 

    [nginx]
    10.0.1.235

     

     

     

    2) -m (--module-name) : 사용할 모듈을 선택

     

    위에서 ping 모듈을 사용했는데 이는 참고로 우리가 아는 ping이 아니라 

    파이썬의 모듈의 ping이다. 

     

     

    3) -k (--ask-pass) : 패스워드를 물어본다. 

     

     

    4) -K(--ask-become-pass): 권리자 권한에 따른 패스워드를 물어본다. 

     

     

    5) --list-hosts: 적용되는 호스트를 보여준다. 

    초반에는 꽤 유용한 옵션이라고 한다. 

    반응형

    댓글

Designed by Tistory.