ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Ansible) 모듈
    Cloud/Ansible 2022. 9. 21. 19:17

    Ansible에서 모듈 (Module) 이란?

    • 모듈은 하나의 작은 프로그램으로, ansible에서 사용하는 명령어 프로그램으로 볼 수 있다.
    • 모듈은 특정 명령, 소프트웨어 설치, API호출 등 여러가지 기능이 있다.
    • ansible을 이용하여 managed node에 대해 구성관리를 수행하는 실질적인 동작 수행 프로그램
    • 모듈은 namespace 단위로 관리된다.


    Ansible Document 확인 명령

    • ansible 모듈의 전체 목록 출력
    ansible-doc -l
    • 모듈명에 대한 도움말 출력
    ansible-doc <모듈명>
    • 도움말 참고
      • parameters : 해당 모듈을 사용할때 전달할 수 있는 파라미터에 대한 설명
      • Attribute : 해당 모듈속성(상태), 모듈 동작시 적용
      • return value : 해당 모듈이 실행된 후의 결과값
      • Example : 해당 모듈 사용법

     

    • 모듈을 사용할 Playbook 구문 출력
    ansible-doc -s <모듈명>


    멱등성

    • 모듈은 기본적으로 멱등성(Idempotent)를 가지고 있다.
    • 일부 모듈은 멱등성이 없다. command, shell, raw 모듈은 같은 명령을 입력해도 결과값이 달라질 수도 있다.


    Command 모듈

    ansible managed -m command -a "ls -ls" -i ./work-ansible/hosts
    # ansible [host패턴] -m command -a "[명령어]" -i [hosts파일 경로]
    • managed node들에 명령을 실행
    • managed node의 쉘에서 실행되는것이 아니므로 쉘작업을 수행할 수 없다.
      (리다이렉션이나 파이프 기능도 사용 불가능)
    • managed node에 파이썬이 설치되어 있어야 실행 가능


    Shell 모듈

    ansible public -m shell -a "set | grep PWD" -i ./work-ansible/hosts
    # ansible [host패턴] -m shell -a "[명령어]" -i [hosts파일 경로]
    • managed node의 쉘을 통해 명령어 처리
    • managed node의 쉘 환경변수에 접근할 수 있고, 리다이렉션이나 파이프기능 사용가능
    • command와 마찬가지로 파이썬이 설치되어 있어야 실행가능


    Raw 모듈

    • 모듈 하위시스템을 거치지 않고 원격 쉘을 사용하여 직접 명령 실행
    • 파이썬을 설치할 수 없는 시스템에서 유용한 모듈
    • managed node에 파이썬을 설치할때나, Linux 기본 조건을 만족하지 못하거나 SSH가 없는 환경에서 유용하게 사용 할 수 있다.


    User 모듈

    ansible [host패턴] -m user -a "[name, state 파라미터]" --become -i [hosts파일 경로]
    • 사용자 추가/삭제관리 모듈
    • name 파라미터와 state 파라미터로 사용자를 추가하거나 삭제할 수 있다.
      • name 파라미터 : 추가/삭제할 사용자 이름
      • state 파라미터 : present - 생성(default값), absent - 소멸

     

    • --become : 관리자 권한으로 명령실행


    Yum 모듈

    ansible [host패턴] -m yum -a "[name, state 파라미터]" --become -i [hosts파일 경로]
    • RedHat 배포판 패키지관리 명령인 yum에 대한 모듈
    • 유사모듈로 apt, dnf 모듈이 있다.
    • name 파라미터와 state 파라미터로 패키지를 설치/업그레이드/삭제할 수 있다.
      • name 파라미터 : 설치/삭제할 패키지 이름
      • state 파라미터 : present,installed - 설치. latest - 업그레이드, absent,remove - 삭제

     



    Service모듈

    ansible [host패턴] -m service -a "[name, state 파라미터]" --become -i [host파일 경로]
    • 시스템 서비스(데몬 프로세스)에 대한 시작/종료/재시작 등의 기능제공 모듈
    • 유사 모듈로 systemd 모듈이 있다.
    • name 파라미터와 state 파라미터로 서비스를 시작/종료/재시작할 수 있다.
      • name 파라미터 : 서비스 이름
      • state 파라미터 : started - 시작 , stopped - 중지 , restarted - 재시작 , reloaded  - 새로고침

     



     Copy 모듈

    ansible [host패턴] -m copy -a "[src, dest 파라미터]" --become -i [hosts파일 경로]
    • control node에서 managed node로 파일복사 (전송)
    • src 파라미터와 dest 파라미터로 파일을 전송할 수 있다.
      • src 파라미터 : 복사 (전송)할 파일 이름 (경로 포함)
      • dest 파라미터 : 복사 (전송)될 위치

     



     

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

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

    댓글

Designed by Tistory.