X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=ansible%2Finstall.yaml;h=a78a11f6876c55bd990fbbedba78a7f8c9ae016f;hb=5ac5635cbdc118a9467341c43e92a64d54d8a6b2;hp=d181c5ffd86c293896269fe340de2b4cae52cc78;hpb=fe251d2bf89ed3cd30b9b437279507f9b7e9c68f;p=yardstick.git diff --git a/ansible/install.yaml b/ansible/install.yaml index d181c5ffd..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: @@ -67,6 +67,7 @@ # 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 @@ -103,69 +104,98 @@ - docker - barometer_collectd - - name: Prepare to build VM - hosts: jumphost + hosts: yardstick-standalone become: yes vars: img_prop_item: "{{ IMG_PROPERTY }}" img_arch: "{{ YARD_IMG_ARCH }}" - - tasks: - - name: Include pre-build - include_role: - name: build_yardstick_image - tasks_from: pre_build.yml - when: installation_mode != inst_mode_container - - -- name: Build VM in chroot - hosts: chroot_image - connection: chroot - become: yes - vars: - img_property: "{{ IMG_PROPERTY }}" environment: "{{ proxy_env }}" tasks: - - name: Include image build - include_role: - name: build_yardstick_image - tasks_from: "cloudimg_modify_{{ img_property }}.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 -- name: Clear up after VM is built - hosts: jumphost - become: yes + - name: Update pip ansible docker + pip: + name: "ansible==2.5.5" - tasks: - - name: Include post-build - include_role: - name: build_yardstick_image - tasks_from: post_build.yml - when: installation_mode != inst_mode_container + # 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" -- hosts: jumphost +- name: Add OpenStack variables, image + hosts: jumphost + vars: + openrc_flag: false vars_files: - yardstick_config.yml - roles: - - { role: convert_openrc, when: openrc_file is defined } + 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 -- name: Add OpenStack variables, image - hosts: jumphost - vars_files: - - yardstick_config.yml - environment: - "{{ openrc }}" + - set_fact: + openrc_flag: true + when: + - openrc_file is defined + - imgfile is defined roles: - - { role: clean_images, when: openrc_file is defined } - - { role: clean_flavors, when: openrc_file is defined } - - { role: create_samplevnfs_image, when: openrc_file is defined } + - { 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 @@ -190,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