Files
2026-02-19 16:52:43 +03:00

76 lines
1.9 KiB
YAML

---
- name: Check files
loop:
- /etc/projects
- /etc/projid
ansible.builtin.stat:
path: "{{ item }}"
register: xfs_project_quotas_proj_files
- name: Create missing files
loop: "{{ xfs_project_quotas_proj_files.results }}"
when: not item.stat.exists
ansible.builtin.file:
path: "{{ item.invocation.module_args.path }}"
state: touch
owner: root
group: root
mode: "0644"
- name: "Quotas | Ensure xfsprogs package is installed"
ansible.builtin.apt:
name: xfsprogs
state: present
update_cache: true
cache_valid_time: 3600
- name: "Quotas | Ensure all /etc/projects entries exist"
loop: "{{ projects }}"
ansible.builtin.lineinfile:
path: /etc/projects
state: present
backup: true
regexp: "^{{ item.id }}:"
line: "{{ item.id }}:{{ item.path }}"
- name: "Quotas | Ensure all /etc/projects entries exist"
loop: "{{ projects }}"
ansible.builtin.lineinfile:
path: /etc/projid
state: present
backup: true
regexp: "^{{ item.name }}:"
line: "{{ item.name }}:{{ item.id }}"
- name: "Quotas | Ensure all project paths exist"
loop: "{{ projects }}"
ansible.builtin.file:
path: "{{ item.path }}"
state: directory
owner: "{{ item.owner }}"
group: "{{ item.group }}"
mode: "{{ item.mode }}"
- name: "Quotas | Initialize project quotas"
changed_when: false
loop: "{{ projects }}"
ansible.builtin.command:
cmd: >-
xfs_quota
-x
-c
'project -s {{ item.name }}'
{{ storage_mountpoint }}
- name: "Quotas | Apply quota limits"
loop: "{{ projects }}"
community.general.xfs_quota:
type: project
name: "{{ item.name }}"
mountpoint: "{{ storage_mountpoint }}"
bsoft: "{{ item.bsoft | default('100G', false) }}"
bhard: "{{ item.bhard | default('100G', false) }}"
isoft: "{{ item.isoft | default(0, false) }}"
ihard: "{{ item.ihard | default(0, false) }}"
state: present