+# Copyright (c) 2018 Intel Corporation.
+#
+# 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.
---
-- hosts: localhost
-
+- hosts: jumphost
+ become: yes
vars:
- arch_amd64: "amd64"
- arch_arm64: "arm64"
- inst_mode_container: "container"
- inst_mode_baremetal: "baremetal"
- ubuntu_archive:
- amd64: "http://archive.ubuntu.com/ubuntu/"
- arm64: "http://ports.ubuntu.com/ubuntu-ports/"
- installation_mode: "{{ INSTALLATION_MODE | default('baremetal') }}"
yardstick_dir: "{{ YARDSTICK_DIR | default('/home/opnfv/repos/yardstick') }}"
virtual_environment: "{{ VIRTUAL_ENVIRONMENT | default(False) }}"
nsb_dir: "{{ NSB_DIR | default('/opt/nsb_bin/') }}"
state: directory
owner: root
mode: 0777
+ when:
+ - installation_mode != inst_mode_container_pull
roles:
- - add_repos_jumphost
- - install_dependencies_jumphost
- - install_yardstick
- - configure_uwsgi
- - configure_nginx
- - download_trex
- - install_trex
- - configure_rabbitmq
+ - { role: add_repos_jumphost, when: installation_mode != inst_mode_container_pull }
+ - { role: install_dependencies_jumphost, when: installation_mode != inst_mode_container_pull }
+ - { 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 }
+
post_tasks:
- service:
name: nginx
state: restarted
+ when: installation_mode == inst_mode_baremetal
- shell: uwsgi -i /etc/yardstick/yardstick.ini
+ when: installation_mode == inst_mode_baremetal
+
+
+- name: Prepare baremetal and standalone servers
+ hosts: yardstick-baremetal,yardstick-standalone
+ become: yes
+ environment: "{{ proxy_env }}"
+
+ roles:
+ - add_custom_repos
+ - 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
+ # needed for collectd plugins
+ - increase_open_file_limits
+ - install_image_dependencies
+ - role: download_dpdk
+ # dpdk_version: "17.02"
+ - 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
+ vnf_name: ACL
+ - role: install_samplevnf
+ vnf_name: FW
+ - role: install_samplevnf
+ vnf_name: CGNAPT
+ # build shared DPDK for collectd only, required DPDK downloaded already
+ - install_dpdk_shared
+ - install_rabbitmq
+ - download_intel_cmt_cat
+ - install_intel_cmt_cat
+ - download_pmu_tools
+ - install_pmu_tools
+ - download_collectd
+ - install_collectd
+
+
+- hosts: jumphost
+ 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
+
+
+- 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
+
+
+- hosts: jumphost
+ become: yes
+
+ tasks:
+ - name: Include post-build
+ include_role:
+ name: build_yardstick_image
+ tasks_from: post_build.yml
+ when: installation_mode != inst_mode_container
+
+
+- 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: docker
+ when: installation_mode == inst_mode_container_pull
+
+ - name: Start yardstick container
+ docker_container:
+ name: yardstick
+ pull: yes
+ recreate: yes
+ image: "{{ yardstick_docker_image|default('opnfv/yardstick:latest') }}"
+ state: started
+ restart_policy: always
+ privileged: yes
+ interactive: yes
+ 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