diff --git a/README.md b/README.md index 379dc38e8786ecec0929065601fb1387c8eb3cbd..19a7a6e14fb07cb630ac8bdc8683ae1aa8576691 100644 --- a/README.md +++ b/README.md @@ -42,28 +42,7 @@ This role can be simply executed like follows (gathering facts is not necessary become: true roles: - { role: backup_server_conf, tags: backup } - vars: - - { swift_cloud_authurl: "https://auth.cloud.ovh.net/v3/" } - - { swift_cloud_authversion: 3 } - - { swift_cloud_tenantid: "12f1e" } - - { swift_cloud_tenantname: "2214534534" } - - { swift_cloud_username: "testuser" } - - { swift_cloud_password: "testpassword" } - - { swift_cloud_regionname: GRA } - - { swift_odoo_authurl: "https://auth.cloud.ovh.net/v3/" } - - { swift_odoo_authversion: 3 } - - { swift_odoo_tenantid: "132e1fa" } - - { swift_odoo_tenantname: "12312534534" } - - { swift_odoo_username: "testuser" } - - { swift_odoo_password: "testpassword" } - - { swift_odoo_regionname: "GRA" } - - { swift_odoo2_authurl: "https://auth.cloud.ovh.net/v3/" } - - { swift_odoo2_authversion: 3 } - - { swift_odoo2_tenantid: "12323534ab" } - - { swift_odoo2_tenantname: "123124235345" } - - { swift_odoo2_username: "testuser" } - - { swift_odoo2_password: "testpassword" } - - { swift_odoo2_regionname: "DE" } + License ------- diff --git a/defaults/main.yml b/defaults/main.yml index 2fe36e8957f972bd148c49c9b9a525d94ee80b2b..dcbc6014ccf67fec9201eeece02235ec991a218e 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,26 +1,36 @@ --- ## Parameters for listing backups stored on Object Storage - for Cloud -swift_cloud_authurl: https://auth.cloud.ovh.net/v3/ -swift_cloud_authversion: 3 -swift_cloud_tenantid: "12f1e" -swift_cloud_tenantname: "2214534534" -swift_cloud_username: "testuser" -swift_cloud_password: "testpassword" -swift_cloud_regionname: GRA +swift_cloud_accounts: + 1: + authurl: https://auth.cloud.ovh.net/v3/ + authversion: 3 + tenantid: "12f1e" + tenantname: "2214534534" + regionname: GRA +swift_cloud_credentials: + 1: + username: "testuser" + password: "testpassword" ## Parameters for listing backups stored on Object Storage - for Odoo -swift_odoo_authurl: https://auth.cloud.ovh.net/v3/ -swift_odoo_authversion: 3 -swift_odoo_tenantid: "132e1fa" -swift_odoo_tenantname: "12312534534" -swift_odoo_username: "testuser" -swift_odoo_password: "testpassword" -swift_odoo_regionname: "GRA" -## Parameters for listing backups stored on Object Storage - for Odoo (2nd backup) -swift_odoo2_authurl: https://auth.cloud.ovh.net/v3/ -swift_odoo2_authversion: 3 -swift_odoo2_tenantid: "12323534ab" -swift_odoo2_tenantname: "123124235345" -swift_odoo2_username: "testuser" -swift_odoo2_password: "testpassword" -swift_odoo2_regionname: "DE" +swift_odoo_accounts: + 1: + authurl: https://auth.cloud.ovh.net/v3/ + authversion: 3 + tenantid: "132e1fa" + tenantname: "12312534534" + regionname: "GRA" + 2: + authurl: https://auth.cloud.ovh.net/v3/ + authversion: 3 + tenantid: "12323534ab" + tenantname: "123124235345" + regionname: "DE" + +swift_odoo_credentials: + 1: + username: "testuser" + password: "testpassword" + 2: + username: "testuser" + password: "testpassword" diff --git a/tasks/main.yml b/tasks/main.yml index 205ed2b67292a1390d18246d8444c20d2050e86c..d5d64cd4eff6cae2b8ce4a2e2086a7fd7a6e4013 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -93,7 +93,7 @@ - name: Copy OpenStack Fact Collection scripts on server ansible.builtin.template: - src: "{{ item.script }}.j2" + src: "{{ item.template }}" dest: /root/{{ item.script }} owner: root group: root diff --git a/templates/retrieve_openstack_cloud_facts.sh.j2 b/templates/retrieve_openstack_cloud_facts.sh.j2 deleted file mode 100644 index f394523627241422b80fc4289e599ff60e4c81d5..0000000000000000000000000000000000000000 --- a/templates/retrieve_openstack_cloud_facts.sh.j2 +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -# Copyright © 2019 Le Filament (<http://www.le-filament.com>) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - - -# Configure variables -export OS_AUTH_URL="{{ swift_cloud_authurl }}" -export OS_IDENTITY_API_VERSION={{ swift_cloud_authversion }} -export OS_TENANT_ID="{{ swift_cloud_tenantid }}" -export OS_TENANT_NAME="{{ swift_cloud_tenantname }}" -export OS_USERNAME="{{ swift_cloud_username }}" -export OS_PASSWORD="{{ swift_cloud_password }}" -export OS_REGION_NAME="{{ swift_cloud_regionname }}" - -TODAY=`date --utc +%F` - -for container in `/usr/local/bin/swift list` -do - [[ "$container" == *'_segments' ]] && continue - file="/backup/cloud/$container.$TODAY" - printf "DATE = $TODAY" > $file - printf "\n\n-- STATS --\n" >> $file - /usr/local/bin/swift stat --lh $container >> $file - printf "\n\n-- LIST FILES --\n" >> $file - /usr/local/bin/swift list --lh $container >> $file - cp $file /backup/cloud/$container.latest - chmod 644 $file /backup/cloud/$container.latest -done diff --git a/templates/retrieve_openstack_facts.sh.j2 b/templates/retrieve_openstack_facts.sh.j2 new file mode 100644 index 0000000000000000000000000000000000000000..21142208c2fc2e07aa5bda3cb8c09ee5ba5c9d6c --- /dev/null +++ b/templates/retrieve_openstack_facts.sh.j2 @@ -0,0 +1,31 @@ +#!/bin/bash + +# Copyright © 2019 Le Filament (<http://www.le-filament.com>) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + + +# Configure variables +export OS_AUTH_URL="{{ item.account.authurl }}" +export OS_IDENTITY_API_VERSION={{ item.account.authversion }} +export OS_TENANT_ID="{{ item.account.tenantid }}" +export OS_TENANT_NAME="{{ item.account.tenantname }}" +export OS_USERNAME="{{ item.credential.username }}" +export OS_PASSWORD="{{ item.credential.password }}" +export OS_REGION_NAME="{{ item.account.regionname }}" + +TODAY=`date --utc +%F` + +for container in `/usr/local/bin/swift list` +do +{% if item.type == "cloud" %} + [[ "$container" == *'_segments' ]] && continue +{% endif %} + file="/backup/{{ item.type }}/$container.$TODAY" + printf "DATE = $TODAY" > $file + printf "\n\n-- STATS --\n" >> $file + /usr/local/bin/swift stat --lh $container >> $file + printf "\n\n-- LIST FILES --\n" >> $file + /usr/local/bin/swift list --lh $container >> $file + cp $file /backup/{{ item.type }}/$container.latest + chmod 644 $file /backup/{{ item.type }}/$container.latest +done diff --git a/templates/retrieve_openstack_odoo2_facts.sh.j2 b/templates/retrieve_openstack_odoo2_facts.sh.j2 deleted file mode 100644 index 4d2ea8e92e73825dd199f9b5432bbd8794fcb7f5..0000000000000000000000000000000000000000 --- a/templates/retrieve_openstack_odoo2_facts.sh.j2 +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -# Copyright © 2019 Le Filament (<http://www.le-filament.com>) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - - -# Configure variables -export OS_AUTH_URL="{{ swift_odoo2_authurl }}" -export OS_IDENTITY_API_VERSION={{ swift_odoo2_authversion }} -export OS_TENANT_ID="{{ swift_odoo2_tenantid }}" -export OS_TENANT_NAME="{{ swift_odoo2_tenantname }}" -export OS_USERNAME="{{ swift_odoo2_username }}" -export OS_PASSWORD="{{ swift_odoo2_password }}" -export OS_REGION_NAME="{{ swift_odoo2_regionname }}" - -TODAY=`date +%F` - -for container in `/usr/local/bin/swift list` -do - file="/backup/odoo2/$container.$TODAY" - printf "DATE = $TODAY" > $file - printf "\n\n-- STATS --\n" >> $file - /usr/local/bin/swift stat --lh $container >> $file - printf "\n\n-- LIST FILES --\n" >> $file - /usr/local/bin/swift list --lh $container >> $file - cp $file /backup/odoo2/$container.latest - chmod 644 $file /backup/odoo2/$container.latest -done diff --git a/templates/retrieve_openstack_odoo_facts.sh.j2 b/templates/retrieve_openstack_odoo_facts.sh.j2 deleted file mode 100644 index f1614457a9ef2d62e286e1f968b2644c91b78363..0000000000000000000000000000000000000000 --- a/templates/retrieve_openstack_odoo_facts.sh.j2 +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -# Copyright © 2019 Le Filament (<http://www.le-filament.com>) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - - -# Configure variables -export OS_AUTH_URL="{{ swift_odoo_authurl }}" -export OS_IDENTITY_API_VERSION={{ swift_odoo_authversion }} -export OS_TENANT_ID="{{ swift_odoo_tenantid }}" -export OS_TENANT_NAME="{{ swift_odoo_tenantname }}" -export OS_USERNAME="{{ swift_odoo_username }}" -export OS_PASSWORD="{{ swift_odoo_password }}" -export OS_REGION_NAME="{{ swift_odoo_regionname }}" - -TODAY=`date +%F` - -for container in `/usr/local/bin/swift list` -do - file="/backup/odoo/$container.$TODAY" - printf "DATE = $TODAY" > $file - printf "\n\n-- STATS --\n" >> $file - /usr/local/bin/swift stat --lh $container >> $file - printf "\n\n-- LIST FILES --\n" >> $file - /usr/local/bin/swift list --lh $container >> $file - cp $file /backup/odoo/$container.latest - chmod 644 $file /backup/odoo/$container.latest -done diff --git a/vars/main.yml b/vars/main.yml index bb3c6042ede52c7d705bdd004e61f515329e561d..6a487c7316002e730247c6e49e56bf4b4442118c 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -11,18 +11,31 @@ swift_pip_packages: collect_backups: - name: "check openstack cloud facts" + template: retrieve_openstack_facts.sh.j2 script: retrieve_openstack_cloud_facts.sh + type: "cloud" + account: "{{ swift_cloud_accounts.1 }}" + credential: "{{ swift_cloud_credentials.1 }}" hour: 4 minute: 30 - name: "check openstack odoo facts" + template: retrieve_openstack_facts.sh.j2 script: retrieve_openstack_odoo_facts.sh + type: "odoo" + account: "{{ swift_odoo_accounts.1 }}" + credential: "{{ swift_odoo_credentials.1 }}" hour: 4 minute: 45 - name: "check openstack odoo2 facts" + template: retrieve_openstack_facts.sh.j2 script: retrieve_openstack_odoo2_facts.sh + type: "odoo2" + account: "{{ swift_odoo_accounts.2 }}" + credential: "{{ swift_odoo_credentials.2 }}" hour: 2 minute: 0 - name: "move versioned files" + template: move_versioned_files.sh.j2 script: move_versioned_files.sh hour: 7 minute: 0