본문 바로가기

클라우드/앤서블(Ansible)

앤서블 Ansible 명령 모듈

# Ad-hoc command의 여러가지 사용법

# 명령 모듈

명령어 모듈을 이용해 원격 시스ㅁ에 명령어를 실행 할 수 있다.

명령어 모듈은 최대한 사용하지 않는것이 좋다. apt, yum 모듈이 이미 만들어져있는데 명령어로 굳이 사용 할 필요가 없다.

모듈이 없는 경우, 모듈이 있더라도 원하는 기능이 없는경우에 커맨드를 사용한다.

 



모듈의 목록을 보여준다

모듈 이름을 지정하면 해당 모듈의 상세정보를 보여준다

free_form 자유양식
실제 파라미터의 이름이 아니고 자유양식, 명령어를 자유양식으로 쓴다

 

 

mgmt 그룹에 있는 모든 시스템에 hostname이라는 명령어를 실행한다

결과를 return 받게 된다 rc=0 정상 종료

 

 

 

AUTHOR 모듈을 만든 작성자

stableinterface 안정화 버전

 

 

 

EXAMPLES 예제

 

 

모듈을 실행하게 되면 모듈마다 리턴되는 값

 

 

raw모듈은 python도 shell도 실행시키지 않는다
유일하게 raw모듈만 파이썬없이 실행 할 수 있다

과거에 전용 운영체제를 사용하여 패키지를 설치 할 수 없는 네트워크 장비를 컨트롤 하기 위해 raw를 사용

(현재는 필요없다)

 

 

 

명령어를 실행시키는데 명령어를 실행시키는 환경이 다르다
command 모듈은 반드시 관리노드 python이 있어야한다, shell을 실행하지 않는다

 

 

 

shell 모듈은 python과 shell을 사용한다

 

 

파이프나 리디렉션은 쉘의 고유한 기능이다
command 모듈은 쉘의 기능을 사용하지 않기 때문에 사용할 수 없다

 

 

확인

 

 

삭제

 

 

스크립트 모듈
스크립트 실행 하는것

 

 

시스템에 명령어를 내린다고 해서 시스템에 변경사항을 일으키지는 않는다

멱등법칙
f(f(x)) = f(x)
어떤 연산을 계속해도 항상 상태는 같아야한다

연산을 여러번 적용해도 결과가 달라지 않아야 한다

 

 

 

 

apache2 패키지를 또 적용시키면 success라고 나온다
apache2가 존재해한다라고 이미 선언해서 존재하기 때문에 최종상태가 변하지 않아야 한다 (멱등성)

조건을 바꾸면 조건에 만족하기 위해 변경한다

 

 

 

이렇게 해도 충분히 설치 할 수 있다 하지만 매번 명령어를 실행한다 (멱등성을 제공하지 않는 모듈)
시스템에 실제 변경사항이 없음에도 불구하고 시스템이 변경되었다고 보고한다


 

멱등성을 제공하지 못하기 때문에 가능하면 사용하지 않는것을 권장한다