OpenStack-Ansible sahara role

This role installs the following Upstart services:

  • sahara-api
  • sahara-engine

Default variables

## Verbosity Options
debug: False

# Set the package install state for distribution packages
# Options are 'present' and 'latest'
sahara_package_state: "latest"

sahara_git_repo: https://git.openstack.org/openstack/sahara
sahara_git_install_branch: stable/newton
sahara_developer_mode: false
sahara_developer_constraints:
  - "git+{{ sahara_git_repo }}@{{ sahara_git_install_branch }}#egg=sahara"

# Name of the virtual env to deploy into
sahara_venv_tag: untagged
sahara_bin: "/openstack/venvs/sahara-{{ sahara_venv_tag }}/bin"

sahara_etc_dir: "{{ sahara_bin | dirname }}/etc/sahara"

sahara_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/sahara.tgz

sahara_db_config: /etc/sahara/sahara.conf

# Enable/Disable Ceilometer
sahara_ceilometer_enabled: False

sahara_profiler_enabled: False
sahara_fatal_deprecations: False

## System info
sahara_system_user_name: sahara
sahara_system_group_name: sahara
sahara_system_shell: /bin/false
sahara_system_comment: sahara system user
sahara_system_user_home: "/var/lib/{{ sahara_system_user_name }}"

sahara_engine_host: "{{ internal_lb_vip_address }}"

## RabbitMQ info
sahara_rpc_backend: sahara.openstack.common.rpc.impl_kombu
sahara_rabbitmq_userid: sahara
sahara_rabbitmq_vhost: /sahara
sahara_rabbitmq_use_ssl: False
sahara_rabbitmq_servers: 127.0.0.1
sahara_rabbitmq_port: 5672

## Configuration for notifications communication, i.e. [oslo_messaging_notifications]
sahara_rabbitmq_telemetry_userid: "{{ sahara_rabbitmq_userid }}"
sahara_rabbitmq_telemetry_vhost: "{{ sahara_rabbitmq_vhost }}"
sahara_rabbitmq_telemetry_port: "{{ sahara_rabbitmq_port }}"
sahara_rabbitmq_telemetry_servers: "{{ sahara_rabbitmq_servers }}"
sahara_rabbitmq_telemetry_use_ssl: "{{ sahara_rabbitmq_use_ssl }}"

## DB info
sahara_galera_database: sahara
sahara_galera_user: sahara

sahara_role_name: admin
sahara_api_bind_address: 0.0.0.0
sahara_api_service_port: 8386
sahara_api_program_name: sahara-api
sahara_engine_program_name: sahara-engine

## Service Type and Data
sahara_service_region: RegionOne
sahara_service_name: sahara
sahara_service_port: 8386
sahara_service_proto: http
sahara_service_engine_proto: "{{ sahara_service_proto }}"
sahara_service_publicuri_proto: "{{ openstack_service_publicuri_proto | default(sahara_service_proto) }}"
sahara_service_adminuri_proto: "{{ openstack_service_adminuri_proto | default(sahara_service_proto) }}"
sahara_service_internaluri_proto: "{{ openstack_service_internaluri_proto | default(sahara_service_proto) }}"
sahara_service_type: data-processing
sahara_service_description: "Sahara Data Processing Service"
sahara_service_user_name: sahara
sahara_service_project_name: service
sahara_service_project_domain_id: default
sahara_service_user_domain_id: default
sahara_service_publicuri: "{{ sahara_service_publicuri_proto }}://{{ external_lb_vip_address }}:{{ sahara_service_port }}"
sahara_service_publicurl: "{{ sahara_service_publicuri }}/v1.1/%(tenant_id)s"
sahara_service_internaluri: "{{ sahara_service_internaluri_proto }}://{{ internal_lb_vip_address }}:{{ sahara_service_port }}"
sahara_service_internalurl: "{{ sahara_service_internaluri }}/v1.1/%(tenant_id)s"
sahara_service_adminuri: "{{ sahara_service_adminuri_proto }}://{{ internal_lb_vip_address }}:{{ sahara_service_port }}"
sahara_service_adminurl: "{{ sahara_service_adminuri }}/v1.1/%(tenant_id)s"

## Keystone authentication middleware
sahara_keystone_auth_plugin: password

## Sahara config
sahara_use_floating_ips: False
sahara_use_neutron: True
sahara_use_namespaces: False
sahara_global_remote_threshold: 100
sahara_cluster_remote_threshold: 70
sahara_os_region_name: "{{ sahara_service_region }}"
sahara_default_ntp_server: "pool.ntp.org"

sahara_use_domain_for_proxy_users: True
sahara_proxy_user_domain_name: sahara_proxy
sahara_proxy_user_role_names: _member_

# Other plugins can be added to the system by simply extending the list `sahara_plugin_base`.
sahara_plugin_base:
  - vanilla
  - spark
  - cdh
  - ambari

sahara_plugin_loaded_base: "{% for plugin in sahara_plugin_base %}{{ plugin }}{% if not loop.last %},{% endif %}{% endfor %}"

# If ``sahara_api_workers`` is unset the system will use half the number of available VCPUS to
# compute the number of api workers to use.
# sahara_api_workers: 16

# If ``sahara_engine_workers`` is unset the system will use half the number of available VCPUS to
# compute the number of api workers to use.
# sahara_engine_workers: 16

sahara_task_executor: taskflow
sahara_digest_algorithm: sha256
sahara_http_keepalive: True

## Sahara policy
sahara_policy_file: policy.json
sahara_policy_default_rule: default
sahara_policy_dirs: policy.d

## Policy vars
# Provide a list of access controls to update the default policy.json with. These changes will be merged
# with the access controls in the default policy.json. E.g.
#sahara_policy_overrides:
#  "clusters:get_all": ""
#  "clusters:create": ""

sahara_service_in_ldap: False

# Sahara packages that must be installed before anything else
sahara_required_pip_packages:
  - virtualenv
  - virtualenv-tools
  - python-keystoneclient # Keystoneclient needed to OSA keystone lib
  - httplib2

# Common pip packages
sahara_pip_packages:
  - sahara
  - keystonemiddleware
  - PyMySQL
  - python-memcached
  - pycrypto
  - python-saharaclient
  - python-keystoneclient
  - warlock

## Service Names
sahara_service_names:
  - "sahara-api"
  - "sahara-engine"

# 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.
sahara_role_project_group: sahara_all

## Tunable overrides
sahara_api_paste_ini_overrides: {}
sahara_conf_overrides: {}
sahara_rootwrap_conf_overrides: {}
sahara_policy_overrides: {}

Required variables

sahara_galera_address
sahara_container_mysql_password
sahara_service_password
sahara_rabbitmq_password

Example playbook

- name: Install sahara server
  hosts: sahara_all
  user: root
  roles:
    - { role: "os_sahara", tags: [ "os-sahara" ] }
  vars:
    external_lb_vip_address: 172.16.24.1
    internal_lb_vip_address: 192.168.0.1
    sahara_galera_address: "{{ internal_lb_vip_address }}"
    sahara_container_mysql_password: "SuperSecretePassword1"
    sahara_service_password: "SuperSecretePassword2"
    sahara_rabbitmq_password: "SuperSecretePassword3"

Tags

This role supports two tags: sahara-install and sahara-config. The sahara-install tag can be used to install and upgrade. The sahara-config tag can be used to manage configuration.

Table Of Contents

Next topic

Configuring the Data Processing (sahara) service (optional)

Project Source

This Page