Private
Public Access
2
0

Add NFS server/clients for share Wordpress

This commit is contained in:
2026-01-19 16:07:13 +03:00
parent 3d9fe37983
commit afa115e17a
11 changed files with 131 additions and 1 deletions

View File

@@ -0,0 +1,8 @@
# Required
nfs_client_mounts: []
# - mount_point: <string>
# server: <string>
# options: <string> (default "rw,sync,hard")
# owner: <int>
# group: <int>
# mode: <string> (default "0750")

View File

@@ -0,0 +1,23 @@
- name: Installation de NFS Common
ansible.builtin.apt:
name:
- "nfs-common"
- name: Création des points de montage
loop: "{{ nfs_client_mounts }}"
ansible.builtin.file:
path: "{{ item.mount_point }}"
state: "directory"
owner: "{{ item.owner }}"
group: "{{ item.group }}"
mode: "{{ item.mode | default('0750') }}"
- name: Mount filesystems
loop: "{{ nfs_client_mounts }}"
ansible.posix.mount:
path: "{{ item.mount_point }}"
src: "{{ item.server }}"
fstype: "nfs4"
opts: "{{ item.options | default('rw,sync,hard') }}"
state: "mounted"
boot: true

View File

@@ -0,0 +1,9 @@
# Required
nfs_server_exports: []
# - path: <string>
# owner: <int>
# group: <int>
# mode: <string> (default "0750")
# clients:
# - address: <string>
# options: <string> (default "ro")

View File

@@ -0,0 +1,5 @@
- name: Restart NFS-Server
ansible.builtin.service:
name: "nfs-kernel-server"
enabled: true
state: "restarted"

View File

@@ -0,0 +1,36 @@
- name: Installation du serveur NFS
ansible.builtin.apt:
name:
- "nfs-kernel-server"
notify:
- "Restart NFS-Server"
- name: Activation de NFS 4
ansible.builtin.lineinfile:
dest: "/etc/nfs.conf"
regex: "{{ item.regex }}"
line: "{{ item.line }}"
loop:
- regex: "vers3=y"
line: "vers3=n"
- regex: "vers4=y"
line: "vers4=y"
notify:
- "Restart NFS-Server"
- name: Création des répertoires exportés
loop: "{{ nfs_server_exports }}"
ansible.builtin.file:
path: "{{ item.path }}"
state: "directory"
owner: "{{ item.owner }}"
group: "{{ item.group }}"
mode: "{{ item.mode | default('750') }}"
- name: Copie du fichier exports
ansible.builtin.template:
src: "templates/exports"
dest: "/etc/exports"
mode: "0644"
notify:
- "Restart NFS-Server"

View File

@@ -0,0 +1,3 @@
{% for export in nfs_server_exports %}
{{ export.path }}{% for c in export.clients %} {{ c.address }}({{ c.options | default ("ro") }}){% endfor %}
{% endfor %}

View File

@@ -21,3 +21,4 @@ wordpress_db_charset: "utf8mb4"
# Optionnal
wordpress_import_ocdi_indexes: []
wordpress_create_master: null

View File

@@ -12,6 +12,7 @@
- "zip"
- name: Installation de wp-cli
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
ansible.builtin.get_url:
url: "https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar"
dest: "/usr/local/bin/wp"
@@ -37,6 +38,7 @@
mode: "0750"
- name: Installation de Wordpress
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
become: true
become_user: "{{ wordpress_user }}"
ansible.builtin.command:
@@ -46,6 +48,7 @@
# TODO: https://make.wordpress.org/cli/handbook/references/config/#config-files
- name: Configuration de Wordpress
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
become: true
become_user: "{{ wordpress_user }}"
ansible.builtin.shell:
@@ -78,9 +81,9 @@
- "Flush Wordpress"
- name: Create Wordpress database tables
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
become: true
become_user: "{{ wordpress_user }}"
run_once: true
ansible.builtin.command:
chdir: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}"
cmd: >
@@ -99,6 +102,7 @@
- "Flush Wordpress"
- name: Installation des thèmes Wordpress
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
become: true
become_user: "{{ wordpress_user }}"
loop: "{{ wordpress_themes }}"
@@ -112,6 +116,7 @@
- "Flush Wordpress"
- name: Activation du thème Wordpress
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
become: true
become_user: "{{ wordpress_user }}"
ansible.builtin.command:
@@ -123,6 +128,7 @@
- "Flush Wordpress"
- name: Installation des plugins wordpress-importer et one-click-demo-import
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
vars:
wordpress_plugins_to_install:
- "wordpress-importer"
@@ -130,6 +136,7 @@
ansible.builtin.include_tasks: "install_plugins.yml"
- name: Importation des plugins OCDI
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
become: true
become_user: "{{ wordpress_user }}"
loop: "{{ wordpress_import_ocdi_indexes }}"
@@ -147,11 +154,13 @@
- "Flush Wordpress"
- name: Installation des plugins Wordpress
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
vars:
wordpress_plugins_to_install: "{{ wordpress_plugins }}"
ansible.builtin.include_tasks: "install_plugins.yml"
- name: Création du répertoire cache de Wordpress
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
ansible.builtin.file:
path: "/var/www/{{ wordpress_user }}/{{ wordpress_site }}/wp-content/cache"
state: "directory"
@@ -160,6 +169,7 @@
mode: "0750"
- name: Apply permissions
when: "wordpress_create_master != None and wordpress_create_master == ansible_hostname"
loop:
- "uploads"
- "cache"