ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Ansible) Ansible 환경 구성해보기 2편
    Cloud/Ansible 2022. 9. 20. 22:07
    실습 환경 : AWS Console (2022/09), Visual Studio Code
    실습 목적 : Ad-hoc 명령을 통해 Control Node에서 Managed Node 연결을 확인

    Control Node의 Managed Node 연결 확인

    • Control node에서 Managed node와 연결을 하려면 Managed node에 대한 정보를 알고있어야 한다.
    • /etc/ansible/hosts 파일이 인벤토리라면 이 파일에 Managed node에 대한 정보를 기술한다.
    • /etc/ansible/host 파일은 전역으로 사용하는 인벤토리이며 현재 사용자에 대한 인벤토리를 구성하려면 현재 사용자의 작업 디렉토리에 별도의 인벤토리를 작성해서 사용할 수 있다.


    Ad-hoc 명령

    • Ansible은 일반적으로 playbook을 사용하도록 설계되어 있다.
    • 한번만 수행하거나 간단한 명령을 통한 상태확인 등은 별도의 playbook을 사용하지 않고 간단한 명령 구문으로 수행할 수 있는데, 이방식을 Ad-hoc 명령이라고 한다.


    Ad-hoc 명령 형식

    ansible <호스트명 패턴(Managed node)> [옵션]
    • 옵션
      • -m : 모듈명
      • -a <인수 목록> : 모듈 인수
      • -i <인벤토리 파일명> : 인벤토리
        • 별도의 인벤토리를 지정하지 않으면 /etc/ansible/host 파일을 사용한다.
      • -k : 암호 확인


    Ad-hoc 명령 사용 예

    ansible all -m ping -i ./hosts
    • 호스트 패턴 all은 인벤토리의 모든 호스트에 대하여 Ad-hoc명령 적용시 사용하는 호스트 패턴
    ansible managed -m ping -i ./hosts
    • managed 호스트 패턴에 대하여 ping 모듈 적용, 인벤토리는 현재 디렉토리의 hosts 사용
      • ping 모듈 - Ansible Control node와 Manage node 사이의 통신 연결 상태 확인


    Ad-hoc 명령을 사용하기 위한 인벤토리 설정


    hosts 파일 복사


    sudo cp /etc/ansible/hosts .
    sudo chown <사용자ID>:<사용자그룹> <인벤토리 파일>
    /etc/ansible/hosts 파일을 원하는 경로로 복사한뒤, root 가아닌 사용자가 접근할 수 있도록 chown 명령을 사용한다.

    인벤토리 파일 (hosts) 설정


    [인벤토리 파일구조]
    - 공통정보를 변수에 저장하여 공유하는 방식 (빨간색 박스 표시) : [그룹명:vars] , <host name>[속성]
    - 여러 그룹을 하나의 그룹으로 묶어서 공유하는 방식 (연두색 박스 표시) : [그룹명:children], <host name>

    - 그룹을 지정하지 않는 방식 (회색 박스 표시) : <host IP> [속성]
    -
    그룹을 지정하는 방식 (노란색, 파란색, 보라색, 초록색 박스 표시) : [그룹명], <host name>[속성]

    [속성]
    - ansible_host
    : 호스트 IP
    - ansible_connection
    : 호스트와 연결방법
    - ansible_port
    : 연결 포트번호
    - ansible_user
    : 호스트 유저 ID
    - ansible_ssh_private_key_file
    : 개인키 파일 위치
    - ansible_python_interpreter
    : python 경고 메시지를 출력하지 않도록 python 인터프리터 위치 지정

     



    Ad-hoc 명령으로 Managed Node 와의 연결 확인


    인벤토리 파일에서 Managed Node를 등록한 managed 그룹을 대상으로 ping 모듈을 사용하여 통신 연결 상태를 확인한다.

    참고자료 : https://docs.ansible.com/ansible/2.9/user_guide/intro_inventory.html#inventory-basics-formats-hosts-and-groups


     

     

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

    Ansible) Playbook 1편  (0) 2022.09.22
    Ansible) YAML  (1) 2022.09.21
    Ansible) Ansible 환경 구성해보기 3편  (0) 2022.09.21
    Ansible) 모듈  (1) 2022.09.21
    Ansible) Ansible 환경 구성해보기 1편  (0) 2022.09.20

    댓글

Designed by Tistory.