AnsiblePilot — Master Ansible Automation

AnsiblePilot is the leading resource for learning Ansible automation, DevOps, and infrastructure as code. Browse over 1,400 tutorials covering Ansible modules, playbooks, roles, collections, and real-world examples. Whether you are a beginner or an experienced engineer, our step-by-step guides help you automate Linux, Windows, cloud, containers, and network infrastructure.

Popular Topics

About Luca Berton

Luca Berton is an Ansible automation expert, author of 8 Ansible books published by Apress and Leanpub including "Ansible for VMware by Examples" and "Ansible for Kubernetes by Example", and creator of the Ansible Pilot YouTube channel. He shares practical automation knowledge through tutorials, books, and video courses to help IT professionals and DevOps engineers master infrastructure automation.

Troubleshooting: Configure User Quotas on XFS File Systems Using Ansible

By Luca Berton · Published 2024-01-01 · Category: installation

Learn how to resolve the error when configuring user quotas in Ansible on XFS file systems and ensure quota management is correctly set up.

Troubleshooting: Configure User Quotas on XFS File Systems Using Ansible

Troubleshooting: Configure User Quotas on XFS File Systems Using Ansible

Learn how to resolve the common error related to user quota configuration on XFS file systems with Ansible.

---

Error Summary

When attempting to configure user quotas on an XFS file system with Ansible, you might encounter the following error:

TASK [Configure user quotas for "devops" on /] *****************************************
fatal: [debian.example.com]: FAILED! => {"changed": false, "msg": "Path '/' is not mounted with the uquota/usrquota/quota/uqnoenforce/qnoenforce option."}

This error occurs because the root file system / is not mounted with the necessary options (usrquota and grpquota) required to enable quota tracking.

---

Root Cause

The XFS file system requires specific mount options (usrquota, grpquota) for quotas to function. Without these options, the kernel cannot track or enforce disk usage limits.

---

Solution: Enable Quota Support for XFS

1. Verify Current Mount Options

Use the mount command to confirm the current mount options for the root file system:

mount | grep ' / '
Example output:
/dev/nvme0n1p2 on / type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)

2. Update /etc/fstab to Add Quota Options

Edit /etc/fstab to include the usrquota and grpquota options:

UUID=1f46e518-142f-4d88-ae7f-cf401c9e7dd0 / xfs defaults,usrquota,grpquota 0 0

3. Remount the File System

Apply the updated mount options by remounting the file system:

mount -o remount /

4. Enable Quota Management

Use the xfs_quota tool to enable quotas on the file system:

xfs_quota -x -c 'quota enable' /

5. Set User Quotas

Set specific disk usage limits for a user (e.g., devops):

xfs_quota -x -c 'limit bsoft=2G bhard=3G devops' /

6. Verify Quota Configuration

Check the quota status for all users:

xfs_quota -x -c 'report' /

---

Automating the Process with Ansible

Update your Ansible playbook to automate the configuration of quotas on XFS file systems.

Example Playbook:

- name: Configure user quotas on XFS
  hosts: all
  become: yes
  tasks:
    - name: Ensure quota package is installed
      apt:
        name: quota
        state: present

- name: Update fstab for quota support lineinfile: path: /etc/fstab regexp: '^UUID=1f46e518-142f-4d88-ae7f-cf401c9e7dd0' line: 'UUID=1f46e518-142f-4d88-ae7f-cf401c9e7dd0 / xfs defaults,usrquota,grpquota 0 0' backrefs: yes

- name: Remount root file system with quota options command: mount -o remount /

- name: Enable quotas command: xfs_quota -x -c 'quota enable' /

- name: Set quota limits for devops user command: xfs_quota -x -c 'limit bsoft=2G bhard=3G devops' /

---

Testing the Playbook

Run the playbook to apply the configuration:

ansible-playbook configure-xfs-quotas.yml

---

Conclusion

Configuring user quotas on XFS file systems requires enabling specific mount options and initializing quota management. By incorporating these steps into your Ansible playbooks, you can automate the process and avoid quota-related errors, ensuring efficient disk usage management across your infrastructure.

See also: Troubleshooting: Configure User Quotas on Ansible Managed Systems

Related Articles

become directives in Ansible

Category: installation

Browse all Ansible tutorials · AnsiblePilot Home