diff options
-rwxr-xr-x | prototypes/xci/config/env-vars | 12 | ||||
-rwxr-xr-x | prototypes/xci/config/pinned-versions | 8 | ||||
-rwxr-xr-x | prototypes/xci/config/user-vars | 40 | ||||
-rw-r--r-- | prototypes/xci/file/aio/playbooks/configure-xcihost.yml (renamed from prototypes/xci/file/configure-xci-aio.yml) | 0 | ||||
-rw-r--r-- | prototypes/xci/file/aio/playbooks/inventory | 2 | ||||
-rw-r--r-- | prototypes/xci/file/aio/var/ubuntu.yml | 7 | ||||
-rw-r--r-- | prototypes/xci/file/ha/configure-targethosts.yml (renamed from prototypes/xci/file/configure-xci-ha.yml) | 0 | ||||
-rw-r--r-- | prototypes/xci/file/ha/playbooks/configure-xcihost.yml (renamed from prototypes/xci/file/configure-xci-mini.yml) | 0 | ||||
-rw-r--r-- | prototypes/xci/file/ha/playbooks/inventory (renamed from prototypes/xci/file/configure-xci-noha.yml) | 0 | ||||
-rw-r--r-- | prototypes/xci/file/ha/var/ubuntu.yml (renamed from prototypes/xci/file/xci-aio-inventory) | 0 | ||||
-rw-r--r-- | prototypes/xci/file/mini/configure-targethosts.yml (renamed from prototypes/xci/file/xci-aio-vars.yml) | 0 | ||||
-rw-r--r-- | prototypes/xci/file/mini/playbooks/configure-xcihost.yml (renamed from prototypes/xci/file/xci-ha-inventory) | 0 | ||||
-rw-r--r-- | prototypes/xci/file/mini/playbooks/inventory (renamed from prototypes/xci/file/xci-ha-vars.yml) | 0 | ||||
-rw-r--r-- | prototypes/xci/file/mini/var/ubuntu.yml (renamed from prototypes/xci/file/xci-mini-inventory) | 0 | ||||
-rw-r--r-- | prototypes/xci/file/noha/configure-targethosts.yml (renamed from prototypes/xci/file/xci-mini-vars.yml) | 0 | ||||
-rw-r--r-- | prototypes/xci/file/noha/playbooks/configure-xcihost.yml (renamed from prototypes/xci/file/xci-noha-inventory) | 0 | ||||
-rw-r--r-- | prototypes/xci/file/noha/playbooks/inventory (renamed from prototypes/xci/file/xci-noha-vars.yml) | 0 | ||||
-rw-r--r-- | prototypes/xci/file/noha/var/ubuntu.yml | 0 | ||||
-rw-r--r-- | prototypes/xci/flavors/aio (renamed from prototypes/xci/flavors/xci-aio.sh) | 13 | ||||
-rw-r--r-- | prototypes/xci/flavors/ha (renamed from prototypes/xci/flavors/xci-ha.sh) | 13 | ||||
-rw-r--r-- | prototypes/xci/flavors/mini (renamed from prototypes/xci/flavors/xci-mini.sh) | 15 | ||||
-rw-r--r-- | prototypes/xci/flavors/noha (renamed from prototypes/xci/flavors/xci-noha.sh) | 15 | ||||
-rwxr-xr-x | prototypes/xci/xci-deploy.sh | 61 |
23 files changed, 115 insertions, 71 deletions
diff --git a/prototypes/xci/config/env-vars b/prototypes/xci/config/env-vars new file mode 100755 index 000000000..106a17930 --- /dev/null +++ b/prototypes/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/prototypes/xci/config/pinned-versions b/prototypes/xci/config/pinned-versions index c81fcc36b..2fe9eee42 100755 --- a/prototypes/xci/config/pinned-versions +++ b/prototypes/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/prototypes/xci/config/user-vars b/prototypes/xci/config/user-vars index bb2bfe1d3..f29dda66f 100755 --- a/prototypes/xci/config/user-vars +++ b/prototypes/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/prototypes/xci/file/configure-xci-aio.yml b/prototypes/xci/file/aio/playbooks/configure-xcihost.yml index e69de29bb..e69de29bb 100644 --- a/prototypes/xci/file/configure-xci-aio.yml +++ b/prototypes/xci/file/aio/playbooks/configure-xcihost.yml diff --git a/prototypes/xci/file/aio/playbooks/inventory b/prototypes/xci/file/aio/playbooks/inventory new file mode 100644 index 000000000..9283e516d --- /dev/null +++ b/prototypes/xci/file/aio/playbooks/inventory @@ -0,0 +1,2 @@ +[xciaio] +xciaio ansible_ssh_host=192.168.122.2 diff --git a/prototypes/xci/file/aio/var/ubuntu.yml b/prototypes/xci/file/aio/var/ubuntu.yml new file mode 100644 index 000000000..3a041b1cb --- /dev/null +++ b/prototypes/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/prototypes/xci/file/configure-xci-ha.yml b/prototypes/xci/file/ha/configure-targethosts.yml index e69de29bb..e69de29bb 100644 --- a/prototypes/xci/file/configure-xci-ha.yml +++ b/prototypes/xci/file/ha/configure-targethosts.yml diff --git a/prototypes/xci/file/configure-xci-mini.yml b/prototypes/xci/file/ha/playbooks/configure-xcihost.yml index e69de29bb..e69de29bb 100644 --- a/prototypes/xci/file/configure-xci-mini.yml +++ b/prototypes/xci/file/ha/playbooks/configure-xcihost.yml diff --git a/prototypes/xci/file/configure-xci-noha.yml b/prototypes/xci/file/ha/playbooks/inventory index e69de29bb..e69de29bb 100644 --- a/prototypes/xci/file/configure-xci-noha.yml +++ b/prototypes/xci/file/ha/playbooks/inventory diff --git a/prototypes/xci/file/xci-aio-inventory b/prototypes/xci/file/ha/var/ubuntu.yml index e69de29bb..e69de29bb 100644 --- a/prototypes/xci/file/xci-aio-inventory +++ b/prototypes/xci/file/ha/var/ubuntu.yml diff --git a/prototypes/xci/file/xci-aio-vars.yml b/prototypes/xci/file/mini/configure-targethosts.yml index e69de29bb..e69de29bb 100644 --- a/prototypes/xci/file/xci-aio-vars.yml +++ b/prototypes/xci/file/mini/configure-targethosts.yml diff --git a/prototypes/xci/file/xci-ha-inventory b/prototypes/xci/file/mini/playbooks/configure-xcihost.yml index e69de29bb..e69de29bb 100644 --- a/prototypes/xci/file/xci-ha-inventory +++ b/prototypes/xci/file/mini/playbooks/configure-xcihost.yml diff --git a/prototypes/xci/file/xci-ha-vars.yml b/prototypes/xci/file/mini/playbooks/inventory index e69de29bb..e69de29bb 100644 --- a/prototypes/xci/file/xci-ha-vars.yml +++ b/prototypes/xci/file/mini/playbooks/inventory diff --git a/prototypes/xci/file/xci-mini-inventory b/prototypes/xci/file/mini/var/ubuntu.yml index e69de29bb..e69de29bb 100644 --- a/prototypes/xci/file/xci-mini-inventory +++ b/prototypes/xci/file/mini/var/ubuntu.yml diff --git a/prototypes/xci/file/xci-mini-vars.yml b/prototypes/xci/file/noha/configure-targethosts.yml index e69de29bb..e69de29bb 100644 --- a/prototypes/xci/file/xci-mini-vars.yml +++ b/prototypes/xci/file/noha/configure-targethosts.yml diff --git a/prototypes/xci/file/xci-noha-inventory b/prototypes/xci/file/noha/playbooks/configure-xcihost.yml index e69de29bb..e69de29bb 100644 --- a/prototypes/xci/file/xci-noha-inventory +++ b/prototypes/xci/file/noha/playbooks/configure-xcihost.yml diff --git a/prototypes/xci/file/xci-noha-vars.yml b/prototypes/xci/file/noha/playbooks/inventory index e69de29bb..e69de29bb 100644 --- a/prototypes/xci/file/xci-noha-vars.yml +++ b/prototypes/xci/file/noha/playbooks/inventory diff --git a/prototypes/xci/file/noha/var/ubuntu.yml b/prototypes/xci/file/noha/var/ubuntu.yml new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/prototypes/xci/file/noha/var/ubuntu.yml diff --git a/prototypes/xci/flavors/xci-aio.sh b/prototypes/xci/flavors/aio index 9f9ea1be6..48754e507 100644 --- a/prototypes/xci/flavors/xci-aio.sh +++ b/prototypes/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/prototypes/xci/flavors/xci-ha.sh b/prototypes/xci/flavors/ha index 442432fea..8a045a3dd 100644 --- a/prototypes/xci/flavors/xci-ha.sh +++ b/prototypes/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/prototypes/xci/flavors/xci-mini.sh b/prototypes/xci/flavors/mini index 11048f6be..44b015d9f 100644 --- a/prototypes/xci/flavors/xci-mini.sh +++ b/prototypes/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/prototypes/xci/flavors/xci-noha.sh b/prototypes/xci/flavors/noha index 6a83f9962..7f686e5e5 100644 --- a/prototypes/xci/flavors/xci-noha.sh +++ b/prototypes/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/prototypes/xci/xci-deploy.sh b/prototypes/xci/xci-deploy.sh index 34149f22f..401c098c6 100755 --- a/prototypes/xci/xci-deploy.sh +++ b/prototypes/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" |