This role allows you to deploy an OpenStack Horizon dashboard.
This OpenStack component will be deploy in a Python virtualenv
by using pip
. To serve the pages, Nginx and uWSGI will be our superheros !
By using horizon_version
variable, we will be able to choose the OpenStack version that we want to deploy. The current versions are supported:
- Liberty | 2015-10-15
- Mitaka | 2016-04-07
- Newton | 2016-10-06
Supported distributions:
- CentOS 7.x
- RedHat EL 7.x
- Debian 7.x / 8.x / 9.x
- Ubuntu 15.x / 16.x
Supported functionalities:
- Firewalld (
iptables
andfirewalld
packages are needed on the server) - SELinux
This role needs at least Ansible 2.x.
### HORIZON
# file: roles/horizon/defaults/main.yml
horizon_firewalld: true
horizon_selinux: true
horizon_uoi_download: false
horizon_cleaning: false
horizon_user: horizon
horizon_group: horizon
horizon_uid: 2003
horizon_gid: 2003
horizon_git_url: https://github.com/openstack/horizon.git
horizon_version: stable/newton
horizon_uwsgi_processes: 5
horizon_uwsgi_threads: 2
horizon_uwsgi_harakiri: 20
horizon_uwsgi_max_requests: 10000
horizon_nginx_bind: 0.0.0.0
horizon_internal_port: 8080
horizon_public_port: 80
# Config for /etc/openstack-dashboard/local_settings.py
horizon_config_debug: false
horizon_config_allow_hosts:
- 10.0.0.100
horizon_config_keystone_host: 10.0.0.100
horizon_config_keystone_version: v3
horizon_config_default_role: user
horizon_config_enable_backup: true
horizon_config_enable_ha_router: true
horizon_config_multidomain_support: true
horizon_config_caching: true
horizon_config_caching_servers:
- 172.0.0.6:11211
- 172.0.0.7:11211
- 172.0.0.8:11211
horizon_config_themes:
- default
horizon_config_secret_key: "{{ lookup('password', 'chars=ascii_letters,digits length=64') }}"
# Add the possiblity to add option not in the template
horizon_config_extras: []
# Neutron LBAASv2 Horizon module
horizon_module_lbaasv2: true
horizon_module_lbaasv2_git_url: https://github.com/openstack/neutron-lbaas-dashboard.git
horizon_module_lbaasv2_version: "{{ horizon_version }}"
Because the role supports RedHat and Debian distributions like, we have to define some values depending of the OS family.
---
### DEBIAN
# file: roles/horizon/vars/Debian.yml
horizon_packages:
- gcc
- git
- libffi-dev
- python-dev
- python-pip
- python-setuptools
- python-virtualenv
- libssl-dev
- libmariadbclient-dev
- postgresql-server-dev-all
- mime-support
horizon_systemd_path: /lib/systemd
horizon_uwsgi_path: /usr/local/bin/uwsgi
horizon_nginx_user: www-data
horizon_nginx_configdir: /etc/nginx/sites-enabled
---
### MAIN
# file: roles/horizon/vars/main.yml
horizon_dir: "{{ working_dir }}/virtualenvs/horizon"
working_dir: /srv/data
---
### REDHAT
# file: roles/horizon/vars/RedHat.yml
horizon_packages:
- gcc
- git
- libffi-devel
- libxslt-devel
- python-devel
- python-greenlet-devel
- python-ldap
- python-lxml
- python-pip
- python-setuptools
- python-virtualenv
- openldap-devel
- openssl-devel
- sqlite-devel
- mailcap
horizon_systemd_path: /usr/lib/systemd
horizon_uwsgi_path: /usr/bin/uwsgi
horizon_nginx_user: nginx
horizon_nginx_configdir: /etc/nginx/conf.d
None
---
horizon_nginx_bind: "{{ hostvars[inventory_hostname]['ansible_bond0.10']['ipv4']['address'] }}"
horizon_uwsgi_processes: 10
horizon_firewalld: false
horizon_selinux: false
horizon_config_debug: false
horizon_config_allow_hosts:
- 10.0.0.100
- 172.0.0
- localhost
- dashboard.uoi.io
horizon_config_keystone_host: 10.0.0.100
horizon_config_keystone_version: v3
horizon_config_default_role: user
horizon_config_enable_backup: true
horizon_config_enable_ha_router: true
horizon_config_multidomain_support: true
horizon_config_caching: true
horizon_config_caching_servers:
- 172.0.0.6:11211
- 172.0.0.7:11211
- 172.0.0.8:11211
horizon_config_themes:
- default
horizon_config_secret_key: "{{ lookup('password', 'chars=ascii_letters,digits length=64') }}"
Apache
This role was created in 2016 by Gaëtan Trellu (goldyfruit).