summaryrefslogtreecommitdiffstats
path: root/ansible
diff options
context:
space:
mode:
Diffstat (limited to 'ansible')
-rw-r--r--ansible/build_yardstick_image.yml26
-rw-r--r--ansible/image_uploaders/upload_yardstick_image.yml7
-rw-r--r--ansible/roles/download_pktgen/defaults/main.yml8
-rw-r--r--ansible/roles/download_pktgen/tasks/main.yml38
-rw-r--r--ansible/roles/infra_create_network/tasks/create_xml.yml49
-rw-r--r--ansible/roles/install_image_dependencies/defaults/main.yml1
-rw-r--r--ansible/roles/install_pktgen/tasks/main.yml25
-rw-r--r--ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml2
8 files changed, 107 insertions, 49 deletions
diff --git a/ansible/build_yardstick_image.yml b/ansible/build_yardstick_image.yml
index 7f709873e..429ab88aa 100644
--- a/ansible/build_yardstick_image.yml
+++ b/ansible/build_yardstick_image.yml
@@ -30,6 +30,9 @@
workspace: "{{ lookup('env', 'workspace')|default('/tmp/workspace/yardstick', true) }}"
raw_imgfile_basename: "yardstick-{{ release }}-server.raw"
+ growpart_package:
+ RedHat: cloud-utils-growpart
+ Debian: cloud-guest-utils
environment:
- PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/bin
- "{{ proxy_env }}"
@@ -39,6 +42,8 @@
key: image_builder
- package: name=parted state=present
+ - package: name=kpartx state=present
+ - package: name="{{ growpart_package[ansible_os_family] }}" state=present
- set_fact:
imgfile: "{{ normal_image_file }}"
@@ -54,7 +59,7 @@
- set_fact:
raw_imgfile: "{{ workspace }}/{{ raw_imgfile_basename }}"
- # cleanup non-lxd
+ # cleanup non-lxd
- name: unmount all old mount points
mount:
name: "{{ item }}"
@@ -69,6 +74,21 @@
command: kpartx -dv "{{ raw_imgfile }}"
ignore_errors: true
+ - name: Debug dump loop devices
+ command: losetup
+ register: losetup_output
+
+ - debug:
+ var: losetup_output
+ verbosity: 2
+
+ - name: delete loop devices for image file
+ # use this because kpartx -dv will fail if raw_imgfile was delete
+ # but in theory we could have deleted file still attached to loopback device?
+ # use grep because of // and awk
+ shell: losetup -O NAME,BACK-FILE | grep "{{ raw_imgfile_basename }}" | awk '{ print $1 }' | xargs -l1 losetup -d
+ ignore_errors: true
+
- name: delete {{ raw_imgfile }}
file:
path: "{{ raw_imgfile }}"
@@ -99,7 +119,8 @@
command: "qemu-img resize -f raw {{ raw_imgfile }} +2G"
- name: resize parition to allow for more VNFs
- command: "parted -s -a optimal {{ raw_imgfile }} resizepart 1 100%"
+ # use growpart because maybe it handles GPT better than parted
+ command: growpart {{ raw_imgfile }} 1
- name: create mknod devices in chroot
command: "mknod -m 0660 /dev/loop{{ item }} b 7 {{ item }}"
@@ -109,7 +130,6 @@
tags: mknod_devices
- name: find first partition device
-# command: kpartx -l "{{ loop_device }}"
command: kpartx -l "{{ raw_imgfile }}"
register: kpartx_res
diff --git a/ansible/image_uploaders/upload_yardstick_image.yml b/ansible/image_uploaders/upload_yardstick_image.yml
index 9364c52a5..e61e2ab67 100644
--- a/ansible/image_uploaders/upload_yardstick_image.yml
+++ b/ansible/image_uploaders/upload_yardstick_image.yml
@@ -18,10 +18,9 @@
- get_url:
url: "{{ CLOUD_IMG_URL }}"
dest: "{{ CLOUD_IMAGE }}"
-
- - name: Extra cloud image kernel
- - unarchive:
- asdf:
+#
+# - name: Extra cloud image kernel
+# - unarchive:
- os_image:
name: yardstick-{{ release }}-kernel
diff --git a/ansible/roles/download_pktgen/defaults/main.yml b/ansible/roles/download_pktgen/defaults/main.yml
new file mode 100644
index 000000000..b598e1d56
--- /dev/null
+++ b/ansible/roles/download_pktgen/defaults/main.yml
@@ -0,0 +1,8 @@
+---
+pktgen_version: "3.2.12"
+pktgen_url: "http://dpdk.org/browse/apps/pktgen-dpdk/snapshot/pktgen-{{ pktgen_version }}.zip"
+pktgen_file: "{{ pktgen_url|basename }}"
+pktgen_unarchive: "{{ pktgen_file|regex_replace('[.]zip$', '') }}"
+pktgen_dest: "{{ clone_dest }}/"
+pktgen_sha256s:
+ "3.2.12": "sha256:a20aeb677fb847c0871acabb6e8f965ba3485e92f92e86e0bb5dc11c787b11d8"
diff --git a/ansible/roles/download_pktgen/tasks/main.yml b/ansible/roles/download_pktgen/tasks/main.yml
new file mode 100644
index 000000000..ff71f207d
--- /dev/null
+++ b/ansible/roles/download_pktgen/tasks/main.yml
@@ -0,0 +1,38 @@
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- file:
+ path: "{{ pktgen_dest }}"
+ state: directory
+
+- name: fetch pktgen
+ get_url:
+ url: "{{ pktgen_url }}"
+ dest: "{{ pktgen_dest }}"
+ validate_certs: False
+ checksum: "{{ pktgen_sha256s[pktgen_version] }}"
+
+- unarchive:
+ src: "{{ pktgen_dest }}/{{ pktgen_file }}"
+ dest: "{{ pktgen_dest }}/"
+ copy: no
+
+- name: cleanup tar file to save space
+ file:
+ path: "{{ pktgen_dest }}/{{ pktgen_file }}"
+ state: absent
+
+- set_fact:
+ pktgen_path: "{{ pktgen_dest }}/{{ pktgen_unarchive }}"
+
diff --git a/ansible/roles/infra_create_network/tasks/create_xml.yml b/ansible/roles/infra_create_network/tasks/create_xml.yml
index 1632e591c..345b77927 100644
--- a/ansible/roles/infra_create_network/tasks/create_xml.yml
+++ b/ansible/roles/infra_create_network/tasks/create_xml.yml
@@ -42,8 +42,13 @@
- name: "{{ item.name }}"
- forward:
mode: nat
- - bridge
- - ip
+ - bridge:
+ name: "{{ item.name }}"
+ stp: "on"
+ delay: "0"
+ - ip:
+ address: "{{ item.host_ip }}"
+ netmask: "{{ item.netmask }}"
pretty_print: yes
- name: Add new children nodes to "forward" node
@@ -64,46 +69,6 @@
end: "65535"
pretty_print: yes
-- name: Add "name" attribute to "bridge" node
- xml:
- path: "{{ xml_file }}"
- xpath: /network/bridge
- attribute: name
- value: "{{ item.name }}"
- pretty_print: yes
-
-- name: Add "stp" attribute to "bridge" node
- xml:
- path: "{{ xml_file }}"
- xpath: /network/bridge
- attribute: stp
- value: "on"
- pretty_print: yes
-
-- name: Add "delay" attribute to "bridge" node
- xml:
- path: "{{ xml_file }}"
- xpath: /network/bridge
- attribute: delay
- value: "0"
- pretty_print: yes
-
-- name: Add "address" attribute to "ip" node
- xml:
- path: "{{ xml_file }}"
- xpath: /network/ip
- attribute: address
- value: "{{ item.host_ip }}"
- pretty_print: yes
-
-- name: Add "netmask" attribute to "ip" node
- xml:
- path: "{{ xml_file }}"
- xpath: /network/ip
- attribute: netmask
- value: "{{ item.netmask }}"
- pretty_print: yes
-
- name: Define the networks
virt_net:
command: define
diff --git a/ansible/roles/install_image_dependencies/defaults/main.yml b/ansible/roles/install_image_dependencies/defaults/main.yml
index f0b53215a..7a3f5fa7e 100644
--- a/ansible/roles/install_image_dependencies/defaults/main.yml
+++ b/ansible/roles/install_image_dependencies/defaults/main.yml
@@ -28,6 +28,7 @@ install_dependencies:
# for IxLoad
- libxft-dev
- libxss-dev
+ - expect
RedHat:
- bc
- fio
diff --git a/ansible/roles/install_pktgen/tasks/main.yml b/ansible/roles/install_pktgen/tasks/main.yml
new file mode 100644
index 000000000..294c77971
--- /dev/null
+++ b/ansible/roles/install_pktgen/tasks/main.yml
@@ -0,0 +1,25 @@
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+- name: set build env vars
+ set_fact:
+ build_env_vars:
+ RTE_SDK: "{{ RTE_SDK }}"
+ RTE_TARGET: "{{ RTE_TARGET }}"
+
+- name: "make pktgen"
+ command: make
+ args:
+ chdir: "{{ pktgen_path }}"
+ environment: "{{ build_env_vars }}"
diff --git a/ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml b/ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml
index 85afa2a30..7aa6c8c12 100644
--- a/ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml
+++ b/ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml
@@ -40,6 +40,8 @@
- install_dpdk
- download_trex
- install_trex
+ - download_pktgen
+ - install_pktgen
- download_civetweb
- install_civetweb
- download_samplevnfs