Using file module in ansible PlayBook


  • با استفاده از این ماژول می‌توان مدیریت و کنترل بر روی پرونده‌ها یا پوشه‌ها داشت.

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • سطح دسترسی، owner و group پرونده‌ای با نام foo.conf تغییر یابد.
---
- name: PlayBook
  hosts: centos-servers
  gather_facts: no
  tasks:
  - name: Change file ownership, group and permissions
    file:
     path: /etc/foo.conf
     owner: sshd
     group: sshd
     mode: '0644'
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
  • در صورتی که کد بالا به صورت موفقیت آمیز اجرا شده باشد، خروجی‌ای مشابه زیر دریافت خواهید کرد :
PLAY [PlayBook] ****************************************************************************************************************************************************

TASK [Change file ownership, group and permissions] ****************************************************************************************************************
ok: [172.16.0.245]

PLAY RECAP *********************************************************************************************************************************************************
172.16.0.245               : ok=1    changed=0    unreachable=0    failed=0

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • ابتدا یک Symbolic Link از پرونده‌ی passwd ساخته شود.
    • سپس سازنده و گروه سازنده‌ی آن به کاربر centos تغییر یابد.
---
- name: PlayBook
  hosts: centos-servers
  gather_facts: no
  tasks:
  - name: Create a symbolic link
    file:
     src: /etc/passwd
     dest: /tmp/passwd.symlink
     owner: centos
     group: centos
     state: link
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
  • در صورتی که کد بالا به صورت موفقیت آمیز اجرا شده باشد، خروجی‌ای مشابه زیر دریافت خواهید کرد :
PLAY [PlayBook] ****************************************************************************************************************************************************

TASK [Create a symbolic link] **************************************************************************************************************************************
changed: [172.16.0.245]

PLAY RECAP *********************************************************************************************************************************************************
172.16.0.245               : ok=1    changed=1    unreachable=0    failed=0

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • ابتدا پرونده‌ای با نام foo.conf ایجاد شود.
    • سپس سطح دسترسی آن به روش Symbolic Mode تغییر یابد.
---
- name: PlayBook
  hosts: centos-servers
  gather_facts: no
  tasks:
  - name: Touch a file, using symbolic modes to set the permissions (equivalent to 0644)
    file:
     path: /etc/foo.conf
     state: touch
     mode: u=rw,g=r,o=r
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • ابتدا یک پوشه با نام some_directory در مسیری مشخص ایجاد شود.
    • سپس سطح دسترسی آن به 0755 تغییر یابد.
---
- name: PlayBook 
  hosts: centos-servers
  gather_facts: no
  tasks:
  - name: Create a directory if it does not exist
    file:
     path: /etc/some_directory
     state: directory
     mode: '0755'
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml

  • به عنوان مثال کد زیر باعث می‌شود تا :
    • پرونده‌ای با نام foo.txt در مسیر مشخص شده پاک شود.
---
- name: PlayBook 
  hosts: centos-servers
  gather_facts: no
  tasks:
  - name: Remove file (delete file)
    file:
     path: /etc/foo.txt
     state: absent
...
  • به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
  • به منظور اجرای پرونده‌ی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml

  • به منظور مطالعه‌ی بیشتر لینک‌های زیر پیشنهاد می‌شود :
https://docs.ansible.com/ansible/latest/modules/file_module.html
How to create files in Ansible

  • آزمایش شده بر روی Ansible نسخه‌ی 2.5.1
  • آزمایش شده بر روی سیستم عامل Ubuntu 18.04

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *