diff options
-rw-r--r-- | ansible/group_vars/all.yml | 4 | ||||
-rw-r--r-- | ansible/install.yaml | 10 | ||||
-rw-r--r-- | ansible/prepare_openstack.yml | 1 | ||||
-rw-r--r-- | ansible/roles/add_repos_jumphost/tasks/Debian.yml | 1 | ||||
-rw-r--r-- | ansible/roles/build_yardstick_image/vars/main.yml | 8 | ||||
-rw-r--r-- | ansible/roles/configure_gui/tasks/main.yml | 5 | ||||
-rw-r--r-- | ansible/roles/download_drivers/defaults/main.yml | 3 | ||||
-rwxr-xr-x | ansible/roles/install_dependencies_jumphost/tasks/Debian.yml | 26 | ||||
-rw-r--r-- | ansible/roles/install_dependencies_jumphost/tasks/RedHat.yml | 1 | ||||
-rw-r--r-- | ansible/roles/install_dependencies_jumphost/tasks/Suse.yml | 6 | ||||
-rw-r--r-- | ansible/roles/install_yardstick/tasks/main.yml | 8 | ||||
-rw-r--r-- | docker/Dockerfile_ubuntu18 | 62 |
12 files changed, 107 insertions, 28 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 01478fb12..084cdcef3 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 } @@ -142,10 +142,6 @@ 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/add_repos_jumphost/tasks/Debian.yml b/ansible/roles/add_repos_jumphost/tasks/Debian.yml index 626f0b037..e15699617 100644 --- a/ansible/roles/add_repos_jumphost/tasks/Debian.yml +++ b/ansible/roles/add_repos_jumphost/tasks/Debian.yml @@ -71,7 +71,6 @@ deb [arch={{ extra_arch }}] {{ extra_repo }} {{ ansible_distribution_release }} main universe multiverse restricted deb [arch={{ extra_arch }}] {{ extra_repo }} {{ ansible_distribution_release }}-updates main universe multiverse restricted deb [arch={{ extra_arch }}] {{ extra_repo }} {{ ansible_distribution_release }}-security main universe multiverse restricted - deb [arch={{ extra_arch }}] {{ extra_repo }} {{ ansible_distribution_release }}-proposed main universe multiverse restricted when: installation_mode == "container" - name: Remove the marker 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..419f81bfd 100755 --- a/ansible/roles/install_dependencies_jumphost/tasks/Debian.yml +++ b/ansible/roles/install_dependencies_jumphost/tasks/Debian.yml @@ -29,20 +29,17 @@ - vim - libffi-dev - libfuse-dev - - libssl-dev - 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 @@ -54,7 +51,6 @@ - uwsgi-plugin-python - supervisor - lsof - - nodejs - npm - rabbitmq-server @@ -74,3 +70,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" diff --git a/docker/Dockerfile_ubuntu18 b/docker/Dockerfile_ubuntu18 new file mode 100644 index 000000000..a9dfaeb6a --- /dev/null +++ b/docker/Dockerfile_ubuntu18 @@ -0,0 +1,62 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +FROM ubuntu:18.04 + +LABEL image=opnfv/yardstick + +ARG BRANCH=master + +# GIT repo directory +ENV REPOS_DIR="/home/opnfv/repos" \ + IMAGE_DIR="/home/opnfv/images/" + +# Set work directory + +# Yardstick repo +ENV YARDSTICK_REPO_DIR="${REPOS_DIR}/yardstick/" \ + RELENG_REPO_DIR="${REPOS_DIR}/releng" \ + STORPERF_REPO_DIR="${REPOS_DIR}/storperf" + +RUN apt-get update && apt-get install -y git python python-setuptools python-pip iputils-ping && apt-get -y autoremove && apt-get clean + +RUN pip install appdirs==1.4.0 pyopenssl==17.5.0 openstacksdk==0.9.17 python-openstackclient==3.12.1 python-heatclient==1.11.1 ansible==2.5.5 + +RUN mkdir -p ${REPOS_DIR} + +RUN git config --global http.sslVerify false +#For developers: To test your changes you must comment out the git clone for ${YARDSTICK_REPO_DIR}. +#You must also uncomment the RUN and COPY commands below. +#You must run docker build from your yardstick directory on the host. +RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/yardstick ${YARDSTICK_REPO_DIR} +#RUN mkdir ${YARDSTICK_REPO_DIR} +#COPY ./ ${YARDSTICK_REPO_DIR} +RUN git clone --depth 1 https://gerrit.opnfv.org/gerrit/releng ${RELENG_REPO_DIR} +RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/storperf ${STORPERF_REPO_DIR} + +RUN ansible-playbook -i ${YARDSTICK_REPO_DIR}/ansible/install-inventory.ini -c local -vvv -e INSTALLATION_MODE="container" ${YARDSTICK_REPO_DIR}/ansible/install.yaml + +RUN ${YARDSTICK_REPO_DIR}/docker/supervisor.sh + +RUN echo "daemon off;" >> /etc/nginx/nginx.conf +# nginx=5000, rabbitmq=5672 +EXPOSE 5000 5672 + +ADD http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img ${IMAGE_DIR} +ADD http://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img ${IMAGE_DIR} + +# For developers: when `docker build ...` is running from YARDSTICK_REPO_DIR, please change +# path `./exec_tests.sh` -> `./docker/exec_tests.sh``. +COPY ./exec_tests.sh /usr/local/bin/ + +ENV NSB_DIR="/opt/nsb_bin" +ENV PYTHONPATH="${PYTHONPATH}:${NSB_DIR}/trex_client:${NSB_DIR}/trex_client/stl" + +WORKDIR ${REPOS_DIR} +CMD ["/usr/bin/supervisord"] |