Forráskód Böngészése

add auto mounting to mergerfs role

Blaine Story 3 éve
szülő
commit
bab53cbd07

+ 44 - 0
roles/mergerfs/tasks/disks.yml

@@ -0,0 +1,44 @@
+---
+- name: Create mount points
+  file:
+    path: "{{ item.path }}"
+    state: directory
+    owner: "{{ item.owner | default('root') }}"
+    group: "{{ item.group | default('root') }}"
+    mode: '0775'
+  with_items:
+    - "{{ mergerfs_disks }}"
+    - "{{ fstab_mergerfs }}"
+  loop_control:
+    label: "{{ item.path }}"
+  when:
+    - mergerfs_disks is defined
+  
+
+- name: Mount disks
+  mount:
+    path: "{{ item.path }}"
+    src: "{{ item.disk }}"
+    fstype: "{{ item.fs | default('xfs') }}"
+    opts: "{{ item.opts | default('defaults') }}"
+    state: mounted
+  with_items:
+    - "{{ mergerfs_disks }}"
+  loop_control:
+    label: "{{ item.disk }} -> {{ item.path }}"
+  when:
+    - mergerfs_disks is defined
+
+- name: Mount mergerfs array
+  mount:
+    name: "{{ item.path }}"
+    src: "{{ item.source }}"
+    opts: "{{ item.opts | join(',') }}"
+    fstype: "{{ item.fs | default('fuse.mergerfs') }}"
+    state: mounted
+  with_items:
+    - "{{ fstab_mergerfs }}"
+  loop_control:
+    label: "{{ item.path }}"
+  when:
+    - fstab_mergerfs is defined

+ 68 - 0
roles/mergerfs/tasks/installation.yml

@@ -0,0 +1,68 @@
+---
+- name: Install git
+  yum:
+    name: git-core
+    state: installed
+
+- name: Clone mergerfs repo
+  shell:
+    cmd: git clone http://github.com/trapexit/mergerfs.git
+    chdir: /root
+    creates: /root/mergerfs
+
+- name: Query latest mergerfs version
+  shell:
+    cmd: git tag | sort -V | tail -1
+    chdir: /root/mergerfs
+  register: mergerfs_version
+  changed_when: false
+
+- name: Set mergerfs RPM path
+  set_fact:
+    mergerfs_rpm: /root/mergerfs/rpmbuild/RPMS/x86_64/mergerfs-{{ mergerfs_version.stdout }}-1.{{ 'el' if ansible_distribution == 'CentOS' else 'fc' }}{{ ansible_distribution_major_version }}.{{ ansible_architecture }}.rpm
+
+- name: Download and build mergerfs
+  shell:
+    cmd: >
+         git checkout {{ mergerfs_version.stdout }} &&
+         tools/install-build-pkgs &&
+         make rpm
+    chdir: /root/mergerfs
+    creates: "{{ mergerfs_rpm }}"
+
+- name: Stat mergerfs build folder
+  find:
+    path: /root/mergerfs/rpmbuild/RPMS/x86_64
+  register: mergerfs_build_folder
+
+- name: Install mergerfs
+  yum:
+    name: "{{ mergerfs_build_folder.files[0].path }}"
+    state: installed
+    disable_gpg_check: yes
+  when:
+    - mergerfs_build_folder.files[0].path is defined
+
+         
+- name: Install mergerfs-tools prereqs
+  package:
+    name:
+      - python3
+      - rsync
+    state: present
+
+- name: Install mergerfs-tools
+  copy:
+    src: "{{ item }}"
+    dest: /usr/local/bin/{{ item }}
+    owner: root
+    group: root
+    mode: '0755'
+  loop:
+    - mergerfs.balance
+    - mergerfs.consolidate
+    - mergerfs.ctl
+    - mergerfs.dedup
+    - mergerfs.dup
+    - mergerfs.fsck
+    - mergerfs.mktrash

+ 2 - 66
roles/mergerfs/tasks/main.yml

@@ -1,68 +1,4 @@
 ---
-- name: Install git
-  yum:
-    name: git-core
-    state: installed
+- include_tasks: installation.yml
 
-- name: Clone mergerfs repo
-  shell:
-    cmd: git clone http://github.com/trapexit/mergerfs.git
-    chdir: /root
-    creates: /root/mergerfs
-
-- name: Query latest mergerfs version
-  shell:
-    cmd: git tag | sort -V | tail -1
-    chdir: /root/mergerfs
-  register: mergerfs_version
-  changed_when: false
-
-- name: Set mergerfs RPM path
-  set_fact:
-    mergerfs_rpm: /root/mergerfs/rpmbuild/RPMS/x86_64/mergerfs-{{ mergerfs_version.stdout }}-1.{{ 'el' if ansible_distribution == 'CentOS' else 'fc' }}{{ ansible_distribution_major_version }}.{{ ansible_architecture }}.rpm
-
-- name: Download and build mergerfs
-  shell:
-    cmd: >
-         git checkout {{ mergerfs_version.stdout }} &&
-         tools/install-build-pkgs &&
-         make rpm
-    chdir: /root/mergerfs
-    creates: "{{ mergerfs_rpm }}"
-
-- name: Stat mergerfs build folder
-  find:
-    path: /root/mergerfs/rpmbuild/RPMS/x86_64
-  register: mergerfs_build_folder
-
-- name: Install mergerfs
-  yum:
-    name: "{{ mergerfs_build_folder.files[0].path }}"
-    state: installed
-    disable_gpg_check: yes
-  when:
-    - mergerfs_build_folder.files[0].path is defined
-
-         
-- name: Install mergerfs-tools prereqs
-  package:
-    name:
-      - python3
-      - rsync
-    state: present
-
-- name: Install mergerfs-tools
-  copy:
-    src: "{{ item }}"
-    dest: /usr/local/bin/{{ item }}
-    owner: root
-    group: root
-    mode: '0755'
-  loop:
-    - mergerfs.balance
-    - mergerfs.consolidate
-    - mergerfs.ctl
-    - mergerfs.dedup
-    - mergerfs.dup
-    - mergerfs.fsck
-    - mergerfs.mktrash
+- include_tasks: disks.yml