Masakari role for OpenStack-Ansible¶
- tags
openstack, masakari, cloud, ansible
- category
*nix
To clone or view the source code for this repository, visit the role repository for os_masakari.
Default variables¶
## Verbosity Options
debug: False
# Set the host which will execute the shade modules
# for the service setup. The host must already have
# clouds.yaml properly configured.
masakari_service_setup_host: "{{ openstack_service_setup_host | default('localhost') }}"
masakari_service_setup_host_python_interpreter: "{{ openstack_service_setup_host_python_interpreter | default((masakari_service_setup_host == 'localhost') | ternary(ansible_playbook_python, ansible_python['executable'])) }}"
masakari_venv_python_executable: "{{ openstack_venv_python_executable | default('python2') }}"
# Set the package install state for distribution and pip packages
# Options are 'present' and 'latest'
masakari_package_state: "latest"
masakari_pip_package_state: "latest"
masakari_git_repo: https://opendev.org/openstack/masakari
masakari_monitors_git_repo: https://opendev.org/openstack/masakari-monitors
masakari_git_install_branch: master
masakari_monitors_git_install_branch: master
masakari_upper_constraints_url: "{{ requirements_git_url | default('https://releases.openstack.org/constraints/upper/' ~ requirements_git_install_branch | default('master')) }}"
masakari_git_constraints:
- "git+{{ masakari_git_repo }}@{{ masakari_git_install_branch }}#egg=masakari"
- "git+{{ masakari_monitors_git_repo }}@{{ masakari_monitors_git_install_branch }}#egg=masakari-monitors"
- "--constraint {{ masakari_upper_constraints_url }}"
## System info
masakari_system_user_name: masakari
masakari_system_group_name: masakari
masakari_system_shell: /bin/false
masakari_system_comment: masakari system user
masakari_system_user_home: "/var/lib/{{ masakari_system_user_name }}"
## Database credentials
masakari_db_setup_host: "{{ openstack_db_setup_host | default('localhost') }}"
masakari_db_setup_python_interpreter: "{{ openstack_db_setup_python_interpreter | default((masakari_db_setup_host == 'localhost') | ternary(ansible_playbook_python, ansible_python['executable'])) }}"
masakari_galera_address: "{{ galera_address | default('127.0.0.1') }}"
masakari_galera_database: masakari
masakari_galera_user: masakari
masakari_galera_use_ssl: "{{ galera_use_ssl | default(False) }}"
masakari_galera_ssl_ca_cert: "{{ galera_ssl_ca_cert | default('/etc/ssl/certs/galera-ca.pem') }}"
masakari_galera_port: 3306
masakari_pip_install_args: "{{ pip_install_options | default('') }}"
# Name of the virtual env to deploy into
masakari_venv_tag: "{{ venv_tag | default('untagged') }}"
masakari_bin: "/openstack/venvs/masakari-{{ masakari_venv_tag }}/bin"
# Common pip packages
masakari_pip_packages:
- cryptography
- masakari
- keystonemiddleware
- osprofiler
- PyMySQL
- pymemcache
- python-masakariclient
- python-novaclient
- python-keystoneclient
- python-memcached
- python-swiftclient
- systemd-python
- uwsgi
- keystoneauth1
# Memcached override
masakari_memcached_servers: "{{ memcached_servers }}"
masakari_monitor_pip_packages:
- masakari-monitors
- systemd-python
- "{{ (ansible_os_family | lower == 'redhat' and ansible_distribution_major_version|int <= 7) | ternary('libvirt-python', '') }}"
## Tunable overrides
masakari_api_paste_ini_overrides: {}
masakari_masakari_conf_overrides: {}
masakari_policy_json_overrides: {}
masakari_api_init_overrides: {}
masakari_engine_init_overrides: {}
masakari_monitors_conf_overrides: {}
masakari_monitors_process_overrides: {}
masakari_monitors_init_overrides: {}
## Service Type and Data
masakari_service_region: RegionOne
masakari_service_name: masakari
masakari_service_port: 15868
masakari_service_proto: http
masakari_service_registry_proto: "{{ masakari_service_proto }}"
masakari_service_publicuri_proto: "{{ openstack_service_publicuri_proto | default(masakari_service_proto) }}"
masakari_service_adminuri_proto: "{{ openstack_service_adminuri_proto | default(masakari_service_proto) }}"
masakari_service_internaluri_proto: "{{ openstack_service_internaluri_proto | default(masakari_service_proto) }}"
masakari_service_type: ha
masakari_service_description: "Masakari ha Service"
masakari_service_user_name: masakari
masakari_service_project_name: service
masakari_service_project_domain_id: default
masakari_service_user_domain_id: default
masakari_service_publicuri: "{{ masakari_service_publicuri_proto }}://{{ external_lb_vip_address }}:{{ masakari_service_port }}"
masakari_service_publicurl: "{{ masakari_service_publicuri }}/v1/%(tenant_id)s"
masakari_service_internaluri: "{{ masakari_service_internaluri_proto }}://{{ internal_lb_vip_address }}:{{ masakari_service_port }}"
masakari_service_internalurl: "{{ masakari_service_internaluri }}/v1/%(tenant_id)s"
masakari_service_adminuri: "{{ masakari_service_adminuri_proto }}://{{ internal_lb_vip_address }}:{{ masakari_service_port }}"
masakari_service_adminurl: "{{ masakari_service_adminuri }}/v1/%(tenant_id)s"
masakari_service_in_ldap: false
masakari_role_name: admin
masakari_api_bind_address: "{{ openstack_service_bind_address | default('0.0.0.0') }}"
masakari_api_service_port: 15868
## API options
masakari_enable_v1_api: True
masakari_etc_dir: /etc/masakari
masakari_monitor_etc_dir: /etc/masakarimonitors
masakari_config_options: --config-file {{ masakari_etc_dir }}/masakari.conf
## Services
masakari_services:
masakari-api:
group: masakari_api
service_name: masakari-api
execstarts: "{{ masakari_bin }}/masakari-api"
config_overrides: "{{ masakari_api_init_overrides }}"
masakari-engine:
group: masakari_engine
service_name: masakari-engine
execstarts: "{{ masakari_bin }}/masakari-engine"
config_overrides: "{{ masakari_engine_init_overrides }}"
masakari-hostmonitor:
group: masakari_monitor
service_name: masakari-hostmonitor
execstarts: "{{ masakari_bin }}/masakari-hostmonitor"
config_overrides: "{{ masakari_monitors_init_overrides }}"
masakari-instancemonitor:
group: masakari_monitor
service_name: masakari-instancemonitor
execstarts: "{{ masakari_bin }}/masakari-instancemonitor"
config_overrides: "{{ masakari_monitors_init_overrides }}"
masakari-processmonitor:
group: masakari_monitor
service_name: masakari-processmonitor
execstarts: "{{ masakari_bin }}/masakari-processmonitor"
config_overrides: "{{ masakari_monitors_init_overrides }}"
## Configuration for Oslo Messaging
# RPC
masakari_oslomsg_rpc_host_group: "{{ oslomsg_rpc_host_group | default('rabbitmq_all') }}"
masakari_oslomsg_rpc_setup_host: "{{ (masakari_oslomsg_rpc_host_group in groups) | ternary(groups[masakari_oslomsg_rpc_host_group][0], 'localhost') }}"
masakari_oslomsg_rpc_transport: "{{ oslomsg_rpc_transport | default('rabbit') }}"
masakari_oslomsg_rpc_servers: "{{ oslomsg_rpc_servers | default('127.0.0.1') }}"
masakari_oslomsg_rpc_port: "{{ oslomsg_rpc_port | default('5672') }}"
masakari_oslomsg_rpc_use_ssl: "{{ oslomsg_rpc_use_ssl | default(False) }}"
masakari_oslomsg_rpc_userid: masakari
masakari_oslomsg_rpc_vhost: /masakari
# Notify
masakari_oslomsg_notify_host_group: "{{ oslomsg_notify_host_group | default('rabbitmq_all') }}"
masakari_oslomsg_notify_setup_host: "{{ (masakari_oslomsg_notify_host_group in groups) | ternary(groups[masakari_oslomsg_notify_host_group][0], 'localhost') }}"
masakari_oslomsg_notify_transport: "{{ oslomsg_notify_transport | default('rabbit') }}"
masakari_oslomsg_notify_servers: "{{ oslomsg_notify_servers | default('127.0.0.1') }}"
masakari_oslomsg_notify_port: "{{ oslomsg_notify_port | default('5672') }}"
masakari_oslomsg_notify_use_ssl: "{{ oslomsg_notify_use_ssl | default(False) }}"
masakari_oslomsg_notify_userid: "{{ masakari_oslomsg_rpc_userid }}"
masakari_oslomsg_notify_password: "{{ masakari_oslomsg_rpc_password }}"
masakari_oslomsg_notify_vhost: "{{ masakari_oslomsg_rpc_vhost }}"
## (Qdrouterd) integration
# TODO(ansmith): Change structure when more backends will be supported
masakari_oslomsg_amqp1_enabled: "{{ masakari_oslomsg_rpc_transport == 'amqp' }}"
masakari_optional_oslomsg_amqp1_pip_packages:
- oslo.messaging[amqp1]
# The multicast interface used by corocync for masakari hostmonitor
masakari_monitor_corosync_multicast_interface: "br-mgmt"
Dependencies¶
<TODO>
Example playbook¶
---
- name: Install masakari
hosts: masakari_all
user: root
roles:
- { role: "os_masakari", tags: [ "os-masakari" ] }
vars:
external_lb_vip_address: 10.232.48.205
internal_lb_vip_address: 172.29.236.100
masakari_galera_address: "{{ internal_lb_vip_address }}"
Tags¶
<TODO>