diff options
author | Tomas Alexy <tomas.alexy@pantheon.tech> | 2021-04-08 15:50:24 +0200 |
---|---|---|
committer | Peter Mikus <pmikus@cisco.com> | 2021-04-12 05:49:55 +0000 |
commit | 647a693a245ae450756fb3bd9446db856e712812 (patch) | |
tree | 128aa75cf1d9f69c03fbe198071465aa15636b16 | |
parent | ae5cd8ce30c435a83868ff7e13d88d41594c227c (diff) |
Infra: AWS bootstrap integration
Signed-off-by: Tomas Alexy <tomas.alexy@pantheon.tech>
Change-Id: I254c79201a198ee054851c934167a24e9e8803cb
-rw-r--r-- | fdio.infra.ansible/roles/topology/tasks/main.yaml | 18 | ||||
-rw-r--r-- | fdio.infra.ansible/roles/topology/templates/hosts.j2 | 9 | ||||
-rw-r--r-- | resources/libraries/bash/function/ansible.sh | 24 | ||||
-rw-r--r-- | resources/libraries/bash/function/common.sh | 24 |
4 files changed, 70 insertions, 5 deletions
diff --git a/fdio.infra.ansible/roles/topology/tasks/main.yaml b/fdio.infra.ansible/roles/topology/tasks/main.yaml index cf3eb5367f..a70107478e 100644 --- a/fdio.infra.ansible/roles/topology/tasks/main.yaml +++ b/fdio.infra.ansible/roles/topology/tasks/main.yaml @@ -1,9 +1,23 @@ --- # file: roles/topology/tasks/main.yaml -- name: Create topology file +- name: Create Topology File template: src: "templates/topology_{{ cloud_topology }}.j2" - dest: "../../../../topologies/available/{{ cloud_topology }}_{{ testbed_name }}.yaml" + dest: "../topologies/available/{{ cloud_topology }}_{{ testbed_name }}.yaml" tags: - create-topology-file + +- name: Create Inventory Folder + file: + path: "./inventories/cloud_inventory/" + state: directory + tags: + - create-inventory-folder-cloud + +- name: Create Hosts File + template: + src: "templates/hosts.j2" + dest: "./inventories/cloud_inventory/hosts" + tags: + - create-hosts-file-cloud diff --git a/fdio.infra.ansible/roles/topology/templates/hosts.j2 b/fdio.infra.ansible/roles/topology/templates/hosts.j2 new file mode 100644 index 0000000000..12a992dfec --- /dev/null +++ b/fdio.infra.ansible/roles/topology/templates/hosts.j2 @@ -0,0 +1,9 @@ +all: + children: + tg: + hosts: + {{ tg_public_ip }} + sut: + hosts: + {{ dut1_public_ip }} + {{ dut2_public_ip | default() }} diff --git a/resources/libraries/bash/function/ansible.sh b/resources/libraries/bash/function/ansible.sh index 3beca3fba4..64508bda11 100644 --- a/resources/libraries/bash/function/ansible.sh +++ b/resources/libraries/bash/function/ansible.sh @@ -23,9 +23,19 @@ function ansible_adhoc () { # Variable read: # - ${WORKING_TOPOLOGY} - Reserved working topology. # - ${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 @@ -40,7 +50,7 @@ function ansible_adhoc () { 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!" @@ -55,9 +65,19 @@ function ansible_playbook () { # Variable read: # - ${WORKING_TOPOLOGY} - Reserved working topology. # - ${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 @@ -72,7 +92,7 @@ function ansible_playbook () { 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!" diff --git a/resources/libraries/bash/function/common.sh b/resources/libraries/bash/function/common.sh index a3878015f9..f5f86067ad 100644 --- a/resources/libraries/bash/function/common.sh +++ b/resources/libraries/bash/function/common.sh @@ -441,6 +441,14 @@ function get_test_code () { NODENESS="1n" FLAVOR="tx2" ;; + *"2n-aws"*) + NODENESS="2n" + FLAVOR="aws" + ;; + *"3n-aws"*) + NODENESS="3n" + FLAVOR="aws" + ;; *"2n-skx"*) NODENESS="2n" FLAVOR="skx" @@ -641,7 +649,7 @@ function reserve_and_cleanup_testbed () { } die "Trap attempt failed, unreserve succeeded. Aborting." } - # Cleanup + calibration checks. + # Cleanup + calibration checks set +e ansible_playbook "cleanup, calibration" result="$?" @@ -803,6 +811,9 @@ function select_tags () { *"3n-hsw"* | *"2n-tx2"* | *"mrr-daily-master") default_nic="nic_intel-xl710" ;; + *"2n-aws"* | *"3n-aws"*) + default_nic="nic_amazon-nitro-50g" + ;; *) default_nic="nic_intel-x710" ;; @@ -930,6 +941,9 @@ function select_tags () { # which we do not want to even run. test_tag_array+=("!ipsechwNOTnic_intel-xl710") ;; + *"2n-aws"* | *"3n-aws"*) + test_tag_array+=("!ipsechw") + ;; *) # Default to 3n-hsw due to compatibility. test_tag_array+=("!drv_avf") @@ -1043,6 +1057,14 @@ function select_topology () { TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_tx2*.yaml ) TOPOLOGIES_TAGS="2_node_single_link_topo" ;; + "2n_aws") + TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_aws*.yaml ) + TOPOLOGIES_TAGS="2_node_*_link_topo" + ;; + "3n_aws") + TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_aws*.yaml ) + TOPOLOGIES_TAGS="2_node_*_link_topo" + ;; *) # No falling back to 3n_hsw default, that should have been done # by the function which has set NODENESS and FLAVOR. |