OpenStack-Ansible Magnum

Ansible role that installs and configures OpenStack Magnum. Magnum is installed behind the Apache webserver listening on port 9511 by default.

Default variables

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

magnum_system_group_name: magnum
magnum_system_user_name: magnum
magnum_system_user_comment: Magnum System User
magnum_system_user_shell: /bin/false
magnum_system_user_home: "/var/lib/{{ magnum_system_user_name }}"
magnum_log_directory: /var/log/magnum
magnum_etc_directory: /etc/magnum

magnum_api_program_name: magnum-api
magnum_conductor_program_name: magnum-conductor

magnum_service_name: magnum
magnum_service_user_name: magnum
magnum_service_type: container-infra
magnum_service_description: "OpenStack Containers (Magnum)"
magnum_service_project_name: service
magnum_service_role_names:
  - admin
magnum_service_region: RegionOne
magnum_bind_port: 9511
magnum_service_publicuri_proto: http
magnum_service_publicurl: "{{ magnum_service_publicuri_proto }}://{{ external_lb_vip_address }}:{{ magnum_bind_port }}"
magnum_service_internaluri_proto: http
magnum_service_internalurl: "{{ magnum_service_internaluri_proto }}://{{ internal_lb_vip_address }}:{{ magnum_bind_port }}"
magnum_service_adminuri_proto: http
magnum_service_adminurl: "{{ magnum_service_adminuri_proto }}://{{ internal_lb_vip_address }}:{{ magnum_bind_port }}"

magnum_config_overrides: {}
magnum_policy_overrides: {}
magnum_api_paste_ini_overrides: {}

# Name of the virtual env to deploy into
magnum_venv_tag: untagged
magnum_bin: "/openstack/venvs/magnum-{{ magnum_venv_tag }}/bin"

magnum_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/magnum.tgz

magnum_git_repo: "https://git.openstack.org/openstack/magnum"
magnum_git_install_branch: newton-eol
magnum_developer_mode: false
magnum_developer_constraints:
  - "git+{{ magnum_git_repo }}@{{ magnum_git_install_branch }}#egg=magnum"

# Database vars
magnum_galera_database_name: magnum_service
magnum_galera_user: magnum

# Rabbit vars
magnum_rpc_backend: rabbit
magnum_rabbitmq_userid: magnum
magnum_rabbitmq_vhost: /magnum
magnum_rabbitmq_servers: 127.0.0.1
magnum_rabbitmq_use_ssl: False
magnum_rabbitmq_port: 5672

# Keystone AuthToken/Middleware
magnum_keystone_auth_plugin: password
magnum_service_project_domain_name: Default
magnum_service_user_domain_name: default

# Trustee User
magnum_trustee_domain_admin_name: trustee_domain_admin
magnum_trustee_domain_name: magnum
magnum_trustee_domain_admin_roles: ['admin']

#Glance images
magnum_glance_images: []
## Example Glance Image - Fedora Atomic
#  - name: fedora-atomic-latest         #Name of the image in Glance
#    disk_format: qcow2                 #Disk format (e.g. qcow2)
#    image_format: bare                 #Image format
#    public: true                       #Boolean - is the image public
#    file: https://fedorapeople.org/groups/magnum/fedora-atomic-latest.qcow2
#    distro: fedora-atomic              #Value for the os_distro metadata

magnum_requires_pip_packages:
  - httplib2
  - python-glanceclient
  - python-keystoneclient
  - pyyaml
  - virtualenv
  - virtualenv-tools

magnum_pip_packages:
  - MySQL-python
  - PyMySQL
  - magnum
  - python-memcached

# 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.
magnum_role_project_group: magnum_all

magnum_api_init_config_overrides: {}
magnum_conductor_init_config_overrides: {}

Required variables

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

# Magnum TCP listening port
magnum_service_port: 9511

# Magnum service protocol http or https
magnum_service_proto: http

# Magnum Galera address of internal load balancer
magnum_galera_address: "{{ internal_lb_vip_address }}"

# Magnum Galera database name
magnum_galera_database_name: magnum_service

# Magnum Galera username
magnum_galera_user: magnum

# Magnum rabbit userid
magnum_rabbitmq_userid: magnum

# Magnum rabbit vhost
magnum_rabbitmq_vhost: /magnum

Example playbook

- name: Install Magnum server
  hosts: magnum_all
  user: root
  roles:
    - { role: "os_magnum", tags: [ "os-magnum" ] }
  vars:
    magnum_galera_address: "{{ internal_lb_vip_address }}"
    magnum_galera_database_name: magnum_service
    magnum_galera_user: magnum
    magnum_rabbitmq_userid: magnum
    magnum_rabbitmq_vhost: /magnum
    ansible_hostname: "{{ container_name }}"
    is_metal: "{{ properties.is_metal|default(false) }}"

Tags

This role supports two tags: magnum-install and magnum-config. The magnum-install tag can be used to install and upgrade. The magnum-config tag can be used to maintain configuration of the service.

Table Of Contents

Project Source

This Page