Add an Ansible group for bifrost

It is not currently possible to deploy Bifrost on a host other than the
Ansible control host. A deployer may want to manage an Ansible control
environment remotely from the Bifrost deployment host but is currently
unable to.

This change adds a new top level 'deployment' Ansible group and a
'bifrost' Ansible group containing the 'deployment' group. The Ansible
play in ansible/bifrost.yml is now targeted at the hosts in the
'bifrost' group. For backwards compatibility, the all-in-one and
multinode inventories add localhost to the deployment group. This allows
a deployer to deploy Bifrost on a remote host by modifying the hosts in
the deployment or bifrost groups.

Change-Id: I76808feab5dd67dff63379ed9c7d08a105636acf
Closes-bug: #1665373
This commit is contained in:
Mark Goddard 2017-02-16 16:35:44 +00:00
parent 8a18a3b72b
commit 00a1bd3ae5
4 changed files with 31 additions and 1 deletions

View File

@ -1,6 +1,6 @@
--- ---
- name: Apply role bifrost - name: Apply role bifrost
hosts: localhost hosts: bifrost
roles: roles:
- { role: bifrost, - { role: bifrost,
tags: bifrost} tags: bifrost}

View File

@ -15,6 +15,9 @@ localhost ansible_connection=local
[monitoring] [monitoring]
localhost ansible_connection=local localhost ansible_connection=local
[deployment]
localhost ansible_connection=local
# You can explicitly specify which hosts run each project by updating the # You can explicitly specify which hosts run each project by updating the
# groups in the sections below. Common services are grouped together. # groups in the sections below. Common services are grouped together.
[chrony-server:children] [chrony-server:children]
@ -178,6 +181,9 @@ control
[placement:children] [placement:children]
control control
[bifrost:children]
deployment
# Additional control implemented here. These groups allow you to control which # Additional control implemented here. These groups allow you to control which
# services run on which hosts at a per-service level. # services run on which hosts at a per-service level.
# #

View File

@ -27,6 +27,9 @@ monitoring01
[storage] [storage]
storage01 storage01
[deployment]
localhost ansible_connection=local
[baremetal:children] [baremetal:children]
control control
network network
@ -195,6 +198,9 @@ control
[placement:children] [placement:children]
control control
[bifrost:children]
deployment
# Additional control implemented here. These groups allow you to control which # Additional control implemented here. These groups allow you to control which
# services run on which hosts at a per-service level. # services run on which hosts at a per-service level.
# #

View File

@ -82,6 +82,24 @@ Production
kolla-build bifrost-deploy kolla-build bifrost-deploy
Prepare Kolla-Ansible Inventory
===============================
Kolla-ansible will deploy bifrost on the hosts in the ``bifrost`` Ansible
group. In the ``all-in-one`` and ``multinode`` inventory files, a ``bifrost``
group is defined which contains all hosts in the ``deployment`` group. This
top level ``deployment`` group is intended to represent the host running the
``bifrost_deploy`` container. By default, this group contains ``localhost``.
See `edit-inventory`_ for details on how to modify the Ansible inventory in a
multinode deployment.
Bifrost does not currently support running on multiple hosts so the ``bifrost``
group should contain only a single host, however this is not enforced by
kolla-ansible. Bifrost manages a number of services that conflict with
services deployed by kolla including OpenStack Ironic, MariaDB, RabbitMQ and
(optionally) OpenStack Keystone. These services should not be deployed on the
host on which bifrost is deployed.
Prepare bifrost configs Prepare bifrost configs
======================= =======================