diff options
-rwxr-xr-x | prototypes/xci/config/env-vars | 3 | ||||
-rw-r--r-- | prototypes/xci/playbooks/provision-vm-nodes.yml | 32 | ||||
-rw-r--r-- | prototypes/xci/playbooks/roles/remove-folders/tasks/main.yml | 1 | ||||
-rw-r--r-- | prototypes/xci/var/opnfv.yml | 4 | ||||
-rwxr-xr-x | prototypes/xci/xci-deploy.sh | 33 |
5 files changed, 44 insertions, 29 deletions
diff --git a/prototypes/xci/config/env-vars b/prototypes/xci/config/env-vars index 1bb553b60..e2976a0a2 100755 --- a/prototypes/xci/config/env-vars +++ b/prototypes/xci/config/env-vars @@ -10,6 +10,9 @@ export CLEAN_DIB_IMAGES=false export OPNFV_HOST_IP=192.168.122.2 export XCI_FLAVOR_ANSIBLE_FILE_PATH=$OPNFV_RELENG_PATH/prototypes/xci/file/$XCI_FLAVOR export JOB_NAME=${JOB_NAME:-false} +# TODO: this currently matches to bifrost ansible version +# there is perhaps better way to do this +export XCI_ANSIBLE_PIP_VERSION=2.1.5.0 export ANSIBLE_HOST_KEY_CHECKING=False export DISTRO=${DISTRO:-ubuntu} export DIB_OS_RELEASE=${DIB_OS_RELEASE:-xenial} diff --git a/prototypes/xci/playbooks/provision-vm-nodes.yml b/prototypes/xci/playbooks/provision-vm-nodes.yml new file mode 100644 index 000000000..9a32d0bfc --- /dev/null +++ b/prototypes/xci/playbooks/provision-vm-nodes.yml @@ -0,0 +1,32 @@ +--- +# SPDX-license-identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2017 Ericsson AB and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +- hosts: localhost + remote_user: root + vars_files: + - ../var/{{ ansible_os_family }}.yml + - ../var/opnfv.yml + roles: + # using these roles here ensures that we can reuse this playbook in different context + - role: remove-folders + - { role: clone-repository, project: "opnfv/releng", repo: "{{ OPNFV_RELENG_GIT_URL }}", dest: "{{ OPNFV_RELENG_PATH }}", version: "{{ OPNFV_RELENG_VERSION }}" } + - { role: clone-repository, project: "opnfv/bifrost", repo: "{{ OPENSTACK_BIFROST_GIT_URL }}", dest: "{{ OPENSTACK_BIFROST_PATH }}", version: "{{ OPENSTACK_BIFROST_VERSION }}" } + tasks: + - name: combine opnfv/releng and openstack/bifrost scripts/playbooks + copy: + src: "{{ OPNFV_RELENG_PATH }}/prototypes/bifrost/" + dest: "{{ OPENSTACK_BIFROST_PATH }}" + - name: destroy VM nodes created by previous deployment + command: "/bin/bash ./scripts/destroy-env.sh" + args: + chdir: "{{ OPENSTACK_BIFROST_PATH }}" + - name: create and provision VM nodes for the flavor {{ XCI_FLAVOR }} + command: "/bin/bash ./scripts/bifrost-provision.sh" + args: + chdir: "{{ OPENSTACK_BIFROST_PATH }}" diff --git a/prototypes/xci/playbooks/roles/remove-folders/tasks/main.yml b/prototypes/xci/playbooks/roles/remove-folders/tasks/main.yml index fb321dfde..ac8c0f7dc 100644 --- a/prototypes/xci/playbooks/roles/remove-folders/tasks/main.yml +++ b/prototypes/xci/playbooks/roles/remove-folders/tasks/main.yml @@ -14,6 +14,7 @@ recurse: no with_items: - "{{ OPNFV_RELENG_PATH }}" + - "{{ OPENSTACK_BIFROST_PATH }}" - "{{ OPENSTACK_OSA_PATH }}" - "{{ OPENSTACK_OSA_ETC_PATH }}" - "{{ LOG_PATH }} " diff --git a/prototypes/xci/var/opnfv.yml b/prototypes/xci/var/opnfv.yml index 174d9b3bf..dd3761bd1 100644 --- a/prototypes/xci/var/opnfv.yml +++ b/prototypes/xci/var/opnfv.yml @@ -10,10 +10,14 @@ OPNFV_RELENG_GIT_URL: "{{ lookup('env','OPNFV_RELENG_GIT_URL') }}" OPNFV_RELENG_PATH: "{{ lookup('env','OPNFV_RELENG_PATH') }}" OPNFV_RELENG_VERSION: "{{ lookup('env','OPNFV_RELENG_VERSION') }}" +OPENSTACK_BIFROST_GIT_URL: "{{ lookup('env','OPENSTACK_BIFROST_GIT_URL') }}" +OPENSTACK_BIFROST_PATH: "{{ lookup('env','OPENSTACK_BIFROST_PATH') }}" +OPENSTACK_BIFROST_VERSION: "{{ lookup('env','OPENSTACK_BIFROST_VERSION') }}" OPENSTACK_OSA_GIT_URL: "{{ lookup('env','OPENSTACK_OSA_GIT_URL') }}" OPENSTACK_OSA_PATH: "{{ lookup('env','OPENSTACK_OSA_PATH') }}" OPENSTACK_OSA_VERSION: "{{ lookup('env','OPENSTACK_OSA_VERSION') }}" OPENSTACK_OSA_ETC_PATH: "{{ lookup('env','OPENSTACK_OSA_ETC_PATH') }}" +XCI_ANSIBLE_PIP_VERSION: "{{ lookup('env','XCI_ANSIBLE_PIP_VERSION') }}" XCI_FLAVOR: "{{ lookup('env','XCI_FLAVOR') }}" XCI_FLAVOR_ANSIBLE_FILE_PATH: "{{ lookup('env','XCI_FLAVOR_ANSIBLE_FILE_PATH') }}" LOG_PATH: "{{ lookup('env','LOG_PATH') }}" diff --git a/prototypes/xci/xci-deploy.sh b/prototypes/xci/xci-deploy.sh index 277206dc7..c5cfab36d 100755 --- a/prototypes/xci/xci-deploy.sh +++ b/prototypes/xci/xci-deploy.sh @@ -36,41 +36,16 @@ echo "openstack/openstack-ansible version: $OPENSTACK_OSA_VERSION" echo "-------------------------------------------------------------------------" #------------------------------------------------------------------------------- -# Cleanup the leftovers from the previous deployment +# install ansible on localhost #------------------------------------------------------------------------------- -echo "Info: Cleaning up the previous deployment" -$XCI_PATH/../bifrost/scripts/destroy-env.sh > /dev/null 2>&1 -/bin/rm -rf /opt/releng /opt/bifrost /opt/openstack-ansible - -#------------------------------------------------------------------------------- -# Clone the repositories and checkout the versions -#------------------------------------------------------------------------------- -echo "Info: Cloning repositories and checking out versions" -git clone --quiet $OPNFV_RELENG_GIT_URL $OPNFV_RELENG_PATH && \ - cd $OPNFV_RELENG_PATH -echo "Info: Cloned opnfv/releng. HEAD currently points at" -echo " $(git show --oneline -s --pretty=format:'%h - %s (%cr) <%an>')" -git clone --quiet $OPENSTACK_BIFROST_GIT_URL $OPENSTACK_BIFROST_PATH && \ - cd $OPENSTACK_BIFROST_PATH -echo "Info: Cloned openstack/bifrost. HEAD currently points at" -echo " $(git show --oneline -s --pretty=format:'%h - %s (%cr) <%an>')" - -#------------------------------------------------------------------------------- -# Combine opnfv and upstream scripts/playbooks -#------------------------------------------------------------------------------- -echo "Info: Combining opnfv/releng and opestack/bifrost scripts/playbooks" -/bin/cp -rf $OPNFV_RELENG_PATH/prototypes/bifrost/* $OPENSTACK_BIFROST_PATH/ +pip install ansible==$XCI_ANSIBLE_PIP_VERSION #------------------------------------------------------------------------------- # Start provisioning VM nodes #------------------------------------------------------------------------------- echo "Info: Starting provisining VM nodes using openstack/bifrost" -echo " This might take between 10 to 20 minutes depending on the flavor and the host" echo "-------------------------------------------------------------------------" -cd $OPENSTACK_BIFROST_PATH -STARTTIME=$(date +%s) -./scripts/bifrost-provision.sh -ENDTIME=$(date +%s) +cd $XCI_PATH/playbooks +ansible-playbook $ANSIBLE_VERBOSITY -i inventory provision-vm-nodes.yml echo "-----------------------------------------------------------------------" echo "Info: VM nodes are provisioned!" -echo "Info: It took $(($ENDTIME - $STARTTIME)) seconds to provising the VM nodes" |