X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=ansible%2Finstall.yaml;h=a78a11f6876c55bd990fbbedba78a7f8c9ae016f;hb=91d4cfa839bb2633cba2f70443168c22f895a969;hp=0c7ad7e92037047797648941e1c5d15a2d38a32e;hpb=4730446ee48e79919d66c34633b9a91b9a552311;p=yardstick.git diff --git a/ansible/install.yaml b/ansible/install.yaml index 0c7ad7e92..a78a11f68 100644 --- a/ansible/install.yaml +++ b/ansible/install.yaml @@ -1,4 +1,4 @@ -# Copyright (c) 2018 Intel Corporation. +# Copyright (c) 2018-2019 Intel Corporation. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,7 +15,6 @@ - hosts: jumphost become: yes vars: - yardstick_dir: "{{ YARDSTICK_DIR | default('/home/opnfv/repos/yardstick') }}" virtual_environment: "{{ VIRTUAL_ENVIRONMENT | default(False) }}" nsb_dir: "{{ NSB_DIR | default('/opt/nsb_bin/') }}" @@ -39,7 +38,8 @@ - { role: configure_gui, when: installation_mode != inst_mode_container_pull } - { role: download_trex, when: installation_mode != inst_mode_container_pull } - { role: install_trex, when: installation_mode != inst_mode_container_pull } - - { role: configure_rabbitmq, when: installation_mode == inst_mode_baremetal } + - role: configure_rabbitmq + install_mode: "{{ installation_mode }}" post_tasks: @@ -56,6 +56,8 @@ - name: Prepare baremetal and standalone servers hosts: yardstick-baremetal,yardstick-standalone become: yes + vars_files: + - roles/download_dpdk/defaults/main.yml environment: "{{ proxy_env }}" roles: @@ -65,19 +67,23 @@ # can't update grub in chroot/docker - enable_hugepages_on_boot - enable_iommu_on_boot + - enable_cpu_isolation_on_boot # needed for collectd plugins - increase_open_file_limits - install_image_dependencies - role: download_dpdk - # dpdk_version: "17.02" + dpdk_version: "{{ dpdk_version_for_PROX }}" + - role: install_dpdk + dpdk_version: "{{ dpdk_version_for_PROX }}" + - download_samplevnfs + - role: install_samplevnf + vnf_name: PROX + - download_dpdk - install_dpdk - download_trex - install_trex - download_civetweb - install_civetweb - - download_samplevnfs - - role: install_samplevnf - vnf_name: PROX - role: install_samplevnf vnf_name: UDP_Replay - role: install_samplevnf @@ -95,53 +101,109 @@ - install_pmu_tools - download_collectd - install_collectd + - docker + - barometer_collectd - -- hosts: jumphost +- name: Prepare to build VM + hosts: yardstick-standalone become: yes vars: img_prop_item: "{{ IMG_PROPERTY }}" img_arch: "{{ YARD_IMG_ARCH }}" + environment: "{{ proxy_env }}" tasks: - - name: Include pre-build - include_role: - name: build_yardstick_image - tasks_from: pre_build.yml - when: installation_mode != inst_mode_container + - file: + dest: /tmp/ansible + state: directory + mode: 0755 + + - name: Copy ansible folder to remote DUT + copy: + src: "." + dest: /tmp/ansible + + - name: Install DUT related packages + apt: + name: "{{ packages }}" + vars: + packages: + - qemu-kvm + - libvirt-bin + - bridge-utils + - fping + - genisoimage + + # There is a bug with the easy install ansible module in Ubuntu 16.04 linux. + # Refer https://github.com/ansible/ansible/issues/23534 + - name: Install pip + shell: easy_install -U pip + when: + - ansible_distribution == 'Ubuntu' + - ansible_distribution_major_version|int <= 16 + - name: Install python-pip + action: "{{ ansible_pkg_mgr }} name=python-pip state=present" + when: + - ansible_distribution == 'Ubuntu' + - ansible_distribution_major_version|int >= 17 -- hosts: chroot_image - connection: chroot - become: yes + - name: Update pip ansible docker + pip: + name: "ansible==2.5.5" + + # This is used as workaround as ansible doesn't support chroot on remote server + - name: Run ansible on remote + shell: "ansible-playbook -e OS_RELEASE={{ OS_RELEASE }} -e IMAGE_PROPERTY={{ IMAGE_PROPERTY }} -e YARD_IMAGE_ARCH={{ YARD_IMAGE_ARCH }} -i install-inventory.ini build_vm.yml -vv" + args: + chdir: "/tmp/ansible" + + +- name: Add OpenStack variables, image + hosts: jumphost vars: - img_property: "{{ IMG_PROPERTY }}" - environment: "{{ proxy_env }}" + openrc_flag: false + vars_files: + - yardstick_config.yml - tasks: - - name: Include image build - include_role: - name: build_yardstick_image - tasks_from: "cloudimg_modify_{{ img_property }}.yml" - when: installation_mode != inst_mode_container + pre_tasks: + - name: Get information about external VM image + stat: + path: "{{ path_to_img }}" + register: image_file_stat + when: + - path_to_img is defined + - imgfile is not defined + - set_fact: + imgfile: "{{ path_to_img }}" + when: + - path_to_img is defined + - imgfile is not defined + - image_file_stat.stat.islnk is defined + - not image_file_stat.stat.islnk -- hosts: jumphost - become: yes + - set_fact: + openrc_flag: true + when: + - openrc_file is defined + - imgfile is defined - tasks: - - name: Include post-build - include_role: - name: build_yardstick_image - tasks_from: post_build.yml - when: installation_mode != inst_mode_container + roles: + - { role: convert_openrc, when: openrc_file is defined } + - { role: clean_images, when: openrc_flag } + - { role: clean_flavors, when: openrc_flag } + - { role: create_samplevnfs_image, when: openrc_flag } + environment: + "{{ openrc | default({}) }}" -- name: start yardstick container on jumphost +- name: Start yardstick container on jumphost hosts: jumphost tasks: - - include_role: + - name: Install docker needed to pull Yardstick container + include_role: name: docker when: installation_mode == inst_mode_container_pull @@ -158,6 +220,5 @@ volumes: - "{{ openrc_file|default('/dev/null') }}:/etc/yardstick/openstack.creds:ro" - /var/run/docker.sock:/var/run/docker.sock - - /opt:/opt - /etc/localtime:/etc/localtime:ro when: installation_mode == inst_mode_container_pull