xci: OSA: Move all the OSA specific playbooks to the NFVI directory 69/49369/3
authorMarkos Chandras <mchandras@suse.de>
Wed, 20 Dec 2017 10:12:42 +0000 (10:12 +0000)
committerFatih Degirmenci <fdegir@gmail.com>
Wed, 20 Dec 2017 23:28:52 +0000 (00:28 +0100)
Move all the playbooks that only make sense for OpenStack-Ansible
deployments to the NFVI/OSA directory where they belong. This further
disassociates XCI from OSA.

Change-Id: Iab8b6dc81d9025a1d85608a98fb1eee0f1c6a69f
Signed-off-by: Markos Chandras <mchandras@suse.de>
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
13 files changed:
xci/nfvi/osa/files/ansible-role-requirements.yml [moved from xci/file/ansible-role-requirements.yml with 100% similarity]
xci/nfvi/osa/files/cinder.yml [moved from xci/file/cinder.yml with 100% similarity]
xci/nfvi/osa/files/global-requirement-pins.txt [moved from xci/file/global-requirement-pins.txt with 100% similarity]
xci/nfvi/osa/files/openstack_services.yml [moved from xci/file/openstack_services.yml with 100% similarity]
xci/nfvi/osa/files/setup-openstack.yml [moved from xci/file/setup-openstack.yml with 100% similarity]
xci/nfvi/osa/nfvi-deploy.sh
xci/nfvi/osa/playbooks/bootstrap-scenarios.yml [moved from xci/playbooks/bootstrap-scenarios.yml with 100% similarity]
xci/nfvi/osa/playbooks/configure-localhost.yml [moved from xci/playbooks/configure-localhost.yml with 93% similarity]
xci/nfvi/osa/playbooks/configure-opnfvhost.yml [moved from xci/playbooks/configure-opnfvhost.yml with 85% similarity]
xci/nfvi/osa/playbooks/configure-targethosts.yml [moved from xci/playbooks/configure-targethosts.yml with 69% similarity]
xci/nfvi/osa/playbooks/inventory [moved from xci/playbooks/inventory with 100% similarity]
xci/nfvi/osa/playbooks/xci-deploy.sh [new file with mode: 0755]
xci/scripts/update-osa-version-files.sh

index 94e331f..c074add 100755 (executable)
@@ -8,6 +8,9 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+OSA_XCI_PLAYBOOKS="$(dirname $(realpath ${BASH_SOURCE[0]}))/playbooks"
+export ANSIBLE_ROLES_PATH=$HOME/.ansible/roles:/etc/ansible/roles:${XCI_PATH}/xci/playbooks/roles
+
 if [[ ${OPENSTACK_OSA_VERSION} =~ (stable/|master) ]]; then
     echo ""
     echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
@@ -35,8 +38,8 @@ fi
 
 echo "Info: Configuring localhost for openstack-ansible"
 echo "-----------------------------------------------------------------------"
-cd $XCI_PLAYBOOKS
-ansible-playbook ${XCI_ANSIBLE_VERBOSITY} -i inventory configure-localhost.yml
+cd $OSA_XCI_PLAYBOOKS
+ansible-playbook ${XCI_ANSIBLE_VERBOSITY} -e XCI_PATH="${XCI_PATH}" -i inventory configure-localhost.yml
 echo "-----------------------------------------------------------------------"
 echo "Info: Configured localhost host for openstack-ansible"
 
@@ -53,8 +56,8 @@ echo "Info: Configured localhost host for openstack-ansible"
 #-------------------------------------------------------------------------------
 echo "Info: Configuring opnfv deployment host for openstack-ansible"
 echo "-----------------------------------------------------------------------"
-cd $XCI_PLAYBOOKS
-ansible-playbook ${XCI_ANSIBLE_VERBOSITY} -i ${XCI_FLAVOR_ANSIBLE_FILE_PATH}/inventory \
+cd $OSA_XCI_PLAYBOOKS
+ansible-playbook ${XCI_ANSIBLE_VERBOSITY} -e XCI_PATH="${XCI_PATH}" -i ${XCI_FLAVOR_ANSIBLE_FILE_PATH}/inventory \
     configure-opnfvhost.yml
 echo "-----------------------------------------------------------------------"
 echo "Info: Configured opnfv deployment host for openstack-ansible"
@@ -73,8 +76,8 @@ echo "Info: Configured opnfv deployment host for openstack-ansible"
 if [[ $XCI_FLAVOR != "aio" ]]; then
     echo "Info: Configuring target hosts for openstack-ansible"
     echo "-----------------------------------------------------------------------"
-    cd $XCI_PLAYBOOKS
-    ansible-playbook ${XCI_ANSIBLE_VERBOSITY} -i ${XCI_FLAVOR_ANSIBLE_FILE_PATH}/inventory \
+    cd $OSA_XCI_PLAYBOOKS
+    ansible-playbook ${XCI_ANSIBLE_VERBOSITY} -e XCI_PATH="${XCI_PATH}" -i ${XCI_FLAVOR_ANSIBLE_FILE_PATH}/inventory \
         configure-targethosts.yml
     echo "-----------------------------------------------------------------------"
     echo "Info: Configured target hosts"
similarity index 93%
rename from xci/playbooks/configure-localhost.yml
rename to xci/nfvi/osa/playbooks/configure-localhost.yml
index 279ae16..caa5d67 100644 (file)
@@ -9,13 +9,16 @@
 ##############################################################################
 - hosts: localhost
   connection: local
-  vars_files:
-    - ../var/opnfv.yml
 
   pre_tasks:
     - name: Load distribution variables
       include_vars:
-        file: ../var/{{ ansible_os_family }}.yml
+        file: "{{ item }}"
+      failed_when: false
+      with_items:
+        - "{{ XCI_PATH }}/xci/var/opnfv.yml"
+        - "{{ XCI_PATH }}/xci/var/{{ ansible_os_family }}.yml"
+
     - name: cleanup leftovers of previous deployment
       file:
         path: "{{ item }}"
similarity index 85%
rename from xci/playbooks/configure-opnfvhost.yml
rename to xci/nfvi/osa/playbooks/configure-opnfvhost.yml
index 30831be..656f18e 100644 (file)
 - hosts: opnfv
   remote_user: root
   vars_files:
-    - ../var/opnfv.yml
+    - "{{ XCI_PATH }}/xci/var/opnfv.yml"
+
   pre_tasks:
     - name: Load distribution variables
       include_vars:
         file: "{{ item }}"
       with_items:
-        - ../var/{{ ansible_os_family }}.yml
-        - ../file/{{ XCI_FLAVOR }}/flavor-vars.yml
+        - "{{ XCI_PATH }}/xci/var/{{ ansible_os_family }}.yml"
+        - "{{ XCI_PATH }}/xci/file/{{ XCI_FLAVOR }}/flavor-vars.yml"
     - name: Set facts for remote deployment
       set_fact:
         remote_xci_path: "{{ ansible_env.HOME }}/releng-xci"
@@ -36,7 +37,7 @@
     - name: fetch public key
       fetch:
         src: "{{ ansible_env.HOME }}/.ssh/id_rsa.pub"
-        dest: "../file/authorized_keys"
+        dest: "{{ XCI_PATH }}/xci/file/authorized_keys"
         flat: yes
     - name: Copy releng-xci to remote host
       synchronize:
@@ -55,7 +56,7 @@
       shell: "/bin/cp -rf {{ remote_xci_flavor_files }}/user_variables.yml {{OPENSTACK_OSA_ETC_PATH}}"
       failed_when: false
     - name: copy cinder.yml
-      shell: "/bin/cp -rf {{ remote_xci_path }}/xci/file/cinder.yml {{OPENSTACK_OSA_ETC_PATH}}/env.d"
+      shell: "/bin/cp -rf {{ remote_xci_path }}/xci/nfvi/osa/files/cinder.yml {{OPENSTACK_OSA_ETC_PATH}}/env.d"
     - name: Configure AIO tempest
       lineinfile:
         path: "{{ OPENSTACK_OSA_ETC_PATH }}/user_variables.yml"
         regexp: '(\s+)haproxy_state: disabled'
         replace: '\1haproxy_state: enabled'
     - name: copy OPNFV OpenStack playbook
-      shell: "/bin/cp -rf {{ remote_xci_path }}/xci/file/setup-openstack.yml {{OPENSTACK_OSA_PATH}}/playbooks"
+      shell: "/bin/cp -rf {{ remote_xci_path }}/xci/nfvi/osa/files/setup-openstack.yml {{OPENSTACK_OSA_PATH}}/playbooks"
     - name: copy pinned versions of OSA Roles and global requirements
-      shell: "/bin/cp -rf {{ remote_xci_path }}/xci/file/{{ item }} {{OPENSTACK_OSA_PATH}}/{{ item }}"
+      shell: "/bin/cp -rf {{ remote_xci_path }}/xci/nfvi/osa/files/{{ item }} {{OPENSTACK_OSA_PATH}}/{{ item }}"
       with_items:
         - "ansible-role-requirements.yml"
         - "global-requirement-pins.txt"
       when:
         - OPENSTACK_OSA_VERSION != "master"
     - name: copy pinned versions of OpenStack services
-      shell: "/bin/cp -rf {{ remote_xci_path }}/xci/file/openstack_services.yml {{OPENSTACK_OSA_PATH}}/playbooks/defaults/repo_packages/openstack_services.yml"
+      shell: "/bin/cp -rf {{ remote_xci_path }}/xci/nfvi/osa/files/openstack_services.yml {{OPENSTACK_OSA_PATH}}/playbooks/defaults/repo_packages/openstack_services.yml"
       when:
         - OPENSTACK_OSA_VERSION != "master"
     - include: bootstrap-scenarios.yml
 
 - hosts: localhost
   remote_user: root
-  vars_files:
-    - ../var/opnfv.yml
+
   tasks:
     - name: Append public keys to authorized_keys
-      shell: "/bin/cat {{ ansible_env.HOME }}/.ssh/id_rsa.pub >> ../file/authorized_keys"
+      shell: "/bin/cat {{ ansible_env.HOME }}/.ssh/id_rsa.pub >> {{ XCI_PATH }}/xci/file/authorized_keys"
 
 - hosts: opnfv
   remote_user: root
   vars_files:
-    - ../var/opnfv.yml
+    - "{{ XCI_PATH }}/xci/var/opnfv.yml"
+
   pre_tasks:
     - name: Load distribution variables
       include_vars:
         file: "{{ item }}"
       failed_when: false
       with_items:
-        - ../var/opnfv.yml
-        - ../var/{{ ansible_os_family }}.yml
-        - ../file/{{ XCI_FLAVOR }}/flavor-vars.yml
-        - ../file/{{ XCI_FLAVOR }}/user_variables.yml
+        - "{{ XCI_PATH }}/xci/var/{{ ansible_os_family }}.yml"
+        - "{{ XCI_PATH }}/xci/file/{{ XCI_FLAVOR }}/flavor-vars.yml"
+        - "{{ XCI_PATH }}/xci/file/{{ XCI_FLAVOR }}/user_variables.yml"
   roles:
     - role: "openstack-ansible-openstack_openrc"
 
similarity index 69%
rename from xci/playbooks/configure-targethosts.yml
rename to xci/nfvi/osa/playbooks/configure-targethosts.yml
index d136f43..14a9149 100644 (file)
@@ -4,21 +4,21 @@
   tasks:
     - name: add public key to host
       copy:
-        src: ../file/authorized_keys
+        src: "{{ XCI_PATH }}/xci/file/authorized_keys"
         dest: /root/.ssh/authorized_keys
 
 - hosts: controller
   remote_user: root
   vars_files:
-    - ../var/opnfv.yml
+    - "{{ XCI_PATH }}/xci/var/opnfv.yml"
 
   pre_tasks:
     - name: Load distribution variables
       include_vars:
         file: "{{ item }}"
       with_items:
-        - ../var/{{ ansible_os_family }}.yml
-        - ../file/{{ XCI_FLAVOR }}/flavor-vars.yml
+        - "{{ XCI_PATH }}/xci/var/{{ ansible_os_family }}.yml"
+        - "{{ XCI_PATH }}/xci/file/{{ XCI_FLAVOR }}/flavor-vars.yml"
   roles:
     - role: configure-network
     # we need to force sync time with ntp or the nodes will be out of sync timewise
 - hosts: compute
   remote_user: root
   vars_files:
-    - ../var/opnfv.yml
+    - "{{ XCI_PATH }}/xci/var/opnfv.yml"
 
   pre_tasks:
     - name: Load distribution variables
       include_vars:
         file: "{{ item }}"
       with_items:
-        - ../var/opnfv.yml
-        - ../var/{{ ansible_os_family }}.yml
-        - ../file/{{ XCI_FLAVOR }}/flavor-vars.yml
+        - "{{ XCI_PATH }}/xci/var/{{ ansible_os_family }}.yml"
+        - "{{ XCI_PATH }}/xci/file/{{ XCI_FLAVOR }}/flavor-vars.yml"
   roles:
     - role: configure-network
     # we need to force sync time with ntp or the nodes will be out of sync timewise
diff --git a/xci/nfvi/osa/playbooks/xci-deploy.sh b/xci/nfvi/osa/playbooks/xci-deploy.sh
new file mode 100755 (executable)
index 0000000..89fb455
--- /dev/null
@@ -0,0 +1,183 @@
+#!/bin/bash
+set -o errexit
+set -o nounset
+set -o pipefail
+
+submit_bug_report() {
+    cd ${XCI_PATH}
+    echo ""
+    echo "-------------------------------------------------------------------------"
+    echo "Oh nooooo! The XCI deployment failed miserably :-("
+    echo ""
+    echo "If you need help, please choose one of the following options"
+    echo "* #opnfv-pharos @ freenode network"
+    echo "* opnfv-tech-discuss mailing list (https://lists.opnfv.org/mailman/listinfo/opnfv-tech-discuss)"
+    echo "  - Please prefix the subject with [XCI]"
+    echo "* https://jira.opnfv.org (Release Engineering project)"
+    echo ""
+    echo "Do not forget to submit the following information on your bug report:"
+    echo ""
+    git diff --quiet && echo "releng-xci tree status: clean" || echo "releng-xci tree status: local modifications"
+    echo "opnfv/releng-xci version: $(git rev-parse HEAD)"
+    echo "openstack/bifrost version: $OPENSTACK_BIFROST_VERSION"
+    echo "openstack/openstack-ansible version: $OPENSTACK_OSA_VERSION"
+    echo "xci flavor: $XCI_FLAVOR"
+    echo "xci nfvi: $XCI_NFVI"
+    echo "Environment variables:"
+    env | grep --color=never '\(OPNFV\|XCI\|OPENSTACK\)'
+    echo "-------------------------------------------------------------------------"
+}
+
+#-------------------------------------------------------------------------------
+# This script should not be run as root
+#-------------------------------------------------------------------------------
+if [[ $(whoami) == "root" ]]; then
+    echo "WARNING: This script should not be run as root!"
+    echo "Elevated privileges are aquired automatically when necessary"
+    echo "Waiting 10s to give you a chance to stop the script (Ctrl-C)"
+    for x in $(seq 10 -1 1); do echo -n "$x..."; sleep 1; done
+fi
+
+#-------------------------------------------------------------------------------
+# Set environment variables
+#-------------------------------------------------------------------------------
+# The order of sourcing the variable files is significant so please do not
+# change it or things might stop working.
+# - user-vars: variables that can be configured or overriden by user.
+# - pinned-versions: versions to checkout. These can be overriden if you want to
+#   use different/more recent versions of the tools but you might end up using
+#   something that is not verified by OPNFV XCI.
+# - flavor-vars: settings for VM nodes for the chosen flavor.
+# - env-vars: variables for the xci itself and you should not need to change or
+#   override any of them.
+#-------------------------------------------------------------------------------
+# find where are we
+export XCI_PATH="$(git rev-parse --show-toplevel)"
+# source user vars
+source $XCI_PATH/xci/config/user-vars
+# source pinned versions
+source $XCI_PATH/xci/config/pinned-versions
+# source flavor configuration
+source "$XCI_PATH/xci/config/${XCI_FLAVOR}-vars"
+# source NFVI configuration
+source "$XCI_PATH/xci/nfvi/${XCI_NFVI}/env" &>/dev/null || true
+# source xci configuration
+source $XCI_PATH/xci/config/env-vars
+
+if [[ -z $(echo $PATH | grep "$HOME/.local/bin")  ]]; then
+    export PATH="$HOME/.local/bin:$PATH"
+fi
+
+#-------------------------------------------------------------------------------
+# Sanitize local development environment variables
+#-------------------------------------------------------------------------------
+user_local_dev_vars=(OPENSTACK_OSA_DEV_PATH OPENSTACK_BIFROST_DEV_PATH)
+for local_user_var in ${user_local_dev_vars[@]}; do
+    [[ -n ${!local_user_var:-} ]] && export $local_user_var=${!local_user_var%/}/
+done
+unset user_local_dev_vars local_user_var
+
+# register our handler
+trap submit_bug_report ERR
+
+#-------------------------------------------------------------------------------
+# Log info to console
+#-------------------------------------------------------------------------------
+echo "Info: Starting XCI Deployment"
+echo "Info: Deployment parameters"
+echo "-------------------------------------------------------------------------"
+echo "xci flavor: $XCI_FLAVOR"
+echo "xci nfvi: $XCI_NFVI"
+echo "opnfv/releng-xci version: $(git rev-parse HEAD)"
+echo "openstack/bifrost version: $OPENSTACK_BIFROST_VERSION"
+echo "openstack/openstack-ansible version: $OPENSTACK_OSA_VERSION"
+echo "OPNFV scenario: $DEPLOY_SCENARIO"
+echo "-------------------------------------------------------------------------"
+
+#-------------------------------------------------------------------------------
+# Install ansible on localhost
+#-------------------------------------------------------------------------------
+echo "Info: Installing Ansible from pip"
+echo "-------------------------------------------------------------------------"
+source file/install-ansible.sh
+echo "-------------------------------------------------------------------------"
+
+# Make the VMs match the host. If we need to make this configurable
+# then this logic has to be moved outside this file
+case ${OS_FAMILY,,} in
+    # These should ideally match the CI jobs
+    debian)
+        export DIB_OS_RELEASE="${DIB_OS_RELEASE:-xenial}"
+        export DIB_OS_ELEMENT="${DIB_OS_ELEMENT:-ubuntu-minimal}"
+        export DIB_OS_PACKAGES="${DIB_OS_PACKAGES:-vlan,vim,less,bridge-utils,language-pack-en,iputils-ping,rsyslog,curl,iptables}"
+        ;;
+    redhat)
+        export DIB_OS_RELEASE="${DIB_OS_RELEASE:-7}"
+        export DIB_OS_ELEMENT="${DIB_OS_ELEMENT:-centos-minimal}"
+        export DIB_OS_PACKAGES="${DIB_OS_PACKAGES:-vim,less,bridge-utils,iputils,rsyslog,curl,iptables}"
+        ;;
+    suse)
+        export DIB_OS_RELEASE="${DIB_OS_RELEASE:-42.3}"
+        export DIB_OS_ELEMENT="${DIB_OS_ELEMENT:-opensuse-minimal}"
+        export DIB_OS_PACKAGES="${DIB_OS_PACKAGES:-vim,less,bridge-utils,iputils,rsyslog,curl,iptables}"
+        ;;
+esac
+
+# There is no CentOS support at all
+if [[ $OS_FAMILY == RedHat ]]; then
+    echo ""
+    echo "Error: Sorry, only Ubuntu and SUSE hosts are supported for now!"
+    echo "Error: CentOS 7 support is still work in progress."
+    echo ""
+    exit 1
+fi
+
+# Clone OPNFV scenario repositories
+#-------------------------------------------------------------------------------
+# This playbook
+# - removes existing scenario roles
+# - clones OPNFV scenario roles based on the file/opnfv-scenario-requirements.yml file
+#-------------------------------------------------------------------------------
+echo "Info: Cloning OPNFV scenario repositories"
+echo "-------------------------------------------------------------------------"
+cd $XCI_PATH/xci/playbooks
+ansible-playbook ${XCI_ANSIBLE_VERBOSITY} -i inventory get-opnfv-scenario-requirements.yml
+echo "-------------------------------------------------------------------------"
+
+#-------------------------------------------------------------------------------
+# Get scenario variables overrides
+#-------------------------------------------------------------------------------
+if [[ -f $XCI_SCENARIOS_CACHE/${DEPLOY_SCENARIO:-_no_scenario_}/xci_overrides ]]; then
+    source $XCI_SCENARIOS_CACHE/$DEPLOY_SCENARIO/xci_overrides
+fi
+
+#-------------------------------------------------------------------------------
+# Start provisioning VM nodes
+#-------------------------------------------------------------------------------
+# This playbook
+# - removes directories that were created by the previous xci run
+# - clones opnfv/releng-xci and openstack/bifrost repositories
+# - combines opnfv/releng-xci and openstack/bifrost scripts/playbooks
+# - destroys VMs, removes ironic db, leases, logs
+# - creates and provisions VMs for the chosen flavor
+#-------------------------------------------------------------------------------
+echo "Info: Starting provisining VM nodes using openstack/bifrost"
+echo "-------------------------------------------------------------------------"
+# We are using sudo so we need to make sure that env_reset is not present
+sudo sed -i "s/^Defaults.*env_reset/#&/" /etc/sudoers
+cd $XCI_PATH/bifrost/
+sudo -E bash ./scripts/destroy-env.sh
+cd $XCI_PLAYBOOKS
+ansible-playbook ${XCI_ANSIBLE_VERBOSITY} -i inventory provision-vm-nodes.yml
+cd ${XCI_CACHE}/repos/bifrost
+bash ./scripts/bifrost-provision.sh
+echo "-----------------------------------------------------------------------"
+echo "Info: VM nodes are provisioned!"
+echo "-----------------------------------------------------------------------"
+
+# Deploy OpenStack on the selected NFVI
+echo "Info: Deploying '${XCI_NFVI}' NFVI"
+echo "-----------------------------------------------------------------------"
+source ${XCI_PATH}/xci/nfvi/${XCI_NFVI}/nfvi-deploy.sh
+
+# vim: set ts=4 sw=4 expandtab:
index 52e21ca..678ad03 100755 (executable)
@@ -66,8 +66,8 @@ echo """---
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 # these versions are based on the osa commit ${1} on $(git --no-pager log -1 --format=%cd --date=format:%Y-%m-%d $1)
-# https://review.openstack.org/gitweb?p=openstack/openstack-ansible.git;a=commit;h=$1""" > $releng_xci_base/file/ansible-role-requirements.yml
-cat $tempdir/openstack-ansible/ansible-role-requirements.yml >> $releng_xci_base/file/ansible-role-requirements.yml
+# https://review.openstack.org/gitweb?p=openstack/openstack-ansible.git;a=commit;h=$1""" > $releng_xci_base/nfvi/osa/files/ansible-role-requirements.yml
+cat $tempdir/openstack-ansible/ansible-role-requirements.yml >> $releng_xci_base/nfvi/osa/files/ansible-role-requirements.yml
 
 # Update the pinned OSA version
 sed -i -e "/^export OPENSTACK_OSA_VERSION/s@:-\"[a-z0-9]*@:-\"${1}@" \
@@ -78,8 +78,8 @@ sed -i -e "/^export OPENSTACK_OSA_VERSION/s@:-\"[a-z0-9]*@:-\"${1}@" \
     sed -i -e "/^export OPENSTACK_BIFROST_VERSION/s@:-\"[a-z0-9]*@:-\"${2}@" \
     -e "s/\(^# HEAD of bifrost.*of \).*/\1$(date +%d\.%m\.%Y)/" $releng_xci_base/config/pinned-versions
 
-cp $tempdir/openstack-ansible/playbooks/defaults/repo_packages/openstack_services.yml ${releng_xci_base}/file/.
-cp $tempdir/openstack-ansible/global-requirement-pins.txt ${releng_xci_base}/file/.
+cp $tempdir/openstack-ansible/playbooks/defaults/repo_packages/openstack_services.yml ${releng_xci_base}/nfvi/osa/files/.
+cp $tempdir/openstack-ansible/global-requirement-pins.txt ${releng_xci_base}/nfvi/osa/files/.
 
 popd &> /dev/null
 
@@ -87,9 +87,9 @@ printme ""
 printme "======================= Report ============================"
 printme ""
 printme "The following files have been updated:"
-printme "- $releng_xci_base/file/ansible-role-requirements.yml"
-printme "- $releng_xci_base/file/global-requirement-pins.txt"
-printme "- $releng_xci_base/file/openstack_services.yml"
+printme "- $releng_xci_base/nfvi/osa/files/ansible-role-requirements.yml"
+printme "- $releng_xci_base/nfvi/osa/files/global-requirement-pins.txt"
+printme "- $releng_xci_base/nfvi/osa/files/openstack_services.yml"
 printme "- $releng_xci_base/config/pinned-versions"
 printme "Please make sure you test the end result before committing it!"
 printme ""