X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fbash%2Ffunction%2Fansible.sh;h=64508bda111d1646626b9dde467b1a8bb887da93;hp=f522faa93b31f01be6155bffced722ce4b5e5eac;hb=39957a024d1fff87403aacc34aaaa5a922b6639f;hpb=221e2f4da7cb27954525d973d930cb8db4601c8f diff --git a/resources/libraries/bash/function/ansible.sh b/resources/libraries/bash/function/ansible.sh index f522faa93b..64508bda11 100644 --- a/resources/libraries/bash/function/ansible.sh +++ b/resources/libraries/bash/function/ansible.sh @@ -22,10 +22,20 @@ function ansible_adhoc () { # # Variable read: # - ${WORKING_TOPOLOGY} - Reserved working topology. - # - ${TOOLS_DIR} - CSIT tools directory, where testbed-setup is located. + # - ${CSIT_DIR} - CSIT main directory, where ansible playbooks are located. + # - ${FLAVOR} - Node flavor string, see common.sh set -exuo pipefail + case "$FLAVOR" in + "aws") + INVENTORY_PATH="cloud_inventory" + ;; + *) + INVENTORY_PATH="lf_inventory" + ;; + esac + if ! installed sshpass; then die "Please install sshpass!" fi @@ -33,14 +43,14 @@ function ansible_adhoc () { hosts=($(fgrep host "${WORKING_TOPOLOGY}" | cut -d ":" -f 2)) || { die "Failed to read hosts from working topology!" } - pushd "${TOOLS_DIR}"/testbed-setup/ansible || die "Pushd failed!" + pushd "${CSIT_DIR}"/fdio.infra.ansible || die "Pushd failed!" export ANSIBLE_HOST_KEY_CHECKING=False export ANSIBLE_STDOUT_CALLBACK=yaml export ANSIBLE_PIPELINING=true ansible-playbook \ --vault-password-file=vault_pass \ --extra-vars '@vault.yml' \ - --inventory inventories/lf_inventory/hosts site.yaml \ + --inventory inventories/$INVENTORY_PATH/hosts site.yaml \ --limit "$(echo ${hosts[@]//\"})" \ --module-name shell \ --args \"$(echo $@)\" || die "Failed to run ansible on host!" @@ -54,10 +64,20 @@ function ansible_playbook () { # # Variable read: # - ${WORKING_TOPOLOGY} - Reserved working topology. - # - ${TOOLS_DIR} - CSIT tools directory, where testbed-setup is located. + # - ${CSIT_DIR} - CSIT main directory, where ansible playbooks are located. + # - ${FLAVOR} - Node flavor string, see common.sh set -exuo pipefail + case "$FLAVOR" in + "aws") + INVENTORY_PATH="cloud_inventory" + ;; + *) + INVENTORY_PATH="lf_inventory" + ;; + esac + if ! installed sshpass; then die "Please install sshpass!" fi @@ -65,14 +85,14 @@ function ansible_playbook () { hosts=($(fgrep host "${WORKING_TOPOLOGY}" | cut -d ":" -f 2)) || { die "Failed to read hosts from working topology!" } - pushd "${TOOLS_DIR}"/testbed-setup/ansible || die "Pushd failed!" + pushd "${CSIT_DIR}"/fdio.infra.ansible || die "Pushd failed!" export ANSIBLE_HOST_KEY_CHECKING=False export ANSIBLE_STDOUT_CALLBACK=yaml export ANSIBLE_PIPELINING=true ansible-playbook \ --vault-password-file=vault_pass \ --extra-vars '@vault.yml' \ - --inventory inventories/lf_inventory/hosts site.yaml \ + --inventory inventories/$INVENTORY_PATH/hosts site.yaml \ --limit "$(echo ${hosts[@]//\"})" \ --tags "$(echo $@)" || die "Failed to run ansible on host!" popd || die "Popd failed!"