aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Mooney <sean.k.mooney@intel.com>2016-08-01 21:57:48 +0000
committerSean Mooney <sean.k.mooney@intel.com>2016-08-31 13:12:34 +0000
commit64c40e20a56c1ecbc78956801bc0eb697ad2ef8d (patch)
tree517687ef19b05ce4b9394cff18dbe20e1589cc8d
parent538dbac24a86d21f28191f503e2daa3b89c1ed5b (diff)
downloadkolla-64c40e20a56c1ecbc78956801bc0eb697ad2ef8d.tar.gz
kolla-64c40e20a56c1ecbc78956801bc0eb697ad2ef8d.zip
add deploy-servers command
- This change extends kolla-ansible with a deploy-server command to enroll and deploy physical servers with bifrost. Change-Id: Iaa9f34b00e676569f6e3df679b7454b1ec0b8e34 Implements: blueprint bifrost-support
-rw-r--r--ansible/roles/bifrost/tasks/deploy-servers.yml21
-rw-r--r--doc/bifrost.rst54
-rw-r--r--releasenotes/notes/bifrost-f080de99005ad38e.yaml5
-rwxr-xr-xtools/kolla-ansible19
4 files changed, 65 insertions, 34 deletions
diff --git a/ansible/roles/bifrost/tasks/deploy-servers.yml b/ansible/roles/bifrost/tasks/deploy-servers.yml
new file mode 100644
index 000000000..6a6a990eb
--- /dev/null
+++ b/ansible/roles/bifrost/tasks/deploy-servers.yml
@@ -0,0 +1,21 @@
+---
+- name: Enrolling physical servers with ironic
+ command: >
+ docker exec bifrost_deploy
+ bash -c 'source /bifrost/env-vars
+ && source /opt/stack/ansible/hacking/env-setup &&
+ export BIFROST_INVENTORY_SOURCE=/etc/bifrost/servers.yml &&
+ ansible-playbook -vvvv -i /bifrost/playbooks/inventory/bifrost_inventory.py
+ /bifrost/playbooks/enroll-dynamic.yaml -e "ansible_python_interpreter=/var/lib/kolla/venv/bin/python"
+ -e @/etc/bifrost/bifrost.yml'
+
+- name: deploy physical servers with ironic
+ command: >
+ docker exec bifrost_deploy
+ bash -c 'source /bifrost/env-vars
+ && source /opt/stack/ansible/hacking/env-setup &&
+ export BIFROST_INVENTORY_SOURCE=/etc/bifrost/servers.yml &&
+ ansible-playbook -vvvv -i /bifrost/playbooks/inventory/bifrost_inventory.py
+ /bifrost/playbooks/deploy-dynamic.yaml -e "ansible_python_interpreter=/var/lib/kolla/venv/bin/python"
+ -e @/etc/bifrost/bifrost.yml'
+
diff --git a/doc/bifrost.rst b/doc/bifrost.rst
index ce6ac4b46..105d79193 100644
--- a/doc/bifrost.rst
+++ b/doc/bifrost.rst
@@ -18,7 +18,7 @@ fix hosts file
--------------
Docker bind mounts ``/etc/hosts`` into the container from a volume.
This prevents atomic renames which will prevent ansible from fixing
-the ``/etc/host`` file automatically.
+the ``/etc/hosts`` file automatically.
to enable bifrost to be bootstrapped correctly
add the deployment hosts hostname to 127.0.0.1 line
@@ -110,7 +110,6 @@ creating a bifrost.yml file in the kolla custom config director or in a
bifrost sub directory.
e.g. /etc/kolla/config/bifrost/bifrost.yml
- skip_package_install: true
mysql_service_name: mysql
ansible_python_interpreter: /var/lib/kolla/venv/bin/python
network_interface: < add you network interface here >
@@ -134,6 +133,17 @@ dib_os_element: ubuntu
Deploy Bifrost
=========================
+ansible
+-------
+
+Development
+___________
+tools/kolla-ansible deploy-bifrost
+
+Production
+__________
+kolla-ansible deploy-bifrost
+
manual
------
@@ -167,21 +177,10 @@ cd /bifrost
cd playbooks/
-bootstap and start services
+bootstrap and start services
~~~~~~~~~~~~~~~~~~~~~~~~~~~
ansible-playbook -vvvv -i /bifrost/playbooks/inventory/localhost /bifrost/playbooks/install.yaml -e @/etc/bifrost/bifrost.yml
-ansible
--------
-
-Development
-___________
-tools/kolla-ansible bifrost-deploy -e bifrost_network_interface=<pxe network interface>
-
-Production
-__________
-kolla-ansible deploy-kolla -e bifrost_network_interface=<pxe network interface>
-
Check ironic is running
=======================
@@ -199,34 +198,33 @@ e.g.
+------+------+---------------+-------------+--------------------+-------------+
-Enroll Physical Nodes
-=====================
+Enroll and Deploy Physical Nodes
+================================
ansible
-------
-TODO
+
+Development
+___________
+tools/kolla-ansible deploy-servers
+
+Production
+__________
+kolla-ansible deploy-servers
+
manual
------
docker exec -it bifrost_deploy bash
cd /bifrost
. env-vars
-export BIFROST_INVENTORY_SOURCE=/tmp/servers.yml
+export BIFROST_INVENTORY_SOURCE=/etc/bifrost/servers.yml
ansible-playbook -vvvv -i inventory/bifrost_inventory.py enroll-dynamic.yaml -e "ansible_python_interpreter=/var/lib/kolla/venv/bin/python" -e network_interface=<provisioning interface>
-Deploy Nodes
-============
-
-ansible
--------
-TODO
-
-manual
-------
docker exec -it bifrost_deploy bash
cd /bifrost
. env-vars
-export BIFROST_INVENTORY_SOURCE=/tmp/servers.yml
+export BIFROST_INVENTORY_SOURCE=/etc/bifrost/servers.yml
ansible-playbook -vvvv -i inventory/bifrost_inventory.py deploy-dynamic.yaml -e "ansible_python_interpreter=/var/lib/kolla/venv/bin/python" -e network_interface=<prvisioning interface> -e @/etc/bifrost/dib.yml
At this point ironic should clean down your nodes and install the default os image.
diff --git a/releasenotes/notes/bifrost-f080de99005ad38e.yaml b/releasenotes/notes/bifrost-f080de99005ad38e.yaml
index 889650492..1b47d1304 100644
--- a/releasenotes/notes/bifrost-f080de99005ad38e.yaml
+++ b/releasenotes/notes/bifrost-f080de99005ad38e.yaml
@@ -10,3 +10,8 @@ features:
kolla-ansible. The deploy-bifrost command
will deploy and bootstrap a standalone
instance of ironic in a single container.
+ - A new deploy-server command was added to
+ kolla-ansible. The deploy-server command
+ uses a locally deployed instance of bifrost
+ to enrole servers with ironic and provision
+ their os.
diff --git a/tools/kolla-ansible b/tools/kolla-ansible
index ea9275776..bb8e9bd25 100755
--- a/tools/kolla-ansible
+++ b/tools/kolla-ansible
@@ -42,9 +42,11 @@ Commands:
prechecks Do pre-deployment checks for hosts
mariadb_recovery Recover a completely stopped mariadb cluster
bootstrap-servers bootstrap servers with kolla deploy dependencies
- deploy Deploy and start all kolla containers
destroy Destroy Kolla containers, volumes and host configuration
('-e destroy_include_images=yes' to also destroy Kolla images)
+ deploy Deploy and start all kolla containers
+ deploy-bifrost Deploy and start bifrost container
+ deploy-servers Enroll and deploy servers with bifrost
post-deploy Do post deploy on deploy node
pull Pull all images for containers (only pulls, no running container changes)
reconfigure Reconfigure OpenStack service
@@ -146,18 +148,23 @@ case "$1" in
PLAYBOOK="${BASEDIR}/ansible/destroy.yml"
;;
(bootstrap-servers)
- ACTION="Deploying Playbooks"
+ ACTION="Bootstraping servers"
PLAYBOOK="${BASEDIR}/ansible/kolla-host.yml"
EXTRA_OPTS="$EXTRA_OPTS -e action=bootstrap-servers"
;;
-(bifrost-deploy)
+(deploy)
+ ACTION="Deploying Playbooks"
+ EXTRA_OPTS="$EXTRA_OPTS -e action=deploy"
+ ;;
+(deploy-bifrost)
ACTION="Deploying Bifrost"
PLAYBOOK="${BASEDIR}/ansible/bifrost.yml"
EXTRA_OPTS="$EXTRA_OPTS -e action=deploy"
;;
-(deploy)
- ACTION="Deploying Playbooks"
- EXTRA_OPTS="$EXTRA_OPTS -e action=deploy"
+(deploy-servers)
+ ACTION="Deploying servers with bifrost"
+ PLAYBOOK="${BASEDIR}/ansible/bifrost.yml"
+ EXTRA_OPTS="$EXTRA_OPTS -e action=deploy-servers"
;;
(post-deploy)
ACTION="Post-Deploying Playbooks"