소개
이 랩에서는 원격 호스트의 파일과 디렉토리를 관리할 수 있는 Ansible File 모듈을 살펴봅니다. File 모듈은 파일 및 디렉토리 생성, 삭제, 권한 수정, 존재 여부 확인 등 다양한 기능을 제공합니다.
이 랩에서는 원격 호스트의 파일과 디렉토리를 관리할 수 있는 Ansible File 모듈을 살펴봅니다. File 모듈은 파일 및 디렉토리 생성, 삭제, 권한 수정, 존재 여부 확인 등 다양한 기능을 제공합니다.
이 단계에서는 Ansible File 모듈을 사용하여 원격 호스트에 파일을 생성합니다.
먼저, /home/labex/project/file-module-playbook.yaml이라는 새 Ansible 플레이북 파일을 생성하고 텍스트 편집기에서 엽니다.
다음 내용을 플레이북 파일에 추가합니다.
- hosts: localhost
tasks:
- name: Create a file on remote host
file:
path: /home/labex/file.txt
state: touch
file: 파일 시스템을 조작하는 Ansible 모듈입니다.path: 파일의 경로를 지정하며, 이 경우 /home/labex/file.txt입니다.state: 파일의 상태를 지정합니다. 여기에서 touch는 파일이 존재하지 않으면 생성하고, 이미 존재하면 접근 및 수정 타임스탬프로 업데이트함을 나타냅니다.이 플레이북의 목적은 원격 호스트에 file.txt라는 파일을 생성하는 것입니다.
그런 다음, 다음 명령을 사용하여 플레이북을 실행합니다.
ansible-playbook file-module-playbook.yaml
예시 출력:
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'
PLAY [localhost] ***************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Create a file on remote host] ********************************************
changed: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
마지막으로, 파일 file.txt가 원격 호스트의 지정된 경로에 생성되었는지 확인합니다.
ll /home/labex/file.txt
예시 출력:
-rw-rw-r-- 1 labex labex 0 Mar 10 03:12 file.txt
/home/labex/file.txt가 성공적으로 생성되었다는 메시지를 확인할 수 있습니다.
이 단계에서는 Ansible File 모듈을 사용하여 원격 호스트에서 파일 권한을 관리하는 방법을 배웁니다.
먼저, 기존 플레이북 파일의 모든 내용을 제거하고 다음 내용을 플레이북 파일에 추가하여 수정합니다.
- hosts: localhost
tasks:
- name: Set file permissions
file:
path: /home/labex/file.txt
mode: "0644"
file: 파일 시스템을 조작하는 Ansible 모듈입니다.path: 파일의 경로를 지정하며, 이 경우 /home/labex/file.txt입니다.mode: 이 매개변수는 파일의 권한 모드를 설정하는 데 사용됩니다. 0644를 파일에 원하는 권한 모드로 바꿉니다. 권한 모드에 대한 자세한 내용은 chmod 문서를 참조하십시오.이 플레이북의 목적은 /home/labex/file.txt 파일의 권한을 0644로 설정하는 것입니다.
그런 다음, 다음 명령을 사용하여 플레이북을 실행합니다.
ansible-playbook file-module-playbook.yaml
예시 출력:
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'
PLAY [localhost] ***************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Set file permissions] ****************************************************
changed: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
마지막으로, 파일 권한이 원격 호스트에서 지정된 대로 설정되었는지 확인합니다.
ll /home/labex/file.txt
예시 출력:
-rw-r--r-- 1 labex labex 0 Mar 10 03:12 /home/labex/file.txt
여기서 -rw-r--r--는 /home/labex/file.txt의 모드가 성공적으로 0644로 설정되었음을 나타냅니다.
이 단계에서는 Ansible File 모듈을 사용하여 원격 호스트에서 파일을 삭제하는 방법을 배웁니다.
먼저, 기존 플레이북 파일의 모든 내용을 제거하고 다음 내용을 플레이북 파일에 추가하여 수정합니다.
- hosts: localhost
tasks:
- name: Delete a file on remote host
file:
path: /home/labex/file.txt
state: absent
file: 파일 시스템을 조작하는 Ansible 모듈입니다.path: 삭제할 파일의 경로를 지정하며, 즉 /home/labex/file.txt입니다.state: 이 매개변수는 파일이 absent 상태여야 함을 나타냅니다. 따라서 작업의 목표는 지정된 경로에서 파일을 삭제하는 것입니다.이 플레이북의 목적은 원격 호스트에서 /home/labex/file.txt 파일을 삭제하는 것입니다.
그런 다음, 다음 명령을 사용하여 플레이북을 실행합니다.
ansible-playbook file-module-playbook.yaml
예시 출력:
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'
PLAY [localhost] ***************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Delete a file on remote host] ********************************************
changed: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
마지막으로, file.txt 파일이 삭제되어 더 이상 원격 호스트에 존재하지 않는지 확인합니다.
ll /home/labex/file.txt
예시 출력:
ls: cannot access '/home/labex/file.txt': No such file or directory
이 메시지는 /home/labex/file.txt 파일이 성공적으로 삭제되었음을 나타냅니다.
이 단계에서는 Ansible File 모듈을 사용하여 원격 호스트에서 파일의 존재 여부를 확인하는 방법을 배웁니다.
먼저, 기존 플레이북 파일의 모든 내용을 제거하고 다음 내용을 플레이북 파일에 추가하여 수정합니다.
- hosts: localhost
tasks:
- name: Check file existence on remote host
stat:
path: /home/labex/file.txt
register: file_info
- name: Print file existence
debug:
msg: "File exists: {{ file_info.stat.exists }}"
stat: 파일 또는 디렉토리에 대한 상태 정보를 얻기 위한 Ansible 모듈 중 하나입니다.path: 확인할 파일의 경로를 지정하며, 즉 /home/labex/file.txt입니다.register: register 키워드를 사용하여 모듈 실행 결과를 변수 file_info에 저장합니다.debug: 디버깅 정보를 출력하는 Ansible 모듈 중 하나입니다.msg: debug 모듈을 사용하여 파일 존재 여부에 대한 정보를 포함하는 메시지를 출력하며, 이는 file_info.stat.exists를 통해 검색됩니다.이 플레이북의 목적은 원격 호스트에서 /home/labex/file.txt 파일의 존재 여부를 확인하고 정보를 표준 출력으로 인쇄하는 것입니다.
그런 다음, 다음 명령을 사용하여 플레이북을 실행합니다.
ansible-playbook file-module-playbook.yaml
예시 출력:
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'
PLAY [localhost] ***************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Check file existence on remote host] *************************************
ok: [localhost]
TASK [Print file existence] ****************************************************
ok: [localhost] => {
"msg": "File exists: False"
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
마지막으로, 출력을 관찰하여 file.txt 파일이 원격 호스트에 존재하는지 확인합니다.
"msg": "File exists: False"는 /home/labex/file.txt 파일이 존재하지 않음을 나타냅니다.
축하합니다! Ansible File 모듈 랩을 성공적으로 완료했습니다. File 모듈을 사용하여 원격 호스트에서 파일 및 디렉토리를 생성하고, 파일 권한을 관리하고, 파일을 삭제하고, 파일 존재 여부를 확인하는 방법을 배웠습니다.
File 모듈은 자동화 작업 중에 다양한 파일 관련 작업을 수행할 수 있게 해주는 Ansible 의 강력한 도구입니다. 이제 Ansible 플레이북에서 File 모듈을 자신 있게 사용하여 파일과 디렉토리를 효율적으로 관리할 수 있습니다.
Ansible 설명서 및 다른 모듈을 계속 탐색하여 지식을 확장하고 자동화 기술을 향상시키십시오. 즐거운 Ansible-ing!