반응형
Playbook yaml 파일을 작성하다 보면 자주 사용되는 모듈이 있다. 그것에 관해서 정리하고 실습해 봤다.
shell에서 ansible 모듈의 역할을 알고 싶을 떄
$ansible-doc [모듈 이름]으로 확인해 주면 된다.
1. 파일 작업
file - 파일과 디렉터리의 상태 작업
모듈을 사용할 때 파일과 디렉토리를 생성, 삭제하고 권한을 변경할 수 있다.
path: 경로를 지정하고 경로중에 없는 디렉토리가 있다면 생성을 해준다.
state: directory ## 존재하지 않는 디렉토리 생성
directory 외에도
file | 기본값. 아래에서 설명할 파일의 속성을 변경할 때 이용. 파일을 새로 생성하지 않고 없을 때는 에러가 발생한다 |
touch | 파일이 없을 때 빈 파일로 생성하고 기존 파일은 타임스탬프가 변경된다. |
link | 심볼릭 링크를 생성 |
absent | path가 존재하는 경우, 파일과 디렉토리를 삭제, 디렉토리도 재귀적으로 삭제되므로 주의 |
link, hard는 원본의 경로를 지정해야 하므로 다음과 같이 path 대신에 src(원본) 과 dest(대상)을 지정해야 한다.
권한 변경시에는
owner: [파일 소유자]
group: [그룹 소유]
mode: "[0755와 같이 8진수로 설정할 수 있으나 제일 처음에 0 을 붙이지 않으면 보통은 10진법의 정수로 간주하여 의도치 않은 값이 되어버릴 수 있습니다.]"
---
- name: tmp/dir1 create
hosts: servers
tasks:
- name: create
file:
path: /tmp/dir1
state: directory
- name: link create
hosts: servers
tasks:
- name: symbollink
file:
src: /tmp/dir1
dest: /tmp/link_to_dir1
state: link
- name: useradd
hosts: servers
tasks:
- name: ansibleuseradd
command: "useradd ansibleAdmin"
- name: chmod
hosts: servers
become: true
tasks:
- name: /tmp/dir1 all used 777
file:
path: /tmp/dir1
state: directory
owner: ansibleAdmin
group: ansibleAdmin
mode: "u=rwx,g=rx,o=rx"
copy - 파일을 작업 대상에게 전송
copy:
src: original_file // 원본파일
dest: ~/copied_file // 목적지 파일
lineinfile - 기존 파일을 행 단위로 수정
2. 명령어 실행 모듈
command - 임의의 명령을 실행
creates | 명령을 실행한 후에 생성될 파일의 경로를 지정. 파일이 존재하지 않는 경우에만 생성한다. |
removes | 명령을 실행한 후에 삭제될 파일의 경로를 지정. 파일이 존재 하는 경우에만 삭제한다. |
chdir | 명령을 실행할 때의 기점이 되는 디렉터리를 지정 |
executable | 명령을 실행할 때에 사용될 셸의 경로, 지정하지 않으면 사용자의 기본 로그인 셸을 사용한다. |
변수를 사용하는 경우에는 quote 필터를 이용해 항상 값을 깨끗하게 하는 것이 좋다.
반응형
'Ansible' 카테고리의 다른 글
AWS 앤서블로 관리하기 -1 (Dynamic inventory 생성) (0) | 2021.06.30 |
---|---|
Ansible 정적 인벤터리 (0) | 2021.06.21 |
Ansible Playbook 활용. (0) | 2021.06.21 |
앤서블 ad-hoc 활용하기 (1) (0) | 2021.06.21 |
앤서블의 구성 파일 (0) | 2021.06.21 |