openstack-ansible-os_ceilom.../defaults/main.yml
Jesse Pretorius b4fa7cfc85 Source template files from git or deploy host
Instead of sourcing the paste/policy files from the role,
the deploy host will first be checked, then the git source.

The current mechanism uses a lookup, causing the fetch of
the default templates to happen via curl from the deployment
node. This causes problems if the deployment node does not
have access to the repo server web service, which may be the
case in high security environments.

This patch changes the mechanism to only use the lookup
module for the file content that is on the deployment node,
then falls back to using the uri module to fetch the default
content. This ensures that the deployment node does not have
to reach into the environment for the content.

The pattern applied is the same as that used in the
combination of the following two reference patches:
- https://review.openstack.org/446235
- https://review.openstack.org/463390

The rootwrap.conf template is re-added because it cannot be
used verbatim from the upstream repository. It requires the
addition of the service venv bin in the exec_dirs. A mechanism
to implement this dynamically will be figured out in a later
review along with an implementation which will fetch the
rootwrap files directly from the git source too.

Conflicts:
       defaults/main.yml
       tasks/ceilometer_post_install.yml

Change-Id: I248910a544f611b590bc93449aea98434802cae3
(cherry picked from commit 9e96b65126)
2017-05-23 10:32:35 +00:00

240 lines
10 KiB
YAML

---
# Copyright 2014, Rackspace US, Inc.
#
# 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.
## Verbosity Options
debug: False
# Set the package install state for distribution and pip packages
# Options are 'present' and 'latest'
ceilometer_package_state: "latest"
ceilometer_pip_package_state: "latest"
## Toggle developer mode
ceilometer_developer_mode: false
## The git source/branch
ceilometer_git_repo: https://git.openstack.org/openstack/ceilometer
ceilometer_git_install_branch: stable/ocata
## The packages to build from source (used in developer mode)
ceilometer_developer_constraints:
- "git+{{ ceilometer_git_repo }}@{{ ceilometer_git_install_branch }}#egg=ceilometer"
# Name of the virtual env to deploy into
ceilometer_venv_tag: untagged
ceilometer_bin: "/openstack/venvs/ceilometer-{{ ceilometer_venv_tag }}/bin"
# venv_download, even when true, will use the fallback method of building the
# venv from scratch if the venv download fails.
ceilometer_venv_download: "{{ not ceilometer_developer_mode | bool }}"
# URL of the pre-built virtualenv
ceilometer_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/ceilometer.tgz
## System info
ceilometer_system_user_name: ceilometer
ceilometer_system_group_name: ceilometer
ceilometer_system_shell: /bin/false
ceilometer_system_comment: ceilometer system user
ceilometer_system_user_home: "/var/lib/{{ ceilometer_system_user_name }}"
## DB info
# Set to blank by default to disable the database dispatcher (prep for deprecation)
ceilometer_db_type: ""
ceilometer_database_name: ceilometer
ceilometer_database_user: ceilometer
ceilometer_db_ip: localhost
ceilometer_db_port: 27017
ceilometer_connection_string: "{{ ceilometer_db_type }}://{{ ceilometer_database_user }}:{{ ceilometer_container_db_password }}@{{ ceilometer_db_ip }}:{{ ceilometer_db_port }}/{{ ceilometer_database_name }}"
## Apache setup
ceilometer_apache_log_level: info
ceilometer_apache_servertokens: "Prod"
ceilometer_apache_serversignature: "Off"
ceilometer_wsgi_threads: 10
ceilometer_wsgi_processes: "{{ (ansible_processor_vcpus | int > 0) | ternary (ansible_processor_vcpus, 1) * 2}}"
## RabbitMQ info
## Configuration for RPC communications
ceilometer_rabbitmq_userid: ceilometer
ceilometer_rabbitmq_vhost: /ceilometer
ceilometer_rabbitmq_port: 5672
# Comma separated list of hosts
ceilometer_rabbitmq_servers: 127.0.0.1
ceilometer_rabbitmq_use_ssl: False
# Inventory group containing the hosts for the cluster
ceilometer_rabbitmq_host_group: "rabbitmq_all"
#Ceilometer services info
ceilometer_role_name: admin
## Service Type and Data
ceilometer_service_region: RegionOne
ceilometer_service_name: ceilometer
ceilometer_service_port: 8777
ceilometer_service_proto: http
ceilometer_service_type: metering
ceilometer_service_description: "Ceilometer Service"
ceilometer_service_user_name: ceilometer
ceilometer_service_project_name: service
ceilometer_service_project_domain_id: default
ceilometer_service_user_domain_id: default
ceilometer_service_publicuri: "{{ ceilometer_service_proto }}://{{ external_lb_vip_address }}:{{ ceilometer_service_port }}"
ceilometer_service_publicurl: "{{ ceilometer_service_publicuri }}"
ceilometer_service_internaluri: "{{ ceilometer_service_proto }}://{{ internal_lb_vip_address }}:{{ ceilometer_service_port }}"
ceilometer_service_internalurl: "{{ ceilometer_service_internaluri }}"
ceilometer_service_adminuri: "{{ ceilometer_service_proto }}://{{ internal_lb_vip_address }}:{{ ceilometer_service_port }}"
ceilometer_service_adminurl: "{{ ceilometer_service_adminuri }}"
ceilometer_service_in_ldap: false
## Ceilometer config
# If the following variables are unset in user_variables, the value set will be half the number of available VCPUs
# ceilometer_api_workers: 1
# ceilometer_collector_workers: 1
# ceilometer_notification_workers: 1
## Cap the maximum number of threads / workers when a user value is unspecified.
ceilometer_api_threads_max: 16
ceilometer_api_threads: "{{ [[ansible_processor_vcpus|default(2) // 2, 1] | max, ceilometer_api_threads_max] | min }}"
# Enable/Disable Ceilometer per service
glance_ceilometer_enabled: false
nova_ceilometer_enabled: false
cinder_ceilometer_enabled: false
neutron_ceilometer_enabled: false
heat_ceilometer_enabled: false
keystone_ceilometer_enabled: false
swift_ceilometer_enabled: false
sahara_ceilometer_enabled: false
# Enable/Disable Telemetry partner services in Ceilometer
# Defaults to True if the service is deployed.
ceilometer_aodh_enabled: false
ceilometer_gnocchi_enabled: false
# TODO (andymccr): Remove in Queen release (along with config template overrides)
# Sampling interval for ceilometer-polling services
ceilometer_sample_interval: 600
ceilometer_meter_sample_interval: "{{ ceilometer_sample_interval }}"
ceilometer_cpu_source_sample_interval: "{{ ceilometer_sample_interval }}"
ceilometer_disk_source_sample_interval: "{{ ceilometer_sample_interval }}"
ceilometer_network_source_sample_interval: "{{ ceilometer_sample_interval }}"
## Keystone authentication middleware
ceilometer_keystone_auth_plugin: password
# ceilometer packages that must be installed before anything else
ceilometer_requires_pip_packages:
- httplib2
- python-keystoneclient # Keystoneclient needed to OSA keystone lib
- virtualenv
- virtualenv-tools
# Common pip packages
ceilometer_pip_packages:
- ceilometer
- ceilometermiddleware
- gnocchiclient
- libvirt-python
- pycrypto
- PyMySQL
- pymongo
- python-ceilometerclient
- python-memcached
- tooz
- warlock
ceilometer_agent_init_overrides: {}
ceilometer_collector_init_overrides: {}
ceilometer_polling_init_overrides: {}
## Service Name-Group Mapping
ceilometer_services:
ceilometer-collector:
group:
- ceilometer_collector
init_config_overrides: "{{ ceilometer_collector_init_overrides }}"
service_name: ceilometer-collector
ceilometer-agent-notification:
group:
- ceilometer_agent_notification
init_config_overrides: "{{ ceilometer_agent_init_overrides }}"
service_name: ceilometer-agent-notification
ceilometer-polling:
group:
- ceilometer_agent_central
- ceilometer_agent_compute
init_config_overrides: "{{ ceilometer_polling_init_overrides }}"
service_name: ceilometer-polling
ceilometer_required_secrets:
- memcached_encryption_key
- ceilometer_telemetry_secret
- ceilometer_rabbitmq_password
- ceilometer_service_password
# This variable is used by the repo_build process to determine
# which host group to check for members of before building the
# pip packages required by this role. The value is picked up
# by the py_pkgs lookup.
ceilometer_role_project_group: ceilometer_all
#: Tunable file-based overrides
# The contents of these files, if they exist, are read from the
# specified path on the deployment host, interpreted by the
# template engine and copied to the target host. If they do
# not exist then the default files will be sourced from the
# service git repository.
ceilometer_api_paste_default_file_path: "/etc/openstack_deploy/ceilometer/api_paste.ini"
ceilometer_event_definitions_default_file_path: "/etc/openstack_deploy/ceilometer/event_definitions.yaml"
ceilometer_event_pipeline_default_file_path: "/etc/openstack_deploy/ceilometer/event_pipeline.yaml"
ceilometer_gnocchi_resources_default_file_path: "/etc/openstack_deploy/ceilometer/gnocchi_resources.yaml"
ceilometer_loadbalancer_v2_meter_definitions_default_file_path: "/etc/openstack_deploy/ceilometer/loadbalancer_v2_meter_definitions.yaml"
ceilometer_osprofiler_event_definitions_default_file_path: "/etc/openstack_deploy/ceilometer/osprofiler_event_definitions.yaml"
ceilometer_policy_default_file_path: "/etc/openstack_deploy/ceilometer/policy.json"
ceilometer_polling_default_file_path: "/etc/openstack_deploy/ceilometer/polling.yaml"
# If the above-mentioned files do not exist, then these
# paths will be used to find the files from the git config
# lookup location.
ceilometer_git_config_lookup_location: https://git.openstack.org/cgit/openstack/ceilometer/plain
ceilometer_api_paste_git_file_path: "etc/ceilometer/api_paste.ini?h={{ ceilometer_git_install_branch }}"
ceilometer_event_definitions_git_file_path: "etc/ceilometer/event_definitions.yaml?h={{ ceilometer_git_install_branch }}"
ceilometer_event_pipeline_git_file_path: "etc/ceilometer/event_pipeline.yaml?h={{ ceilometer_git_install_branch }}"
ceilometer_gnocchi_resources_git_file_path: "ceilometer/dispatcher/data/gnocchi_resources.yaml?h={{ ceilometer_git_install_branch }}"
ceilometer_loadbalancer_v2_meter_definitions_git_file_path: "etc/ceilometer/examples/loadbalancer_v2_meter_definitions.yaml?h={{ ceilometer_git_install_branch }}"
ceilometer_osprofiler_event_definitions_git_file_path: "etc/ceilometer/examples/osprofiler_event_definitions.yaml?h={{ ceilometer_git_install_branch }}"
ceilometer_policy_git_file_path: "etc/ceilometer/policy.json?h={{ ceilometer_git_install_branch }}"
ceilometer_polling_git_file_path: "etc/ceilometer/polling.yaml?h={{ ceilometer_git_install_branch }}"
## Tunable var-based overrides
# The contents of these are templated over the default files.
ceilometer_api_paste_ini_overrides: {}
ceilometer_ceilometer_conf_overrides: {}
ceilometer_event_definitions_yaml_overrides: {}
ceilometer_event_pipeline_yaml_overrides: {}
# The incorrectly spelled "ceilometer_gnocci_resources_yaml_overrides" is deprecated and
# will be removed in Pike.
ceilometer_gnocci_resources_yaml_overrides: {}
ceilometer_gnocchi_resources_yaml_overrides: "{{ ceilometer_gnocci_resources_yaml_overrides }}"
ceilometer_loadbalancer_v2_meter_definitions_yaml_overrides: {}
ceilometer_osprofiler_event_definitions_yaml_overrides: {}
ceilometer_pipeline_yaml_overrides: {}
ceilometer_policy_overrides: {}
ceilometer_polling_yaml_overrides: {}
ceilometer_rootwrap_conf_overrides: {}