Ansible: LTS support 51/25551/5
authorPeter Mikus <pmikus@cisco.com>
Fri, 28 Feb 2020 15:26:06 +0000 (15:26 +0000)
committerPeter Mikus <pmikus@cisco.com>
Tue, 10 Mar 2020 11:11:31 +0000 (11:11 +0000)
- There is currently no other way to support multiple version of
playbooks.

Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: I2ade4a57d726b793e422996e83bf767ac4315488

15 files changed:
resources/libraries/python/Constants.py
resources/tools/testbed-setup/ansible/roles/calibration/tasks/main.yaml
resources/tools/testbed-setup/ansible/roles/dpdk/defaults/main.yaml
resources/tools/testbed-setup/ansible/roles/dpdk/tasks/main.yaml
resources/tools/testbed-setup/ansible/roles/iperf/defaults/main.yaml
resources/tools/testbed-setup/ansible/roles/iperf/tasks/main.yaml
resources/tools/testbed-setup/ansible/roles/trex/defaults/main.yaml
resources/tools/testbed-setup/ansible/roles/trex/tasks/main.yaml
resources/tools/testbed-setup/ansible/roles/vpp/defaults/main.yaml [moved from resources/tools/testbed-setup/ansible/roles/sut/defaults/main.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/roles/vpp/tasks/main.yaml [moved from resources/tools/testbed-setup/ansible/roles/sut/tasks/main.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/roles/wrk/defaults/main.yaml
resources/tools/testbed-setup/ansible/roles/wrk/tasks/main.yaml
resources/tools/testbed-setup/ansible/sut.yaml
resources/tools/testbed-setup/ansible/sut_aws.yaml
resources/tools/testbed-setup/ansible/sut_azure.yaml

index 9a58ed1..9751475 100644 (file)
@@ -179,7 +179,7 @@ class Constants:
     QEMU_VM_IMAGE = u"/var/lib/vm/vhost-nested.img"
 
     # QEMU VM DPDK path
-    QEMU_VM_DPDK = u"/opt/dpdk-stable-19.08.2"
+    QEMU_VM_DPDK = u"/opt/dpdk-20.02"
 
     # Docker container SUT image
     DOCKER_SUT_IMAGE_UBUNTU = u"snergster/csit-sut:latest"
index eb97f0b..dc789a7 100644 (file)
@@ -1,6 +1,9 @@
 ---
 # file: roles/calibration/tasks/main.yaml
 
+- name: Print Ansible facts
+  debug: var=ansible_facts
+
 - name: Calibration - Install Distribution - Release - Machine Prerequisites
   package:
     name: "{{ packages | flatten(levels=1) }}"
index d56b967..e43c284 100644 (file)
@@ -18,8 +18,14 @@ packages_by_arch:
     - []
 
 dpdk_target_dir: "/opt"
-dpdk_version: "19.08.2"
+dpdk_version:
+  - "19.02"
+  - "20.02"
 dpdk_url: "https://fast.dpdk.org/rel"
 dpdk_build_targets:
-  aarch64: "arm64-armv8a"
-  x86_64: "x86_64-native"
+  "19.02":
+    aarch64: "arm64-armv8a-linuxapp-gcc"
+    x86_64: "x86_64-native-linuxapp-gcc"
+  "20.02":
+    aarch64: "arm64-armv8a-linux-gcc"
+    x86_64: "x86_64-native-linux-gcc"
index 753ebec..8ece4af 100644 (file)
 
 - name: DPDK - Download Release Archive
   get_url:
-    url: "{{ dpdk_url }}/dpdk-{{ dpdk_version }}.tar.xz"
-    dest: "{{ dpdk_target_dir }}/dpdk-{{ dpdk_version }}.tar.xz"
+    url: "{{ dpdk_url }}/dpdk-{{ item }}.tar.xz"
+    dest: "{{ dpdk_target_dir }}/dpdk-{{ item }}.tar.xz"
     mode: 0644
-  register: "linux__dpdk_downloaded"
+  loop: "{{ dpdk_version }}"
+  register: "dpdk_downloaded"
   tags:
     - install-dpdk
 
-- name: Extract DPDK release archive
+- name: DPDK - Extract Release Archive
   unarchive:
     remote_src: true
-    src: "{{ dpdk_target_dir }}/dpdk-{{ dpdk_version }}.tar.xz"
+    src: "{{ dpdk_target_dir }}/dpdk-{{ item }}.tar.xz"
     dest: "{{ dpdk_target_dir }}/"
-    creates: "{{ dpdk_target_dir }}/dpdk-stable-{{ dpdk_version }}"
-  when: "linux__dpdk_downloaded"
-  register: "linux__dpdk_extracted"
+    creates: "{{ dpdk_target_dir }}/dpdk-{{ item }}"
+  loop: "{{ dpdk_version }}"
+  when: "dpdk_downloaded"
+  register: "dpdk_extracted"
   tags:
     - install-dpdk
 
-- name: Compile DPDK release
+- name: DPDK - Compile Release I
   become: yes
-  command: "make install T={{ dpdk_build_targets[ansible_machine] }}-linux-gcc DESTDIR={{ dpdk_target_dir }}/dpdk-stable-{{ dpdk_version }} chdir={{ dpdk_target_dir }}/dpdk-stable-{{ dpdk_version }}"
-  when: "linux__dpdk_extracted"
-  register: "linux__dpdk_compiled"
+  command: "make install T={{ dpdk_build_targets[item][ansible_machine] }} DESTDIR={{ dpdk_target_dir }}/dpdk-{{ item }} chdir={{ dpdk_target_dir }}/dpdk-{{ item }}"
+  loop: "{{ dpdk_version }}"
+  when: "dpdk_extracted"
+  register: "dpdk_compiled"
   tags:
     - install-dpdk
 
-- name: Link igb_uio module
-  shell: "ln -fs {{ dpdk_target_dir }}/dpdk-stable-{{ dpdk_version }}/{{ dpdk_build_targets[ansible_machine] }}-linux-gcc/kmod/igb_uio.ko /lib/modules/`uname -r`/igb_uio.ko && depmod -a"
+- name: DPDK - Link igb_uio Module
+  shell: "ln -fs {{ dpdk_target_dir }}/dpdk-{{ item }}/{{ dpdk_build_targets[item][ansible_machine] }}/kmod/igb_uio.ko /lib/modules/`uname -r`/igb_uio.ko && depmod -a"
   ignore_errors: "yes"
-  when: "linux__dpdk_compiled"
+  loop: "{{ dpdk_version }}"
+  when: "dpdk_compiled"
   tags:
-    - link-igb_uio-module
+    - install-dpdk
index e77fdbc..db9b104 100644 (file)
@@ -1,7 +1,7 @@
 ---
 # file: roles/iperf/tasks/main.yaml
 
-- name: iPerf Install - Install Distribution - Release - Machine Prerequisites
+- name: iPerf - Install Distribution - Release - Machine Prerequisites
   package:
     name: "{{ packages | flatten(levels=1) }}"
     state: latest
@@ -9,32 +9,45 @@
   tags:
     - install-dependencies
 
-- name: iPerf Install - Get Release Archive
+- name: iPerf - Get Release Archive
   get_url:
-    url: "https://downloads.es.net/pub/iperf/iperf-{{ iperf_version }}.tar.gz"
-    dest: "{{ iperf_target_dir }}/iperf-{{ iperf_version }}.tar.gz"
+    url: "https://downloads.es.net/pub/iperf/iperf-{{ item }}.tar.gz"
+    dest: "{{ iperf_target_dir }}/iperf-{{ item }}.tar.gz"
     mode: 0644
+  loop: "{{ iperf_version }}"
   tags:
     - install-iperf
 
-- name: iPerf Install - Ensure Directory Exists
-  file:
-    path: "{{ iperf_target_dir }}/iperf-{{ iperf_version }}"
-    state: "directory"
-  tags:
-    - install-iperf
-
-- name: iPerf Install - Extract Release Archive
+- name: iPerf - Extract Release Archive
   unarchive:
     remote_src: true
-    src: "{{ iperf_target_dir }}/iperf-{{ iperf_version }}.tar.gz"
+    src: "{{ iperf_target_dir }}/iperf-{{ item }}.tar.gz"
     dest: "{{ iperf_target_dir }}/"
-    creates: "{{ iperf_target_dir }}/iperf-{{ iperf_version }}/src"
+    creates: "{{ iperf_target_dir }}/iperf-{{ item }}/src"
+  loop: "{{ iperf_version }}"
+  tags:
+    - install-iperf
+
+- name: iPerf - Compile Release I
+  command: "./configure"
+  args:
+      chdir: "{{ iperf_target_dir }}/iperf-{{ item }}/"
+  loop: "{{ iperf_version }}"
+  tags:
+    - install-iperf
+
+- name: iPerf - Compile Release II
+  command: "make"
+  args:
+      chdir: "{{ iperf_target_dir }}/iperf-{{ item }}/"
+  loop: "{{ iperf_version }}"
   tags:
     - install-iperf
 
-- name: iPerf Install - Compile Release I
-  shell: |
-    cd "{{ iperf_target_dir }}/iperf-{{ iperf_version }}/" && ./configure && make && make install
+- name: iPerf - Compile Release III
+  command: "make install"
+  args:
+      chdir: "{{ iperf_target_dir }}/iperf-{{ item }}/"
+  loop: "{{ iperf_version }}"
   tags:
     - install-iperf
index 0daa913..79a77bc 100644 (file)
@@ -26,4 +26,7 @@ packages_by_arch:
     - []
 
 trex_target_dir: "/opt"
-trex_version: "2.73"
+trex_url: "https://github.com/cisco-system-traffic-generator/trex-core/archive/"
+trex_version:
+  - "2.54"
+  - "2.73"
index 11f51dd..d8f35cb 100644 (file)
@@ -1,7 +1,7 @@
 ---
 # file: roles/trex/tasks/main.yaml
 
-- name: T-Rex Install - Install Distribution - Release - Machine Prerequisites
+- name: T-Rex - Distribution - Release - Machine Prerequisites
   package:
     name: "{{ packages | flatten(levels=1) }}"
     state: latest
@@ -9,52 +9,79 @@
   tags:
     - install-dependencies
 
-- name: T-Rex Install - Get Release Archive
+- name: T-Rex - Get Release Archive
   get_url:
-    url: "https://github.com/cisco-system-traffic-generator/trex-core/archive/v{{ trex_version }}.tar.gz"
-    dest: "{{ trex_target_dir }}/trex-core-{{ trex_version }}.tar.gz"
+    url: "{{ trex_url }}/v{{ item }}.tar.gz"
+    dest: "{{ trex_target_dir }}/trex-core-{{ item }}.tar.gz"
+    validate_certs: False
     mode: 0644
+  loop: "{{ trex_version }}"
   register: trex_downloaded
   tags:
     - install-trex
 
-- name: T-Rex Install - Ensure Directory Exists
+- name: T-Rex - Ensure Directory Exists
   file:
-    path: "{{ trex_target_dir }}/trex-core-{{ trex_version }}"
+    path: "{{ trex_target_dir }}/trex-core-{{ item }}"
     state: "directory"
-  register: trex_dir_created
+  loop: "{{ trex_version }}"
   tags:
     - install-trex
 
-- name: T-Rex Install - Extract Release Archive
+- name: T-Rex - Extract Release Archive
   unarchive:
     remote_src: true
-    src: "{{ trex_target_dir }}/trex-core-{{ trex_version }}.tar.gz"
+    src: "{{ trex_target_dir }}/trex-core-{{ item }}.tar.gz"
     dest: "{{ trex_target_dir }}/"
-    creates: "{{ trex_target_dir }}/trex-core-{{ trex_version }}/linux_dpdk/"
-  when: trex_dir_created
+    creates: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
+  loop: "{{ trex_version }}"
   register: trex_extracted
   tags:
     - install-trex
 
-- name: T-Rex Install - Azure patch I
+- name: T-Rex - Azure patch I
   patch:
     src: "files/t-rex.patch"
-    basedir: "{{ trex_target_dir }}/trex-core-{{ trex_version }}"
+    basedir: "{{ trex_target_dir }}/trex-core-{{ item }}"
     strip: 1
+  loop: "{{ trex_version }}"
   when:
     - azure is defined
   tags:
     - install-trex
 
-- name: T-Rex Install - Compile Release I
-  raw: "cd {{ trex_target_dir }}/trex-core-{{ trex_version }}/linux_dpdk/; ./b configure; ./b build"
+- name: T-Rex - Compile Release I
+  command: "./b configure"
+  args:
+      chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
+  loop: "{{ trex_version }}"
   when: trex_extracted
   tags:
     - install-trex
 
-- name: T-Rex Install - Compile Release II
-  raw: "cd {{ trex_target_dir }}/trex-core-{{ trex_version }}/scripts/ko/src; make; make install"
+- name: T-Rex - Compile Release II
+  command: "./b build"
+  args:
+      chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
+  loop: "{{ trex_version }}"
+  when: trex_extracted
+  tags:
+    - install-trex
+
+- name: T-Rex - Compile Release III
+  command: "make"
+  args:
+      chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/scripts/ko/src"
+  loop: "{{ trex_version }}"
+  when: trex_extracted
+  tags:
+    - install-trex
+
+- name: T-Rex - Compile Release IV
+  command: "make install"
+  args:
+      chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/scripts/ko/src"
+  loop: "{{ trex_version }}"
   when: trex_extracted
   tags:
     - install-trex
index c2e42aa..163044d 100644 (file)
@@ -1,7 +1,7 @@
 ---
 # file: roles/wrk/tasks/main.yaml
 
-- name: WRK Install - Install Distribution - Release - Machine Prerequisites
+- name: WRK - Install Distribution - Release - Machine Prerequisites
   package:
     name: "{{ packages | flatten(levels=1) }}"
     state: latest
@@ -9,45 +9,40 @@
   tags:
     - install-dependencies
 
-- name: WRK Install - Get Release Archive
+- name: WRK - Get Release Archive
   get_url:
-    url: "https://github.com/wg/wrk/archive/{{ wrk_version }}.tar.gz"
-    dest: "{{ wrk_target_dir }}/{{ wrk_version }}.tar.gz"
+    url: "https://github.com/wg/wrk/archive/{{ item }}.tar.gz"
+    dest: "{{ wrk_target_dir }}/wrk-{{ item }}.tar.gz"
     mode: 0644
+  loop: "{{ wrk_version }}"
   register: wrk_downloaded
   tags:
     - install-wrk
 
-- name: WRK Install - Ensure Directory Exists
-  file:
-    path: "{{ wrk_target_dir }}/wrk-{{ wrk_version }}"
-    state: "directory"
-  register: wrk_dir_created
-  tags:
-    - install-wrk
-
-- name: WRK Install - Extract Release Archive
+- name: WRK - Extract Release Archive
   unarchive:
     remote_src: true
-    src: "{{ wrk_target_dir }}/{{ wrk_version }}.tar.gz"
+    src: "{{ wrk_target_dir }}/wrk-{{ item }}.tar.gz"
     dest: "{{ wrk_target_dir }}/"
-    creates: "{{ wrk_target_dir }}/wrk-{{ wrk_version }}/src"
-  when: wrk_dir_created
+    creates: "{{ wrk_target_dir }}/wrk-{{ item }}/src"
+  loop: "{{ wrk_version }}"
   register: wrk_extracted
   tags:
     - install-wrk
 
-- name: WRK Install - Compile Release
+- name: WRK - Compile Release I
   command: "make"
   args:
-    chdir: "{{ wrk_target_dir }}/wrk-{{ wrk_version }}"
+    chdir: "{{ wrk_target_dir }}/wrk-{{ item }}"
+  loop: "{{ wrk_version }}"
   when: wrk_extracted
   register: wrk_compiled
   tags:
     - install-wrk
 
-- name: WRK Install - Copy Binary
-  command: "cp {{ wrk_target_dir }}/wrk-{{ wrk_version }}/wrk /usr/local/bin/"
+- name: WRK - Copy Binary
+  command: "cp {{ wrk_target_dir }}/wrk-{{ item }}/wrk /usr/local/bin/"
+  loop: "{{ wrk_version }}"
   when: wrk_compiled
   tags:
     - install-wrk
index 67caadd..c44dfe8 100644 (file)
@@ -10,8 +10,8 @@
       tags: common
     - role: vexx_hosts
       tags: vexx_hosts
-    - role: sut
-      tags: sut
+    - role: vpp
+      tags: vpp
     - role: dpdk
       tags: dpdk
     - role: docker
index 4340aa1..5b2fc8d 100644 (file)
@@ -9,8 +9,8 @@
       tags: user_add
     - role: common
       tags: common
-    - role: sut
-      tags: sut
+    - role: vpp
+      tags: vpp
     - role: dpdk
       tags: dpdk
     - role: aws
index 950287b..669e409 100644 (file)
@@ -9,8 +9,8 @@
       tags: user_add
     - role: common
       tags: common
-    - role: sut
-      tags: sut
+    - role: vpp
+      tags: vpp
     - role: azure
       tags: azure
     - role: iperf