File ardana-freezer-8.0+git.1586539529.b7d295f.obscpio of Package ardana-freezer
07070100000000000081A40000000000000000000000015E90AC0900000083000000000000000000000000000000000000003500000000ardana-freezer-8.0+git.1586539529.b7d295f/.gitreview[gerrit]
host=gerrit.suse.provo.cloud
port=29418
project=ardana/freezer-ansible.git
defaultremote=ardana
defaultbranch=stable/pike
07070100000001000081A40000000000000000000000015E90AC090000000C000000000000000000000000000000000000003800000000ardana-freezer-8.0+git.1586539529.b7d295f/.rsync-filter- ardana-ci
07070100000002000081A40000000000000000000000015E90AC090000279F000000000000000000000000000000000000003200000000ardana-freezer-8.0+git.1586539529.b7d295f/LICENSE
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
07070100000003000081A40000000000000000000000015E90AC0900000BFE000000000000000000000000000000000000003400000000ardana-freezer-8.0+git.1586539529.b7d295f/README.md
(c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
(c) Copyright 2017 SUSE LLC
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
**Freezer/BURA playbooks for Ardana**
===================
## Prerequisite
For now we assume the freezer-api role will always be installed on the same host
as the logging-server role (they share the elasticsearch database without a vip).
## Infra
The playbooks will deploy the freezer infrastructure:
- freezer-api
- freezer-agent and freezer-scheduler on nodes where backup should happen
## Roles
We provide four ansible roles:
- freezer-api
- freezer-agent
- freezer-post-configure (keystone and database configuration)
- freezer-jobs (backup and restore job managment)
## Auto backup
Backup of the following items will be automaticaly configured:
(Datas are backuped to swift every 12 to 48h)
Deployer node:
- /home/
- /etc/passwd
- /etc/shadow
- /etc/group
- /etc/ssh/
- /etc/group
- /var/lib/cobbler/
- /srv/www/cobbler/
Mysql nodes:
- mysql database
Swift Proxy node:
- /etc/swiftlm/builder_dir
It is possible to disable the creation of the backup and restore jobs by setting the following variables to false:
freezer_create_backup_jobs
freezer_create_restore_jobs
For example:
ansible-playbook -i hosts/verb_hosts site.yml -e "{\"freezer_create_backup_jobs\": false, \"freezer_create_restore_jobs\": false}"
Notice that you must use the JSON format for these variables. This ensures that they are interpreted
by Ansible as Booleans and not as Strings. Please see [Ansible Documentation on command line variables](http://docs.ansible.com/ansible/playbooks_variables.html#passing-variables-on-the-command-line) for more details on Boolean versus String interpretation.
## Serialization
By default we use some serialization in two steps of the deployement:
- During the start of all freezer-scheduler. As the it is polling the
freezer-api and keystone every 60 sec, this will avoid a big number of
scheduler to do query at the same time.
- During the upload of backup and restore jobs, to avoid DDoS-ing the
infrastrucure if installing a large number of compute.
The default value of the serialization is 3, which means those steps will
execute on three nodes in parallel (instead of all of them).
You can tune it by setting the freezer_serialization parameter like this:
> ansible-playbook -i hosts/verb_hosts site.yml -e freezer_serialization=10
This serialization can be turned off completly byt setting it to 100%
> ansible-playbook -i hosts/verb_hosts site.yml -e "freezer_serialization=100%"
07070100000004000081A40000000000000000000000015E90AC09000005E3000000000000000000000000000000000000004700000000ardana-freezer-8.0+git.1586539529.b7d295f/_deployer_restore_helper.yml#
# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- hosts: localhost
connection: local
vars_prompt:
- name: old_deployer_hostname
prompt: |
What was the hostname of the old deployer?
Most probably something like <cloudname>-ccp-c0-m1-mgmt
Or <cloudname>-ccp-c1-m1-mgmt if it was running on the first controller.
confirm: yes
roles:
- freezer-agent
- freezer-jobs
tasks:
- include: roles/freezer-agent/tasks/install.yml
- name: freezer-agent | install | Activate the latest install
become: yes
install_package:
name: freezer_agent
service: freezer-agent
activate: act_on
version: "{{ freezer_agent_install_result.version }}"
when: freezer_agent_install_result is defined and
deployer_media_legacy_layout|bool
- include: roles/freezer-jobs/tasks/_deployer_restore_helper.yml
07070100000005000081A40000000000000000000000015E90AC0900000325000000000000000000000000000000000000004800000000ardana-freezer-8.0+git.1586539529.b7d295f/_freezer-schedule-restart.yml#
# (c) Copyright 2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
# Schedule a restart of all freezer services using ardana_notify_... variables
- hosts: all
tasks:
- include: roles/freezer-agent/tasks/_schedule_restart.yml
- include: roles/freezer-api/tasks/_schedule_restart.yml
07070100000006000081A40000000000000000000000015E90AC0900000977000000000000000000000000000000000000004300000000ardana-freezer-8.0+git.1586539529.b7d295f/_freezer_manage_jobs.yml#
# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- hosts: FRE-AGN
roles:
- freezer-jobs
tasks:
- include_vars: roles/freezer-jobs/defaults/activate.yml
- include: roles/freezer-jobs/tasks/_pre_manage_jobs.yml
when: freezer_create_backup_jobs or freezer_create_restore_jobs
- include: roles/freezer-jobs/tasks/_deploy_ssh_key.yml
serial: "{{ freezer_serialization | default(3) | int }}"
- hosts: FND-MDB:&FRE-AGN
roles:
- freezer-jobs
tasks:
- include: roles/freezer-jobs/tasks/_mysql_credentials.yml
when: freezer_create_backup_jobs and jobs['mysql']['enabled']
- include: roles/freezer-jobs/tasks/_manage_job.yml job_name=mysql
serial: "{{ freezer_serialization | default(3) | int }}"
- hosts: SWF-PRX[0]:&FRE-AGN
roles:
- freezer-jobs
tasks:
- include: roles/freezer-jobs/tasks/_manage_job.yml job_name=swift
- hosts: OPS-LM:&FRE-AGN
roles:
- freezer-jobs
tasks:
- name: freezer-jobs | manage_job | Get the hostname of the active Lifecycle Manager
local_action: command hostname
register: active_lifecycle_manager_hostname
run_once: true
- include: roles/freezer-jobs/tasks/_manage_job.yml job_name=deployer
when: ansible_hostname == active_lifecycle_manager_hostname.stdout
- hosts: FRE-AGN
roles:
- freezer-jobs
tasks:
- name: freezer-jobs | manage_job | Check for audit log directory presence
become: yes
stat:
path: "{{ FRE.audit.dir }}"
register: var_audit_presence_result
ignore_errors: true
- include: roles/freezer-jobs/tasks/_manage_job.yml job_name=audit
vars:
freezer_audit_dir: "{{ FRE.audit.dir }}"
when: var_audit_presence_result and var_audit_presence_result.stat.exists
serial: "{{ freezer_serialization | default(3) | int }}"
07070100000007000041ED0000000000000000000000045E90AC0900000000000000000000000000000000000000000000003400000000ardana-freezer-8.0+git.1586539529.b7d295f/ardana-ci07070100000008000041ED0000000000000000000000035E90AC0900000000000000000000000000000000000000000000003C00000000ardana-freezer-8.0+git.1586539529.b7d295f/ardana-ci/project07070100000009000041ED0000000000000000000000035E90AC0900000000000000000000000000000000000000000000004800000000ardana-freezer-8.0+git.1586539529.b7d295f/ardana-ci/project/input-model0707010000000A000041ED0000000000000000000000035E90AC0900000000000000000000000000000000000000000000004D00000000ardana-freezer-8.0+git.1586539529.b7d295f/ardana-ci/project/input-model/data0707010000000B000081A40000000000000000000000015E90AC09000007A0000000000000000000000000000000000000005F00000000ardana-freezer-8.0+git.1586539529.b7d295f/ardana-ci/project/input-model/data/control_plane.yml#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
product:
version: 2
control-planes:
- name: ccp
control-plane-prefix: ccp
region-name: region1
failure-zones:
- AZ1
- AZ2
- AZ3
common-service-components:
- lifecycle-manager-target
- monasca-agent
- freezer-agent
- logging-rotate
- logging-producer
clusters:
- name: cluster0
cluster-prefix: c0
server-role:
- SERVER1-ROLE
- SERVER2-ROLE
- SERVER3-ROLE
member-count: 3
allocation-policy: strict
service-components:
- lifecycle-manager
- openstack-client
- ntp-server
- ntp-client
- kafka
- zookeeper
- vertica
- monasca-api
- monasca-persister
- ntp-server
- openstack-client
- memcached
- mysql
- rabbitmq
- keystone-api
- keystone-client
- ip-cluster
- tempest
- logging-server
- swift-proxy
- swift-account
- swift-container
- swift-ring-builder
- swift-client
- swift-object
- freezer-api
0707010000000C000081A40000000000000000000000015E90AC0900000728000000000000000000000000000000000000005700000000ardana-freezer-8.0+git.1586539529.b7d295f/ardana-ci/project/input-model/data/disks.yml#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
product:
version: 2
disk-models:
- name: DISKS
volume-groups:
# The policy is not to consume 100% of the space of each volume group.
# 5% should be left free for snapshots and to allow for some flexibility.
# sda_root is a templated value to align with whatever partition is really used
# This value is checked in os config and replaced by the partition actually used
# on sda e.g. sda1 or sda5
- name: ardana-vg
physical-volumes:
- /dev/sda_root
logical-volumes:
- name: root
size: 75%
fstype: ext4
mount: /
- name: log
size: 15%
mount: /var/log
fstype: ext4
mkfs-opts: -O large_file
- name: crash
size: 2%
mount: /var/crash
fstype: ext4
mkfs-opts: -O large_file
device-groups:
- name: swift
devices:
- name: /dev/sdb
- name: /dev/sdc
- name: /dev/sdd
consumer:
name: swift
attrs:
rings:
- account
- container
- object-0
0707010000000D000081A40000000000000000000000015E90AC09000003B3000000000000000000000000000000000000005E00000000ardana-freezer-8.0+git.1586539529.b7d295f/ardana-ci/project/input-model/data/server_roles.yml#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
product:
version: 2
server-roles:
- name: SERVER1-ROLE
interface-model: NET-INTERFACES
disk-model: DISKS
- name: SERVER2-ROLE
interface-model: NET-INTERFACES
disk-model: DISKS
- name: SERVER3-ROLE
interface-model: NET-INTERFACES
disk-model: DISKS
0707010000000E000081A40000000000000000000000015E90AC09000005CF000000000000000000000000000000000000005900000000ardana-freezer-8.0+git.1586539529.b7d295f/ardana-ci/project/input-model/data/servers.yml#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
product:
version: 2
baremetal:
netmask: 255.255.255.0
subnet: 192.168.110.0
server-interface: eth2
servers:
- id: server1
ip-addr: 192.168.110.3
role: SERVER1-ROLE
server-group: AZ1
mac-addr: a4:93:0c:4f:7c:73
nic-mapping: VAGRANT
ilo-ip: 192.168.109.3
ilo-password: password
ilo-user: admin
- id: server2
ip-addr: 192.168.110.4
role: SERVER2-ROLE
server-group: AZ2
mac-addr: a4:93:0c:4f:7d:74
nic-mapping: VAGRANT
ilo-ip: 192.168.109.4
ilo-password: password
ilo-user: admin
- id: server3
ip-addr: 192.168.110.5
role: SERVER3-ROLE
server-group: AZ3
mac-addr: a4:93:0c:4f:7e:75
nic-mapping: VAGRANT
ilo-ip: 192.168.109.5
ilo-password: password
ilo-user: admin
0707010000000F000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000005300000000ardana-freezer-8.0+git.1586539529.b7d295f/ardana-ci/project/input-model/data/swift07070100000010000081A40000000000000000000000015E90AC0900000560000000000000000000000000000000000000005D00000000ardana-freezer-8.0+git.1586539529.b7d295f/ardana-ci/project/input-model/data/swift/rings.yml#
# (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
product:
version: 2
ring-specifications:
- region-name: region1
swift-zones:
- id: 1
server-groups:
- CLOUD
rings:
- name: account
display-name: Account Ring
min-part-hours: 16
partition-power: 12
replication-policy:
replica-count: 3
- name: container
display-name: Container Ring
min-part-hours: 16
partition-power: 12
replication-policy:
replica-count: 3
- name: object-0
display-name: General
default: no
min-part-hours: 16
partition-power: 12
replication-policy:
replica-count: 3
07070100000011000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000003A00000000ardana-freezer-8.0+git.1586539529.b7d295f/ardana-ci/tests07070100000012000081A40000000000000000000000015E90AC090000040B000000000000000000000000000000000000004900000000ardana-freezer-8.0+git.1586539529.b7d295f/ardana-ci/tests/test-plan.yaml#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: Test reconfigure
logfile: testsuite-reconfigure.log
prefix: reconfigure
playbooks:
- freezer-reconfigure.yml
- name: Validate Freezer status
exec:
- validate-freezer-status.bash
- name: Test stop / start of Freezer
logfile: stop-start.log
prefix: stop-start
playbooks:
- freezer-stop.yml
- freezer-start.yml
exec:
- validate-freezer-status.bash
07070100000013000081ED0000000000000000000000015E90AC090000036C000000000000000000000000000000000000005700000000ardana-freezer-8.0+git.1586539529.b7d295f/ardana-ci/tests/validate-freezer-status.bash#!/bin/bash
#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
test_fail(){
if [ $? -eq 0 ]
then
echo "Ok"
else
echo "Fail"
exit 1
fi
}
ansible-playbook -i hosts/verb_hosts freezer-status.yml
test_fail
source ~/backup.osrc
test_fail
freezer job-list
test_fail
07070100000014000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000003100000000ardana-freezer-8.0+git.1586539529.b7d295f/config07070100000015000081A40000000000000000000000015E90AC0900000479000000000000000000000000000000000000004600000000ardana-freezer-8.0+git.1586539529.b7d295f/config/freezer-symlinks.yml#
# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# The following relative symlinks are created under the
# my_cloud/config directory.
---
symlinks:
"freezer/activate_jobs.yml": "roles/freezer-jobs/defaults/activate.yml"
"freezer/jobs.yml": "roles/freezer-jobs/defaults/jobs.yml"
"freezer/ssh_credentials.yml": "roles/freezer-jobs/defaults/ssh_credentials.yml"
"freezer/api/freezer-api.conf.j2": "roles/freezer-api/templates/freezer-api.conf.j2"
"freezer/api/freezer-modwsgi.conf.j2": "roles/freezer-api/templates/freezer-modwsgi.conf.j2"
07070100000016000081A40000000000000000000000015E90AC0900000871000000000000000000000000000000000000003D00000000ardana-freezer-8.0+git.1586539529.b7d295f/freezer-deploy.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- hosts: FRE-API
roles:
- freezer-api
- freezer-post-configure
tasks:
- include: roles/freezer-api/tasks/install.yml
- include: roles/freezer-api/tasks/configure.yml
# This task should be set to run-once
- include: roles/freezer-post-configure/tasks/elasticsearch_mappings.yml
- hosts: FRE-API
roles:
- freezer-post-configure
# Those tasks should be set to run-once
tasks:
- include: roles/freezer-post-configure/tasks/keystone_conf.yml
ansible_python_interpreter: "{{ KEY_CLI.vars.keystone_client_python_interpreter }}"
- include: roles/freezer-post-configure/tasks/ardana_backup_env.yml
ansible_python_interpreter: "{{ KEY_CLI.vars.keystone_client_python_interpreter }}"
- hosts: FRE-API
roles:
- freezer-api
tasks:
- include: roles/freezer-api/tasks/start.yml
serial: 1
- hosts: FRE-API:&MON-AGN
roles:
- freezer-api
tasks:
- include: roles/freezer-api/tasks/monitor.yml
serial: 1
- hosts: FRE-AGN
roles:
- freezer-agent
tasks:
- include: roles/freezer-agent/tasks/install.yml
- include: roles/freezer-agent/tasks/configure.yml
- hosts: FRE-AGN
roles:
- freezer-agent
tasks:
- include: roles/freezer-agent/tasks/start.yml
serial: "{{ freezer_serialization | default(3) | int }}"
- hosts: FRE-AGN:&MON-AGN
roles:
- freezer-agent
tasks:
- include: roles/freezer-agent/tasks/monitor.yml
serial: "{{ freezer_serialization | default(3) | int }}"
- include: _freezer_manage_jobs.yml
07070100000017000081A40000000000000000000000015E90AC09000004D2000000000000000000000000000000000000005500000000ardana-freezer-8.0+git.1586539529.b7d295f/freezer-reconfigure-credentials-change.yml#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- hosts: FRE-API
roles:
- freezer-api
tasks:
- include_vars: roles/logging-common/defaults/main.yml
- include: roles/freezer-api/tasks/configure.yml
- hosts: FRE-AGN
roles:
- freezer-agent
tasks:
- include: roles/freezer-agent/tasks/configure.yml
- hosts: FRE-API
become: yes
roles:
- freezer-post-configure
# This task should be set to run-once
tasks:
- include: roles/freezer-post-configure/tasks/keystone_change_pwd.yml
ansible_python_interpreter: "{{ KEY_CLI.vars.keystone_client_python_interpreter }}"
- include: freezer-start.yml
07070100000018000081A40000000000000000000000015E90AC0900000844000000000000000000000000000000000000004200000000ardana-freezer-8.0+git.1586539529.b7d295f/freezer-reconfigure.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- hosts: FRE-API
roles:
- freezer-api
- freezer-post-configure
tasks:
- include_vars: roles/logging-common/defaults/main.yml
- include: roles/freezer-api/tasks/configure.yml
# This task should be set to run-once
- include: roles/freezer-post-configure/tasks/elasticsearch_mappings.yml
- hosts: FRE-API
roles:
- freezer-post-configure
# Those tasks should be set to run-once
tasks:
- include: roles/freezer-post-configure/tasks/keystone_conf.yml
ansible_python_interpreter: "{{ KEY_CLI.vars.keystone_client_python_interpreter }}"
- include: roles/freezer-post-configure/tasks/ardana_backup_env.yml
ansible_python_interpreter: "{{ KEY_CLI.vars.keystone_client_python_interpreter }}"
- hosts: FRE-API
roles:
- freezer-api
tasks:
- include: roles/freezer-api/tasks/start.yml
serial: 1
- hosts: FRE-API:&MON-AGN
roles:
- freezer-api
tasks:
- include: roles/freezer-api/tasks/monitor.yml
serial: 1
- hosts: FRE-AGN
roles:
- freezer-agent
tasks:
- include: roles/freezer-agent/tasks/configure.yml
- hosts: FRE-AGN
roles:
- freezer-agent
tasks:
- include: roles/freezer-agent/tasks/start.yml
serial: "{{ freezer_serialization | default(3) | int }}"
- hosts: FRE-AGN:&MON-API
roles:
- freezer-agent
tasks:
- include: roles/freezer-agent/tasks/monitor.yml
serial: "{{ freezer_serialization | default(3) | int }}"
- include: _freezer_manage_jobs.yml
07070100000019000081A40000000000000000000000015E90AC090000028B000000000000000000000000000000000000003E00000000ardana-freezer-8.0+git.1586539529.b7d295f/freezer-restart.yml#
# (c) Copyright 2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- include: _freezer-schedule-restart.yml
- include: freezer-start.yml
0707010000001A000081A40000000000000000000000015E90AC0900000390000000000000000000000000000000000000003C00000000ardana-freezer-8.0+git.1586539529.b7d295f/freezer-start.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- hosts: FRE-API
roles:
- freezer-api
tasks:
- include: roles/freezer-api/tasks/start.yml
- hosts: FRE-AGN
roles:
- freezer-agent
tasks:
- include: roles/freezer-agent/tasks/start.yml
serial: "{{ freezer_serialization | default(3) | int }}"
0707010000001B000081A40000000000000000000000015E90AC0900000389000000000000000000000000000000000000003D00000000ardana-freezer-8.0+git.1586539529.b7d295f/freezer-status.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- hosts: FRE-API
max_fail_percentage: 0
roles:
- freezer-api
tasks:
- include: roles/freezer-api/tasks/status.yml
- hosts: FRE-AGN
max_fail_percentage: 0
roles:
- freezer-agent
tasks:
- include: roles/freezer-agent/tasks/status.yml
0707010000001C000081A40000000000000000000000015E90AC0900000353000000000000000000000000000000000000003B00000000ardana-freezer-8.0+git.1586539529.b7d295f/freezer-stop.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- hosts: FRE-AGN
roles:
- freezer-agent
tasks:
- include: roles/freezer-agent/tasks/stop.yml
- hosts: FRE-API
roles:
- freezer-api
tasks:
- include: roles/freezer-api/tasks/stop.yml
0707010000001D000081A40000000000000000000000015E90AC09000002E0000000000000000000000000000000000000003E00000000ardana-freezer-8.0+git.1586539529.b7d295f/freezer-upgrade.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- include: freezer-status.yml
- include: freezer-deploy.yml
- include: freezer-status.yml
0707010000001E000041ED0000000000000000000000065E90AC0900000000000000000000000000000000000000000000003000000000ardana-freezer-8.0+git.1586539529.b7d295f/roles0707010000001F000041ED0000000000000000000000075E90AC0900000000000000000000000000000000000000000000003E00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent07070100000020000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000004700000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/defaults07070100000021000081A40000000000000000000000015E90AC09000004A3000000000000000000000000000000000000006000000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/defaults/keystone_credentials.yml#
# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
backup_keystone_host: "{{ FRE_AGN.consumes_KEY_API.vips.private[0].host }}"
backup_keystone_port: "{{ FRE_AGN.consumes_KEY_API.vips.private[0].port }}"
backup_keystone_url: "{{ FRE_AGN.consumes_KEY_API.vips.private[0].url }}"
backup_region_name: "{{ FRE_API.advertises.vips.private[0].region_name }}"
backup_username: "{{ FRE_AGN.consumes_KEY_API.vars.keystone_backup_user }}"
backup_password: "{{ FRE_AGN.consumes_KEY_API.vars.keystone_backup_password }}"
backup_tenant_name: "{{ FRE_AGN.consumes_KEY_API.vars.keystone_backup_tenant }}"
07070100000022000081A40000000000000000000000015E90AC0900000A21000000000000000000000000000000000000005000000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/defaults/main.yml#
# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
# This file contains settings that are common to all operating systems.
freezer_agent_packages:
- bzip2
ardanauser: "{{ ansible_env['USER'] }}"
ardanauser_home: "{{ ansible_env['HOME'] }}"
freezer_agent_bin_dir: "{%- if deployer_media_legacy_layout|bool %}
{{ 'freezer-agent' | bin_dir() }}
{%- else -%}
/usr/bin
{%- endif -%}"
freezer_agent_conf_dir: "{%- if deployer_media_legacy_layout|bool %}
{{ 'freezer-agent' | config_dir() }}
{%- else -%}
/etc/freezer
{%- endif -%}"
freezer_scheduler_service: "{%- if deployer_media_legacy_layout|bool -%}
freezer-scheduler
{%- else -%}
openstack-freezer-scheduler
{%- endif -%}"
# Logging
freezer_agent_log_dir: "{{ '/var/log/freezer-agent' if deployer_media_legacy_layout|bool else '/var/log/freezer' }}"
freezer_agent_log_file: "{{ freezer_agent_log_dir }}/freezer-agent.log"
freezer_agent_json_log_file: "{{ freezer_agent_log_dir }}/freezer-agent-json.log"
freezer_scheduler_log_file: "{{ freezer_agent_log_dir }}/freezer-scheduler.log"
freezer_scheduler_json_log_file: "{{ freezer_agent_log_dir }}/freezer-scheduler-json.log"
freezer_user: "{{ 'root' if deployer_media_legacy_layout|bool else 'freezer' }}"
freezer_group: "{{ freezer_user }}"
freezer_log_group: "{{ 'adm' if deployer_media_legacy_layout|bool else freezer_group }}"
# Freezer scheduler options
freezer_command: "source {{ ardanauser_home }}/backup.osrc && freezer"
freezer_client_id: "{{ old_deployer_hostname | default(ansible_hostname) }}"
freezer_scheduler_poll_interval: 60
freezer_scheduler_loglevel: INFO
freezer_scheduler_logstash_loglevel: INFO
freezer_agent_restart_required: false
07070100000023000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000004400000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/files07070100000024000081A40000000000000000000000015E90AC09000004A2000000000000000000000000000000000000005E00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/files/FreezerSchedulerDetect.py#
# (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
import monasca_setup.detection
class FreezerSchedulerDetect(monasca_setup.detection.ServicePlugin):
def __init__(self, template_dir, overwrite=True, args=None):
service_params = {
'args': args,
'template_dir': template_dir,
'overwrite': overwrite,
'service_name': 'backup',
'process_names': ['freezer-scheduler'],
'service_api_url': None,
'search_pattern': None
}
super(FreezerSchedulerDetect, self).__init__(service_params)
07070100000025000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000004300000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/meta07070100000026000081A40000000000000000000000015E90AC09000002D5000000000000000000000000000000000000004C00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/meta/main.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
dependencies:
- { role: monasca-agent, run_mode: Use }
- role: tls-vars
07070100000027000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000004400000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/tasks07070100000028000081A40000000000000000000000015E90AC0900000332000000000000000000000000000000000000005A00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/tasks/_schedule_restart.yml#
# (c) Copyright 2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: freezer-agent | _schedule_restart | Schedule a restart for freezer scheduler
debug:
msg: "Trigger a change notification in freezer scheduler"
changed_when: true
register: ardana_notify_freezer_scheduler_restart_required
07070100000029000081A40000000000000000000000015E90AC090000059B000000000000000000000000000000000000005200000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/tasks/configure.yml#
# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- include_vars: ../defaults/keystone_credentials.yml
- name: freezer-agent | configure | Create configuration files
become: yes
template:
src: "{{ item }}.j2"
dest: "{{ freezer_agent_conf_dir }}/{{ item }}"
owner: "{{ freezer_user }}"
group: "{{ freezer_group }}"
mode: 0640
with_items:
- systemd_env_vars.cfg
- scheduler-logging.conf
- agent-logging.conf
- scheduler.conf
register: ardana_notify_freezer_scheduler_restart_required
- name: freezer-agent | configure | Create backup.osrc credential file
become: yes
template:
src: backup.osrc.j2
dest: "{{ ardanauser_home }}/backup.osrc"
owner: "{{ ardanauser }}"
group: "{{ ardanauser }}"
mode: 0640
register: ardana_notify_freezer_scheduler_restart_required
0707010000002A000081A40000000000000000000000015E90AC0900000F26000000000000000000000000000000000000005700000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/tasks/install-legacy.yml#
# (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: freezer-agent | install | Update venv cache
become: yes
install_package:
cache: update
- name: freezer-agent | install | Install Freezer_agent virtual env
become: yes
install_package:
name: freezer_agent
service: freezer-agent
state: present
activate: act_off
register: freezer_agent_install_result
- name: freezer-agent | install | Register freezer-scheduler with systemd
become: yes
setup_systemd:
name: freezer-scheduler
service: freezer-agent
cmd: freezer-scheduler
restart: on-failure
user: root
group: root
args: "start --config-file {{ freezer_agent_conf_dir }}/scheduler.conf "
- name: freezer-agent | install | Set service directories
set_fact:
freezer_agent_conf_dir: "{{ 'freezer-agent' | config_dir(freezer_agent_install_result.version) }}"
freezer_agent_bin_dir: "{{ 'freezer-agent' | bin_dir(freezer_agent_install_result.version) }}"
- name: freezer-agent | install | Check if Freezer agent is available
become: yes
stat:
path: "{{ freezer_agent_bin_dir }}/freezerc"
register: freezer_agent_bin_result
- name: freezer-agent | install | Check if Freezer scheduler is available
become: yes
stat:
path: "{{ freezer_agent_bin_dir }}/freezer-scheduler"
register: freezer_scheduler_bin_result
- name: freezer-agent | install | Enabling freezer agent for all users
become: yes
file:
src: "{{ freezer_agent_bin_dir }}/freezerc"
dest: /usr/bin/freezer-agent
state: link
force: yes
when: freezer_agent_bin_result.stat.exists and freezer_agent_bin_result.stat.xusr
- name: freezer-agent | install | Enabling freezer scheduler for all users
become: yes
file:
src: "{{ freezer_agent_bin_dir }}/freezer-scheduler"
dest: /usr/bin/freezer-scheduler
state: link
force: yes
when: freezer_scheduler_bin_result.stat.exists and freezer_scheduler_bin_result.stat.xusr
- name: freezer-agent | configure | Create directories
become: yes
file:
path: "{{ item }}"
mode: 0770
state: directory
with_items:
- /etc/freezer
- /etc/freezer/scheduler
- /etc/freezer/scheduler/conf.d
- /root/.freezer
- name: freezer-agent | configure | Create Freezer log directory
become: yes
file:
path: "{{ freezer_agent_log_dir }}"
owner: root
group: "{{ freezer_log_group }}"
mode: 0750
state: directory
- name: freezer-agent | configure | Touch Freezer log files
become: yes
file:
path: "{{ item }}"
owner: root
group: "{{ freezer_log_group }}"
mode: 0640
state: touch
with_items:
- "{{ freezer_agent_log_file }}"
- "{{ freezer_agent_json_log_file }}"
- "{{ freezer_scheduler_log_file }}"
- "{{ freezer_scheduler_json_log_file }}"
- name: freezer-client | install | Check if Freezer client is available
become: yes
stat:
path: "{{ freezer_agent_bin_dir }}/freezer"
register: freezer_client_bin_result
- name: freezer-client | install | Enabling freezer client for all users
become: yes
file:
src: "{{ freezer_agent_bin_dir }}/freezer"
dest: /usr/bin/freezer
state: link
force: yes
when: freezer_client_bin_result.stat.exists and freezer_client_bin_result.stat.xusr
0707010000002B000081A40000000000000000000000015E90AC09000007A7000000000000000000000000000000000000005000000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/tasks/install.yml#
# (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: freezer-agent | install | Install package dependencies
become: yes
package:
state: present
name: "{{ item }}"
with_items: freezer_agent_packages
- include: install-legacy.yml
when:
- deployer_media_legacy_layout|bool
- name: freezer-agent | install | Install freezer-agent and scheduler (rpm)
become: yes
package:
state: present
name: "{{ item }}"
with_items:
- openstack-freezer-agent
- openstack-freezer-scheduler
- python-python-logstash
when:
- not deployer_media_legacy_layout|bool
- name: freezer-agent | install | Create systemd overlay dir
become: yes
file:
name: "/etc/systemd/system/{{ freezer_scheduler_service }}.service.d/"
state: directory
- name: freezer-agent | install | Add environment loading to systemd config file
become: yes
template:
src: freezer-scheduler.service.overlay
dest: "/etc/systemd/system/{{ freezer_scheduler_service }}.service.d/ardana.conf"
register: insert_line_env_result
- name: freezer-agent | install | Notify Systemd
become: yes
command: systemctl daemon-reload
when: insert_line_env_result.changed
- name: freezer-agent | install | Set the freezer-scheduler to start on reboot
become: yes
service:
name: "{{ freezer_scheduler_service }}"
enabled: yes
0707010000002C000081A40000000000000000000000015E90AC09000005A7000000000000000000000000000000000000005000000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/tasks/monitor.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: freezer-agent | monitor | freezer-scheduler detection plugin directory creation
become: yes
file: path=/usr/lib/monasca/agent/custom_detect.d state=directory owner=root group=root mode=0755
when: '"MON-AGN" in group_names'
- name: freezer-agent | monitor | freezer-scheduler detection plugin file copy
become: yes
copy: src=FreezerSchedulerDetect.py dest=/usr/lib/monasca/agent/custom_detect.d/FreezerSchedulerDetect.py owner=root group=root mode=0644
when: '"MON-AGN" in group_names'
- name: freezer-agent | monitor | Restart freezer-scheduler Monitor Plugin
become: yes
monasca_agent_plugin: name="FreezerSchedulerDetect"
register: freezer_monitor_restart_result
until: "freezer_monitor_restart_result.rc == 0"
retries: 3
delay: 10
when: '"MON-AGN" in group_names'
0707010000002D000081A40000000000000000000000015E90AC09000006D7000000000000000000000000000000000000004E00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/tasks/start.yml#
# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- include_vars: ../defaults/keystone_credentials.yml
- name: freezer-agent | start | Activate the latest install
become: yes
install_package:
name: freezer_agent
service: freezer-agent
activate: act_on
version: "{{ freezer_agent_install_result.version }}"
when: freezer_agent_install_result is defined and
deployer_media_legacy_layout|bool
- name: freezer-agent | start | Make sure keystone is reachable
wait_for: host={{ backup_keystone_host }} port={{ backup_keystone_port }} state=started
ignore_errors: true
- name: freezer-agent | start | Restart freezer-scheduler
become: yes
service:
name: "{{ freezer_scheduler_service }}"
state: restarted
when: ((ardana_notify_freezer_scheduler_restart_required is defined
and ardana_notify_freezer_scheduler_restart_required.changed)
or (freezer_agent_install_result is defined
and freezer_agent_install_result.changed))
- name: freezer-agent | start | Ensure freezer-scheduler is started
become: yes
service:
name: "{{ freezer_scheduler_service }}"
state: started
0707010000002E000081A40000000000000000000000015E90AC09000004C6000000000000000000000000000000000000004F00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/tasks/status.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: freezer-agent | status | Check if systemd service is running
become: yes
command: "systemctl status {{ freezer_scheduler_service }}"
ignore_errors: yes
changed_when: false
no_log: True
register: freezer_scheduler_systemd_status_result
- name: freezer-agent | status | Report status of freezer-agent
fail:
msg: |
freezer-agent is not running:
Command output:
{{ freezer_scheduler_systemd_status_result.stdout }}
{{ freezer_scheduler_systemd_status_result.stderr }}
when: "freezer_scheduler_systemd_status_result.rc != 0"
0707010000002F000081A40000000000000000000000015E90AC090000031D000000000000000000000000000000000000004D00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/tasks/stop.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: freezer-agent | stop | Stop Freezer through systemd
become: yes
service:
name: "{{ freezer_scheduler_service }}"
state: stopped
07070100000030000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000004800000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/templates07070100000031000081A40000000000000000000000015E90AC090000070F000000000000000000000000000000000000005E00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/templates/agent-logging.conf.j2{#
#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
#}
[loggers]
keys: root, iso8601, dogpile
[handlers]
keys: watchedfile, logstash
[formatters]
keys: debug, normal, logstash
###########
# Loggers #
###########
[logger_root]
qualname: root
handlers: watchedfile, logstash
level: NOTSET
[logger_iso8601]
qualname: iso8601
handlers: watchedfile, logstash
level: INFO
[logger_dogpile]
qualname: dogpile
handlers: watchedfile, logstash
level: INFO
################
# Log Handlers #
################
# Writes to disk
[handler_watchedfile]
class: handlers.WatchedFileHandler
args: ('{{ freezer_agent_log_file }}',)
formatter = normal
level: {{ freezer_scheduler_loglevel }}
# Writes JSON to disk, beaver will ship to logstash
[handler_logstash]
class: handlers.WatchedFileHandler
args: ('{{ freezer_agent_json_log_file }}',)
formatter= logstash
level: {{ freezer_scheduler_logstash_loglevel }}
##################
# Log Formatters #
##################
[formatter_normal]
format=(%(name)s): %(asctime)s %(levelname)s %(message)s
[formatter_debug]
format=(%(name)s): %(asctime)s %(levelname)s %(module)s %(funcName)s %(message)s
[formatter_logstash]
class = logstash.LogstashFormatterVersion1
format = freezer
07070100000032000081A40000000000000000000000015E90AC090000046A000000000000000000000000000000000000005700000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/templates/backup.osrc.j2{#
#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
#}
# OpenStack variables for the freezer agent to authenticate to Keystone
unset OS_DOMAIN_NAME
export OS_AUTH_URL={{ backup_keystone_url }}/v3
export OS_PROJECT_NAME={{ backup_tenant_name }}
export OS_USERNAME={{ backup_username }}
export OS_PASSWORD={{ backup_password }}
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3
export OS_AUTH_VERSION=3
export OS_CACERT={{ trusted_ca_bundle }}
export OS_ENDPOINT_TYPE=internalURL
07070100000033000081A40000000000000000000000015E90AC090000028D000000000000000000000000000000000000006A00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/templates/freezer-scheduler.service.overlay#
# (c) Copyright 2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
[Service]
EnvironmentFile=-{{ freezer_agent_conf_dir }}/systemd_env_vars.cfg07070100000034000081A40000000000000000000000015E90AC0900000717000000000000000000000000000000000000006200000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/templates/scheduler-logging.conf.j2{#
#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
#}
[loggers]
keys: root, iso8601, dogpile
[handlers]
keys: watchedfile, logstash
[formatters]
keys: debug, normal, logstash
###########
# Loggers #
###########
[logger_root]
qualname: root
handlers: watchedfile, logstash
level: NOTSET
[logger_iso8601]
qualname: iso8601
handlers: watchedfile, logstash
level: INFO
[logger_dogpile]
qualname: dogpile
handlers: watchedfile, logstash
level: INFO
################
# Log Handlers #
################
# Writes to disk
[handler_watchedfile]
class: handlers.WatchedFileHandler
args: ('{{ freezer_scheduler_log_file }}',)
formatter = normal
level: {{ freezer_scheduler_loglevel }}
# Writes JSON to disk, beaver will ship to logstash
[handler_logstash]
class: handlers.WatchedFileHandler
args: ('{{ freezer_scheduler_json_log_file }}',)
formatter= logstash
level: {{ freezer_scheduler_logstash_loglevel }}
##################
# Log Formatters #
##################
[formatter_normal]
format=(%(name)s): %(asctime)s %(levelname)s %(message)s
[formatter_debug]
format=(%(name)s): %(asctime)s %(levelname)s %(module)s %(funcName)s %(message)s
[formatter_logstash]
class = logstash.LogstashFormatterVersion1
format = freezer
07070100000035000081A40000000000000000000000015E90AC0900000341000000000000000000000000000000000000005A00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/templates/scheduler.conf.j2{#
#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
#}
[DEFAULT]
log_config_append = {{ freezer_agent_conf_dir }}/scheduler-logging.conf
client_id = {{ freezer_client_id }}
interval = {{ freezer_scheduler_poll_interval }}
no_daemon = True
07070100000036000081A40000000000000000000000015E90AC0900000450000000000000000000000000000000000000006000000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-agent/templates/systemd_env_vars.cfg.j2{#
#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
#}
# OpenStack variables for the freezer agent to authenticate to Keystone
# Will be injected in freezer-scheduler's environment by systemd
OS_AUTH_URL={{ backup_keystone_url }}/v3
OS_PROJECT_NAME={{ backup_tenant_name }}
OS_USERNAME={{ backup_username }}
OS_PASSWORD={{ backup_password }}
OS_PROJECT_DOMAIN_NAME=Default
OS_USER_DOMAIN_NAME=Default
OS_IDENTITY_API_VERSION=3
OS_AUTH_VERSION=3
OS_CACERT={{ trusted_ca_bundle }}
OS_ENDPOINT_TYPE=internalURL
07070100000037000041ED0000000000000000000000075E90AC0900000000000000000000000000000000000000000000003C00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api07070100000038000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000004500000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/defaults07070100000039000081A40000000000000000000000015E90AC0900000D39000000000000000000000000000000000000004E00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/defaults/main.yml#
# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
# This file contains settings that are common to all operating systems.
freezer_keystone_identity_uri: "{{ FRE_API.consumes_KEY_API.vips.private[0].url }}"
freezer_keystone_auth_uri: "{{ FRE_API.consumes_KEY_API.vips.private[0].url }}"
freezer_keystone_service_user: "{{ FRE_API.consumes_KEY_API.vars.keystone_freezer_user }}"
freezer_keystone_service_password: "{{ FRE_API.consumes_KEY_API.vars.keystone_freezer_password | quote }}"
freezer_keystone_service_project_name: "{{ KEY_API.vars.keystone_service_tenant }}"
freezer_keystone_user_domain_name: "{{ KEY_API.vars.keystone_default_domain }}"
freezer_keystone_project_domain_name: "{{ KEY_API.vars.keystone_default_domain }}"
freezer_keystone_cacert: "{{ trusted_ca_bundle }}"
memcached_servers: "{% for x in FRE.consumes_FND_MEM.members.private %}{{ x.host }}:{{ x.port }}{%if
not loop.last %},{% endif %}{% endfor %}"
memcache_secret_key: "{{ FRE.consumes_FND_MEM.vars.memcached.freezer.secret_key | quote }}"
freezer_bind_host: "{{ host.bind.FRE_API.admin.ip_address }}"
freezer_bind_port: "{{ host.bind.FRE_API.admin.port }}"
freezer_vip_url: "{{ FRE_API.advertises.vips.private[0].url }}"
freezer_system_user: freezer
freezer_system_group: freezer
freezer_home_dir: /var/lib/freezer
freezer_api_venv_conf_dir: "{{ 'freezer-api' | config_dir() }}"
freezer_api_venv_bin_dir: "{{ 'freezer-api' | bin_dir() }}"
freezer_api_log_dir: "/var/log/freezer-api"
freezer_api_log_python: "{{ freezer_api_log_dir }}/freezer-api.log"
freezer_api_log_python_json: "{{ freezer_api_log_dir }}/freezer-api-json.log"
freezer_api_log_access: "{{ freezer_api_log_dir }}/freezer-api-access.log"
freezer_api_log_wsgi: "{{ freezer_api_log_dir }}/freezer-api-modwsgi.log"
freezer_api_log_audit_dir: "{{ FRE.audit.dir }}/freezer"
freezer_api_log_audit: "{{ freezer_api_log_audit_dir }}/freezer-api-audit.log"
freezer_api_audit_enabled: "{{ FRE.audit.enabled }}"
freezer_api_loglevel: INFO
freezer_api_logstash_loglevel: INFO
freezer_api_log_group: adm
# Tuning
freezer_api_es_replicas: "{{ ( groups[verb_hosts.LOG_SVR] | length ) - 1 }}"
freezer_api_token_cache_time: 3600
freezer_api_process_count: 4
freezer_api_thread_count: 4
freezer_api_socket_timeout: 300
freezer_api_http_request_max_retries: 5
freezer_api_elasticsearch_retries: 20
freezer_api_elasticsearch_timeout: 60
freezer_api_conf_symlinks:
- { dst: '/etc/freezer/freezer-api.conf', src: 'freezer-api.conf' }
- { dst: '/etc/freezer/freezer-api-audit-map.conf', src: 'freezer-api-audit-map.conf' }
- { dst: '/etc/freezer/freezer-api-logging.conf', src: 'freezer-api-logging.conf' }
- { dst: '/etc/freezer/freezer-api-paste.ini', src: 'freezer-api-paste.ini' }
- { dst: '/etc/freezer/policy.json', src: 'policy.json' }
0707010000003A000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000004100000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/meta0707010000003B000081A40000000000000000000000015E90AC09000002E7000000000000000000000000000000000000004A00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/meta/main.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
dependencies:
- { role: monasca-agent, run_mode: Use }
- role: FND-AP2
- role: tls-vars
0707010000003C000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000004200000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/tasks0707010000003D000081A40000000000000000000000015E90AC090000031E000000000000000000000000000000000000005800000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/tasks/_schedule_restart.yml#
# (c) Copyright 2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: freezer-api | _schedule_restart | Schedule a restart for freezer API
debug:
msg: "Trigger a change notification in freezer API"
changed_when: true
register: ardana_notify_freezer_api_restart_required
0707010000003E000081A40000000000000000000000015E90AC0900000BAB000000000000000000000000000000000000005000000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/tasks/configure.yml#
# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: freezer-api | configure | Copy freezer-api configuration files
become: yes
template:
src: "{{ item }}.j2"
dest: "{{ freezer_api_venv_conf_dir_by_version | default(freezer_api_venv_conf_dir) }}/{{ item }}"
owner: "{{ freezer_system_user }}"
group: "{{ freezer_system_group }}"
mode: 0640
with_items:
- freezer-api.conf
- freezer-api-audit-map.conf
- freezer-api-paste.ini
- freezer-api-logging.conf
- policy.json
register: ardana_notify_freezer_api_restart_required
- name: freezer-api | configure | Create logging directory
become: yes
file:
path: "{{ freezer_api_log_dir }}"
owner: "{{ freezer_system_user }}"
group: "{{ freezer_api_log_group }}"
mode: 0750
state: directory
- name: freezer-api | configure | Create audit logging directory
become: yes
file:
path: "{{ freezer_api_log_audit_dir }}"
owner: "{{ freezer_system_user }}"
group: "{{ freezer_api_log_group }}"
mode: 0750
state: directory
when: freezer_api_audit_enabled | bool
- name: freezer-api | configure | Touch log files
become: yes
file:
path: "{{ item }}"
owner: "{{ freezer_system_user }}"
group: "{{ freezer_api_log_group }}"
mode: 0640
state: touch
with_items:
- "{{ freezer_api_log_python }}"
- "{{ freezer_api_log_python_json }}"
- "{{ freezer_api_log_access }}"
- "{{ freezer_api_log_wsgi }}"
- name: freezer-api | configure | Touch the audit log file
become: yes
file:
path: "{{ freezer_api_log_audit }}"
owner: "{{ freezer_system_user }}"
group: "{{ freezer_api_log_group }}"
mode: 0640
state: touch
when: freezer_api_audit_enabled | bool
- name: freezer-api | configure | Create config directory
become: yes
file:
path: /etc/freezer/
owner: "{{ freezer_system_user }}"
group: "{{ freezer_system_group }}"
mode: 0770
state: directory
- name: freezer-api | configure | Copies modwsgi config file
become: yes
template:
src: freezer-modwsgi.conf.j2
dest: "{{ apache2_vhost_dir }}/freezer-modwsgi.vhost"
register: ardana_notify_freezer_api_restart_required
# TODO(howleyt): Can this be moved to apache playbook?
- name: freezer-api | configure | Enable wsgi module in apache
become: yes
apache2_module:
state: present
name: wsgi
0707010000003F000081A40000000000000000000000015E90AC0900000B01000000000000000000000000000000000000004E00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/tasks/install.yml#
# (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: freezer-api | install | Check if node is configured to run elasticsearch
fail:
msg: "freezer-api should be installed on same node as LOG-SVR (they share the elasticsearch)"
when: '"LOG-SVR" not in group_names'
- include_vars: ../../logging-common/defaults/main.yml
- name: freezer-api | install | Install apt dependencies
become: yes
package:
state: present
name: "{{ item }}"
with_items: freezer_api_packages
- name: freezer-api | install | Update venv cache
become: yes
install_package:
cache: update
- name: freezer-api | install | Install Freezer_api virtual env
become: yes
install_package:
name: "{{ 'freezer_api' if deployer_media_legacy_layout|bool else 'freezer' }}"
service: freezer-api
state: present
activate: act_off
register: freezer_api_install_result
- name: freezer-api | install | Set service directories
set_fact:
freezer_api_venv_bin_dir_by_version: "{{ 'freezer-api' | bin_dir(freezer_api_install_result.version) }}"
freezer_api_venv_conf_dir_by_version: "{{ 'freezer-api' | config_dir(freezer_api_install_result.version) }}"
- name: freezer-api | install | Create freezer WSGI directory
become: yes
file:
path: "{{ www_root }}/freezer"
state: directory
- name: freezer-api | install | Create symlink to freezer wsgi module
become: yes
file:
dest: "{{ www_root }}/freezer/freezer-api"
src: "{{ freezer_api_venv_bin_dir_by_version }}/../lib/python2.7/site-packages/freezer_api/cmd/wsgi.py"
state: link
- name: freezer-api | install | Add group '{{ freezer_system_group }}'
become: yes
group:
name: "{{ freezer_system_group }}"
state: present
- name: freezer-api | install | Add user '{{ freezer_system_user }}'
become: yes
user:
name: "{{ freezer_system_user }}"
group: "{{ freezer_system_group }}"
createhome: no
home: "{{ freezer_home_dir }}"
shell: /bin/true
state: present
- name: freezer-api | install | Add user home
become: yes
file:
path: "{{ freezer_home_dir }}"
state: directory
owner: "{{ freezer_system_user }}"
group: "{{ freezer_system_group }}"
mode: 0750
07070100000040000081A40000000000000000000000015E90AC09000002F0000000000000000000000000000000000000004B00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/tasks/main.yml#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: freezer-api | main | Set os-specific variables
include_vars: "{{ ansible_os_family | lower }}.yml"
07070100000041000081A40000000000000000000000015E90AC09000004AB000000000000000000000000000000000000004E00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/tasks/monitor.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: freezer-api | monitor | Setup freezer-api local endpoint monitoring
become: yes
monasca_agent_plugin:
name: "httpcheck"
args: "url=http://{{ freezer_bind_host }}:{{ freezer_bind_port }}/healthcheck dimensions=service:backup,component:freezer-api"
- name: freezer-api | monitor | Setup freezer-api internal VIP monitoring
become: yes
monasca_agent_plugin:
name: "httpcheck"
args: "url={{ freezer_vip_url }}/healthcheck dimensions=service:backup,component:freezer-api,monitored_host_type:vip,api_endpoint:private"
07070100000042000081A40000000000000000000000015E90AC0900000841000000000000000000000000000000000000004C00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/tasks/start.yml#
# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: freezer-api | start | Enable Freezer-api site
become: yes
file:
src: "{{ apache2_vhost_dir }}/freezer-modwsgi.vhost"
dest: "{{ apache2_vhost_dir }}/freezer-modwsgi.conf"
state: link
register: freezer_api_a2_enable_site_result
- name: freezer-api | start | Activate the latest install
become: yes
install_package:
name: "{{ 'freezer_api' if deployer_media_legacy_layout|bool else 'freezer' }}"
service: freezer-api
activate: act_on
version: "{{ freezer_api_install_result.version }}"
when: freezer_api_install_result is defined
- name: freezer-api | start | Update conf dir symlinks
become: yes
file:
src: "{{ freezer_api_venv_conf_dir }}/{{ item.src }}"
dest: "{{ item.dst }}"
owner: "{{ freezer_system_user }}"
group: "{{ freezer_system_group }}"
mode: 0640
state: link
when: freezer_api_install_result is defined
with_items: freezer_api_conf_symlinks
- include: "{{ playbook_dir }}/roles/FND-AP2/tasks/start_reload.yml"
vars:
apache_restart_requested: "{{ ardana_notify_freezer_api_restart_required is defined and ardana_notify_freezer_api_restart_required.changed }}"
apache_reload_requested: "{{ (ardana_notify_freezer_api_restart_required is defined and ardana_notify_freezer_api_restart_required.changed) or
(freezer_api_a2_enable_site_result is defined and freezer_api_a2_enable_site_result.changed) }}"
- include: status.yml
07070100000043000081A40000000000000000000000015E90AC09000004B6000000000000000000000000000000000000004D00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/tasks/status.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: freezer-api | status | Make sure freezer-api is up and responding on each node
uri:
url: "http://127.0.0.1:{{ freezer_bind_port }}/healthcheck"
status_code: 200
timeout: 100
ignore_errors: yes
changed_when: false
register: freezer_api_status_result
until: not freezer_api_status_result | failed
retries: 5
delay: 10
- name: freezer-api | status | Report freezer-api's status
uri:
url: "http://127.0.0.1:{{ freezer_bind_port }}/healthcheck"
status_code: 200
timeout: 20
when: freezer_api_status_result | failed
07070100000044000081A40000000000000000000000015E90AC0900000415000000000000000000000000000000000000004B00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/tasks/stop.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: freezer-api | stop | Disable freezer site
become: yes
file:
state: absent
path: "{{ apache2_vhost_dir }}/freezer-modwsgi.conf"
# Reload Apache, ignore errors, if reload fails in stop as apache not
# running, keep going
- name: freezer-api | reload | Reload Apache after disabling freezer-api
become: yes
service:
name: apache2
state: reloaded
ignore_errors: yes
07070100000045000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000004600000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/templates07070100000046000081A40000000000000000000000015E90AC09000003B4000000000000000000000000000000000000006400000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/templates/freezer-api-audit-map.conf.j2{#
#
# (c) Copyright 2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
#}
[DEFAULT]
# default target endpoint type
# should match the endpoint type defined in service catalog
target_endpoint_type = None
# map urls ending with specific text to a unique action
[custom_actions]
# possible end path of api requests
[path_keywords]
# map endpoint type defined in service catalog to CADF typeURI
[service_endpoints]
backup = service/backup
07070100000047000081A40000000000000000000000015E90AC09000007FE000000000000000000000000000000000000006200000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/templates/freezer-api-logging.conf.j2[loggers]
{% if freezer_api_audit_enabled | bool %}
keys: root, iso8601, audit
{% else %}
keys: root, iso8601
{% endif %}
[handlers]
{% if freezer_api_audit_enabled | bool %}
keys: watchedfile, logstash, auditfile
{% else %}
keys: watchedfile, logstash
{% endif %}
[formatters]
keys: context, logstash, minimal
[logger_root]
qualname: root
handlers: watchedfile, logstash
level: NOTSET
[logger_iso8601]
qualname: iso8601
handlers: watchedfile, logstash
level: INFO
{% if freezer_api_audit_enabled | bool %}
[logger_audit]
qualname: oslo.messaging.notification.audit
handlers: auditfile
propagate: 0
level: INFO
{% endif %}
# Writes to disk
# Note: log rotation configuration is being handled by Centralized Logging
# and is surfaced to customers on the deployer via ...configs/logging/vars/glance-clr.yml
[handler_watchedfile]
class: handlers.WatchedFileHandler
args: ('{{ freezer_api_log_python }}',)
formatter: context
level: {{ freezer_api_loglevel }}
# Writes JSON to disk, beaver will ship to logstash
# Note: log rotation configuration is being handled by Centralized Logging
# and is surfaced to customers on the deployer via ...configs/logging/vars/glance-clr.yml
[handler_logstash]
class: handlers.WatchedFileHandler
args: ('{{ freezer_api_log_python_json }}',)
formatter: logstash
level: {{ freezer_api_logstash_loglevel }}
{% if freezer_api_audit_enabled | bool %}
[handler_auditfile]
class: handlers.WatchedFileHandler
args: ('{{ freezer_api_log_audit }}',)
formatter = minimal
level: INFO
{% endif %}
# datefmt must be set otherwise you end up with too many (msecs) fields
[formatter_context]
class: oslo_log.formatters.ContextFormatter
args: (datefmt=datefmt)
format: %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user)s %(tenant)s] %(instance)s%(message)s
datefmt: %Y-%m-%d %H:%M:%S
# the "format" and "datefmt" actually set the "type" and "tags"
[formatter_logstash]
class: logstash.LogstashFormatterVersion1
format: freezer
datefmt: freezer-api
[formatter_minimal]
format=%(message)s
07070100000048000081A40000000000000000000000015E90AC09000007BD000000000000000000000000000000000000005F00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/templates/freezer-api-paste.ini.j2{#
# (c) Copyright 2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
#}
[app:api_versions]
paste.app_factory = freezer_api.api.versions:api_versions
[app:appv1]
paste.app_factory = freezer_api.service:freezer_appv1_factory
[app:appv2]
paste.app_factory = freezer_api.service:freezer_appv2_factory
[app:service_v1]
use = egg:freezer-api#service_v1
{% if freezer_api_audit_enabled | bool %}
[filter:audit]
paste.filter_factory = keystonemiddleware.audit:filter_factory
audit_map_file = /etc/freezer/freezer-api-audit-map.conf
{% endif %}
[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
[filter:healthcheck]
paste.filter_factory = oslo_middleware:Healthcheck.factory
backends = disable_by_file
disable_by_file_path = /etc/freezer/healthcheck_disable
[filter:context]
paste.filter_factory = freezer_api.api.common.middleware:ContextMiddleware.factory
[filter:versionsNegotiator]
paste.filter_factory = freezer_api.api.versions:VersionNegotiator.factory
[filter:http_proxy_to_wsgi]
paste.filter_factory = oslo_middleware:HTTPProxyToWSGI.factory
[pipeline:main]
pipeline = healthcheck http_proxy_to_wsgi versionsNegotiator authtoken
{%- if freezer_api_audit_enabled | bool %} audit{% endif %}
context backupapp
[pipeline:unauthenticated_freezer_api]
pipeline = http_proxy_to_wsgi healthcheck freezer_app
[composite:backupapp]
paste.composite_factory = freezer_api.service:root_app_factory
/: api_versions
/v1: appv1
/v2: appv2
07070100000049000081A40000000000000000000000015E90AC0900000BB0000000000000000000000000000000000000005A00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/templates/freezer-api.conf.j2{#
#
# (c) Copyright 2015,2017 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
#}
[DEFAULT]
# Show debugging output in logs (sets DEBUG log level output)
#debug = False
# If `log_file` is omitted and `use_syslog` is false, then log messages are
# sent to stdout as a fallback.
log_config_append = {{ freezer_api_venv_conf_dir_by_version |
default(freezer_api_venv_conf_dir)
}}/freezer-api-logging.conf
# ================= Syslog Options ============================
# Send logs to syslog (/dev/log) instead of to file specified
# by `log_file`
use_syslogd = false
# Facility to use. If unset defaults to LOG_USER.
#syslog_log_facility = LOG_LOCAL0
# ================= Authtoken Options ============================
[keystone_authtoken]
auth_type = password
auth_uri = {{ freezer_keystone_auth_uri }}
auth_url = {{ freezer_keystone_auth_uri }}
username = {{ freezer_keystone_service_user }}
password = {{ freezer_keystone_service_password }}
user_domain_name = {{ freezer_keystone_user_domain_name }}
project_name = {{ freezer_keystone_service_project_name }}
project_domain_name = {{ freezer_keystone_project_domain_name }}
cafile = {{ freezer_keystone_cacert }}
include_service_catalog = False
token_cache_time = {{ freezer_api_token_cache_time }}
http_request_max_retries = {{ freezer_api_http_request_max_retries }}
service_token_roles_required = true
service_token_roles = admin
memcached_servers = {{ memcached_servers }}
memcache_security_strategy = ENCRYPT
memcache_secret_key = {{ memcache_secret_key }}
memcache_pool_socket_timeout = 1
# ================= Storage Options ============================
[storage]
backend = elasticsearch
[elasticsearch]
hosts = http://{{ elasticsearch_http_host }}:{{ elasticsearch_http_port }}
timeout = {{ freezer_api_elasticsearch_timeout }}
retries = {{ freezer_api_elasticsearch_retries }}
number_of_replicas = {{ freezer_api_es_replicas }}
#use_ssl=False
#ca_certs=''
# ================= Paste Options ============================
[paste_deploy]
# Name of the paste configuration file that defines the available pipelines.
# (string value)
config_file = {{ freezer_api_venv_conf_dir_by_version |
default(freezer_api_venv_conf_dir)
}}/freezer-api-paste.ini
# ================= Audit Options ============================
[audit_middleware_notifications]
driver = log
workers = 2
0707010000004A000081A40000000000000000000000015E90AC09000006B9000000000000000000000000000000000000005E00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/templates/freezer-modwsgi.conf.j2{#
#
# (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
#}
Listen {{ freezer_bind_host }}:{{ freezer_bind_port }}
## Need to enable binding to localhost/127.0.0.1 for
## monitoring checks, which will verify if the freezer-api
## is running on the host or not.
Listen 127.0.0.1:{{ freezer_bind_port }}
<VirtualHost *:{{ freezer_bind_port }}>
WSGIDaemonProcess freezer-api processes={{ freezer_api_process_count }} threads={{ freezer_api_thread_count }} socket-timeout={{ freezer_api_socket_timeout }} user={{ freezer_system_user }} group={{ freezer_system_user }} python-path={{ freezer_api_venv_bin_dir }}/../lib/python2.7/site-packages/
WSGIProcessGroup freezer-api
WSGIApplicationGroup %{GLOBAL}
WSGIScriptAlias / {{ www_root }}/freezer/freezer-api
ErrorLog {{ freezer_api_log_wsgi }}
LogLevel info
CustomLog {{ freezer_api_log_access }} combined
<Directory {{ www_root }}/freezer>
Options Indexes FollowSymLinks MultiViews
Require all granted
AllowOverride None
Order allow,deny
allow from all
LimitRequestBody 102400
</Directory>
</VirtualHost>
0707010000004B000081A40000000000000000000000015E90AC090000038B000000000000000000000000000000000000005500000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/templates/policy.json.j2{
"context_is_admin": "role:admin",
"admin_or_owner": "is_admin:True or project_id:%(project_id)s",
"default": "rule:admin_or_owner",
"jobs:get_all": "",
"jobs:create": "",
"jobs:get": "",
"jobs:delete": "",
"jobs:update": "",
"jobs:event:create": "",
"actions:get_all": "",
"actions:create": "",
"actions:get": "",
"actions:delete": "",
"actions:update": "",
"actions:replace": "",
"sessions:get_all": "",
"sessions:create": "",
"sessions:get": "",
"sessions:delete": "",
"sessions:update": "",
"sessions:replace": "",
"sessions:action:create": "",
"sessions:job:add": "",
"sessions:job:remove": "",
"backups:get_all": "",
"backups:create": "",
"backups:get": "",
"backups:delete": "",
"clients:get_all": "",
"clients:create": "",
"clients:get": "",
"clients:delete": ""
}
0707010000004C000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000004100000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/vars0707010000004D000081A40000000000000000000000015E90AC0900000314000000000000000000000000000000000000004C00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/vars/debian.yml#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
# python-httplib2 is an ansible dependency for the module uri sed in start.yml
freezer_api_packages:
- libapache2-mod-wsgi
- python-httplib2
0707010000004E000081A40000000000000000000000015E90AC09000002A6000000000000000000000000000000000000004C00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/vars/redhat.yml#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
freezer_api_packages:
- mod_wsgi
0707010000004F000081A40000000000000000000000015E90AC09000002C2000000000000000000000000000000000000004A00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-api/vars/suse.yml#
# (c) Copyright 2017 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
freezer_api_packages:
- apache2-mod_wsgi
- python-httplib2
07070100000050000041ED0000000000000000000000055E90AC0900000000000000000000000000000000000000000000003D00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs07070100000051000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000004600000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/defaults07070100000052000081A40000000000000000000000015E90AC090000032E000000000000000000000000000000000000005300000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/defaults/activate.yml#
# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
# If set to false, We wont create backups jobs.
freezer_create_backup_jobs: true
# If set to false, We wont create restore jobs.
freezer_create_restore_jobs: true
07070100000053000081A40000000000000000000000015E90AC090000194A000000000000000000000000000000000000004F00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/defaults/jobs.yml#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
jobs:
deployer:
enabled: true
store_in_swift: true
store_in_ssh: true
store_in_local: false
also_create_restore_job: true
container: freezer_lifecycle_manager_backups
schedule: "48 hours"
actions:
- backup_name: freezer_home_backup
backup_path: "{{ ardanauser_home }}"
restore_path: "{{ ardanauser_home }}"
max_retries_interval: 600
backup_options:
snapshot: true
no_incremental: true
remove_older_than: 365
restore_options:
overwrite: true
- backup_name: freezer_etc_ssh_backup
backup_path: /etc/ssh/
restore_path: /etc/ssh/
max_retries_interval: 600
backup_options:
snapshot: true
max_level: 15
remove_older_than: 365
restore_options:
overwrite: true
- backup_name: freezer_shadow_backup
backup_path: /etc/shadow
restore_path: /etc/
max_retries_interval: 600
backup_options:
snapshot: true
max_level: 15
remove_older_than: 365
restore_options:
overwrite: true
- backup_name: freezer_passwd_backup
backup_path: /etc/passwd
restore_path: /etc/
max_retries_interval: 600
backup_options:
snapshot: true
max_level: 15
remove_older_than: 365
restore_options:
overwrite: true
- backup_name: freezer_group_backup
backup_path: /etc/group
restore_path: /etc/
max_retries_interval: 600
backup_options:
snapshot: true
max_level: 15
remove_older_than: 365
restore_options:
overwrite: true
- backup_name: freezer_ansible_backup
backup_path: /etc/ansible
restore_path: /etc/ansible/
max_retries_interval: 600
backup_options:
snapshot: true
max_level: 15
remove_older_than: 365
restore_options:
overwrite: true
- backup_name: freezer_tmp_tls_cacerts_backup
backup_path: /tmp/ardana_tls_cacerts
restore_path: /tmp/ardana_tls_cacerts/
max_retries_interval: 600
backup_options:
snapshot: true
max_level: 15
remove_older_than: 365
restore_options:
overwrite: true
- backup_name: freezer_tmp_tls_certs_backup
backup_path: /tmp/ardana_tls_certs
restore_path: /tmp/ardana_tls_certs/
max_retries_interval: 600
backup_options:
snapshot: true
max_level: 15
remove_older_than: 365
restore_options:
overwrite: true
- backup_name: freezer_tmp_octavia_tls_backup
backup_path: /tmp/ardana_octavia_tls
restore_path: /tmp/ardana_octavia_tls/
max_retries_interval: 600
backup_options:
snapshot: true
max_level: 15
remove_older_than: 365
restore_options:
overwrite: true
- backup_name: freezer_tmp_octavia_certs_backup
backup_path: /tmp/ardana_octavia_certs
restore_path: /tmp/ardana_octavia_certs/
max_retries_interval: 600
backup_options:
snapshot: true
max_level: 15
remove_older_than: 365
restore_options:
overwrite: true
- backup_name: freezer_ssl_backup
backup_path: /etc/ssl
restore_path: /etc/ssl/
max_retries_interval: 600
backup_options:
snapshot: true
max_level: 15
remove_older_than: 365
restore_options:
overwrite: true
- backup_name: freezer_cobbler_backup
backup_path: /var/lib/cobbler/
restore_path: /var/lib/cobbler/
max_retries_interval: 600
backup_options:
options:
snapshot: true
max_level: 15
remove_older_than: 365
restore_options:
overwrite: true
- backup_name: freezer_www_cobbler_backup
backup_path: /srv/www/cobbler/
restore_path: /srv/www/cobbler/
max_retries_interval: 600
backup_options:
snapshot: true
max_level: 15
remove_older_than: 365
restore_options:
overwrite: true
mysql:
enabled: true
store_in_swift: true
store_in_ssh: true
store_in_local: false
also_create_restore_job: true
container: freezer_database_backups
schedule: "12 hours"
actions:
- backup_name: freezer_mysql_backup
backup_path: /var/lib/mysql/
restore_path: /tmp/mysql_restore/
backup_options:
mode: mysql
mysql_conf: /etc/freezer/ardana_mysql.conf
snapshot: true
max_level: 14
remove_older_than: 90
swift:
enabled: true
store_in_swift: true
store_in_ssh: true
store_in_local: false
also_create_restore_job: true
container: freezer_rings_backups
schedule: "24 hours"
actions:
- backup_name: freezer_swift_builder_dir_backup
backup_path: /etc/swiftlm/
restore_path: /tmp/swift_builder_dir_restore/
backup_options:
snapshot: true
max_level: 14
remove_older_than: 90
audit:
enabled: true
store_in_swift: true
store_in_ssh: true
store_in_local: false
also_create_restore_job: true
container: freezer_audit_logs_backups
schedule: "24 hours"
actions:
- backup_name: freezer_audit_log_backup
backup_path: "{{ freezer_audit_dir }}"
restore_path: "{{ freezer_audit_dir }}"
backup_options:
snapshot: true
max_level: 14
remove_older_than: 90
restore_options:
overwrite: true
07070100000054000081A40000000000000000000000015E90AC0900000FB4000000000000000000000000000000000000005700000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/defaults/jobs_hacking.yml#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
# When adding a new job, it it necessary to assign it to specific nodes in _freezer_manage_jobs.yml
# This is how you define which server should execute which backup in function of their role:
#
#- hosts: <which ansible role should execute this job, use FRE-AGN to target all>
# roles:
# - freezer-jobs
# tasks:
# - include: roles/freezer-jobs/tasks/_manage_job.yml job_name=<job_name>
#
#jobs:
# <job_name>:
# # [mandatory] If the job should be created
# enabled: <true or false> #If the job should be created
#
# # [mandatory] If the job should be created to store its backup in swift
# store_to_swift: <true or false>
#
# # [mandatory] If the job should be created to store its backup to an SSH server. The job won't be created if valid ssh credentials aren't provided in ssh_credentials.yml
# store_to_ssh: <true or false>
#
# # [mandatory] If the job should be created to store its backup localy, require you to set local_storage_base_dir as well
# store_to_local: <true or false>
#
# #The base directory to store backups to when using storage_local
# local_storage_base_dir: <path>
#
# # [mandatory] If we should create matching restore jobs
# also_create_restore_job: <true or false>
#
# # [mandatory] Name of the container to store backup to.
# container: freezer_lifecycle_manager_backup
#
# # [mandatory] Repeat the backup every <value>
# schedule: <"n hours|minutes|days">
#
# actions: # The order of your actions matters, they will be executed in the specified order.
#
# # [mandatory] Name of the backup
# - backup_name: <name>
#
# # [mandatory] Path to backup
# backup_path: <path>
#
# # Path to restore the backup when using also_create_restore_job
# restore_path: <path>
#
# # Any valid freezer-agent option to pass to the freezer agent when executing the backup
# backup_options:
# <option1_name> : <option1_value>
# <option2_name> : <option2_value>
#
# # Any valid freezer-agent option to pass to the freezer agent when executing the restore
# restore_options:
# <option1_name> : <option1_value>
# <option2_name> : <option2_value>
#
# # Number of time to retry the action if it fails [defaults 5]
# max_retries: <int>
#
# # Amount of time in seconds to wait between retries [defaults 60]
# max_retries_interval: <int>
#
#
#
#
# For example:
#
# foo:
# enabled: true
# storage_swift: true
# storage_ssh: true
# storage_local: false
# also_create_restore_job: true
# container: foo_container
# schedule: "24 hours"
# actions:
# - backup_name: action_1
# backup_path: /home/user1/
# restore_path: /tmp/user1_restore/
# backup_options:
# snapshot: true
# max_level: 15
# max_retries_interval: 2
# max_retries_interval: 10
# - backup_name: action_2
# backup_path: /etc/passwd
# restore_path: /etc/
# restore_options:
# max_priority: true
# overwrite: true
#
#
# Then the _freezer_manage_jobs.yml needs to be edited to add this.
#
#- hosts: NOV-CMP:&FRE-AGN # only on compute node, Don't forget to add ":&FRE-AGN" to the role name
# roles:
# - freezer-jobs
# tasks:
# - include: roles/freezer-jobs/tasks/_manage_job.yml job_name=foo
07070100000055000081A40000000000000000000000015E90AC09000003BA000000000000000000000000000000000000004F00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/defaults/main.yml#
# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
# By default ssh backups are disabled. If variables in ssh_credentials.yml are
# set, they will be turned on automatically.
freezer_ssh_ready: false
# Default audit directory path, This is needed so that the loading of jobs.yml
# doesn't fail when FRE.audit.dir is not set.
freezer_audit_dir: /var/audit
07070100000056000081A40000000000000000000000015E90AC0900000402000000000000000000000000000000000000005C00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/defaults/mysql_credentials.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Mysql credentials to flush tables before backup
---
backup_mysql_host: "{{ FRE_AGN.consumes_FND_MDB.vips.private[0].host }}"
backup_mysql_port: "{{ FRE_AGN.consumes_FND_MDB.vips.private[0].port }}"
backup_mysql_service_user: "{{ FRE_AGN.consumes_FND_MDB.vars.accounts.freezer.username }}"
backup_mysql_service_password: "{{ FRE_AGN.consumes_FND_MDB.vars.accounts.freezer.password }}"
07070100000057000081A40000000000000000000000015E90AC0900000A81000000000000000000000000000000000000005A00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/defaults/ssh_credentials.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
freezer_ssh_host:
freezer_ssh_port:
freezer_ssh_username:
freezer_ssh_base_dir:
freezer_ssh_private_key:
# To write the ssh key on multiple lines, use this syntax:
# Please, note the pipe on the first line and the two space indent on the following lines
#freezer_ssh_private_key: |
# -----BEGIN RSA PRIVATE KEY-----
# MIIEpAIBAAKCAQEAuOWtzWsy8/STJzKd18pQJC/XNj1YXTimawjc0l/uFsT+BDvr
# U05edrIbI4tSkVFfMdVYHP6BSAHHfOL2ZfQItNtoZZZ4t8qfNcKtXJShHouWfs9K
# 6elGAecTOOlXhHVCnwPglKyf3Qq8/Lspm+jMP49W/J8ipZdYjld72vtPBGyhAqNa
# Q0rYT4d2uOBkNrzQ/AHYGwAIozmrMx3jJV4E7daaEw9O/ax1hjDB+WTVV9fgJINP
# Qs1VdqQhuNgYVIkshJLZ+d5HLokXcyxTcDT9wDrJ7a5Xskn0I1/NIM60UvbhwpzM
# SuLCr6m2zYvcWj+zlUhoqcFC7sHRnnOtpl88TQIDAQABAoIBAQCmJaXfYEQCGjWd
# VIuoHGGVkvPWBpv/8OcCaY1c8d0V0uDb1ygozNRv3q4qa4i/kppzQl4Sd9SeaxLi
# s2RsyzSDqGGQX/2MUmRsv8pe1iROOWr7+rQ7q2ZAUW/hhTUijuhV0fsePlzNGVgn
# 1tuWAUSAnQKysSFGIdDu38gpSAiCVL8QV1ch5F46VfsJQYI2trHBAM3FxKceAbGE
# vN2j4xV5q5G0TlA4jZttb/6aqyvysopFnlTssN+42N8Es7KRQnIg6X1piHptyBQo
# /mZkxewZVRi5SEzE70z9gg5+E7+h53j+0EBzJSai/VFb+SqIo42Ep8Ayb2SsD65s
# RrlUTqQVAoGBAOkKpxBJzHqj2U28Y9dg4ykIoEzmJ0szTwcD2TFKy2yADyAIbLU1
# LxLEuTXKL9YPnxaeDugN6lgUj/nLOd2rPmUnQk7R3btDGu+8fW6QC0SSK7lPlD82
# baQ8L8RTzr5A9VL6zqKNl9EygCGeBMZtyVidudjKF4Y4Q3JzQQf4sMTnAoGBAMsc
# 0OUfcxbXd4VXhywVOKznPMX63CckAWeFKwLM9YBfnuv7TrkI0DSFTFIZ33MawjWh
# YtxPigJKx89YutBeSMlA//UMprT9NjNb45Y8xlVzGgPJs89nuHeLWRre6JNWjtuc
# 2xKRb/1RCCBqNuThqxaZwpwEuADrfat2n0s3idqrAoGBAOFxVL0FJ7Nc3tO89Dlf
# mWIQ3kKGRG0TbdgzeOGeobyNBhTPEZsboDZf6WyH9E75PcX7kiAbliEvgzj7yTcQ
# eoQQvqzRidemy2Aw0IctAjmLzpCu05NzbA39y5f6G38iCDIGP/AxWjUezaW34Ja1
# jpsTur5mguttcpI9vSOhCiDxAoGAJpQymVJ/6bbDXPBjHFxrh2vkfzZG2qhcG+2P
# XdjQSLHg3bG+IicqZM9sz6taZeKPQOCGhpIVBJpvmVKhKTK/YHqYI1Nj1rzBrr+l
# WsPwaAqUxmNpY9uvjgVJx3DPfCzUtaH1enFldBgQExgZlR/H/2L1M+0xhfs0w3yk
# hQTnikECgYBJTdVd921n5HDd8eooDMd48UwkKK57OdWxTniO5blyyyzQfV6dBY+A
# NnkiIbTGI88Y/Bx8vWMzFJOgd4O+mXDkyXBfj6Cq/VFPf7RtAoNcNLZ0LwpEb52u
# LDjUGJ+wf4SxU3fBDuxUaNCdZrJRtx1S59WxsQkaiTwHexw1Pi7G1g==
# -----END RSA PRIVATE KEY-----
07070100000058000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000004300000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/tasks07070100000059000081A40000000000000000000000015E90AC090000042B000000000000000000000000000000000000005700000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/tasks/_deploy_ssh_key.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- include_vars: ../defaults/ssh_credentials.yml
- set_fact:
freezer_ssh_ready: true
when: freezer_ssh_private_key and freezer_ssh_username and freezer_ssh_host and freezer_ssh_port and freezer_ssh_base_dir
- name: freezer-jobs | deploy_ssh_key | Deploy SSH key
become: yes
template:
src: "ssh_key.j2"
dest: "/etc/freezer/ssh_key"
owner: root
group: root
mode: 0600
when: freezer_ssh_ready
0707010000005A000081A40000000000000000000000015E90AC0900000854000000000000000000000000000000000000006000000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/tasks/_deployer_restore_helper.yml#
# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
- include: _deploy_ssh_key.yml
- include_vars: roles/freezer-jobs/defaults/jobs.yml
- name: freezer-jobs | deployer_restore_helper | Create Directory
become: yes
file:
path: /root/deployer_restore_helper
owner: root
group: root
state: directory
when: freezer_ssh_ready
- name: freezer-jobs | deployer_restore_helper | Copy restore files
become: yes
template:
src: deployer_restore.ini.j2
dest: "/root/deployer_restore_helper/{{ item['backup_name'] }}.ini"
owner: root
group: root
mode: 0640
with_items: jobs['deployer']['actions']
when: freezer_ssh_ready
- name: freezer-jobs | deployer_restore_helper | Copy restore script
become: yes
template:
src: deployer_restore_script.sh.j2
dest: /root/deployer_restore_helper/deployer_restore_script.sh
owner: root
group: root
mode: 0740
when: freezer_ssh_ready
- name: freezer-jobs | deployer_restore_helper | SSH credentials are setup
debug:
msg: "SSH restore script for the deployer has been deployed in \
/root/deployer_restore_helper/"
when: freezer_ssh_ready
- name: freezer-jobs | deployer_restore_helper | SSH credentials are not setup
debug:
msg: "SSH credentials are not setup, therefore this script will only \
install the freezer-agent but won't prepare it for SSH restore. \
If needed, please fill in valid SSH credentials in \
openstack/my_cloud/config/freezer/ssh_credentials.yml"
when: not freezer_ssh_ready
0707010000005B000081A40000000000000000000000015E90AC0900000A19000000000000000000000000000000000000005300000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/tasks/_manage_job.yml#
# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- include_vars: roles/freezer-jobs/defaults/jobs.yml
- include: _manage_single_job.yml
vars:
job_storage: swift
job_type: backup
job_description: "Ardana Default: {{ job_name }} backup to Swift"
job_is_enabled: "{{ jobs[job_name]['enabled'] and jobs[job_name]['store_in_swift'] }}"
when: freezer_create_backup_jobs
- include: _manage_single_job.yml
vars:
job_storage: swift
job_type: restore
job_description: "Ardana Default: {{ job_name }} restore from Swift"
job_is_enabled: "{{ jobs[job_name]['enabled'] and jobs[job_name]['store_in_swift'] and jobs[job_name]['also_create_restore_job'] }}"
when: freezer_create_restore_jobs
- include: _manage_single_job.yml
vars:
job_storage: ssh
job_type: backup
job_description: "Ardana Default: {{ job_name }} backup to SSH"
job_is_enabled: "{{ jobs[job_name]['enabled'] and jobs[job_name]['store_in_ssh'] }}"
when: freezer_create_backup_jobs and freezer_ssh_ready
- include: _manage_single_job.yml
vars:
job_storage: ssh
job_type: restore
job_description: "Ardana Default: {{ job_name }} restore from SSH"
job_is_enabled: "{{ jobs[job_name]['enabled'] and jobs[job_name]['store_in_ssh'] and jobs[job_name]['also_create_restore_job'] }}"
when: freezer_create_restore_jobs and freezer_ssh_ready
- include: _manage_single_job.yml
vars:
job_storage: local
job_type: backup
job_description: "Ardana Default: {{ job_name }} backup to local"
job_is_enabled: "{{ jobs[job_name]['enabled'] and jobs[job_name]['store_in_local'] }}"
when: freezer_create_backup_jobs
- include: _manage_single_job.yml
vars:
job_storage: local
job_type: restore
job_description: "Ardana Default: {{ job_name }} restore from local"
job_is_enabled: "{{ jobs[job_name]['enabled'] and jobs[job_name]['store_in_local'] and jobs[job_name]['also_create_restore_job'] }}"
when: freezer_create_restore_jobs
0707010000005C000081A40000000000000000000000015E90AC09000009B4000000000000000000000000000000000000005A00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/tasks/_manage_single_job.yml#
# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- set_fact:
job_is_present: "{{ jobs_list_result.stdout.find( job_description ) != -1 }}"
- name: freezer-jobs | manage_single_job | Show which job is being managed
debug:
msg: "Name: {{ job_description }} | Is present: {{ job_is_present }} | Should be present: {{ job_is_enabled }}"
- name: freezer-jobs | manage_job | Copy job template
become: yes
template:
src: "job.json.j2"
dest: "/etc/freezer/scheduler/to_upload/{{ job_name }}_{{ job_type }}_{{ job_storage }}.json"
register: job_copy_result
when: ( job_is_enabled | bool )
- name: freezer-jobs | manage_job | Remove job
become: yes
shell: "{{ freezer_command }} job-delete {{ item.split('|')[0] | trim() }}"
args:
executable: /bin/bash
with_items: jobs_list_result.stdout_lines
when: ( job_description in item ) and
(( job_copy_result is defined and job_copy_result.changed ) or
(( job_is_present | bool ) and not ( job_is_enabled | bool )))
register: remove_job_result
until: "remove_job_result.rc == 0"
retries: 5
delay: 10
- name: freezer-jobs | manage_job | Remove job template
become: yes
file:
dest: "/etc/freezer/scheduler/to_upload/{{ job_name }}_{{ job_type }}_{{ job_storage }}.json"
state: absent
when: not ( job_is_enabled | bool )
- name: freezer-jobs | manage_job | Create job
become: yes
shell: "source {{ ardanauser_home }}/backup.osrc && freezer job-create --file {{ job_name }}_{{ job_type }}_{{ job_storage }}.json --client {{ freezer_client_id }}"
args:
executable: /bin/bash
chdir: /etc/freezer/scheduler/to_upload
when: ( job_is_enabled | bool ) and
(( job_copy_result is defined and job_copy_result.changed ) or
not ( job_is_present | bool ))
register: create_job_result
until: "create_job_result.rc == 0"
retries: 5
delay: 10
0707010000005D000081A40000000000000000000000015E90AC090000039E000000000000000000000000000000000000005A00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/tasks/_mysql_credentials.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- include_vars: ../defaults/mysql_credentials.yml
- name: freezer-jobs | mysql_credentials | Create mysql backup credential file
become: yes
template:
src: "ardana_mysql.conf.j2"
dest: "/etc/freezer/ardana_mysql.conf"
owner: "root"
group: "root"
mode: 0640
0707010000005E000081A40000000000000000000000015E90AC0900000843000000000000000000000000000000000000005800000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/tasks/_pre_manage_jobs.yml#
# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017-2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- include_vars: ../../freezer-agent/defaults/main.yml
- include_vars: ../../freezer-jobs/defaults/jobs.yml
- name: freezer-jobs | pre_manage_backup | Check for freezer client's presence
become: yes
stat:
path: "/usr/bin/freezer"
register: freezer_bin_result
- name: freezer-jobs | pre_manage_backup | Report freezer client's absence
fail:
msg: |
You are trying to use freezer to create a backup or restore job.
However freezer does not seem to be installed on this server.
This could be caused by an error in your model or because the concerned node failed earlier in the deployment process.
Concerned server: hostname: {{ ansible_hostname }} / inventory_hostname: {{ inventory_hostname }}
when: not freezer_bin_result.stat.exists
- name: freezer-jobs | pre_manage_backup | Create directory
become: yes
file:
path: /etc/freezer/scheduler/to_upload
owner: root
group: root
mode: 0600
state: directory
- name: freezer-jobs | pre_manage_backup | List current freezer jobs
become: yes
shell: "{{ freezer_command }} job-list -C {{ ansible_hostname }} | grep -E '^\\| [a-z0-9]{32}' | cut -d '|' -f2,3 ; exit ${PIPESTATUS[0]}"
args:
executable: /bin/bash
register: jobs_list_result
until: "jobs_list_result.rc == 0"
retries: 5
delay: 10
- name: freezer-jobs | pre_manage_backup | Debug job-list if failed
debug: var=jobs_list_result.stderr
when: "jobs_list_result.rc != 0"
0707010000005F000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000004700000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/templates07070100000060000081A40000000000000000000000015E90AC0900000369000000000000000000000000000000000000005C00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/templates/ardana_mysql.conf.j2{#
#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
#}
# Mysql credentials used to flush the tables before a backup
[default]
host = {{ backup_mysql_host }}
port = {{ backup_mysql_port }}
user = {{ backup_mysql_service_user }}
password = {{ backup_mysql_service_password | quote }}
07070100000061000081A40000000000000000000000015E90AC09000004A9000000000000000000000000000000000000005F00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/templates/deployer_restore.ini.j2{#
#
# (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
#}
[default]
action = restore
storage = ssh
ssh_host = {{ freezer_ssh_host }}
ssh_username = {{ freezer_ssh_username }}
ssh_key = /etc/freezer/ssh_key
container = {{ freezer_ssh_base_dir }}/{{ jobs['deployer']['container'] }}
backup_name = {{ item['backup_name'] }}
restore_abs_path = {{ item['restore_path'] }}
log_file = {{ freezer_agent_log_file }}
hostname = {{ freezer_client_id }}
{% if item['restore_options'] is mapping %}
{% for opt_key, opt_val in item['restore_options'].iteritems() %}
{{ opt_key }} = {{ opt_val }}
{% endfor %}
{% endif %}
07070100000062000081A40000000000000000000000015E90AC0900000660000000000000000000000000000000000000006500000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/templates/deployer_restore_script.sh.j2#!/bin/bash
#
# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
echo "Executing this restore script will completly wipe the following paths and restore them at an older state:"
{% for action in jobs['deployer']['actions'] %}
echo "{{ action['backup_path'] }}"
{% endfor %}
echo -e "\n\nBy default, the restore will be done from the lastest present backup."
echo "Would you like to provide a date to restore the backup from ?"
echo "Exact format required: YYYY-MM-DDThh:mm:ss ie: 1979-10-03T23:23:23"
echo "Default: None"
read requested_date
if [ "$requested_date" != "" ]; then
freezer_command="freezer-agent --restore-from-date $requested_date --config "
else
freezer_command="freezer-agent --config "
fi
echo -e "\n\nDo you want to execute the restore ? yes/NO"
echo "Default: No"
read resp
if [ "$resp" = "yes" ]; then
{% for action in jobs['deployer']['actions'] %}
echo "=== Restoring {{ action['backup_path'] }} ==="
$freezer_command {{ action['backup_name'] }}.ini
{% endfor %}
else
echo "Not executing."
fi
07070100000063000081A40000000000000000000000015E90AC0900000B80000000000000000000000000000000000000005300000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/templates/job.json.j2{#
#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
#}
{
"action_defaults": {
{% if job_storage == 'ssh' %}
"storage": "ssh",
"ssh_host": "{{ freezer_ssh_host }}",
"ssh_port": "{{ freezer_ssh_port }}",
"ssh_username": "{{ freezer_ssh_username }}",
"ssh_key": "/etc/freezer/ssh_key",
"container": "{{ freezer_ssh_base_dir }}/{{ jobs[job_name]['container'] }}",
{% elif job_storage == 'local' %}
"storage": "local",
"container": "{{ jobs[job_name]['local_storage_base_dir'] }}/{{ jobs[job_name]['container'] }}",
{% elif job_storage == 'swift' %}
"container": "{{ jobs[job_name]['container'] }}",
{% endif %}
"log_config_append": "{{ freezer_agent_conf_dir }}/agent-logging.conf"
},
"job_actions": [
{% for action in jobs[job_name]['actions'] %}
{
"freezer_action": {
{% if job_type == 'backup' %}
"action": "backup",
"path_to_backup": "{{ action['backup_path'] }}",
{% if action['backup_options'] is mapping %}
{% for opt_key, opt_val in action['backup_options'].iteritems() %}
{% if opt_val is string %}
"{{ opt_key }}": "{{ opt_val }}",
{% else %}
"{{ opt_key }}": {{ opt_val | lower }},
{% endif %}
{% endfor %}
{% endif %}
{% elif job_type == 'restore' %}
"action": "restore",
"hostname": "{{ ansible_hostname }}",
"restore_abs_path": "{{ action['restore_path'] }}",
{% if action['restore_options'] is mapping %}
{% for opt_key, opt_val in action['restore_options'].iteritems() %}
{% if opt_val is string %}
"{{ opt_key }}": "{{ opt_val }}",
{% else %}
"{{ opt_key }}": {{ opt_val | lower}},
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
"backup_name": "{{ action['backup_name'] }}"
},
"max_retries": {{ action['max_retries'] | default(5) }},
"max_retries_interval": {{ action['max_retries_interval'] | default(60) }}
{% if loop.last %}
}
{% else %}
},
{% endif %}
{% endfor %}
],
"job_schedule": {
{% if job_type == 'backup' %}
"schedule_interval": "{{ jobs[job_name]['schedule'] }}"
{% elif job_type == 'restore' %}
"event": "stop"
{% endif %}
},
"description": "{{ job_description }}"
}
07070100000064000081A40000000000000000000000015E90AC09000002A3000000000000000000000000000000000000005200000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-jobs/templates/ssh_key.j2{#
#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
#}
{{ freezer_ssh_private_key }}
07070100000065000041ED0000000000000000000000055E90AC0900000000000000000000000000000000000000000000004700000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-post-configure07070100000066000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000005000000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-post-configure/defaults07070100000067000081A40000000000000000000000015E90AC09000005D6000000000000000000000000000000000000005900000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-post-configure/defaults/main.yml#
# (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
keystone_endpoint: "{{ FRE_API.consumes_KEY_API.vips.private[0].url }}/v3"
keystone_service_tenant: "{{ KEY_API.vars.keystone_service_tenant }}"
keystone_admin_role_name: "{{ KEY_API.vars.keystone_admin_tenant }}"
freezer_service_username: "{{ FRE_API.consumes_KEY_API.vars.keystone_freezer_user }}"
freezer_service_password: "{{ FRE_API.consumes_KEY_API.vars.keystone_freezer_password | quote }}"
backup_username: "{{ FRE_AGN.consumes_KEY_API.vars.keystone_backup_user }}"
backup_password: "{{ FRE_AGN.consumes_KEY_API.vars.keystone_backup_password | quote }}"
backup_tenant_name: "{{ FRE_AGN.consumes_KEY_API.vars.keystone_backup_tenant }}"
keystone:
admin_user: "{{ KEY_API.vars.keystone_admin_user }}"
admin_password: "{{ KEY_API.vars.keystone_admin_pwd | quote }}"
default_domain_name: "{{ KEY_API.vars.keystone_default_domain }}"
07070100000068000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000004C00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-post-configure/meta07070100000069000081A40000000000000000000000015E90AC0900000283000000000000000000000000000000000000005500000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-post-configure/meta/main.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
0707010000006A000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000004D00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-post-configure/tasks0707010000006B000081A40000000000000000000000015E90AC090000091F000000000000000000000000000000000000006300000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-post-configure/tasks/ardana_backup_env.yml#
# (c) Copyright 2015 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Keystone configuration for freezer to backup control pane
---
- name: freezer-post-configure | ardana_backup_env | Create backup tenant
become: yes
keystone_v3:
action: create_project
login_token: "{{ domain_scoped_token.result }}"
endpoint: "{{ keystone_endpoint }}"
project_name: "{{ backup_tenant_name }}"
project_domain_name: Default
description: Tenant to host Freezer backup of Ardana infrastructure
run_once: true
register: freezer_backup_tenant_result
until: not freezer_backup_tenant_result | failed
retries: 5
delay: 10
- name: freezer-post-configure | ardana_backup_env | Create backup Keystone User
become: yes
keystone_v3:
action: create_user
login_token: "{{ domain_scoped_token.result }}"
endpoint: "{{ keystone_endpoint }}"
user_name: "{{ backup_username }}"
user_password: "{{ backup_password }}"
description: User used to upload backup of Ardana's infrastructure to swift
user_domain_name: Default
run_once: true
register: freezer_backup_user_result
until: not freezer_backup_user_result | failed
retries: 5
delay: 10
- name: freezer-post-configure | ardana_backup_env | Give backup user admin role in backup tenant
become: yes
keystone_v3:
action: grant_project_role
login_token: "{{ domain_scoped_token.result }}"
endpoint: "{{ keystone_endpoint }}"
user_name: "{{ backup_username }}"
project_name: "{{ backup_tenant_name }}"
role_name: "{{ keystone_admin_role_name }}"
user_domain_name: Default
project_domain_name: Default
run_once: true
register: freezer_backup_role_result
until: not freezer_backup_role_result | failed
retries: 5
delay: 10
0707010000006C000081A40000000000000000000000015E90AC09000004CB000000000000000000000000000000000000006800000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-post-configure/tasks/elasticsearch_mappings.yml#
# (c) Copyright 2015,2017 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: freezer_post_configure | elasticsearch_mappings | Create elasticsearch mappings
become: yes
command: "{{ freezer_api_venv_bin_dir_by_version | default(freezer_api_venv_bin_dir) }}/freezer-manage --yes --erase --config-file {{ freezer_api_venv_conf_dir_by_version | default(freezer_api_venv_conf_dir) }}/freezer-api.conf --config-dir {{ freezer_api_venv_conf_dir_by_version | default(freezer_api_venv_conf_dir) }} db update"
run_once: true
register: freezer_manage_db_update_result
until: "not freezer_manage_db_update_result.rc != 0"
retries: 12
delay: 10
0707010000006D000081A40000000000000000000000015E90AC090000079B000000000000000000000000000000000000006500000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-post-configure/tasks/keystone_change_pwd.yml#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: freezer-post-configure | keystone_change_pwd | Get a domain scoped token
keystone_v3:
endpoint: "{{ keystone_endpoint }}"
login_username: "{{ keystone.admin_user }}"
login_password: "{{ keystone.admin_password }}"
login_user_domain_name: "{{ keystone.default_domain_name }}"
login_domain_name: "{{ keystone.default_domain_name }}"
action: "token_get"
run_once: true
register: domain_scoped_token
- name: freezer-post-configure | keystone_change_pwd | Update the password for freezer user
keystone_v3:
action: "reset_password_by_admin"
login_token: "{{ domain_scoped_token.result }}"
endpoint: "{{ keystone_endpoint }}"
user_name: "{{ freezer_service_username }}"
user_password: "{{ freezer_service_password }}"
description: Freezer service user
user_domain_name: Default
run_once: true
- name: freezer-post-configure | keystone_change_pwd | Update the password for backup user
keystone_v3:
action: "reset_password_by_admin"
login_token: "{{ domain_scoped_token.result }}"
endpoint: "{{ keystone_endpoint }}"
user_name: "{{ backup_username }}"
user_password: "{{ backup_password }}"
description: User used to upload backup of Ardana's infrastructure to swift
user_domain_name: Default
run_once: true
0707010000006E000081A40000000000000000000000015E90AC0900000894000000000000000000000000000000000000005F00000000ardana-freezer-8.0+git.1586539529.b7d295f/roles/freezer-post-configure/tasks/keystone_conf.yml#
# (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- name: freezer-post-configure | keystone_conf | Get a domain scoped token
keystone_v3:
endpoint: "{{ keystone_endpoint }}"
login_username: "{{ keystone.admin_user }}"
login_password: "{{ keystone.admin_password }}"
login_user_domain_name: "{{ keystone.default_domain_name }}"
login_domain_name: "{{ keystone.default_domain_name }}"
action: "token_get"
run_once: true
register: domain_scoped_token
- name: freezer-post-configure | keystone_conf | Create Freezer Keystone User
become: yes
keystone_v3:
action: create_user
login_token: "{{ domain_scoped_token.result }}"
endpoint: "{{ keystone_endpoint }}"
user_name: "{{ freezer_service_username }}"
user_password: "{{ freezer_service_password }}"
description: Freezer service user
user_domain_name: Default
run_once: true
register: freezer_keystone_user_result
until: not freezer_keystone_user_result | failed
retries: 5
delay: 10
- name: freezer-post-configure | keystone_conf | Give freezer user admin role in service tenant
become: yes
keystone_v3:
action: grant_project_role
login_token: "{{ domain_scoped_token.result }}"
endpoint: "{{ keystone_endpoint }}"
user_name: "{{ freezer_service_username }}"
project_name: "{{ keystone_service_tenant }}"
role_name: "{{ keystone_admin_role_name }}"
user_domain_name: Default
project_domain_name: Default
run_once: true
register: freezer_keystone_role_result
until: not freezer_keystone_role_result | failed
retries: 5
delay: 10
0707010000006F000041ED0000000000000000000000025E90AC0900000000000000000000000000000000000000000000003000000000ardana-freezer-8.0+git.1586539529.b7d295f/sos.d07070100000070000081A40000000000000000000000015E90AC0900000512000000000000000000000000000000000000004500000000ardana-freezer-8.0+git.1586539529.b7d295f/sos.d/openstack-freezer.py#
# (c) Copyright 2016 Hewlett Packard Enterprise Development LP
# (c) Copyright 2017 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
from sos.plugins import DebianPlugin
from sos.plugins import Plugin
class Freezer(Plugin, DebianPlugin):
""" Freezer related information for Debian distributions
"""
plugin_name = "freezer"
option_list = [("log", "gathers all freezer logs", "slow", False)]
files = ('/var/log/freezer-agent/',
'/var/log/freezer.log',
'/var/log/freezer-api/',
'/etc/freezer/',
'/root/.freezer/',
'/usr/bin/freezer-agent',
'/usr/bin/freezer-scheduler')
def setup(self):
self.add_copy_spec([
"/etc/freezer/",
"/var/log/freezer-*",
])
07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000TRAILER!!!317 blocks