Role os_keystone for OpenStack-Ansible
Go to file
Andreas Jaeger 2cb8866061 Move other-requirements.txt to bindep.txt
The default filename for documenting binary dependencies has been
changed from "other-requirements.txt" to "bindep.txt" with the release
of bindep 2.1.0. While the previous name is still supported, it will
be deprecated.

Move the file around to follow this change.

Note that this change is self-testing, the OpenStack CI infrastructure
will use a "bindep.txt" file to setup nodes for testing.

For more information about bindep, see also:
http://docs.openstack.org/infra/manual/drivers.html#package-requirements
http://docs.openstack.org/infra/bindep/

As well as this announcement:
http://lists.openstack.org/pipermail/openstack-dev/2016-August/101590.html

Change-Id: Ie0197020fa66f11ba55d76f2099c6630c286bff2
2016-08-12 21:00:19 +02:00
defaults Add project group to role 2016-08-04 05:16:03 +01:00
doc Ensure that doc linting is included in the linters test 2016-07-26 00:41:35 +01:00
files Implement keystone venv support 2015-10-14 13:59:47 -05:00
handlers Keystone Federation Service Provider Configuration 2015-08-07 08:44:51 +00:00
library Resolve pep8 violations caught by pep8 v1.7.0 2016-01-14 00:45:41 +00:00
meta Remove pip_lock_down dependency 2016-06-02 17:13:39 -07:00
releasenotes Add ability to change apt/yum package state 2016-08-02 08:49:23 -05:00
tasks Add ability to change apt/yum package state 2016-08-02 08:49:23 -05:00
templates Disable stderr logging 2016-08-04 17:44:18 +00:00
tests Remove openstack_hosts from test requirements 2016-07-20 18:47:02 -07:00
vars Implement 16.04 support in Keystone 2016-05-23 23:52:49 -05:00
.gitignore Remove duplicates from .gitignore 2016-07-15 12:00:39 +10:00
.gitreview Implement base configuration for independent repository 2016-03-02 10:09:25 -05:00
bindep.txt Move other-requirements.txt to bindep.txt 2016-08-12 21:00:19 +02:00
CONTRIBUTING.rst Updated role to be an independent role 2016-02-26 14:13:43 -06:00
LICENSE Updated role to be an independent role 2016-02-26 14:13:43 -06:00
README.rst Ensure that doc linting is included in the linters test 2016-07-26 00:41:35 +01:00
run_tests.sh Add dependencies for paramiko 2.0 2016-05-03 08:56:18 +01:00
setup.cfg Updated role to be an independent role 2016-02-26 14:13:43 -06:00
setup.py Updated from global requirements 2016-07-15 03:57:57 +00:00
test-requirements.txt Updated from global requirements 2016-07-15 03:57:57 +00:00
tox.ini Include ansible commands for ansible linting 2016-08-11 18:09:25 +01:00

OpenStack-Ansible Keystone

Ansible role that installs and configures OpenStack Keystone. Keystone is installed behind the Apache webserver listening on port 5000 and port 35357 by default.

Default Variables

../../defaults/main.yml

Required Variables

This list is not exhaustive at present. See role internals for further details.

# hostname or IP of load balancer providing external network
# access to Keystone
external_lb_vip_address: 10.100.100.102

# hostname or IP of load balancer providing internal network
# access to Keystone
internal_lb_vip_address: 10.100.100.102

# password used by the keystone service to interact with Galera
keystone_container_mysql_password: "YourPassword"

keystone_auth_admin_password: "SuperSecretePassword"
keystone_service_password: "secrete"
keystone_rabbitmq_password: "secrete"
keystone_container_mysql_password: "SuperSecrete"

Example Playbook

- name: Installation and setup of Keystone
  hosts: keystone_all
  user: root
  pre_tasks:
    - name: Create DB for service
      mysql_db:
        login_user: "root"
        login_password: "secrete"
        login_host: "localhost"
        name: "{{ keystone_galera_database }}"
        state: "present"
      delegate_to: "{{ keystone_galera_address }}"
      when: inventory_hostname == groups['keystone_all'][0]
    - name: Grant access to the DB for the service
      mysql_user:
        login_user: "root"
        login_password: "secrete"
        login_host: "localhost"
        name: "{{ keystone_galera_database }}"
        password: "{{ keystone_container_mysql_password }}"
        host: "{{ item }}"
        state: "present"
        priv: "{{ keystone_galera_database }}.*:ALL"
      with_items:
        - "localhost"
        - "%"
      delegate_to: "{{ keystone_galera_address }}"
      when: inventory_hostname == groups['keystone_all'][0]
  roles:
    - { role: "os_keystone", tags: [ "os-keystone" ] }
  vars:
    external_lb_vip_address: 10.100.100.102
    internal_lb_vip_address: 10.100.100.102
    keystone_galera_address: 10.100.100.101
    keystone_galera_database: keystone
    keystone_venv_tag: "testing"
    keystone_developer_mode: true
    keystone_git_install_branch: master
    keystone_auth_admin_password: "SuperSecretePassword"
    keystone_service_password: "secrete"
    keystone_rabbitmq_password: "secrete"
    keystone_container_mysql_password: "SuperSecrete"
    keystone_rabbitmq_port: 5671
    keystone_rabbitmq_userid: keystone
    keystone_rabbitmq_vhost: /keystone
    keystone_rabbitmq_servers: 10.100.100.101
    keystone_rabbitmq_use_ssl: true
    galera_client_drop_config_file: false

Tags

This role supports two tags: keystone-install and keystone-config

The keystone-install tag can be used to install and upgrade.

The keystone-config tag can be used to maintain configuration of the service.