Yardsitck Gambia Release 7.2.0 release notes.
[yardstick.git] / ansible / install.yaml
index afffbed..0800ee5 100644 (file)
@@ -1,15 +1,20 @@
+# 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