ADD venus for kolla-ansible
This project [1] can provide a one-stop solution to log collection, cleaning, indexing, analysis, alarm, visualization, report generation and other needs, which involves helping operator or maintainer to quickly solve retrieve problems, grasp the operational health of the platform, and improve the level of platform management. [1] https://wiki.openstack.org/wiki/Venus Change-Id: If3562bbed6181002b76831bab54f863041c5a885
This commit is contained in:
parent
f26b9cd8ad
commit
3ccb176f13
@ -517,6 +517,8 @@ tacker_server_port: "9890"
|
|||||||
|
|
||||||
trove_api_port: "8779"
|
trove_api_port: "8779"
|
||||||
|
|
||||||
|
venus_api_port: "10010"
|
||||||
|
|
||||||
watcher_api_port: "9322"
|
watcher_api_port: "9322"
|
||||||
|
|
||||||
zookeeper_client_port: "2181"
|
zookeeper_client_port: "2181"
|
||||||
@ -710,6 +712,7 @@ enable_tacker: "no"
|
|||||||
enable_telegraf: "no"
|
enable_telegraf: "no"
|
||||||
enable_trove: "no"
|
enable_trove: "no"
|
||||||
enable_trove_singletenant: "no"
|
enable_trove_singletenant: "no"
|
||||||
|
enable_venus: "no"
|
||||||
enable_vitrage: "no"
|
enable_vitrage: "no"
|
||||||
enable_watcher: "no"
|
enable_watcher: "no"
|
||||||
enable_zookeeper: "{{ enable_kafka | bool or enable_storm | bool }}"
|
enable_zookeeper: "{{ enable_kafka | bool or enable_storm | bool }}"
|
||||||
|
@ -735,3 +735,12 @@ ovn-database
|
|||||||
|
|
||||||
[ovn-sb-db:children]
|
[ovn-sb-db:children]
|
||||||
ovn-database
|
ovn-database
|
||||||
|
|
||||||
|
[venus:children]
|
||||||
|
monitoring
|
||||||
|
|
||||||
|
[venus-api:children]
|
||||||
|
venus
|
||||||
|
|
||||||
|
[venus-manager:children]
|
||||||
|
venus
|
||||||
|
@ -753,3 +753,12 @@ ovn-database
|
|||||||
|
|
||||||
[ovn-sb-db:children]
|
[ovn-sb-db:children]
|
||||||
ovn-database
|
ovn-database
|
||||||
|
|
||||||
|
[venus:children]
|
||||||
|
monitoring
|
||||||
|
|
||||||
|
[venus-api:children]
|
||||||
|
venus
|
||||||
|
|
||||||
|
[venus-manager:children]
|
||||||
|
venus
|
||||||
|
@ -201,6 +201,7 @@
|
|||||||
- { name: "swift", enabled: "{{ enable_swift | bool }}" }
|
- { name: "swift", enabled: "{{ enable_swift | bool }}" }
|
||||||
- { name: "tacker", enabled: "{{ enable_tacker | bool }}" }
|
- { name: "tacker", enabled: "{{ enable_tacker | bool }}" }
|
||||||
- { name: "trove", enabled: "{{ enable_trove | bool }}" }
|
- { name: "trove", enabled: "{{ enable_trove | bool }}" }
|
||||||
|
- { name: "venus", enabled: "{{ enable_venus | bool }}" }
|
||||||
- { name: "vitrage", enabled: "{{ enable_vitrage | bool }}" }
|
- { name: "vitrage", enabled: "{{ enable_vitrage | bool }}" }
|
||||||
- { name: "watcher", enabled: "{{ enable_watcher | bool }}" }
|
- { name: "watcher", enabled: "{{ enable_watcher | bool }}" }
|
||||||
- { name: "zookeeper", enabled: "{{ enable_zookeeper | bool }}" }
|
- { name: "zookeeper", enabled: "{{ enable_zookeeper | bool }}" }
|
||||||
|
@ -166,6 +166,11 @@
|
|||||||
pattern ^(masakari-engine|masakari-api)$
|
pattern ^(masakari-engine|masakari-api)$
|
||||||
tag openstack_python
|
tag openstack_python
|
||||||
</rule>
|
</rule>
|
||||||
|
<rule>
|
||||||
|
key programname
|
||||||
|
pattern ^(venus-api|venus-manager)$
|
||||||
|
tag openstack_python
|
||||||
|
</rule>
|
||||||
<rule>
|
<rule>
|
||||||
key programname
|
key programname
|
||||||
pattern .+
|
pattern .+
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
"/var/log/kolla/venus/*.log"
|
||||||
|
{
|
||||||
|
}
|
138
ansible/roles/venus/defaults/main.yml
Normal file
138
ansible/roles/venus/defaults/main.yml
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
---
|
||||||
|
venus_services:
|
||||||
|
venus-api:
|
||||||
|
container_name: venus_api
|
||||||
|
group: venus-api
|
||||||
|
enabled: true
|
||||||
|
image: "{{ venus_api_image_full }}"
|
||||||
|
volumes: "{{ venus_api_default_volumes + venus_api_extra_volumes }}"
|
||||||
|
dimensions: "{{ venus_api_dimensions }}"
|
||||||
|
healthcheck: "{{ venus_api_healthcheck }}"
|
||||||
|
haproxy:
|
||||||
|
venus_api:
|
||||||
|
enabled: "{{ enable_venus }}"
|
||||||
|
mode: "http"
|
||||||
|
external: false
|
||||||
|
port: "{{ venus_api_port }}"
|
||||||
|
venus_api_external:
|
||||||
|
enabled: "{{ enable_venus }}"
|
||||||
|
mode: "http"
|
||||||
|
external: true
|
||||||
|
port: "{{ venus_api_port }}"
|
||||||
|
venus-manager:
|
||||||
|
container_name: venus_manager
|
||||||
|
group: venus-manager
|
||||||
|
enabled: true
|
||||||
|
image: "{{ venus_manager_image_full }}"
|
||||||
|
volumes: "{{ venus_manager_default_volumes + venus_manager_extra_volumes }}"
|
||||||
|
dimensions: "{{ venus_manager_dimensions }}"
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Database
|
||||||
|
####################
|
||||||
|
venus_database_name: "venus"
|
||||||
|
venus_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}venus{% endif %}"
|
||||||
|
venus_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||||
|
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Docker
|
||||||
|
####################
|
||||||
|
venus_install_type: "{{ kolla_install_type }}"
|
||||||
|
venus_tag: "{{ openstack_tag }}"
|
||||||
|
|
||||||
|
venus_api_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ venus_install_type }}-venus-api"
|
||||||
|
venus_api_tag: "{{ venus_tag }}"
|
||||||
|
venus_api_image_full: "{{ venus_api_image }}:{{ venus_api_tag }}"
|
||||||
|
|
||||||
|
venus_manager_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ venus_install_type }}-venus-manager"
|
||||||
|
venus_manager_tag: "{{ venus_tag }}"
|
||||||
|
venus_manager_image_full: "{{ venus_manager_image }}:{{ venus_manager_tag }}"
|
||||||
|
|
||||||
|
venus_api_dimensions: "{{ default_container_dimensions }}"
|
||||||
|
venus_manager_dimensions: "{{ default_container_dimensions }}"
|
||||||
|
|
||||||
|
venus_api_enable_healthchecks: "{{ enable_container_healthchecks }}"
|
||||||
|
venus_api_healthcheck_interval: "{{ default_container_healthcheck_interval }}"
|
||||||
|
venus_api_healthcheck_retries: "{{ default_container_healthcheck_retries }}"
|
||||||
|
venus_api_healthcheck_start_period: "{{ default_container_healthcheck_start_period }}"
|
||||||
|
venus_api_healthcheck_test: ["CMD-SHELL", "healthcheck_curl http://{{ api_interface_address | put_address_in_context('url') }}:{{ venus_api_port }}"]
|
||||||
|
venus_api_healthcheck_timeout: "{{ default_container_healthcheck_timeout }}"
|
||||||
|
venus_api_healthcheck:
|
||||||
|
interval: "{{ venus_api_healthcheck_interval }}"
|
||||||
|
retries: "{{ venus_api_healthcheck_retries }}"
|
||||||
|
start_period: "{{ venus_api_healthcheck_start_period }}"
|
||||||
|
test: "{% if venus_api_enable_healthchecks | bool %}{{ venus_api_healthcheck_test }}{% else %}NONE{% endif %}"
|
||||||
|
timeout: "{{ venus_api_healthcheck_timeout }}"
|
||||||
|
|
||||||
|
venus_api_default_volumes:
|
||||||
|
- "{{ node_config_directory }}/venus-api/:{{ container_config_directory }}/:ro"
|
||||||
|
- "/etc/localtime:/etc/localtime:ro"
|
||||||
|
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}"
|
||||||
|
- "kolla_logs:/var/log/kolla/"
|
||||||
|
- "{{ kolla_dev_repos_directory ~ '/venus/venus:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/venus' if venus_dev_mode | bool else '' }}"
|
||||||
|
- "venus:/var/lib/venus/"
|
||||||
|
venus_manager_default_volumes:
|
||||||
|
- "{{ node_config_directory }}/venus-manager/:{{ container_config_directory }}/:ro"
|
||||||
|
- "/etc/localtime:/etc/localtime:ro"
|
||||||
|
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}"
|
||||||
|
- "kolla_logs:/var/log/kolla/"
|
||||||
|
- "{{ kolla_dev_repos_directory ~ '/venus/venus:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/venus' if venus_dev_mode | bool else '' }}"
|
||||||
|
- "venus:/var/lib/venus/"
|
||||||
|
|
||||||
|
venus_extra_volumes: "{{ default_extra_volumes }}"
|
||||||
|
venus_api_extra_volumes: "{{ venus_extra_volumes }}"
|
||||||
|
venus_manager_extra_volumes: "{{ venus_extra_volumes }}"
|
||||||
|
|
||||||
|
####################
|
||||||
|
# OpenStack
|
||||||
|
####################
|
||||||
|
venus_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ venus_api_port }}/v1.0/%(tenant_id)s"
|
||||||
|
venus_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ venus_api_port }}/v1.0/%(tenant_id)s"
|
||||||
|
|
||||||
|
venus_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
venus_keystone_user: "venus"
|
||||||
|
|
||||||
|
openstack_venus_auth: "{{ openstack_auth }}"
|
||||||
|
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Kolla
|
||||||
|
####################
|
||||||
|
venus_git_repository: "https://opendev.org/inspur/venus"
|
||||||
|
venus_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
|
||||||
|
venus_dev_mode: "{{ kolla_dev_mode }}"
|
||||||
|
venus_source_version: "{{ kolla_source_version }}"
|
||||||
|
|
||||||
|
####################
|
||||||
|
# logging
|
||||||
|
####################
|
||||||
|
openstack_logging_default_format_string: "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [- req-None - - - - -] %(instance)s%(message)s"
|
||||||
|
openstack_logging_context_format_string: "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(global_request_id)s %(request_id)s %(user_identity)s] %(instance)s%(message)s"
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Notifications
|
||||||
|
####################
|
||||||
|
venus_notification_topics:
|
||||||
|
- name: notifications
|
||||||
|
enabled: "{{ enable_ceilometer | bool }}"
|
||||||
|
|
||||||
|
venus_enabled_notification_topics: "{{ venus_notification_topics | selectattr('enabled', 'equalto', true) | list }}"
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Keystone
|
||||||
|
####################
|
||||||
|
venus_ks_services:
|
||||||
|
- name: "venus"
|
||||||
|
type: "LMS"
|
||||||
|
description: "Log Manager Service"
|
||||||
|
endpoints:
|
||||||
|
- {'interface': 'internal', 'url': '{{ venus_internal_endpoint }}'}
|
||||||
|
- {'interface': 'public', 'url': '{{ venus_public_endpoint }}'}
|
||||||
|
|
||||||
|
venus_ks_users:
|
||||||
|
- project: "service"
|
||||||
|
user: "{{ venus_keystone_user }}"
|
||||||
|
password: "{{ venus_keystone_password }}"
|
||||||
|
role: "admin"
|
32
ansible/roles/venus/handlers/main.yml
Normal file
32
ansible/roles/venus/handlers/main.yml
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
- name: Restart venus-api container
|
||||||
|
vars:
|
||||||
|
service_name: "venus-api"
|
||||||
|
service: "{{ venus_services[service_name] }}"
|
||||||
|
become: true
|
||||||
|
kolla_docker:
|
||||||
|
action: "recreate_or_restart_container"
|
||||||
|
common_options: "{{ docker_common_options }}"
|
||||||
|
name: "{{ service.container_name }}"
|
||||||
|
image: "{{ service.image }}"
|
||||||
|
volumes: "{{ service.volumes|reject('equalto', '')|list }}"
|
||||||
|
dimensions: "{{ service.dimensions }}"
|
||||||
|
healthcheck: "{{ service.healthcheck | default(omit) }}"
|
||||||
|
when:
|
||||||
|
- kolla_action != "config"
|
||||||
|
|
||||||
|
- name: Restart venus-manager container
|
||||||
|
vars:
|
||||||
|
service_name: "venus-manager"
|
||||||
|
service: "{{ venus_services[service_name] }}"
|
||||||
|
become: true
|
||||||
|
kolla_docker:
|
||||||
|
action: "recreate_or_restart_container"
|
||||||
|
common_options: "{{ docker_common_options }}"
|
||||||
|
name: "{{ service.container_name }}"
|
||||||
|
image: "{{ service.image }}"
|
||||||
|
volumes: "{{ service.volumes|reject('equalto', '')|list }}"
|
||||||
|
dimensions: "{{ service.dimensions }}"
|
||||||
|
healthcheck: "{{ service.healthcheck | default(omit) }}"
|
||||||
|
when:
|
||||||
|
- kolla_action != "config"
|
34
ansible/roles/venus/tasks/bootstrap.yml
Normal file
34
ansible/roles/venus/tasks/bootstrap.yml
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
- name: Creating venus database
|
||||||
|
become: true
|
||||||
|
kolla_toolbox:
|
||||||
|
module_name: mysql_db
|
||||||
|
module_args:
|
||||||
|
login_host: "{{ database_address }}"
|
||||||
|
login_port: "{{ database_port }}"
|
||||||
|
login_user: "{{ database_user }}"
|
||||||
|
login_password: "{{ database_password }}"
|
||||||
|
name: "{{ venus_database_name }}"
|
||||||
|
run_once: True
|
||||||
|
delegate_to: "{{ groups['venus-api'][0] }}"
|
||||||
|
when:
|
||||||
|
- not use_preconfigured_databases | bool
|
||||||
|
|
||||||
|
- name: Creating venus database user and setting permissions
|
||||||
|
become: true
|
||||||
|
kolla_toolbox:
|
||||||
|
module_name: mysql_user
|
||||||
|
module_args:
|
||||||
|
login_host: "{{ database_address }}"
|
||||||
|
login_port: "{{ database_port }}"
|
||||||
|
login_user: "{{ database_user }}"
|
||||||
|
login_password: "{{ database_password }}"
|
||||||
|
name: "{{ venus_database_user }}"
|
||||||
|
password: "{{ venus_database_password }}"
|
||||||
|
host: "%"
|
||||||
|
priv: "{{ venus_database_name }}.*:ALL"
|
||||||
|
append_privs: "yes"
|
||||||
|
run_once: True
|
||||||
|
delegate_to: "{{ groups['venus-api'][0] }}"
|
||||||
|
when:
|
||||||
|
- not use_preconfigured_databases | bool
|
17
ansible/roles/venus/tasks/check-containers.yml
Normal file
17
ansible/roles/venus/tasks/check-containers.yml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
- name: Check venus containers
|
||||||
|
become: true
|
||||||
|
kolla_docker:
|
||||||
|
action: "compare_container"
|
||||||
|
common_options: "{{ docker_common_options }}"
|
||||||
|
name: "{{ item.value.container_name }}"
|
||||||
|
image: "{{ item.value.image }}"
|
||||||
|
volumes: "{{ item.value.volumes|reject('equalto', '')|list }}"
|
||||||
|
dimensions: "{{ item.value.dimensions }}"
|
||||||
|
healthcheck: "{{ item.value.healthcheck | default(omit) }}"
|
||||||
|
when:
|
||||||
|
- inventory_hostname in groups[item.value.group]
|
||||||
|
- item.value.enabled | bool
|
||||||
|
with_dict: "{{ venus_services }}"
|
||||||
|
notify:
|
||||||
|
- "Restart {{ item.key }} container"
|
1
ansible/roles/venus/tasks/check.yml
Normal file
1
ansible/roles/venus/tasks/check.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
---
|
8
ansible/roles/venus/tasks/clone.yml
Normal file
8
ansible/roles/venus/tasks/clone.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
- name: Cloning venus source repository for development
|
||||||
|
become: true
|
||||||
|
git:
|
||||||
|
repo: "{{ venus_git_repository }}"
|
||||||
|
dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
|
||||||
|
update: "{{ venus_dev_repos_pull }}"
|
||||||
|
version: "{{ venus_source_version }}"
|
81
ansible/roles/venus/tasks/config.yml
Normal file
81
ansible/roles/venus/tasks/config.yml
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
---
|
||||||
|
- name: Ensuring config directories exist
|
||||||
|
file:
|
||||||
|
path: "{{ node_config_directory }}/{{ item.key }}"
|
||||||
|
state: "directory"
|
||||||
|
owner: "{{ config_owner_user }}"
|
||||||
|
group: "{{ config_owner_group }}"
|
||||||
|
mode: "0770"
|
||||||
|
become: true
|
||||||
|
when:
|
||||||
|
- inventory_hostname in groups[item.value.group]
|
||||||
|
- item.value.enabled | bool
|
||||||
|
with_dict: "{{ venus_services }}"
|
||||||
|
|
||||||
|
- name: Check if policies shall be overwritten
|
||||||
|
stat:
|
||||||
|
path: "{{ item }}"
|
||||||
|
run_once: True
|
||||||
|
delegate_to: localhost
|
||||||
|
register: venus_policy
|
||||||
|
with_first_found:
|
||||||
|
- files: "{{ supported_policy_format_list }}"
|
||||||
|
paths:
|
||||||
|
- "{{ node_custom_config }}/venus/"
|
||||||
|
skip: true
|
||||||
|
|
||||||
|
- name: Set venus policy file
|
||||||
|
set_fact:
|
||||||
|
venus_policy_file: "{{ venus_policy.results.0.stat.path | basename }}"
|
||||||
|
venus_policy_file_path: "{{ venus_policy.results.0.stat.path }}"
|
||||||
|
when:
|
||||||
|
- venus_policy.results
|
||||||
|
|
||||||
|
- include_tasks: copy-certs.yml
|
||||||
|
when:
|
||||||
|
- kolla_copy_ca_into_containers | bool
|
||||||
|
|
||||||
|
- name: Copying over config.json files for services
|
||||||
|
template:
|
||||||
|
src: "{{ item.key }}.json.j2"
|
||||||
|
dest: "{{ node_config_directory }}/{{ item.key }}/config.json"
|
||||||
|
mode: "0660"
|
||||||
|
become: true
|
||||||
|
when:
|
||||||
|
- inventory_hostname in groups[item.value.group]
|
||||||
|
- item.value.enabled | bool
|
||||||
|
with_dict: "{{ venus_services }}"
|
||||||
|
notify:
|
||||||
|
- "Restart {{ item.key }} container"
|
||||||
|
|
||||||
|
- name: Copying over venus.conf
|
||||||
|
vars:
|
||||||
|
service_name: "{{ item.key }}"
|
||||||
|
merge_configs:
|
||||||
|
sources:
|
||||||
|
- "{{ role_path }}/templates/venus.conf.j2"
|
||||||
|
- "{{ node_custom_config }}/global.conf"
|
||||||
|
- "{{ node_custom_config }}/venus.conf"
|
||||||
|
- "{{ node_custom_config }}/venus/{{ item.key }}.conf"
|
||||||
|
- "{{ node_custom_config }}/venus/{{ inventory_hostname }}/venus.conf"
|
||||||
|
dest: "{{ node_config_directory }}/{{ item.key }}/venus.conf"
|
||||||
|
mode: "0660"
|
||||||
|
become: true
|
||||||
|
when:
|
||||||
|
- inventory_hostname in groups[item.value.group]
|
||||||
|
- item.value.enabled | bool
|
||||||
|
with_dict: "{{ venus_services }}"
|
||||||
|
notify:
|
||||||
|
- "Restart {{ item.key }} container"
|
||||||
|
|
||||||
|
- name: Copying over existing policy file
|
||||||
|
template:
|
||||||
|
src: "{{ venus_policy_file_path }}"
|
||||||
|
dest: "{{ node_config_directory }}/{{ item.key }}/{{ venus_policy_file }}"
|
||||||
|
mode: "0660"
|
||||||
|
when:
|
||||||
|
- venus_policy_file is defined
|
||||||
|
- inventory_hostname in groups[item.value.group]
|
||||||
|
with_dict: "{{ venus_services }}"
|
||||||
|
notify:
|
||||||
|
- Restart {{ item.key }} container
|
6
ansible/roles/venus/tasks/copy-certs.yml
Normal file
6
ansible/roles/venus/tasks/copy-certs.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
- name: "Copy certificates and keys for {{ project_name }}"
|
||||||
|
import_role:
|
||||||
|
role: service-cert-copy
|
||||||
|
vars:
|
||||||
|
project_services: "{{ venus_services }}"
|
2
ansible/roles/venus/tasks/deploy-containers.yml
Normal file
2
ansible/roles/venus/tasks/deploy-containers.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
---
|
||||||
|
- import_tasks: check-containers.yml
|
14
ansible/roles/venus/tasks/deploy.yml
Normal file
14
ansible/roles/venus/tasks/deploy.yml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
- import_tasks: register.yml
|
||||||
|
|
||||||
|
- import_tasks: config.yml
|
||||||
|
|
||||||
|
- import_tasks: check-containers.yml
|
||||||
|
|
||||||
|
- include_tasks: clone.yml
|
||||||
|
when: venus_dev_mode | bool
|
||||||
|
|
||||||
|
- import_tasks: bootstrap.yml
|
||||||
|
|
||||||
|
- name: Flush handlers
|
||||||
|
meta: flush_handlers
|
7
ansible/roles/venus/tasks/loadbalancer.yml
Normal file
7
ansible/roles/venus/tasks/loadbalancer.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
- name: "Configure haproxy for {{ project_name }}"
|
||||||
|
import_role:
|
||||||
|
name: haproxy-config
|
||||||
|
vars:
|
||||||
|
project_services: "{{ venus_services }}"
|
||||||
|
tags: always
|
2
ansible/roles/venus/tasks/main.yml
Normal file
2
ansible/roles/venus/tasks/main.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
---
|
||||||
|
- include_tasks: "{{ kolla_action }}.yml"
|
24
ansible/roles/venus/tasks/precheck.yml
Normal file
24
ansible/roles/venus/tasks/precheck.yml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
- import_role:
|
||||||
|
name: service-precheck
|
||||||
|
vars:
|
||||||
|
service_precheck_services: "{{ venus_services }}"
|
||||||
|
service_name: "{{ project_name }}"
|
||||||
|
|
||||||
|
- name: Get container facts
|
||||||
|
become: true
|
||||||
|
kolla_container_facts:
|
||||||
|
name:
|
||||||
|
- venus_api
|
||||||
|
register: container_facts
|
||||||
|
|
||||||
|
- name: Checking free port for Venus API
|
||||||
|
wait_for:
|
||||||
|
host: "{{ api_interface_address }}"
|
||||||
|
port: "{{ venus_api_port }}"
|
||||||
|
connect_timeout: 1
|
||||||
|
timeout: 1
|
||||||
|
state: stopped
|
||||||
|
when:
|
||||||
|
- container_facts['venus_api'] is not defined
|
||||||
|
- inventory_hostname in groups['venus-api']
|
11
ansible/roles/venus/tasks/pull.yml
Normal file
11
ansible/roles/venus/tasks/pull.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
- name: Pulling venus images
|
||||||
|
become: true
|
||||||
|
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: "{{ venus_services }}"
|
2
ansible/roles/venus/tasks/reconfigure.yml
Normal file
2
ansible/roles/venus/tasks/reconfigure.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
---
|
||||||
|
- import_tasks: deploy.yml
|
7
ansible/roles/venus/tasks/register.yml
Normal file
7
ansible/roles/venus/tasks/register.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
- import_role:
|
||||||
|
name: service-ks-register
|
||||||
|
vars:
|
||||||
|
service_ks_register_auth: "{{ openstack_venus_auth }}"
|
||||||
|
service_ks_register_services: "{{ venus_ks_services }}"
|
||||||
|
service_ks_register_users: "{{ venus_ks_users }}"
|
6
ansible/roles/venus/tasks/stop.yml
Normal file
6
ansible/roles/venus/tasks/stop.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
- import_role:
|
||||||
|
name: service-stop
|
||||||
|
vars:
|
||||||
|
project_services: "{{ venus_services }}"
|
||||||
|
service_name: "{{ project_name }}"
|
7
ansible/roles/venus/tasks/upgrade.yml
Normal file
7
ansible/roles/venus/tasks/upgrade.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
- import_tasks: config.yml
|
||||||
|
|
||||||
|
- import_tasks: check-containers.yml
|
||||||
|
|
||||||
|
- name: Flush handlers
|
||||||
|
meta: flush_handlers
|
19
ansible/roles/venus/templates/venus-api.json.j2
Normal file
19
ansible/roles/venus/templates/venus-api.json.j2
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"command": "venus-api --config-file /etc/venus/venus.conf",
|
||||||
|
"config_files": [
|
||||||
|
{
|
||||||
|
"source": "{{ container_config_directory }}/venus.conf",
|
||||||
|
"dest": "/etc/venus/venus.conf",
|
||||||
|
"owner": "venus",
|
||||||
|
"perm": "0644"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"permissions": [
|
||||||
|
{
|
||||||
|
"path":"/var/log/kolla/venus/venus-api.log",
|
||||||
|
"owner": "venus:venus",
|
||||||
|
"recurse": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
19
ansible/roles/venus/templates/venus-manager.json.j2
Normal file
19
ansible/roles/venus/templates/venus-manager.json.j2
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"command": "venus-manager --config-file /etc/venus/venus.conf task start",
|
||||||
|
"config_files": [
|
||||||
|
{
|
||||||
|
"source": "{{ container_config_directory }}/venus.conf",
|
||||||
|
"dest": "/etc/venus/venus.conf",
|
||||||
|
"owner": "venus",
|
||||||
|
"perm": "0644"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"permissions": [
|
||||||
|
{
|
||||||
|
"path":"/var/log/kolla/venus/venus-manager.log",
|
||||||
|
"owner": "venus:venus",
|
||||||
|
"recurse": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
35
ansible/roles/venus/templates/venus.conf.j2
Normal file
35
ansible/roles/venus/templates/venus.conf.j2
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
[DEFAULT]
|
||||||
|
my_ip = {{ api_interface_address }}
|
||||||
|
periodic_interval = 60
|
||||||
|
rootwrap_config = /etc/venus/rootwrap.conf
|
||||||
|
api_paste_config = /etc/venus/api-paste.ini
|
||||||
|
log_dir = /var/log/kolla/venus/
|
||||||
|
debug = {{ venus_logging_debug }}
|
||||||
|
auth_strategy = keystone
|
||||||
|
os_region_name = {{ openstack_region_name }}
|
||||||
|
osapi_venus_listen = {{ api_interface_address }}
|
||||||
|
osapi_venus_listen_port = {{ venus_api_port }}
|
||||||
|
|
||||||
|
logging_default_format_string = {{ openstack_logging_default_format_string }}
|
||||||
|
logging_context_format_string = {{ openstack_logging_context_format_string }}
|
||||||
|
|
||||||
|
transport_url = {{ rpc_transport_url }}
|
||||||
|
|
||||||
|
[database]
|
||||||
|
connection = mysql+pymysql://{{ venus_database_user }}:{{ venus_database_password }}@{{ venus_database_address }}/{{ venus_database_name }}?charset=utf8
|
||||||
|
|
||||||
|
[keystone_authtoken]
|
||||||
|
cafile = {{ openstack_cacert }}
|
||||||
|
project_name = service
|
||||||
|
password = {{ venus_keystone_password }}
|
||||||
|
username = {{ venus_keystone_user }}
|
||||||
|
auth_url = {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_admin_port }}
|
||||||
|
project_domain_id = {{ default_project_domain_id }}
|
||||||
|
user_domain_id = {{ default_user_domain_id }}
|
||||||
|
auth_type = password
|
||||||
|
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
|
{% if enable_elasticsearch | bool %}
|
||||||
|
[elasticsearch]
|
||||||
|
url = {{ elasticsearch_internal_endpoint }}
|
||||||
|
{% endif %}
|
2
ansible/roles/venus/vars/main.yml
Normal file
2
ansible/roles/venus/vars/main.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
---
|
||||||
|
project_name: "venus"
|
@ -74,6 +74,7 @@
|
|||||||
- enable_tacker_{{ enable_tacker | bool }}
|
- enable_tacker_{{ enable_tacker | bool }}
|
||||||
- enable_telegraf_{{ enable_telegraf | bool }}
|
- enable_telegraf_{{ enable_telegraf | bool }}
|
||||||
- enable_trove_{{ enable_trove | bool }}
|
- enable_trove_{{ enable_trove | bool }}
|
||||||
|
- enable_venus_{{ enable_venus | bool }}
|
||||||
- enable_vitrage_{{ enable_vitrage | bool }}
|
- enable_vitrage_{{ enable_vitrage | bool }}
|
||||||
- enable_watcher_{{ enable_watcher | bool }}
|
- enable_watcher_{{ enable_watcher | bool }}
|
||||||
- enable_zookeeper_{{ enable_zookeeper | bool }}
|
- enable_zookeeper_{{ enable_zookeeper | bool }}
|
||||||
@ -326,6 +327,11 @@
|
|||||||
tasks_from: loadbalancer
|
tasks_from: loadbalancer
|
||||||
tags: trove
|
tags: trove
|
||||||
when: enable_trove | bool
|
when: enable_trove | bool
|
||||||
|
- include_role:
|
||||||
|
name: venus
|
||||||
|
tasks_from: loadbalancer
|
||||||
|
tags: venus
|
||||||
|
when: enable_venus | bool
|
||||||
- include_role:
|
- include_role:
|
||||||
name: vitrage
|
name: vitrage
|
||||||
tasks_from: loadbalancer
|
tasks_from: loadbalancer
|
||||||
@ -1121,3 +1127,15 @@
|
|||||||
- { role: masakari,
|
- { role: masakari,
|
||||||
tags: masakari,
|
tags: masakari,
|
||||||
when: enable_masakari | bool }
|
when: enable_masakari | bool }
|
||||||
|
|
||||||
|
- name: Apply role venus
|
||||||
|
gather_facts: false
|
||||||
|
hosts:
|
||||||
|
- venus-api
|
||||||
|
- venus-manager
|
||||||
|
- '&enable_venus_True'
|
||||||
|
serial: '{{ kolla_serial|default("0") }}'
|
||||||
|
roles:
|
||||||
|
- { role: venus,
|
||||||
|
tags: venus,
|
||||||
|
when: enable_venus | bool }
|
||||||
|
@ -401,6 +401,7 @@
|
|||||||
#enable_telegraf: "no"
|
#enable_telegraf: "no"
|
||||||
#enable_trove: "no"
|
#enable_trove: "no"
|
||||||
#enable_trove_singletenant: "no"
|
#enable_trove_singletenant: "no"
|
||||||
|
#enable_venus: "no"
|
||||||
#enable_vitrage: "no"
|
#enable_vitrage: "no"
|
||||||
#enable_watcher: "no"
|
#enable_watcher: "no"
|
||||||
#enable_zookeeper: "{{ enable_kafka | bool or enable_storm | bool }}"
|
#enable_zookeeper: "{{ enable_kafka | bool or enable_storm | bool }}"
|
||||||
|
@ -168,6 +168,9 @@ zun_keystone_password:
|
|||||||
vitrage_database_password:
|
vitrage_database_password:
|
||||||
vitrage_keystone_password:
|
vitrage_keystone_password:
|
||||||
|
|
||||||
|
venus_database_password:
|
||||||
|
venus_keystone_password:
|
||||||
|
|
||||||
masakari_database_password:
|
masakari_database_password:
|
||||||
masakari_keystone_password:
|
masakari_keystone_password:
|
||||||
|
|
||||||
|
5
releasenotes/notes/add-venus-80b98b2d3bea348e.yaml
Normal file
5
releasenotes/notes/add-venus-80b98b2d3bea348e.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Add Venus deployment support.
|
||||||
|
The project provides a solution to log collection.
|
@ -810,3 +810,12 @@ ovn-database
|
|||||||
|
|
||||||
[ovn-sb-db:children]
|
[ovn-sb-db:children]
|
||||||
ovn-database
|
ovn-database
|
||||||
|
|
||||||
|
[venus:children]
|
||||||
|
monitoring
|
||||||
|
|
||||||
|
[venus-api:children]
|
||||||
|
venus
|
||||||
|
|
||||||
|
[venus-manager:children]
|
||||||
|
venus
|
||||||
|
Loading…
Reference in New Issue
Block a user