summaryrefslogtreecommitdiffstats
path: root/xci
diff options
context:
space:
mode:
authorFatih Degirmenci <fatih.degirmenci@ericsson.com>2017-03-27 10:29:01 +0200
committerTrevor Bramwell <tbramwell@linuxfoundation.org>2017-08-11 12:56:12 -0700
commit0197b9516e66969483c96981c7b518486a4797d3 (patch)
tree9a6074de573d49e81e4d545a9b29c6970cb93a1c /xci
parente2ab9c9799ac2dca86fa85673b5fcb58b9e01840 (diff)
xci: Enable node provisioning and shuffle/rename stuff
This change enables node provisioning using bifrost based on the chosen flavor. Other changes include - move flavor specific stuff (playbooks, inventory, vars) into their own folders so it is easier to copy them over. - rename flavors and get rid of xci from them. - introduce env-vars to keep variables that are not really user variables. Please note that this patch contains empty files and so on due to still trying to find best way to structurei things. Apart from this, there will probably be lots of duplications here and there which will be taken care of once things settle. Change-Id: I04a5d422e5b018439bafea5e68e65255ae38d22b Signed-off-by: Fatih Degirmenci <fatih.degirmenci@ericsson.com>
Diffstat (limited to 'xci')
-rwxr-xr-xxci/config/env-vars12
-rwxr-xr-xxci/config/pinned-versions8
-rwxr-xr-xxci/config/user-vars40
-rw-r--r--xci/file/aio/playbooks/configure-xcihost.yml (renamed from xci/file/configure-xci-aio.yml)0
-rw-r--r--xci/file/aio/playbooks/inventory2
-rw-r--r--xci/file/aio/var/ubuntu.yml7
-rw-r--r--xci/file/ha/configure-targethosts.yml (renamed from xci/file/configure-xci-ha.yml)0
-rw-r--r--xci/file/ha/playbooks/configure-xcihost.yml (renamed from xci/file/configure-xci-mini.yml)0
-rw-r--r--xci/file/ha/playbooks/inventory (renamed from xci/file/configure-xci-noha.yml)0
-rw-r--r--xci/file/ha/var/ubuntu.yml (renamed from xci/file/xci-aio-inventory)0
-rw-r--r--xci/file/mini/configure-targethosts.yml (renamed from xci/file/xci-aio-vars.yml)0
-rw-r--r--xci/file/mini/playbooks/configure-xcihost.yml (renamed from xci/file/xci-ha-inventory)0
-rw-r--r--xci/file/mini/playbooks/inventory (renamed from xci/file/xci-ha-vars.yml)0
-rw-r--r--xci/file/mini/var/ubuntu.yml (renamed from xci/file/xci-mini-inventory)0
-rw-r--r--xci/file/noha/configure-targethosts.yml (renamed from xci/file/xci-mini-vars.yml)0
-rw-r--r--xci/file/noha/playbooks/configure-xcihost.yml (renamed from xci/file/xci-noha-inventory)0
-rw-r--r--xci/file/noha/playbooks/inventory (renamed from xci/file/xci-noha-vars.yml)0
-rw-r--r--xci/file/noha/var/ubuntu.yml0
-rw-r--r--xci/flavors/aio (renamed from xci/flavors/xci-aio.sh)13
-rw-r--r--xci/flavors/ha (renamed from xci/flavors/xci-ha.sh)13
-rw-r--r--xci/flavors/mini (renamed from xci/flavors/xci-mini.sh)15
-rw-r--r--xci/flavors/noha (renamed from xci/flavors/xci-noha.sh)15
-rwxr-xr-xxci/xci-deploy.sh61
23 files changed, 115 insertions, 71 deletions
diff --git a/xci/config/env-vars b/xci/config/env-vars
new file mode 100755
index 00000000..106a1793
--- /dev/null
+++ b/xci/config/env-vars
@@ -0,0 +1,12 @@
+#-------------------------------------------------------------------------------
+# Do not change these settings if you are not developing for XCI Sandbox!
+#-------------------------------------------------------------------------------
+export OPNFV_RELENG_GIT_URL=https://gerrit.opnfv.org/gerrit/releng.git
+export OPENSTACK_BIFROST_GIT_URL=https://git.openstack.org/openstack/bifrost
+export OPENSTACK_OSA_GIT_URL=https://git.openstack.org/openstack/openstack-ansible
+export OPENSTACK_OSA_ETC_PATH=/etc/openstack_deploy
+export CLEAN_DIB_IMAGES=false
+export XCI_IP=192.168.122.2
+export XCI_ANSIBLE_PLAYBOOKS_PATH=$OPNFV_RELENG_PATH/prototypes/xci/file/$XCI_FLAVOR/playbooks
+export XCI_ANSIBLE_VARS_PATH=$OPNFV_RELENG_PATH/prototypes/xci/file/$XCI_FLAVOR/var
+export JOB_NAME=${JOB_NAME:-false}
diff --git a/xci/config/pinned-versions b/xci/config/pinned-versions
index c81fcc36..2fe9eee4 100755
--- a/xci/config/pinned-versions
+++ b/xci/config/pinned-versions
@@ -20,7 +20,7 @@
#-------------------------------------------------------------------------------
# use releng from master until the development work with the sandbox is complete
export OPNFV_RELENG_VERSION="master"
-# HEAD of "stable/ocata" as of 24.03.2017 - verified by OPNFV CI
-export OPENSTACK_BIFROST_VERSION="a87f7ce6c8725b3bbffec7b2efa1e466796848a9"
-# HEAD of "stable/ocata" as of 24.03.2017 - verified by OPNFV CI
-export OPENSTACK_OSA_VERSION="4713cf45e11b4ebca9fbed25d1389854602213d8"
+# HEAD of "master" as of 27.03.2017 - verified by OPNFV CI
+export OPENSTACK_BIFROST_VERSION="7417ff36e4b5fc4e2a6ee7d9dddb7287be20c37d"
+# HEAD of "master" as of 27.03.2017 - verified by OPNFV CI
+export OPENSTACK_OSA_VERSION="baba7b317a5898cd73b4a11c4ce364c7e2d3d77f"
diff --git a/xci/config/user-vars b/xci/config/user-vars
index bb2bfe1d..f29dda66 100755
--- a/xci/config/user-vars
+++ b/xci/config/user-vars
@@ -1,36 +1,36 @@
#-------------------------------------------------------------------------------
-# Set Paths to where git repositories of XCI Components will be cloned
-#-------------------------------------------------------------------------------
-# OPNFV XCI Sandbox is not verified to be used as non-root user as of yet so
-# changing these paths might break things.
-#-------------------------------------------------------------------------------
-export OPNFV_RELENG_PATH=/opt/releng
-export OPENSTACK_BIFROST_PATH=/opt/bifrost
-export OPENSTACK_OSA_PATH=/opt/openstack-ansible
-
-#-------------------------------------------------------------------------------
# Set Deployment Flavor
#-------------------------------------------------------------------------------
# OPNFV XCI currently supports 4 different types of flavors:
-# - all in one (aio) - xci-aio.sh: 1 VM which acts as controller and compute node
-# - mini opnfv: 3 VMs, 1 xcimaster, 1 controller, and 1 compute nodes
-# - noha: 4 VMs, 1 xcimaster, 1 controller, and 2 compute nodes
-# - ha: 6 VMs, 1 xcimaster, 3 controllers, and 2 compute nodes
+# - all in one (aio): 1 xci VM which acts as controller and compute node
+# - mini: 3 VMs, 1 xci VM, 1 controller, and 1 compute nodes
+# - noha: 4 VMs, 1 xci VM, 1 controller, and 2 compute nodes
+# - ha: 6 VMs, 1 xci VM, 3 controllers, and 2 compute nodes
#
# Apart from having different number of nodes, CPU, RAM, and disk allocations
# also differ from each other. Please take a look at the env-vars files for
# each of these flavors.
#
# Examples:
-# export XCI_FLAVOR="xci-aio"
+# export XCI_FLAVOR="aio"
# or
-# export XCI_FLAVOR="xci-mini"
+# export XCI_FLAVOR="mini"
# or
-# export XCI_FLAVOR="xci-noha"
+# export XCI_FLAVOR="noha"
# or
-# export XCI_FLAVOR="xci-ha"
+# export XCI_FLAVOR="ha"
#-------------------------------------------------------------------------------
-export XCI_FLAVOR=${XCI_FLAVOR:-xci-mini}
+export XCI_FLAVOR=${XCI_FLAVOR:-aio}
+
+#-------------------------------------------------------------------------------
+# Set Paths to where git repositories of XCI Components will be cloned
+#-------------------------------------------------------------------------------
+# OPNFV XCI Sandbox is not verified to be used as non-root user as of yet so
+# changing these paths might break things.
+#-------------------------------------------------------------------------------
+export OPNFV_RELENG_PATH=/opt/releng
+export OPENSTACK_BIFROST_PATH=/opt/bifrost
+export OPENSTACK_OSA_PATH=/opt/openstack-ansible
#-------------------------------------------------------------------------------
# Configure some other stuff
@@ -41,4 +41,4 @@ export XCI_FLAVOR=${XCI_FLAVOR:-xci-mini}
# ANSIBLE_VERBOSITY="-v"
# or
# ANSIBLE_VERBOSITY="-vvvv"
-export ANSIBLE_VERBOSITY=${ANSIBLE_VERBOSITY:-""}
+export ANSIBLE_VERBOSITY=${ANSIBLE_VERBOSITY-""}
diff --git a/xci/file/configure-xci-aio.yml b/xci/file/aio/playbooks/configure-xcihost.yml
index e69de29b..e69de29b 100644
--- a/xci/file/configure-xci-aio.yml
+++ b/xci/file/aio/playbooks/configure-xcihost.yml
diff --git a/xci/file/aio/playbooks/inventory b/xci/file/aio/playbooks/inventory
new file mode 100644
index 00000000..9283e516
--- /dev/null
+++ b/xci/file/aio/playbooks/inventory
@@ -0,0 +1,2 @@
+[xciaio]
+xciaio ansible_ssh_host=192.168.122.2
diff --git a/xci/file/aio/var/ubuntu.yml b/xci/file/aio/var/ubuntu.yml
new file mode 100644
index 00000000..3a041b1c
--- /dev/null
+++ b/xci/file/aio/var/ubuntu.yml
@@ -0,0 +1,7 @@
+---
+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_IP: "{{ lookup('env','XCI_IP') }}"
+multi_host: "False"
diff --git a/xci/file/configure-xci-ha.yml b/xci/file/ha/configure-targethosts.yml
index e69de29b..e69de29b 100644
--- a/xci/file/configure-xci-ha.yml
+++ b/xci/file/ha/configure-targethosts.yml
diff --git a/xci/file/configure-xci-mini.yml b/xci/file/ha/playbooks/configure-xcihost.yml
index e69de29b..e69de29b 100644
--- a/xci/file/configure-xci-mini.yml
+++ b/xci/file/ha/playbooks/configure-xcihost.yml
diff --git a/xci/file/configure-xci-noha.yml b/xci/file/ha/playbooks/inventory
index e69de29b..e69de29b 100644
--- a/xci/file/configure-xci-noha.yml
+++ b/xci/file/ha/playbooks/inventory
diff --git a/xci/file/xci-aio-inventory b/xci/file/ha/var/ubuntu.yml
index e69de29b..e69de29b 100644
--- a/xci/file/xci-aio-inventory
+++ b/xci/file/ha/var/ubuntu.yml
diff --git a/xci/file/xci-aio-vars.yml b/xci/file/mini/configure-targethosts.yml
index e69de29b..e69de29b 100644
--- a/xci/file/xci-aio-vars.yml
+++ b/xci/file/mini/configure-targethosts.yml
diff --git a/xci/file/xci-ha-inventory b/xci/file/mini/playbooks/configure-xcihost.yml
index e69de29b..e69de29b 100644
--- a/xci/file/xci-ha-inventory
+++ b/xci/file/mini/playbooks/configure-xcihost.yml
diff --git a/xci/file/xci-ha-vars.yml b/xci/file/mini/playbooks/inventory
index e69de29b..e69de29b 100644
--- a/xci/file/xci-ha-vars.yml
+++ b/xci/file/mini/playbooks/inventory
diff --git a/xci/file/xci-mini-inventory b/xci/file/mini/var/ubuntu.yml
index e69de29b..e69de29b 100644
--- a/xci/file/xci-mini-inventory
+++ b/xci/file/mini/var/ubuntu.yml
diff --git a/xci/file/xci-mini-vars.yml b/xci/file/noha/configure-targethosts.yml
index e69de29b..e69de29b 100644
--- a/xci/file/xci-mini-vars.yml
+++ b/xci/file/noha/configure-targethosts.yml
diff --git a/xci/file/xci-noha-inventory b/xci/file/noha/playbooks/configure-xcihost.yml
index e69de29b..e69de29b 100644
--- a/xci/file/xci-noha-inventory
+++ b/xci/file/noha/playbooks/configure-xcihost.yml
diff --git a/xci/file/xci-noha-vars.yml b/xci/file/noha/playbooks/inventory
index e69de29b..e69de29b 100644
--- a/xci/file/xci-noha-vars.yml
+++ b/xci/file/noha/playbooks/inventory
diff --git a/xci/file/noha/var/ubuntu.yml b/xci/file/noha/var/ubuntu.yml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/xci/file/noha/var/ubuntu.yml
diff --git a/xci/flavors/xci-aio.sh b/xci/flavors/aio
index 9f9ea1be..48754e50 100644
--- a/xci/flavors/xci-aio.sh
+++ b/xci/flavors/aio
@@ -1,8 +1,6 @@
#-------------------------------------------------------------------------------
# XCI Flavor Configuration
#-------------------------------------------------------------------------------
-# This is the configuration for xci-aio.
-#
# You are free to modify parts of the configuration to fit into your environment.
# But before doing that, please ensure you checked other flavors to see if one
# them can be used instead, saving you some time.
@@ -12,16 +10,9 @@
# Configure VM Nodes
#-------------------------------------------------------------------------------
export TEST_VM_NUM_NODES=1
-export TEST_VM_NODE_NAMES=xciaio
+export TEST_VM_NODE_NAMES=xci
export VM_DOMAIN_TYPE=kvm
export VM_CPU=8
export VM_DISK=80
-export VM_MEMORY_SIZE=12288
+export VM_MEMORY_SIZE=8192
export VM_DISK_CACHE=unsafe
-
-#-------------------------------------------------------------------------------
-# Ansible Files for the Flavor
-#-------------------------------------------------------------------------------
-XCI_ANSIBLE_PLAYBOOK=$OPNFV_RELENG_PATH/prototypes/xci/file/configure-xci-aio.yml
-XCI_ANSIBLE_INVENTORY=$OPNFV_RELENG_PATH/prototypes/xci/file/xci-aio-inventory
-XCI_ANSIBLE_VARS=$OPNFV_RELENG_PATH/prototypes/xci/file/xci-aio-vars.yml
diff --git a/xci/flavors/xci-ha.sh b/xci/flavors/ha
index 442432fe..8a045a3d 100644
--- a/xci/flavors/xci-ha.sh
+++ b/xci/flavors/ha
@@ -1,8 +1,6 @@
#-------------------------------------------------------------------------------
# XCI Flavor Configuration
#-------------------------------------------------------------------------------
-# This is the configuration for xci-aio.
-#
# You are free to modify parts of the configuration to fit into your environment.
# But before doing that, please ensure you checked other flavors to see if one
# them can be used instead, saving you some time.
@@ -12,16 +10,9 @@
# Configure VM Nodes
#-------------------------------------------------------------------------------
export TEST_VM_NUM_NODES=6
-export TEST_VM_NODE_NAMES="xcimaster controller00 controller01 controller02 compute00 compute01"
+export TEST_VM_NODE_NAMES="xci controller00 controller01 controller02 compute00 compute01"
export VM_DOMAIN_TYPE=kvm
export VM_CPU=8
-export VM_DISK=100
+export VM_DISK=80
export VM_MEMORY_SIZE=16384
export VM_DISK_CACHE=unsafe
-
-#-------------------------------------------------------------------------------
-# Ansible Files for the Flavor
-#-------------------------------------------------------------------------------
-XCI_ANSIBLE_PLAYBOOK=$OPNFV_RELENG_PATH/prototypes/xci/file/configure-xci-ha.yml
-XCI_ANSIBLE_INVENTORY=$OPNFV_RELENG_PATH/prototypes/xci/file/xci-ha-inventory
-XCI_ANSIBLE_VARS=$OPNFV_RELENG_PATH/prototypes/xci/file/xci-ha-vars.yml
diff --git a/xci/flavors/xci-mini.sh b/xci/flavors/mini
index 11048f6b..44b015d9 100644
--- a/xci/flavors/xci-mini.sh
+++ b/xci/flavors/mini
@@ -1,8 +1,6 @@
#-------------------------------------------------------------------------------
# XCI Flavor Configuration
#-------------------------------------------------------------------------------
-# This is the configuration for xci-aio.
-#
# You are free to modify parts of the configuration to fit into your environment.
# But before doing that, please ensure you checked other flavors to see if one
# them can be used instead, saving you some time.
@@ -12,16 +10,9 @@
# Configure VM Nodes
#-------------------------------------------------------------------------------
export TEST_VM_NUM_NODES=3
-export TEST_VM_NODE_NAMES="xcimaster controller00 compute00"
+export TEST_VM_NODE_NAMES="xci controller00 compute00"
export VM_DOMAIN_TYPE=kvm
export VM_CPU=8
-export VM_DISK=100
-export VM_MEMORY_SIZE=12288
+export VM_DISK=80
+export VM_MEMORY_SIZE=8192
export VM_DISK_CACHE=unsafe
-
-#-------------------------------------------------------------------------------
-# Ansible Files for the Flavor
-#-------------------------------------------------------------------------------
-XCI_ANSIBLE_PLAYBOOK=$OPNFV_RELENG_PATH/prototypes/xci/file/configure-xci-mini.yml
-XCI_ANSIBLE_INVENTORY=$OPNFV_RELENG_PATH/prototypes/xci/file/xci-mini-inventory
-XCI_ANSIBLE_VARS=$OPNFV_RELENG_PATH/prototypes/xci/file/xci-mini-vars.yml
diff --git a/xci/flavors/xci-noha.sh b/xci/flavors/noha
index 6a83f996..7f686e5e 100644
--- a/xci/flavors/xci-noha.sh
+++ b/xci/flavors/noha
@@ -1,8 +1,6 @@
#-------------------------------------------------------------------------------
# XCI Flavor Configuration
#-------------------------------------------------------------------------------
-# This is the configuration for xci-aio.
-#
# You are free to modify parts of the configuration to fit into your environment.
# But before doing that, please ensure you checked other flavors to see if one
# them can be used instead, saving you some time.
@@ -12,16 +10,9 @@
# Configure VM Nodes
#-------------------------------------------------------------------------------
export TEST_VM_NUM_NODES=4
-export TEST_VM_NODE_NAMES="xcimaster controller00 compute00 compute01"
+export TEST_VM_NODE_NAMES="xci controller00 compute00 compute01"
export VM_DOMAIN_TYPE=kvm
export VM_CPU=8
-export VM_DISK=100
-export VM_MEMORY_SIZE=12288
+export VM_DISK=80
+export VM_MEMORY_SIZE=8192
export VM_DISK_CACHE=unsafe
-
-#-------------------------------------------------------------------------------
-# Ansible Files for the Flavor
-#-------------------------------------------------------------------------------
-XCI_ANSIBLE_PLAYBOOK=$OPNFV_RELENG_PATH/prototypes/xci/file/configure-xci-mini.yml
-XCI_ANSIBLE_INVENTORY=$OPNFV_RELENG_PATH/prototypes/xci/file/xci-mini-inventory
-XCI_ANSIBLE_VARS=$OPNFV_RELENG_PATH/prototypes/xci/file/xci-mini-vars.yml
diff --git a/xci/xci-deploy.sh b/xci/xci-deploy.sh
index 34149f22..401c098c 100755
--- a/xci/xci-deploy.sh
+++ b/xci/xci-deploy.sh
@@ -4,6 +4,12 @@ set -o nounset
set -o pipefail
set -o xtrace
+# This script must run as root
+if [[ $(whoami) != "root" ]]; then
+ echo "Error: This script must be run as root!"
+ exit 1
+fi
+
# find where are we
XCI_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
@@ -14,4 +20,57 @@ source $XCI_PATH/config/pinned-versions
source $XCI_PATH/config/user-vars
# source flavor configuration
-source $XCI_PATH/flavors/$XCI_FLAVOR.sh
+source $XCI_PATH/flavors/$XCI_FLAVOR
+
+# source xci configuration
+source $XCI_PATH/config/env-vars
+
+# log info to console
+echo "Info: Starting XCI Deployment"
+echo "Info: Deployment parameters"
+echo "-------------------------------------------------------------------------"
+echo "xci flavor: $XCI_FLAVOR"
+echo "opnfv/releng version: $OPNFV_RELENG_VERSION"
+echo "openstack/bifrost version: $OPENSTACK_BIFROST_VERSION"
+echo "openstack/openstack-ansible version: $OPENSTACK_OSA_VERSION"
+echo "-------------------------------------------------------------------------"
+
+#-------------------------------------------------------------------------------
+# Cleanup the leftovers from the previous deployment
+#-------------------------------------------------------------------------------
+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 /opt/stack
+
+#-------------------------------------------------------------------------------
+# 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/
+
+#-------------------------------------------------------------------------------
+# 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)
+echo "-----------------------------------------------------------------------"
+echo "Info: VM nodes are provisioned!"
+echo "Info: It took $(($ENDTIME - $STARTTIME)) seconds to provising the VM nodes"