aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools/testbed-setup/ansible
diff options
context:
space:
mode:
authorMaros Mullner <mamullne@cisco.com>2020-02-13 10:57:02 +0100
committerPeter Mikus <pmikus@cisco.com>2020-02-17 08:06:13 +0000
commit6bc0123c235171918a6193b1551ed4d4d82c2fec (patch)
treef21b0f8fa6d3ab765bb7c9acc7b549e1e64acc71 /resources/tools/testbed-setup/ansible
parent997a634a6658d3d07ff84fc54e156ebd805fec74 (diff)
AWS terraform automation scripts
Change-Id: I050fe466dd006d330d1bb29cc6ccba8ae4681f01 Signed-off-by: Maros Mullner <maros.mullner@pantheon.tech>
Diffstat (limited to 'resources/tools/testbed-setup/ansible')
-rw-r--r--resources/tools/testbed-setup/ansible/cloud_topology.yaml9
-rw-r--r--resources/tools/testbed-setup/ansible/roles/aws/defaults/main.yaml3
-rw-r--r--resources/tools/testbed-setup/ansible/roles/aws/handlers/main.yaml8
-rw-r--r--resources/tools/testbed-setup/ansible/roles/aws/tasks/main.yaml24
-rw-r--r--resources/tools/testbed-setup/ansible/roles/iperf/tasks/main.yaml2
-rw-r--r--resources/tools/testbed-setup/ansible/roles/topology/tasks/main.yaml9
-rw-r--r--resources/tools/testbed-setup/ansible/roles/user_add/defaults/main.yaml5
-rw-r--r--resources/tools/testbed-setup/ansible/roles/user_add/handlers/main.yaml10
-rw-r--r--resources/tools/testbed-setup/ansible/roles/user_add/tasks/main.yaml31
-rw-r--r--resources/tools/testbed-setup/ansible/site_aws.yaml8
-rw-r--r--resources/tools/testbed-setup/ansible/sut_aws.yaml23
-rw-r--r--resources/tools/testbed-setup/ansible/sut_azure.yaml3
-rw-r--r--resources/tools/testbed-setup/ansible/templates/topology_aws.j283
-rw-r--r--resources/tools/testbed-setup/ansible/templates/topology_azure.j26
-rw-r--r--resources/tools/testbed-setup/ansible/tg_aws.yaml27
-rw-r--r--resources/tools/testbed-setup/ansible/tg_azure.yaml3
16 files changed, 248 insertions, 6 deletions
diff --git a/resources/tools/testbed-setup/ansible/cloud_topology.yaml b/resources/tools/testbed-setup/ansible/cloud_topology.yaml
new file mode 100644
index 0000000000..083a3bd368
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/cloud_topology.yaml
@@ -0,0 +1,9 @@
+---
+# file: cloud_topology.yaml
+
+- hosts: localhost
+ gather_facts: false
+ roles:
+ - role: topology
+ tags: topology
+
diff --git a/resources/tools/testbed-setup/ansible/roles/aws/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/aws/defaults/main.yaml
new file mode 100644
index 0000000000..706e552f96
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/aws/defaults/main.yaml
@@ -0,0 +1,3 @@
+---
+# file: roles/aws/defaults/main.yaml
+
diff --git a/resources/tools/testbed-setup/ansible/roles/aws/handlers/main.yaml b/resources/tools/testbed-setup/ansible/roles/aws/handlers/main.yaml
new file mode 100644
index 0000000000..b155b4b246
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/aws/handlers/main.yaml
@@ -0,0 +1,8 @@
+---
+# file: roles/aws/handlers/main.yaml
+
+- name: Reboot server
+ reboot:
+ reboot_timeout: 3600
+ tags:
+ - reboot-server
diff --git a/resources/tools/testbed-setup/ansible/roles/aws/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/aws/tasks/main.yaml
new file mode 100644
index 0000000000..94dcff4ef3
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/aws/tasks/main.yaml
@@ -0,0 +1,24 @@
+---
+# file: roles/aws/tasks/main.yaml
+
+- name: AWS - Load Kernel Modules By Default
+ lineinfile:
+ path: "/etc/modules"
+ state: "present"
+ line: "{{ item }}"
+ with_items:
+ - "vfio-pci"
+ tags:
+ - load-kernel-modules
+
+- name: Performance Tuning - Adjust nr_hugepages
+ # change the minimum size of the hugepage pool.
+ # 2G VPP, 4GB per VNF/CNF, 2G reserve
+ sysctl:
+ name: "vm.nr_hugepages"
+ value: "8192"
+ state: "present"
+ sysctl_file: "/etc/sysctl.d/90-csit.conf"
+ reload: "yes"
+ tags:
+ - set-sysctl
diff --git a/resources/tools/testbed-setup/ansible/roles/iperf/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/iperf/tasks/main.yaml
index e43206bf8d..e77fdbcae3 100644
--- a/resources/tools/testbed-setup/ansible/roles/iperf/tasks/main.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/iperf/tasks/main.yaml
@@ -29,7 +29,7 @@
remote_src: true
src: "{{ iperf_target_dir }}/iperf-{{ iperf_version }}.tar.gz"
dest: "{{ iperf_target_dir }}/"
- creates: "{{ iperf_target_dir }}/iperf-{{ iperf_version }}/"
+ creates: "{{ iperf_target_dir }}/iperf-{{ iperf_version }}/src"
tags:
- install-iperf
diff --git a/resources/tools/testbed-setup/ansible/roles/topology/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/topology/tasks/main.yaml
new file mode 100644
index 0000000000..a2e67f4153
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/topology/tasks/main.yaml
@@ -0,0 +1,9 @@
+---
+# file: roles/topology/tasks/main.yaml
+
+- name: Create topology file
+ template:
+ src: 'templates/topology_{{ cloud_topology }}.j2'
+ dest: '../../../../topologies/available/{{ cloud_topology }}_3n_skx_testbed.yaml'
+ tags:
+ - create-topology-file
diff --git a/resources/tools/testbed-setup/ansible/roles/user_add/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/user_add/defaults/main.yaml
new file mode 100644
index 0000000000..9e5aaf272c
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/user_add/defaults/main.yaml
@@ -0,0 +1,5 @@
+---
+# file: roles/user_add/defaults/main.yaml
+
+user_pass: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
+
diff --git a/resources/tools/testbed-setup/ansible/roles/user_add/handlers/main.yaml b/resources/tools/testbed-setup/ansible/roles/user_add/handlers/main.yaml
new file mode 100644
index 0000000000..e6b7d82844
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/user_add/handlers/main.yaml
@@ -0,0 +1,10 @@
+---
+# file: roles/user_add/handlers/main.yaml
+
+- name: Restart sshd
+ service:
+ name: sshd
+ state: restarted
+ tags:
+ - restart-sshd
+
diff --git a/resources/tools/testbed-setup/ansible/roles/user_add/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/user_add/tasks/main.yaml
new file mode 100644
index 0000000000..2672996202
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/user_add/tasks/main.yaml
@@ -0,0 +1,31 @@
+---
+# file: roles/user_add/tasks/main.yaml
+
+- name: Add testuser account
+ user:
+ name: "testuser"
+ state: present
+ shell: "/bin/bash"
+ password: "{{ user_pass }}"
+ tags:
+ - add-user
+
+- name: Allow password login
+ lineinfile:
+ dest: "/etc/ssh/sshd_config"
+ regexp: "^PasswordAuthentication no"
+ line: "PasswordAuthentication yes"
+ notify:
+ - "Restart sshd"
+ tags:
+ - allow-password-login
+
+- name: Add visudo entry
+ lineinfile:
+ dest: "/etc/sudoers"
+ state: present
+ line: "testuser ALL=(ALL) NOPASSWD: ALL"
+ validate: "visudo -cf %s"
+ tags:
+ - allow-sudo
+
diff --git a/resources/tools/testbed-setup/ansible/site_aws.yaml b/resources/tools/testbed-setup/ansible/site_aws.yaml
new file mode 100644
index 0000000000..4e23a97f85
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/site_aws.yaml
@@ -0,0 +1,8 @@
+---
+# file: site_aws.yaml
+
+- import_playbook: tg_aws.yaml
+ tags: tg
+
+- import_playbook: sut_aws.yaml
+ tags: sut
diff --git a/resources/tools/testbed-setup/ansible/sut_aws.yaml b/resources/tools/testbed-setup/ansible/sut_aws.yaml
new file mode 100644
index 0000000000..4c71e290f3
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/sut_aws.yaml
@@ -0,0 +1,23 @@
+---
+# file: sut_aws.yaml
+
+- hosts: sut
+ become: yes
+ become_user: root
+ roles:
+ - role: user_add
+ tags: user_add
+ - role: common
+ tags: common
+ - role: aws
+ tags: aws
+ - role: iperf
+ tags: iperf
+ - role: docker
+ tags: docker
+ - role: dpdk
+ tags: dpdk
+ - role: cleanup
+ tags: cleanup
+ - role: calibration
+ tags: calibration
diff --git a/resources/tools/testbed-setup/ansible/sut_azure.yaml b/resources/tools/testbed-setup/ansible/sut_azure.yaml
index be45810a60..4fd897d03a 100644
--- a/resources/tools/testbed-setup/ansible/sut_azure.yaml
+++ b/resources/tools/testbed-setup/ansible/sut_azure.yaml
@@ -2,10 +2,11 @@
# file: sut_azure.yaml
- hosts: sut
- remote_user: testuser
become: yes
become_user: root
roles:
+ - role: user_add
+ tags: user_add
- role: common
tags: common
- role: azure
diff --git a/resources/tools/testbed-setup/ansible/templates/topology_aws.j2 b/resources/tools/testbed-setup/ansible/templates/topology_aws.j2
new file mode 100644
index 0000000000..631b0be63b
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/templates/topology_aws.j2
@@ -0,0 +1,83 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "{{ tg_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 50GE port1 on ENA NIC.
+ mac_address: {{ tg_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-50G
+ port2:
+ # tg_instance/p2 - 50GE port2 on ENA NIC.
+ mac_address: {{ tg_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-50G
+ DUT1:
+ type: DUT
+ host: "{{ dut1_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ honeycomb:
+ user: admin
+ passwd: admin
+ port: 8183
+ netconf_port: 2831
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 50GE port1 on ENA NIC.
+ mac_address: {{ dut1_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-50G
+ port2:
+ # dut1_instance/p2 - 50GE port2 on ENA NIC.
+ mac_address: {{ dut1_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link21
+ model: Amazon-Nitro-50G
+ DUT2:
+ type: DUT
+ host: "{{ dut2_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ honeycomb:
+ user: admin
+ passwd: admin
+ port: 8183
+ netconf_port: 2831
+ interfaces:
+ port1:
+ # dut2_instance/p1 - 50GE port1 on ENA NIC.
+ mac_address: {{ dut2_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link21
+ model: Amazon-Nitro-50G
+ port2:
+ # dut2_instance/p2 - 50GE port1 on ENA NIC.
+ mac_address: {{ dut2_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-50G
+
diff --git a/resources/tools/testbed-setup/ansible/templates/topology_azure.j2 b/resources/tools/testbed-setup/ansible/templates/topology_azure.j2
index ef8b22eab1..ae0ae5295b 100644
--- a/resources/tools/testbed-setup/ansible/templates/topology_azure.j2
+++ b/resources/tools/testbed-setup/ansible/templates/topology_azure.j2
@@ -10,7 +10,7 @@ nodes:
TG:
type: TG
subtype: TREX
- host: "{{ ansible_default_ipv4.address }}"
+ host: "{{ tg_public_ip }}"
arch: x86_64
port: 22
username: testuser
@@ -30,7 +30,7 @@ nodes:
model: azure-mlx-40g
DUT1:
type: DUT
- host: "{{ ansible_default_ipv4.address }}"
+ host: "{{ dut1_public_ip }}"
arch: x86_64
port: 22
username: testuser
@@ -56,7 +56,7 @@ nodes:
model: azure-mlx-40g
DUT2:
type: DUT
- host: "{{ ansible_default_ipv4.address }}"
+ host: "{{ dut2_public_ip }}"
arch: x86_64
port: 22
username: testuser
diff --git a/resources/tools/testbed-setup/ansible/tg_aws.yaml b/resources/tools/testbed-setup/ansible/tg_aws.yaml
new file mode 100644
index 0000000000..4b5299f255
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/tg_aws.yaml
@@ -0,0 +1,27 @@
+---
+# file: tg_aws.yaml
+
+- hosts: tg
+ become: yes
+ become_user: root
+ roles:
+ - role: user_add
+ tags: user_add
+ - role: common
+ tags: common
+ - role: aws
+ tags: aws
+ - role: tg
+ tags: tg
+ - role: iperf
+ tags: iperf
+ - role: trex
+ tags: trex
+ - role: wrk
+ tags: wrk
+ - role: docker
+ tags: docker
+ - role: cleanup
+ tags: cleanup
+ - role: calibration
+ tags: calibration
diff --git a/resources/tools/testbed-setup/ansible/tg_azure.yaml b/resources/tools/testbed-setup/ansible/tg_azure.yaml
index 4ab2295296..e28d0d3336 100644
--- a/resources/tools/testbed-setup/ansible/tg_azure.yaml
+++ b/resources/tools/testbed-setup/ansible/tg_azure.yaml
@@ -2,10 +2,11 @@
# file: tg_azure.yaml
- hosts: tg
- remote_user: testuser
become: yes
become_user: root
roles:
+ - role: user_add
+ tags: user_add
- role: common
tags: common
- role: azure