diff --git a/roles/proxmox/tasks/freenas.yml b/roles/proxmox/tasks/freenas.yml index 5c9e285..7638fba 100644 --- a/roles/proxmox/tasks/freenas.yml +++ b/roles/proxmox/tasks/freenas.yml @@ -20,7 +20,7 @@ delegate_to: localhost - name: Include Git Task to Clone Freenas Repo - ansible.builtin.import_role: + ansible.builtin.include_role: name: aybarsm.helper.misc tasks_from: git.yml vars: @@ -32,37 +32,42 @@ delegate_to: "{{ freenas_delegate }}" when: proxmox__freenas__temp_dir.path is defined - - name: Include File Mgr Role to Apply Changes - ansible.builtin.import_role: - name: aybarsm.helper.misc - tasks_from: git.yml + - name: Include File Manager Role to Apply Changes + ansible.builtin.include_role: + name: aybarsm.helper.file_mgr vars: file_mgr__role_enabled: true + file_mgr__no_log: false file_mgr__use_only: ['host'] file_mgr__host: - entry__type: patch src: "{{ proxmox__freenas__temp_dir.path }}/pve-manager/js/pvemanagerlib.js.patch" - dest: /usr/share/pve-manager/js/pvemanagerlib.js + # dest: /usr/share/pve-manager/js/pvemanagerlib.js + dest: /root/pve_freenas/pvemanagerlib.js + backup: true remote_src: "{{ freenas_remote_src }}" entry__handlers: restart_pve_services - entry__type: patch - src: "{{ proxmox__freenas__temp_dir.path }}/pve-manager/js/pvemanagerlib.js.patch" - dest: /usr/share/pve-manager/js/pvemanagerlib.js - remote_src: "{{ freenas_remote_src }}" - entry__handlers: restart_pve_services - - entry__type: patch - src: "{{ proxmox__freenas__temp_dir.path }}/pve-manager/js/pvemanagerlib.js.patch" - dest: /usr/share/pve-manager/js/pvemanagerlib.js + src: "{{ proxmox__freenas__temp_dir.path }}/perl5/PVE/Storage/ZFSPlugin.pm.patch" + dest: /root/pve_freenas/ZFSasdsadsaPlugin.pm + # dest: /root/pve_freenas/ZFSPlugin.pm + # dest: /usr/share/perl5/PVE/Storage/ZFSPlugin.pm + backup: true remote_src: "{{ freenas_remote_src }}" entry__handlers: restart_pve_services - entry__type: patch - src: "{{ proxmox__freenas__temp_dir.path }}/pve-manager/js/pvemanagerlib.js.patch" - dest: /usr/share/pve-manager/js/pvemanagerlib.js + src: "{{ proxmox__freenas__temp_dir.path }}/pve-docs/api-viewer/apidoc.js.patch" + # dest: /usr/share/pve-docs/api-viewer/apidoc.js + dest: /root/pve_freenas/apidoc.js + backup: true remote_src: "{{ freenas_remote_src }}" entry__handlers: restart_pve_services - entry__type: copy src: "{{ proxmox__freenas__temp_dir.path }}/perl5/PVE/Storage/LunCmd/FreeNAS.pm" - dest: /usr/share/perl5/PVE/Storage/LunCmd/FreeNAS.pm + # dest: /usr/share/perl5/PVE/Storage/LunCmd/FreeNAS.pm + dest: /root/pve_freenas/FreeNAS.pm + backup: true + remote_src: "{{ freenas_remote_src }}" entry__handlers: restart_pve_services - entry__type: handlers name: restart_pve_services @@ -70,11 +75,25 @@ handlers: "{{ {'name': ['pvedaemon', 'pveproxy', 'pvestatd', 'pve-ha-lrm', 'pve-ha-crm']} | aybarsm.helper.to_list_of_dicts({'entry__type': 'service', 'state': 'restarted'}) }}" register: proxmox__freenas__patch - delegate_to: "{{ inventory_hostname if proxmox__purposes.freenas.params.remote_src | default(true) else 'localhost' }}" when: proxmox__freenas__temp_dir.path is defined + rescue: + - name: Restate Backup Files on Error + ansible.builtin.file: + src: "{{ item.entry__task.backup_file }}" + dest: "{{ item.entry__task.dest }}" + loop: "{{ backup_files }}" + vars: + backup_files: "{{ file_mgr__items | selectattr('entry__task.backup_file', 'defined') }}" + when: backup_files | length > 0 + register: proxmox__freenas__restore + always: - name: Remove Temp Directory ansible.builtin.file: + path: "{{ proxmox__freenas__temp_dir.path }}" + state: absent + delegate_to: "{{ freenas_delegate }}" + when: proxmox__freenas__temp_dir.path is defined diff --git a/roles/proxmox/tasks/main.yml b/roles/proxmox/tasks/main.yml index fedf0e1..36bf4f5 100644 --- a/roles/proxmox/tasks/main.yml +++ b/roles/proxmox/tasks/main.yml @@ -24,9 +24,9 @@ # - proxmox__role_enabled # - proxmox__remove_subscription_warning | bool -- name: Include Truenas Tasks +- name: Include Freenas Tasks ansible.builtin.include_tasks: - file: "{{ proxmox__purposes.truenas.params.task_file }}" + file: "{{ proxmox__purposes.freenas.params.task_file }}" when: - proxmox__role_enabled - - proxmox__use_truenas \ No newline at end of file + - proxmox__all | selectattr('entry__type', 'eq', 'purpose') | selectattr('name', 'eq', 'freenas') | length > 0 \ No newline at end of file