From 85644d1a6d5e6af361367321b7805d69c7e7f26e Mon Sep 17 00:00:00 2001 From: Stepan Andrushko Date: Fri, 7 Sep 2018 15:15:08 +0300 Subject: [PATCH] Modify install.yaml to support Ubuntu 18 Modify install.yaml to be able to install Yardstick on the newest Ubuntu 18.04 LTS. Yardstick installation on Ubuntu 16 is still supported. Default version is Ubuntu 16.04 (xenial). JIRA: YARDSTICK-1413 Change-Id: Ic8aca0699645c68831ee739deeaeceef418075f5 Signed-off-by: Stepan Andrushko --- ansible/group_vars/all.yml | 4 ++-- ansible/install.yaml | 10 +++------ ansible/prepare_openstack.yml | 1 - ansible/roles/build_yardstick_image/vars/main.yml | 8 +++++--- ansible/roles/configure_gui/tasks/main.yml | 5 +++++ ansible/roles/download_drivers/defaults/main.yml | 3 ++- .../install_dependencies_jumphost/tasks/Debian.yml | 24 +++++++++++++++++++--- .../install_dependencies_jumphost/tasks/RedHat.yml | 1 + .../install_dependencies_jumphost/tasks/Suse.yml | 6 ++++++ ansible/roles/install_yardstick/tasks/main.yml | 8 -------- 10 files changed, 45 insertions(+), 25 deletions(-) diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index 596560508..0e8ad5bc5 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -1,9 +1,9 @@ --- target_os: "Ubuntu" YARD_IMG_ARCH: "amd64" -IMG_PROPERTY: "normal" +IMG_PROPERTY: "{{ IMAGE_PROPERTY | default('normal') }}" clone_dest: /opt/tempT -release: xenial +release: "{{ OS_RELEASE | default('xenial') }}" normal_image_file: "{{ workspace }}/yardstick-image.img" nsb_image_file: "{{ workspace }}/yardstick-nsb-image.img" ubuntu_image_file: /tmp/workspace/yardstick/yardstick-trusty-server.raw diff --git a/ansible/install.yaml b/ansible/install.yaml index 0800ee534..079c65d31 100644 --- a/ansible/install.yaml +++ b/ansible/install.yaml @@ -21,7 +21,7 @@ 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,8 +31,8 @@ - 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 } @@ -141,10 +141,6 @@ 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 diff --git a/ansible/prepare_openstack.yml b/ansible/prepare_openstack.yml index 6f54ef522..c9067c9fb 100644 --- a/ansible/prepare_openstack.yml +++ b/ansible/prepare_openstack.yml @@ -23,7 +23,6 @@ include: build_yardstick_image.yml vars: YARD_IMG_ARCH: amd64 - release: xenial img_property: nsb - name: Cleanup old OpenStack images and upload the new one diff --git a/ansible/roles/build_yardstick_image/vars/main.yml b/ansible/roles/build_yardstick_image/vars/main.yml index 6728e5afb..3d4054408 100644 --- a/ansible/roles/build_yardstick_image/vars/main.yml +++ b/ansible/roles/build_yardstick_image/vars/main.yml @@ -16,11 +16,13 @@ boot_modes: 'amd64': disk1 'arm64': uefi1 boot_mode: "{{ boot_modes[YARD_IMG_ARCH] }}" -image_filename: "{{ release }}-server-cloudimg-{{ YARD_IMG_ARCH }}-{{ boot_mode }}.img" -image_path: "{{ release }}/current/{{ image_filename }}" +image_filename: + 'xenial': "{{ release }}-server-cloudimg-{{ YARD_IMG_ARCH }}-{{ boot_mode }}.img" + 'bionic': "{{ release }}-server-cloudimg-{{ YARD_IMG_ARCH }}.img" +image_path: "{{ release }}/current/{{ image_filename[release] }}" host: "{{ lookup('env', 'HOST')|default('cloud-images.ubuntu.com', true)}}" image_url: "{{ lookup('env', 'IMAGE_URL')|default('https://' ~ host ~ '/' ~ image_path, true) }}" -image_dest: "{{ workspace }}/{{ image_filename }}" +image_dest: "{{ workspace }}/{{ image_filename[release] }}" sha256sums_path: "{{ release }}/current/SHA256SUMS" sha256sums_filename: "{{ sha256sums_path|basename }}" sha256sums_url: "{{ lookup('env', 'SHA256SUMS_URL')|default('https://' ~ host ~ '/' ~ sha256sums_path, true) }}" diff --git a/ansible/roles/configure_gui/tasks/main.yml b/ansible/roles/configure_gui/tasks/main.yml index 846a9cb47..665053ccf 100644 --- a/ansible/roles/configure_gui/tasks/main.yml +++ b/ansible/roles/configure_gui/tasks/main.yml @@ -27,6 +27,11 @@ state: directory recurse: yes +- name: Remove /etc/nginx/yardstick/gui/dist directory if it exists + file: + path: /etc/nginx/yardstick/gui/dist + state: absent + - name: Move dist to /etc/nginx/yardstick/gui shell: cmd: mv dist /etc/nginx/yardstick/gui diff --git a/ansible/roles/download_drivers/defaults/main.yml b/ansible/roles/download_drivers/defaults/main.yml index ab68a3c6d..bf1e48a23 100644 --- a/ansible/roles/download_drivers/defaults/main.yml +++ b/ansible/roles/download_drivers/defaults/main.yml @@ -12,10 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. --- -i40evf_version: "3.4.2" +i40evf_version: "3.5.13" i40evf_gzfile: "i40evf-{{ i40evf_version }}.tar.gz" i40evf_url: "https://netix.dl.sourceforge.net/project/e1000/i40evf%20stable/{{ i40evf_version }}/{{ i40evf_gzfile }}" i40evf_dest: "{{ clone_dest }}/" i40evf_path: "{{ i40evf_dest }}/{{ i40evf_gzfile|regex_replace('[.]tar[.]gz$', '') }}" i40evf_checksum: "3.4.2": "sha256:a8e2a722fb2f8ac874cb39545a331761841f1724830ff1581d2012dd37314645" + "3.5.13": "sha256:e57b95b694c8480b905e72ea13caac8714d6bb0c9eabe37cca655505b808f033" \ No newline at end of file diff --git a/ansible/roles/install_dependencies_jumphost/tasks/Debian.yml b/ansible/roles/install_dependencies_jumphost/tasks/Debian.yml index 9baf7e59e..f1fb43827 100755 --- a/ansible/roles/install_dependencies_jumphost/tasks/Debian.yml +++ b/ansible/roles/install_dependencies_jumphost/tasks/Debian.yml @@ -33,16 +33,14 @@ - libxft-dev - libxml2-dev - libxss-dev - - libxslt-dev - libxslt1-dev - - libzmq-dev + - libzmq3-dev - qemu-user-static - qemu-utils - kpartx - python - python-setuptools - python-dev - - python-pip - python-libvirt - python-virtualenv - bridge-utils @@ -74,3 +72,23 @@ - name: Remove useless packages from the cache apt: autoclean: yes + +# 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: Install required docker-py module + pip: + name: docker-py + state: latest + environment: "{{ proxy_env }}" diff --git a/ansible/roles/install_dependencies_jumphost/tasks/RedHat.yml b/ansible/roles/install_dependencies_jumphost/tasks/RedHat.yml index 85eb1156a..cb5315adb 100644 --- a/ansible/roles/install_dependencies_jumphost/tasks/RedHat.yml +++ b/ansible/roles/install_dependencies_jumphost/tasks/RedHat.yml @@ -52,3 +52,4 @@ - openssl - python-virtualenv - ccze + - python-pip diff --git a/ansible/roles/install_dependencies_jumphost/tasks/Suse.yml b/ansible/roles/install_dependencies_jumphost/tasks/Suse.yml index af53c9cd5..7932ed96d 100644 --- a/ansible/roles/install_dependencies_jumphost/tasks/Suse.yml +++ b/ansible/roles/install_dependencies_jumphost/tasks/Suse.yml @@ -47,3 +47,9 @@ - openssl - python-virtualenv - ccze + +# There is a bug with the easy install ansible module in suse linux. +# Until this is fixed the shell command must be used +# Refer https://github.com/ansible/ansible/issues/37296 +- name: Install pip + shell: easy_install -U pip diff --git a/ansible/roles/install_yardstick/tasks/main.yml b/ansible/roles/install_yardstick/tasks/main.yml index 203acc3e5..f93f8eec3 100644 --- a/ansible/roles/install_yardstick/tasks/main.yml +++ b/ansible/roles/install_yardstick/tasks/main.yml @@ -29,14 +29,6 @@ scope: global value: False -# There is a bug with the easy install ansible module in suse linux. -# Until this is fixed the shell command must be used -- name: Install pip - shell: easy_install -U pip -# easy_install: -# name: pip -# state: latest - - name: Install Yardstick requirements (venv) pip: requirements: "{{ yardstick_dir }}/requirements.txt" -- 2.16.6