- با استفاده از این ماژول میتوان پروندههای متنی را ویرایش یا متنی را درون آنها اضافه کرد.
- کاربرد این ماژول را تقریبا مثل ابزار sed در سیستم عامل لینوکس میتوان در نظر گرفت.
- به عنوان مثال کد زیر باعث میشود تا :
- اطمینان حاصل شود از این که مقدار enforcing برای کلید SELINUX در پروندهی config در مسیر etc/selinux/ قرار گرفته است.
---
- name: PlayBook
hosts: centos-servers
gather_facts: no
tasks:
- name: Ensure SELinux is set to enforcing mode
lineinfile:
path: /etc/selinux/config
regexp: '^SELINUX='
line: SELINUX=enforcing
...
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- اطمینان حاصل شود از این که گروهی با نام wheel در پروندهی sudoers در مسیر etc/ وجود ندارد.
---
- 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: '^%wheel'
...
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- ابتدا بررسی شود آیا عبارت 127.0.0.1 در پروندهی hosts واقع در مسیر etc/ وجود دارد یا خیر.
- سپس در صورتی که آن عبارت وجود نداشت، عبارت localhost بعد از عبارت 127.0.0.1 نوشته شود.
- سپس کاربر root به عنوان owner و group این پرونده لحاظ شود.
- در نهایت سطح دسترسی این پرونده بر روی عدد 0644 تنظیم شود.
---
- name: PlayBook
hosts: centos-servers
gather_facts: no
tasks:
- name: Replace a localhost entry with our own
lineinfile:
path: /etc/hosts
regexp: '^127\.0\.0\.1'
line: 127.0.0.1 localhost
owner: root
group: root
mode: '0644'
...
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- ابتدا بررسی شود آیا عبارت Listen در داخل پروندهی httpd.conf در مسیر etc/httpd/conf/ وجود دارد یا خیر.
- سپس مقدار 8080 برای آن لحاظ شود.
---
- 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: '^Listen '
insertafter: '^#Listen '
line: Listen 8080
...
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- ابتدا برسی شود آیا پروندهی testfile در مسیر tmp/ وجود دارد یا خیر.
- سپس در صورتی که این پرونده وجود نداشت، پروندهای با این نام ایجاد شود.
- سپس عبارت مشخص شده در زیر درون آن ریخته شود.
---
- 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 به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- در درون پروندهی ansible.cfg بعد از عبارت [defaults] جملهای خاص اضافه شود.
- hosts: all
tasks:
- name: Ansible lineinfile insert after example
lineinfile:
dest: /root/ansible.cfg
line: 'inventory = /home/fedora/inventory.ini'
insertafter: '\[defaults\]'
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- قبل از عبارت library# جملهای خاص اضافه شود.
- hosts: all
tasks:
- name: Ansible lineinfile insertbefore example
lineinfile:
dest: /root/ansible.cfg
line: 'inventory = /home/mdtutorials/inventory.ini'
insertbefore: '#library'
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- جملهای با مضمون خاص از پروندهی remote_server.txt پاک شود.
- hosts: all
tasks:
- name: Ansible lineinfile remove line example
lineinfile:
dest: /home/mdtutorials2/remote_server.txt
line: Removed lines.
state: absent
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به عنوان مثال کد زیر باعث میشود تا :
- هر خطی که با عبارت DevOps شروع میشود، پاک شود.
- hosts: all
tasks:
- name: Ansible lineinfile regexp example
lineinfile:
dest: /home/mdtutorials2/remote_server.txt
regexp: '^DevOps'
state: absent
- به مواردی که به صورت رنگی مشخص شده است، دقت کنید.
- به منظور اجرای پروندهی PlayBook به شکل زیر عمل کنید :
# ansible-playbook playbook.yaml
- به منظور مطالعهی بیشتر لینکهای زیر پیشنهاد میشود :
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