Loading...

Watch: Efficient NFS Server Setup with Ansible on Red Hat

Learn to automate the installation and configuration of an NFS server on Red Hat using an Ansible playbook. Enhance your system's efficiency now.

How to export NFS Share in RedHat-like Linux systems with Ansible?

I'm going to show you a live Playbook with some simple Ansible code.

I'm Luca Berton and welcome to today's episode of Ansible Pilot.

Export an NFS Share in RedHat-like systems

  • install packages => ansible.builtin.yum
  • create directory => ansible.builtin.file
  • share in config => ansible.builtin.lineinfile
  • export shares => ansible.builtin.command
  • restart service => ansible.builtin.service
  • open firewall => ansible.posix.firewalld

Today we're talking about how to export an NFS Share in RedHat-like Linux systems.

The full process requires six steps that you could automate with six different Ansible modules.

Firstly you need to install the nfs-utils package and dependency using the ansible.builtin.yum Ansible module.

Secondly, you need to create the share directory and assign the permission using the ansible.builtin.file Ansible module.

Thirdly you need to add the share in the /etc/exports config file using the ansible.builtin.lineinfile Ansible module to add text lines in files.

Fourthly you need to export shares executing the exportfs command line utility via ansible.builtin.command Ansible module, unfortunately there is not a specific module, yet.

Fifthly you need to restart the nfs-server service and all the dependant using the ansible.builtin.service Ansible module.

Sixthly you need to open the relevant firewall service-related ports using the ansible.posix.firewalld Ansible module.

## Playbook

Export NFS Share in RedHat-like systems with Ansible Playbook.

code

  • nfs_server_redhat.yml

```yaml

---

  • name: nfs service Playbook

hosts: all

become: true

vars:

share: "/nfs/share"

options: "192.168.0.0/24(rw,sync,root_squash)"

permission: '0777'

tasks:

- name: NFS server installed

ansible.builtin.yum:

name:

- nfs-utils

- nfs4-acl-tools

state: present

- name: share directory exists

ansible.builtin.file:

path: "{{ share }}"

state: directory

mode: "{{ permission }}"

owner: root

group: root

- name: share in /etc/exports file

ansible.builtin.lineinfile:

path: /etc/exports

state: present

line: '{{ share }} {{ options }}'

notify: restart NFS server

- name: export share

ansible.builtin.command: "exportfs -rav"

- name: firewall enabled

ansible.posix.firewalld:

Read the full tutorial: Efficient NFS Server Setup with Ansible on Red Hat