Add container pull option to install.yaml 73/61173/4
authorStepan Andrushko <stepanx.andrushko@intel.com>
Tue, 21 Aug 2018 11:04:59 +0000 (14:04 +0300)
committerStepan Andrushko <stepanx.andrushko@intel.com>
Fri, 31 Aug 2018 10:25:23 +0000 (13:25 +0300)
Supported Yardstick installation modes in yardstick.yaml: baremetal
and container. First is used to install Yardstick on baremetal,
another is used during docker build to install Yardstick in container.

Added third option: 'container pull': to pull docker image
(opnfv/yardstick) from Docker hub and start container.

JIRA: YARDSTICK-1392

Change-Id: I4158de3eb6fcbe0018a15fdda89a3e3ab29c26bb
Signed-off-by: Stepan Andrushko <stepanx.andrushko@intel.com>
ansible/group_vars/all.yml
ansible/install-inventory.ini
ansible/install.yaml

index 9f52932..5965605 100644 (file)
@@ -7,6 +7,7 @@ release: xenial
 normal_image_file: "{{ workspace }}/yardstick-image.img"\r
 nsb_image_file: "{{ workspace }}/yardstick-nsb-image.img"\r
 ubuntu_image_file: /tmp/workspace/yardstick/yardstick-trusty-server.raw\r
+installation_mode: "{{ INSTALLATION_MODE | default('baremetal') }}"\r
 proxy_env:\r
   PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/bin\r
   http_proxy: "{{ lookup('env', 'http_proxy') }}"\r
index e15a2e9..4e86294 100644 (file)
@@ -17,8 +17,9 @@ jumphost
 [all:vars]
 arch_amd64=amd64
 arch_arm64=arm64
-inst_mode_container=container
 inst_mode_baremetal=baremetal
+inst_mode_container=container
+inst_mode_container_pull=container_pull
 ubuntu_archive={"amd64": "http://archive.ubuntu.com/ubuntu/", "arm64": "http://ports.ubuntu.com/ubuntu-ports/"}
 # Uncomment credentials below if needed
 # ansible_user=root
index fa8419b..0800ee5 100644 (file)
@@ -15,7 +15,6 @@
 - hosts: jumphost
   become: yes
   vars:
-    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
-    - configure_gui
-    - 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_container
+      when: installation_mode == inst_mode_baremetal
 
     - shell: uwsgi -i /etc/yardstick/yardstick.ini
-      when: installation_mode != inst_mode_container
+      when: installation_mode == inst_mode_baremetal
 
 
 - name: Prepare baremetal and standalone servers
       include_role:
         name: build_yardstick_image
         tasks_from: pre_build.yml
+      when: installation_mode != inst_mode_container
 
 
 - hosts: chroot_image
       include_role:
         name: build_yardstick_image
         tasks_from: "cloudimg_modify_{{ img_property }}.yml"
+      when: installation_mode != inst_mode_container
 
 
 - hosts: jumphost
       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