/usr/local/lib/python3.9/site-packages/ansible/modules <- modules 경로
Linux 파일 관리와 관련하여 일반적으로 사용되는 module은 ansible.builtin 컬렉션에 ansible-core와 함께 제공돼
파일의 권한 및 기타 속성의 생성, 복사, 편집, 수정과 같은 작업을 수행하지.
| 모듈 | 설명 |
|---|---|
| lineinfile | 특정행이 파일에 있는지 확인하거나 역참조 정규식을 사용하여 기존행의 내용을 변경. |
| blockinfile | 마커 선으로 둘러싸인 여러 줄의 텍스트 블록을 삽입 및 업데이트 또는 제거 |
| copy | 특정 파일을 관리호스트의 특정 위치로 복사. file모듈과 유사한 속성을 지님 |
| fetch | copy와 반대로 동작. 관리호스트의 파일을 제어노드로 가져와 저장. |
| file | 권한, 소유권, SELinux 컨텍스트, 일반 파일의 타임 스탬프, 심볼릭 링크, 하드 링크 및 디렉터리와 같은 속성을 설정. 일반 파일, 심볼릭 링크, 하드 링크 및 디렉터리를 생성하거나 제거. |
| stat | linux stat 명령어와 유사. 파일의 상태 정보를 조회 |
위 표는, 자주 사용되는 파일 관리 모듈들이야.
---
- name: first play
hosts: localhost
become: true
tasks:
- name: set context
file:
path: /home/vagrant/samba_file
owner: vagrant
group: vagrant
mode: 0640
setype: samba_share_t
state: touch
위 코드는 file 모듈을 사용해서 관리호스트에서 새로운 파일을 만들거나 파일 속성을 수정하는 예시야.
$ ls -Z samba_file
-rw-r--r--. owner group unconfined_u:object_r: samba_share_t :s0 samba_file
file 모듈로 설정 후 위 코드로 확인할 수 있지.
---
- name: first play
hosts: localhost
become: true
tasks:
- name: set context
file:
path: /home/vagrant/samba_file
owner: vagrant
group: vagrant
mode: 0640
setype: samba_share_t
state: absent
file 모듈에서 state 값을 absent로 설정하여 삭제 작업을 수행할 수 있어
작업디렉토리의 파일을 관리 호스트로 복사하는 module이야. 즉, controller node -> managed host
이때, selinux 타입이나 권한 설정을 변경할 수 있어
- name: copy file
copy:
src: file
dest: /path/to/file
copy 모듈과 반대로 관리 호스트의 파일을 제어 노드로 복사할 때 fetch 모듈을 사용해