aboutsummaryrefslogtreecommitdiffstats
path: root/ansible/install.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'ansible/install.yaml')
-rw-r--r--ansible/install.yaml145
1 files changed, 101 insertions, 44 deletions
diff --git a/ansible/install.yaml b/ansible/install.yaml
index 0800ee534..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,13 +15,12 @@
- 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/') }}"
pre_tasks:
- - name: Create NSB binaries directory, accesible to any user
+ - name: Create NSB binaries directory, accessible to any user
file:
path: "{{ nsb_dir }}"
state: directory
@@ -31,15 +30,16 @@
- installation_mode != inst_mode_container_pull
roles:
- - { role: add_repos_jumphost, when: installation_mode != inst_mode_container_pull }
- - { role: install_dependencies_jumphost, when: installation_mode != inst_mode_container_pull }
+ - add_repos_jumphost
+ - install_dependencies_jumphost
- { role: install_yardstick, when: installation_mode != inst_mode_container_pull }
- { role: configure_uwsgi, when: installation_mode != inst_mode_container_pull }
- { role: configure_nginx, when: installation_mode != inst_mode_container_pull }
- { 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_container_pull }
+ - 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:
@@ -63,21 +65,25 @@
- role: set_package_installer_proxy
when: proxy_env is defined and proxy_env
# can't update grub in chroot/docker
- # ?? - enable_iommu_on_boot
- 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,57 +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
+ - name: Update pip ansible docker
+ pip:
+ name: "ansible==2.5.5"
-- hosts: chroot_image
- connection: chroot
- become: yes
+ # 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_dependencies_jumphost
- when: installation_mode == inst_mode_container_pull
-
- - include_role:
+ - name: Install docker needed to pull Yardstick container
+ include_role:
name: docker
when: installation_mode == inst_mode_container_pull
@@ -162,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