diff options
Diffstat (limited to 'ansible')
-rw-r--r-- | ansible/build_yardstick_image.yml | 26 | ||||
-rw-r--r-- | ansible/image_uploaders/upload_yardstick_image.yml | 7 | ||||
-rw-r--r-- | ansible/roles/download_pktgen/defaults/main.yml | 8 | ||||
-rw-r--r-- | ansible/roles/download_pktgen/tasks/main.yml | 38 | ||||
-rw-r--r-- | ansible/roles/infra_create_network/tasks/create_xml.yml | 49 | ||||
-rw-r--r-- | ansible/roles/install_image_dependencies/defaults/main.yml | 1 | ||||
-rw-r--r-- | ansible/roles/install_pktgen/tasks/main.yml | 25 | ||||
-rw-r--r-- | ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml | 2 |
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 |