Add freezer ansible role
Co-Authored-By: caoyuan <cao.yuan@99cloud.net> Co-Authored-By: zhubingbing <zhubingbing10@gmail.com> Change-Id: I419f7ceb219ea9643cfd225c130018f967ddd860 Partially-implements: bp freezer-ansible-role
This commit is contained in:
parent
69cc2489f3
commit
9c82ed8071
@ -129,6 +129,8 @@ designate_bind_port: "53"
|
||||
designate_mdns_port: "5354"
|
||||
designate_rndc_port: "953"
|
||||
|
||||
freezer_api_port: "9090"
|
||||
|
||||
iscsi_port: "3260"
|
||||
|
||||
gnocchi_api_port: "8041"
|
||||
@ -287,6 +289,7 @@ enable_cloudkitty: "no"
|
||||
enable_congress: "no"
|
||||
enable_designate: "no"
|
||||
enable_etcd: "no"
|
||||
enable_freezer: "no"
|
||||
enable_gnocchi: "no"
|
||||
enable_grafana: "no"
|
||||
enable_heat: "yes"
|
||||
@ -360,7 +363,7 @@ enable_destroy_images: "no"
|
||||
elasticsearch_address: "{{ kolla_internal_vip_address }}"
|
||||
elasticsearch_protocol: "{{ internal_protocol }}"
|
||||
|
||||
enable_elasticsearch: "{{ 'yes' if enable_central_logging | bool else 'no' }}"
|
||||
enable_elasticsearch: "{{ 'yes' if enable_central_logging | bool or enable_freezer | bool else 'no' }}"
|
||||
enable_kibana: "{{ 'yes' if enable_central_logging | bool else 'no' }}"
|
||||
|
||||
####################
|
||||
|
@ -75,6 +75,9 @@ control
|
||||
[cloudkitty:children]
|
||||
control
|
||||
|
||||
[freezer:children]
|
||||
control
|
||||
|
||||
[memcached:children]
|
||||
control
|
||||
|
||||
@ -248,6 +251,10 @@ cloudkitty
|
||||
[cloudkitty-processor:children]
|
||||
cloudkitty
|
||||
|
||||
# Freezer
|
||||
[freezer-api:children]
|
||||
freezer
|
||||
|
||||
# iSCSI
|
||||
[iscsid:children]
|
||||
compute
|
||||
|
@ -94,6 +94,9 @@ control
|
||||
[cloudkitty:children]
|
||||
control
|
||||
|
||||
[freezer:children]
|
||||
control
|
||||
|
||||
[memcached:children]
|
||||
control
|
||||
|
||||
@ -264,6 +267,10 @@ cloudkitty
|
||||
[cloudkitty-processor:children]
|
||||
cloudkitty
|
||||
|
||||
# Freezer
|
||||
[freezer-api:children]
|
||||
freezer
|
||||
|
||||
# iSCSI
|
||||
[iscsid:children]
|
||||
compute
|
||||
|
@ -48,7 +48,7 @@
|
||||
- "apache_access"
|
||||
- "wsgi_access"
|
||||
- "wsgi_python"
|
||||
|
||||
|
||||
- name: Copying over fluentd filter config files
|
||||
template:
|
||||
src: "conf/filter/{{ item }}.conf.j2"
|
||||
@ -78,6 +78,7 @@
|
||||
- { name: "cloudkitty", enabled: "{{ enable_cloudkitty }}" }
|
||||
- { name: "designate", enabled: "{{ enable_designate }}" }
|
||||
- { name: "elasticsearch", enabled: "{{ enable_elasticsearch }}" }
|
||||
- { name: "freezer", enabled: "{{ enable_freezer }}" }
|
||||
- { name: "glance", enabled: "{{ enable_glance }}" }
|
||||
- { name: "global", enabled: "yes" }
|
||||
- { name: "gnocchi", enabled: "{{ enable_gnocchi }}" }
|
||||
|
@ -0,0 +1,3 @@
|
||||
"/var/log/kolla/freezer/*.log"
|
||||
{
|
||||
}
|
@ -8,6 +8,7 @@
|
||||
( 'cloudkitty', enable_cloudkitty ),
|
||||
( 'designate', enable_designate ),
|
||||
( 'elasticsearch', enable_elasticsearch ),
|
||||
( 'freezer', enable_freezer ),
|
||||
( 'glance', enable_glance ),
|
||||
( 'gnocchi', enable_gnocchi ),
|
||||
( 'grafana', enable_grafana ),
|
||||
|
44
ansible/roles/freezer/defaults/main.yml
Normal file
44
ansible/roles/freezer/defaults/main.yml
Normal file
@ -0,0 +1,44 @@
|
||||
---
|
||||
project_name: "freezer"
|
||||
|
||||
freezer_services:
|
||||
freezer-api:
|
||||
container_name: freezer_api
|
||||
group: freezer-api
|
||||
enabled: true
|
||||
image: "{{ freezer_api_image_full }}"
|
||||
volumes:
|
||||
- "{{ node_config_directory }}/freezer-api/:{{ container_config_directory }}/:ro"
|
||||
- "/etc/localtime:/etc/localtime:ro"
|
||||
- "freezer:/var/lib/freezer/"
|
||||
- "kolla_logs:/var/log/kolla/"
|
||||
|
||||
|
||||
####################
|
||||
# Database
|
||||
####################
|
||||
freezer_database_name: "freezer"
|
||||
freezer_database_user: "freezer"
|
||||
freezer_database_address: "{{ kolla_internal_fqdn }}:{{ database_port }}"
|
||||
|
||||
|
||||
####################
|
||||
# Docker
|
||||
####################
|
||||
freezer_api_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-freezer-api"
|
||||
freezer_api_tag: "{{ openstack_release }}"
|
||||
freezer_api_image_full: "{{ freezer_api_image }}:{{ freezer_api_tag }}"
|
||||
|
||||
|
||||
####################
|
||||
# OpenStack
|
||||
####################
|
||||
freezer_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ freezer_api_port }}"
|
||||
freezer_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ freezer_api_port }}"
|
||||
freezer_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ freezer_api_port }}"
|
||||
|
||||
freezer_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
freezer_keystone_user: "freezer"
|
||||
|
||||
openstack_freezer_auth: "{'auth_url':'{{ openstack_auth.auth_url }}','username':'{{ openstack_auth.username }}','password':'{{ openstack_auth.password }}','project_name':'{{ openstack_auth.project_name }}'}"
|
24
ansible/roles/freezer/handlers/main.yml
Normal file
24
ansible/roles/freezer/handlers/main.yml
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
- name: Restart freezer-api container
|
||||
vars:
|
||||
service_name: "freezer-api"
|
||||
service: "{{ freezer_services[service_name] }}"
|
||||
config_json: "{{ freezer_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
||||
freezer_conf: "{{ freezer_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
||||
policy_json: "{{ freezer_policy_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
||||
freezer_api_container: "{{ check_freezer_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
||||
kolla_docker:
|
||||
action: "recreate_or_restart_container"
|
||||
common_options: "{{ docker_common_options }}"
|
||||
name: "{{ service.container_name }}"
|
||||
image: "{{ service.image }}"
|
||||
volumes: "{{ service.volumes }}"
|
||||
when:
|
||||
- action != "config"
|
||||
- inventory_hostname in groups[service.group]
|
||||
- service.enabled | bool
|
||||
- config_json.changed | bool
|
||||
or wsgi_freezer_api.changed | bool
|
||||
or freezer_conf.changed | bool
|
||||
or policy_json.changed | bool
|
||||
or freezer_api_container.changed | bool
|
3
ansible/roles/freezer/meta/main.yml
Normal file
3
ansible/roles/freezer/meta/main.yml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
dependencies:
|
||||
- { role: common }
|
19
ansible/roles/freezer/tasks/bootstrap_service.yml
Normal file
19
ansible/roles/freezer/tasks/bootstrap_service.yml
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
- name: Running Freezer bootstrap container
|
||||
vars:
|
||||
freezer_api: "{{ freezer_services['freezer-api'] }}"
|
||||
kolla_docker:
|
||||
action: "start_container"
|
||||
common_options: "{{ docker_common_options }}"
|
||||
detach: False
|
||||
environment:
|
||||
KOLLA_BOOTSTRAP:
|
||||
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
||||
image: "{{ freezer_api.image }}"
|
||||
labels:
|
||||
BOOTSTRAP:
|
||||
name: "bootstrap_freezer"
|
||||
restart_policy: "never"
|
||||
volumes: "{{ freezer_api.volumes }}"
|
||||
run_once: True
|
||||
delegate_to: "{{ groups[freezer_api.group][0] }}"
|
88
ansible/roles/freezer/tasks/config.yml
Normal file
88
ansible/roles/freezer/tasks/config.yml
Normal file
@ -0,0 +1,88 @@
|
||||
---
|
||||
- name: Ensuring config directories exist
|
||||
file:
|
||||
path: "{{ node_config_directory }}/{{ item.key }}"
|
||||
state: "directory"
|
||||
recurse: yes
|
||||
when:
|
||||
- inventory_hostname in groups[item.value.group]
|
||||
- item.value.enabled | bool
|
||||
with_dict: "{{ freezer_services }}"
|
||||
|
||||
- name: Copying over config.json files for services
|
||||
template:
|
||||
src: "{{ item.key }}.json.j2"
|
||||
dest: "{{ node_config_directory }}/{{ item.key }}/config.json"
|
||||
register: freezer_config_jsons
|
||||
when:
|
||||
- inventory_hostname in groups[item.value.group]
|
||||
- item.value.enabled | bool
|
||||
with_dict: "{{ freezer_services }}"
|
||||
notify:
|
||||
- Restart freezer-api container
|
||||
|
||||
- name: Copying over wsgi-freezer-api.conf
|
||||
template:
|
||||
src: "wsgi-freezer-api.conf.j2"
|
||||
dest: "{{ node_config_directory }}/{{ item.key }}/wsgi-freezer-api.conf"
|
||||
register: wsgi_freezer_api
|
||||
when:
|
||||
- inventory_hostname in groups[item.value.group]
|
||||
- service.enabled | bool
|
||||
with_dict: "{{ freezer_services }}"
|
||||
notify:
|
||||
- Restart freezer-api container
|
||||
|
||||
- name: Copying over freezer-api.conf
|
||||
merge_configs:
|
||||
vars:
|
||||
service_name: "{{ item.key }}"
|
||||
sources:
|
||||
- "{{ role_path }}/templates/freezer-api.conf.j2"
|
||||
- "{{ node_config_directory }}/global.conf"
|
||||
- "{{ node_config_directory }}/database.conf"
|
||||
- "{{ node_config_directory }}/messaging.conf"
|
||||
- "{{ node_config_directory }}/freezer.conf"
|
||||
- "{{ node_custom_config }}/freezer/{{ item.key }}.conf"
|
||||
- "{{ node_custom_config }}/freezer/{{ inventory_hostname }}/{{ item.key }}.conf"
|
||||
dest: "{{ node_config_directory }}/{{ item.key }}/freezer-api.conf"
|
||||
register: freezer_confs
|
||||
when:
|
||||
- inventory_hostname in groups[item.value.group]
|
||||
- item.value.enabled | bool
|
||||
with_dict: "{{ freezer_services }}"
|
||||
notify:
|
||||
- Restart freezer-api container
|
||||
|
||||
- name: Check if policies shall be overwritten
|
||||
local_action: stat path="{{ node_config_directory }}/freezer/policy.json"
|
||||
register: freezer_policy
|
||||
|
||||
- name: Copying over existing policy.json
|
||||
template:
|
||||
src: "{{ node_config_directory }}/freezer/policy.json"
|
||||
dest: "{{ node_config_directory }}/{{ item.key }}/policy.json"
|
||||
register: freezer_policy_jsons
|
||||
when:
|
||||
- freezer_policy.stat.exists
|
||||
- inventory_hostname in groups[item.value.group]
|
||||
- item.value.enabled | bool
|
||||
with_dict: "{{ freezer_services }}"
|
||||
notify:
|
||||
- Restart freezer-api container
|
||||
|
||||
- name: Check freezer containers
|
||||
kolla_docker:
|
||||
action: "compare_container"
|
||||
common_options: "{{ docker_common_options }}"
|
||||
name: "{{ item.value.container_name }}"
|
||||
image: "{{ item.value.image }}"
|
||||
volumes: "{{ item.value.volumes }}"
|
||||
register: check_freezer_containers
|
||||
when:
|
||||
- action != "config"
|
||||
- inventory_hostname in groups[item.value.group]
|
||||
- item.value.enabled | bool
|
||||
with_dict: "{{ freezer_services }}"
|
||||
notify:
|
||||
- Restart freezer-api container
|
9
ansible/roles/freezer/tasks/deploy.yml
Normal file
9
ansible/roles/freezer/tasks/deploy.yml
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
- include: register.yml
|
||||
|
||||
- include: config.yml
|
||||
|
||||
- include: bootstrap_service.yml
|
||||
|
||||
- name: Flush handlers
|
||||
meta: flush_handlers
|
2
ansible/roles/freezer/tasks/main.yml
Normal file
2
ansible/roles/freezer/tasks/main.yml
Normal file
@ -0,0 +1,2 @@
|
||||
---
|
||||
- include: "{{ action }}.yml"
|
15
ansible/roles/freezer/tasks/precheck.yml
Normal file
15
ansible/roles/freezer/tasks/precheck.yml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
- name: Get container facts
|
||||
kolla_container_facts:
|
||||
name: "{{ freezer_services.keys() }}"
|
||||
register: container_facts
|
||||
|
||||
- name: Checking free port for Freezer API
|
||||
wait_for:
|
||||
host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
|
||||
port: "{{ freezer_api_port }}"
|
||||
connect_timeout: 1
|
||||
state: stopped
|
||||
when:
|
||||
- inventory_hostname in groups[freezer_services['freezer-api']['group']]
|
||||
- container_facts['freezer_api'] is not defined
|
10
ansible/roles/freezer/tasks/pull.yml
Normal file
10
ansible/roles/freezer/tasks/pull.yml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
- name: Pulling freezer image
|
||||
kolla_docker:
|
||||
action: "pull_image"
|
||||
common_options: "{{ docker_common_options }}"
|
||||
image: "{{ item.value.image }}"
|
||||
when:
|
||||
- inventory_hostname in groups[item.value.group]
|
||||
- item.value.enabled | bool
|
||||
with_dict: "{{ freezer_services }}"
|
2
ansible/roles/freezer/tasks/reconfigure.yml
Normal file
2
ansible/roles/freezer/tasks/reconfigure.yml
Normal file
@ -0,0 +1,2 @@
|
||||
---
|
||||
- include: deploy.yml
|
42
ansible/roles/freezer/tasks/register.yml
Normal file
42
ansible/roles/freezer/tasks/register.yml
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
- name: Creating the freezer service and endpoint
|
||||
kolla_toolbox:
|
||||
module_name: kolla_keystone_service
|
||||
module_args:
|
||||
service_name: freezer
|
||||
service_type: backup-service
|
||||
description: 'Openstack Freezer Backup Service'
|
||||
endpoint_region: "{{ openstack_region_name }}"
|
||||
url: "{{ item.url }}"
|
||||
interface: "{{ item.interface }}"
|
||||
region_name: "{{ openstack_region_name }}"
|
||||
auth: "{{ '{{ openstack_freezer_auth }}' }}"
|
||||
module_extra_vars:
|
||||
openstack_freezer_auth: "{{ openstack_freezer_auth }}"
|
||||
register: freezer_endpoint
|
||||
until: freezer_endpoint|success
|
||||
retries: 10
|
||||
delay: 5
|
||||
run_once: True
|
||||
with_items:
|
||||
- {'interface': 'admin', 'url': '{{ freezer_admin_endpoint }}'}
|
||||
- {'interface': 'internal', 'url': '{{ freezer_internal_endpoint }}'}
|
||||
- {'interface': 'public', 'url': '{{ freezer_public_endpoint }}'}
|
||||
|
||||
- name: Creating the freezer project, user, and role
|
||||
kolla_toolbox:
|
||||
module_name: kolla_keystone_user
|
||||
module_args:
|
||||
project: service
|
||||
user: freezer
|
||||
password: "{{ freezer_keystone_password }}"
|
||||
role: admin
|
||||
region_name: "{{ openstack_region_name }}"
|
||||
auth: "{{ '{{ openstack_freezer_auth }}' }}"
|
||||
module_extra_vars:
|
||||
openstack_freezer_auth: "{{ openstack_freezer_auth }}"
|
||||
register: freezer_user
|
||||
until: freezer_user|success
|
||||
retries: 10
|
||||
delay: 5
|
||||
run_once: True
|
7
ansible/roles/freezer/tasks/upgrade.yml
Normal file
7
ansible/roles/freezer/tasks/upgrade.yml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
- include: config.yml
|
||||
|
||||
- include: bootstrap_service.yml
|
||||
|
||||
- name: Flush handlers
|
||||
meta: flush_handlers
|
37
ansible/roles/freezer/templates/freezer-api.conf.j2
Normal file
37
ansible/roles/freezer/templates/freezer-api.conf.j2
Normal file
@ -0,0 +1,37 @@
|
||||
[DEFAULT]
|
||||
debug = {{ freezer_logging_debug }}
|
||||
|
||||
log_dir = /var/log/kolla/freezer
|
||||
|
||||
{% if service_name == 'freezer-api' %}
|
||||
bind_host = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}
|
||||
bind_port = {{ freezer_api_port }}
|
||||
{% endif %}
|
||||
|
||||
transport_url = rabbit://{% for host in groups['rabbitmq'] %}{{ rabbitmq_user }}:{{ rabbitmq_password }}@{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ rabbitmq_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
[keystone_authtoken]
|
||||
auth_uri = {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_public_port }}
|
||||
auth_url = {{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_admin_port }}
|
||||
auth_type = password
|
||||
project_domain_id = default
|
||||
user_domain_id = default
|
||||
admin_tenant_name = service
|
||||
admin_user = {{ freezer_keystone_user }}
|
||||
admin_password = {{ freezer_keystone_password }}
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
[paste_deploy]
|
||||
config_file = /etc/freezer/freezer-paste.ini
|
||||
|
||||
[storage]
|
||||
hosts = {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ elasticsearch_port }}
|
||||
number_of_replicas = 0
|
||||
index = freezer
|
||||
db = elasticsearch
|
||||
|
||||
[oslo_messaging_notifications]
|
||||
driver = messagingv2
|
33
ansible/roles/freezer/templates/freezer-api.json.j2
Normal file
33
ansible/roles/freezer/templates/freezer-api.json.j2
Normal file
@ -0,0 +1,33 @@
|
||||
{% set apache_cmd = 'apache2' if kolla_base_distro in ['ubuntu', 'debian'] else 'httpd' %}
|
||||
{% set apache_dir = 'apache2/conf-enabled' if kolla_base_distro in ['ubuntu', 'debian'] else 'httpd/conf.d' %}
|
||||
{
|
||||
"command": "{{ apache_cmd }} -DFOREGROUND",
|
||||
"config_files": [
|
||||
{
|
||||
"source": "{{ container_config_directory }}/freezer-api.conf",
|
||||
"dest": "/etc/freezer/freezer.conf",
|
||||
"owner": "freezer",
|
||||
"perm": "0600"
|
||||
},
|
||||
{
|
||||
"source": "{{ container_config_directory }}/wsgi-freezer-api.conf",
|
||||
"dest": "/etc/{{ apache_dir }}/wsgi-freezer.conf",
|
||||
"owner": "freezer",
|
||||
"perm": "0600"
|
||||
},
|
||||
{
|
||||
"source": "{{ container_config_directory }}/policy.json",
|
||||
"dest": "/etc/freezer/policy.json",
|
||||
"owner": "freezer",
|
||||
"perm": "0600",
|
||||
"optional": true
|
||||
}
|
||||
],
|
||||
"permissions": [
|
||||
{
|
||||
"path": "/var/log/kolla/freezer",
|
||||
"owner": "freezer:freezer",
|
||||
"recurse": true
|
||||
}
|
||||
]
|
||||
}
|
23
ansible/roles/freezer/templates/wsgi-freezer-api.conf.j2
Normal file
23
ansible/roles/freezer/templates/wsgi-freezer-api.conf.j2
Normal file
@ -0,0 +1,23 @@
|
||||
{% set freezer_log_dir = '/var/log/kolla/freezer' %}
|
||||
{% set python_path = '/usr/lib/python2.7/site-packages' if kolla_install_type == 'binary' else '/var/lib/kolla/venv/lib/python2.7/site-packages' %}
|
||||
Listen {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}:{{ freezer_api_port }}
|
||||
|
||||
<VirtualHost *:{{ freezer_api_port }}>
|
||||
WSGIDaemonProcess freezer-api processes={{ openstack_service_workers }} threads=1 user=freezer display-name=%{GROUP}
|
||||
WSGIProcessGroup freezer-api
|
||||
WSGIApplicationGroup freezer-api
|
||||
WSGIScriptAlias / {{ python_path }}/freezer_api/cmd/wsgi.py
|
||||
|
||||
ErrorLog {{ freezer_log_dir }}/freezer-api.log
|
||||
CustomLog {{ freezer_log_dir }}/freezer-api_access.log combined
|
||||
LogLevel info
|
||||
|
||||
<Directory {{ python_path }}/freezer_api>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
Require all granted
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
allow from all
|
||||
LimitRequestBody 102400
|
||||
</Directory>
|
||||
</VirtualHost>
|
@ -135,6 +135,17 @@
|
||||
- "{{ 'gnocchi_api' not in haproxy_stat }}"
|
||||
- inventory_hostname in groups['haproxy']
|
||||
|
||||
- name: Checking free port for Freezer API HAProxy
|
||||
wait_for:
|
||||
host: "{{ kolla_internal_vip_address }}"
|
||||
port: "{{ freezer_api_port }}"
|
||||
connect_timeout: 1
|
||||
state: stopped
|
||||
when:
|
||||
- enable_freezer | bool
|
||||
- "{{ 'freezer_api' not in haproxy_stat }}"
|
||||
- inventory_hostname in groups['haproxy']
|
||||
|
||||
- name: Checking free port for Grafana server HAProxy
|
||||
wait_for:
|
||||
host: "{{ kolla_internal_vip_address }}"
|
||||
|
@ -391,6 +391,24 @@ listen karbor_api_external
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% if enable_freezer | bool %}
|
||||
listen freezer_api
|
||||
bind {{ kolla_internal_vip_address }}:{{ freezer_api_port }}
|
||||
{% for host in groups['freezer-api'] %}
|
||||
server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ freezer_api_port }} check inter 2000 rise 2 fall 5
|
||||
{% endfor %}
|
||||
{% if haproxy_enable_external_vip | bool %}
|
||||
|
||||
listen freezer_api_external
|
||||
bind {{ kolla_external_vip_address }}:{{ freezer_api_port }} {{ tls_bind_info }}
|
||||
{% for host in groups['freezer-api'] %}
|
||||
server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ freezer_api_port }} check inter 2000 rise 2 fall 5
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% if enable_senlin | bool %}
|
||||
listen senlin_api
|
||||
bind {{ kolla_internal_vip_address }}:{{ senlin_api_port }}
|
||||
|
@ -502,6 +502,15 @@
|
||||
tags: cloudkitty,
|
||||
when: enable_cloudkitty | bool }
|
||||
|
||||
- name: Apply role freezer
|
||||
hosts:
|
||||
- freezer-api
|
||||
serial: '{{ serial|default("0") }}'
|
||||
roles:
|
||||
- { role: freezer,
|
||||
tags: freezer,
|
||||
when: enable_freezer | bool }
|
||||
|
||||
- name: Apply role senlin
|
||||
hosts:
|
||||
- senlin-api
|
||||
|
@ -133,6 +133,7 @@ kolla_internal_vip_address: "10.10.10.254"
|
||||
#enable_designate: "no"
|
||||
#enable_destroy_images: "no"
|
||||
#enable_etcd: "no"
|
||||
#enable_freezer: "no"
|
||||
#enable_gnocchi: "no"
|
||||
#enable_grafana: "no"
|
||||
#enable_heat: "yes"
|
||||
|
@ -62,6 +62,9 @@ cloudkitty_keystone_password:
|
||||
panko_database_password:
|
||||
panko_keystone_password:
|
||||
|
||||
freezer_database_password:
|
||||
freezer_keystone_password:
|
||||
|
||||
sahara_database_password:
|
||||
sahara_keystone_password:
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
---
|
||||
features:
|
||||
- Add freezer Dockerfile
|
||||
- Freezer is a distributed backup restore and disaster recovery as a service platform
|
||||
Add freezer ansible role
|
||||
|
Loading…
Reference in New Issue
Block a user