Ansible role which installs and configures OpenStack Searchlight.
## Verbosity Options
debug: False
# Set the package install state for distribution and pip packages
# Options are 'present' and 'latest'
searchlight_package_state: "latest"
searchlight_pip_package_state: "latest"
# These variables are used in 'developer mode' in order to allow the role
# to build an environment directly from a git source without the presence
# of an OpenStack-Ansible repo_server.
searchlight_git_repo: https://git.openstack.org/openstack/searchlight
searchlight_git_install_branch: "stable/queens"
searchlight_requirements_git_repo: https://git.openstack.org/openstack/requirements
searchlight_requirements_git_install_branch: "stable/queens"
searchlight_developer_mode: false
searchlight_developer_constraints:
- "git+{{ searchlight_git_repo }}@{{ searchlight_git_install_branch }}#egg=searchlight"
#: Name of the virtual env to deploy into
searchlight_venv_tag: untagged
searchlight_bin: "/openstack/venvs/searchlight-{{ searchlight_venv_tag }}/bin"
# searchlight_venv_pkgs: "/openstack/venvs/searchlight-{{ searchlight_venv_tag }}/lib/python2.7/site-packages"
# venv_download, even when true, will use the fallback method of building the
# venv from scratch if the venv download fails.
searchlight_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/searchlight.tgz
searchlight_venv_download: "{{ not searchlight_developer_mode | bool }}"
#: Use of deprecated config options will cause a fatal application error
searchlight_fatal_deprecations: false
#: External SSL forwarding proto, assumes TLS termination at load balancer
searchlight_ssl_external: true
searchlight_secure_proxy_ssl_header: HTTP_X_FORWARDED_PROTO
#: Set this to false to disable API service through Apache + mod_wsgi
searchlight_use_mod_wsgi: true
#: System info
searchlight_system_user_name: searchlight
searchlight_system_group_name: searchlight
searchlight_system_shell: /bin/false
searchlight_system_comment: searchlight system user
searchlight_system_user_home: "/var/lib/{{ searchlight_system_user_name }}"
#: searchlight packages that must be installed before anything else
searchlight_required_pip_packages:
- virtualenv
- python-keystoneclient # Keystoneclient needed for OSA keystone lib
- httplib2 # so we can use the uri module
- python-searchlightclient
#: Common pip packages
searchlight_pip_packages:
- cryptography
- keystonemiddleware
- python-memcached
- searchlight
# 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.
searchlight_role_project_group: searchlight_all
#: Tunable overrides
searchlight_conf_overrides: {}
searchlight_api_paste_ini_overrides: {}
searchlight_policy_overrides: {}
elasticsearch_apt_java_package: openjdk-8-jre
searchlight_keystone_auth_plugin: password
searchlight_service_project_domain_id: default
searchlight_service_project_description: "OpenStack Services"
searchlight_service_user_domain_id: default
searchlight_service_name: "searchlight"
searchlight_service_type: "search"
searchlight_service_project_name: "service"
searchlight_service_user_name: "searchlight"
searchlight_service_description: "Searchlight service"
searchlight_api_program_name: "searchlight-api"
searchlight_manage_program_name: "searchlight-manage"
searchlight_manage_index_command: "index sync --force"
searchlight_listener_program_name: "searchlight-listener"
searchlight_role_name: "admin"
searchlight_service_address: 0.0.0.0
searchlight_service_port: 9393
searchlight_service_proto: http
searchlight_service_registry_proto: "{{ searchlight_service_proto }}"
searchlight_service_publicuri_proto: "{{ openstack_service_publicuri_proto | default(searchlight_service_proto) }}"
searchlight_service_adminuri_proto: "{{ openstack_service_adminuri_proto | default(searchlight_service_proto) }}"
searchlight_service_internaluri_proto: "{{ openstack_service_internaluri_proto | default(searchlight_service_proto) }}"
searchlight_service_publicurl: "{{ searchlight_service_publicuri_proto }}://{{ external_lb_vip_address }}:{{ searchlight_service_port }}"
searchlight_service_internalurl: "{{ searchlight_service_internaluri_proto }}://{{ internal_lb_vip_address }}:{{ searchlight_service_port }}"
searchlight_service_adminurl: "{{ searchlight_service_adminuri_proto }}://{{ internal_lb_vip_address }}:{{ searchlight_service_port }}"
# It would be better to make this discoverable - discuss with searchlight team
searchlight_nova_compute_api_version: "2.26"
# Resource Plugins
# TODO: base these on group length where possible
#
searchlight_include_region_name: False
# If resource_plugin.include_region_name is set to True, then this value
# will be the default value for the 'region_name' field on all documents
searchlight_default_os_region_name: ""
searchlight_resource_plugin_os_nova_server_enabled: True
searchlight_resource_plugin_os_nova_server_admin_only_fields: "OS-EXT-SRV*,OS-EXT-STS:vm_state"
searchlight_resource_plugin_os_nova_hypervisor: True
searchlight_resource_plugin_os_nova_flavor_enabled: True
searchlight_resource_plugin_os_nova_servergroup_enabled: False
searchlight_resource_plugin_os_glance_image_enabled: True
searchlight_resource_plugin_os_glance_metadef_enabled: True
searchlight_resource_plugin_os_cinder_volume_enabled: True
searchlight_resource_plugin_os_cinder_snapshot_enabled: True
searchlight_resource_plugin_os_neutron_net_enabled: True
searchlight_resource_plugin_os_neutron_net_admin_only_fields: "admin_state_up,status"
searchlight_resource_plugin_os_neutron_port_enabled: True
searchlight_resource_plugin_os_neutron_security_group_enabled: True
searchlight_resource_plugin_os_designate_zone_enabled: False
searchlight_resource_plugin_os_designate_recordset_enabled: False
searchlight_resource_plugin_os_swift_account_enabled: False
searchlight_resource_plugin_os_swift_container_enabled: False
searchlight_resource_plugin_os_swift_object_enabled: False
horizon_enable_searchlight_ui: True
This list is not considered exhaustive at present. See role internals for further details.
elasticsearch_apt_java_package: "openjdk-8-jre"
searchlight_rabbitmq_userid: searchlight
searchlight_rabbitmq_vhost: /searchlight
searchlight_rabbitmq_servers: "{{ rabbitmq_servers }}"
searchlight_rabbitmq_port: "{{ rabbitmq_port }}"
searchlight_rabbitmq_use_ssl: "{{ rabbitmq_use_ssl }}"
- name: Installation and setup of Searchlight
hosts: keystone_all
user: root
roles:
- role: elasticsearch
- role: "os_searchlight"
searchlight_venv_tag: "{{ openstack_release }}"
searchlight_venv_download_url: "{{ openstack_repo_url }}/venvs/{{ openstack_release }}/{{ ansible_distribution | lower }}/searchlight-{{ openstack_release }}-{{ ansible_architecture | lower }}.tgz"
pip_lock_to_internal_repo: "{{ (pip_links | length) >= 1 }}"
tags:
- "os-searchlight"
vars:
elasticsearch_apt_java_package: "openjdk-8-jre"
searchlight_rabbitmq_userid: searchlight
searchlight_rabbitmq_vhost: /searchlight
searchlight_rabbitmq_servers: "{{ rabbitmq_servers }}"
searchlight_rabbitmq_port: "{{ rabbitmq_port }}"
searchlight_rabbitmq_use_ssl: "{{ rabbitmq_use_ssl }}"
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.