- با استفاده از این ماژول میتوان پروندههای متنی را ویرایش یا متنی را درون آنها اضافه کرد.
- کاربرد این ماژول را تقریبا مثل ابزار sed در سیستم عامل لینوکس میتوان در نظر گرفت.
- به عنوان مثال کد زیر باعث میشود تا :
- اطمینان حاصل شود از این که مقدار enforcing برای کلید SELINUX در پروندهی config در مسیر etc/selinux/ قرار گرفته است.
|
1 2 3 4 5 6 7 8 9 10 11 |
--- - name: PlayBook hosts: centos-servers gather_facts: no tasks: - name: Ensure SELinux is set to enforcing mode lineinfile: path: /etc/selinux/config regexp: '<span style="color: #ff0000;">^SELINUX=</span>' line: SELINUX=enforcing ... |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به عنوان مثال کد زیر باعث میشود تا :
- اطمینان حاصل شود از این که گروهی با نام wheel در پروندهی sudoers در مسیر etc/ وجود ندارد.
|
1 2 3 4 5 6 7 8 9 10 11 |
--- - name: PlayBook hosts: centos-servers gather_facts: no tasks: - name: Make sure group wheel is not in the sudoers configuration lineinfile: path: /etc/sudoers state: absent regexp: '<span style="color: #ff0000;">^%wheel</span>' ... |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به عنوان مثال کد زیر باعث میشود تا :
- ابتدا بررسی شود آیا عبارت 127.0.0.1 در پروندهی hosts واقع در مسیر etc/ وجود دارد یا خیر.
- سپس در صورتی که آن عبارت وجود نداشت، عبارت localhost بعد از عبارت 127.0.0.1 نوشته شود.
- سپس کاربر root به عنوان owner و group این پرونده لحاظ شود.
- در نهایت سطح دسترسی این پرونده بر روی عدد 0644 تنظیم شود.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
--- - name: PlayBook hosts: centos-servers gather_facts: no tasks: - name: Replace a localhost entry with our own lineinfile: path: /etc/hosts regexp: '<span style="color: #ff0000;">^127\.0\.0\.1</span>' line: 127.0.0.1 localhost owner: root group: root mode: '0644' ... |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به عنوان مثال کد زیر باعث میشود تا :
- ابتدا بررسی شود آیا عبارت Listen در داخل پروندهی httpd.conf در مسیر etc/httpd/conf/ وجود دارد یا خیر.
- سپس مقدار 8080 برای آن لحاظ شود.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
--- - name: PlayBook hosts: centos-servers gather_facts: no tasks: - name: Ensure the default Apache port is 8080 lineinfile: path: /etc/httpd/conf/httpd.conf regexp: '<span style="color: #ff0000;">^Listen</span> ' <span style="color: #ff0000;">insertafter</span>: '^#Listen ' line: Listen 8080 ... |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به عنوان مثال کد زیر باعث میشود تا :
- ابتدا برسی شود آیا پروندهی testfile در مسیر tmp/ وجود دارد یا خیر.
- سپس در صورتی که این پرونده وجود نداشت، پروندهای با این نام ایجاد شود.
- سپس عبارت مشخص شده در زیر درون آن ریخته شود.
|
1 2 3 4 5 6 7 8 9 10 11 |
--- - name: PlayBook hosts: centos-servers gather_facts: no tasks: - name: Add a line to a file if the file does not exist, without passing regexp lineinfile: path: /tmp/testfile line: 192.168.1.99 foo.lab.net foo create: yes ... |
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به عنوان مثال کد زیر باعث میشود تا :
- در درون پروندهی ansible.cfg بعد از عبارت [defaults] جملهای خاص اضافه شود.
|
1 2 3 4 5 6 7 |
- hosts: all tasks: - name: Ansible lineinfile insert after example lineinfile: dest: /root/ansible.cfg line: 'inventory = /home/fedora/inventory.ini' insertafter: '<span style="color: #ff0000;">\[defaults\]</span>' |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به عنوان مثال کد زیر باعث میشود تا :
- قبل از عبارت library# جملهای خاص اضافه شود.
|
1 2 3 4 5 6 7 |
- hosts: all tasks: - name: Ansible lineinfile insertbefore example lineinfile: dest: /root/ansible.cfg line: 'inventory = /home/mdtutorials/inventory.ini' insertbefore: '<span style="color: #ff0000;">#library</span>' |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به عنوان مثال کد زیر باعث میشود تا :
- جملهای با مضمون خاص از پروندهی remote_server.txt پاک شود.
|
1 2 3 4 5 6 7 |
- hosts: all tasks: - name: Ansible lineinfile remove line example lineinfile: dest: /home/mdtutorials2/remote_server.txt line: Removed lines. state: <span style="color: #ff0000;">absent</span> |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به عنوان مثال کد زیر باعث میشود تا :
- هر خطی که با عبارت DevOps شروع میشود، پاک شود.
|
1 2 3 4 5 6 7 |
- hosts: all tasks: - name: Ansible lineinfile regexp example lineinfile: dest: /home/mdtutorials2/remote_server.txt regexp: '<span style="color: #ff0000;">^DevOps</span>' state: absent |
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
|
1 |
# ansible-playbook playbook.yaml |
- به منظور مطالعهی بیشتر لینکهای زیر پیشنهاد میشود :
|
1 2 |
https://www.mydailytutorials.com/ansible-lineinfile-module-examples/ https://docs.ansible.com/ansible/latest/modules/lineinfile_module.html |
- آزمایش شده بر روی Ansible نسخهی 2.5.1
- آزمایش شده بر روی سیستم عامل Ubuntu 18.04