From 40c29df6796e6d055f35b730e70dac87ab7db2d4 Mon Sep 17 00:00:00 2001 From: Yujun Zhang Date: Sat, 22 Apr 2017 12:49:21 +0800 Subject: Organize **all** tasks into ansible role `qtip` Change-Id: I5d3852d2a31e9c4043191377e5cb7d539d222a8c Signed-off-by: Yujun Zhang --- .../ansible_roles/opnfv-testapi/tasks/init.yml | 28 ---------- .../ansible_roles/opnfv-testapi/tasks/main.yml | 5 +- .../ansible_roles/opnfv-testapi/tasks/report.yml | 2 + .../ansible_roles/opnfv-testapi/tasks/setup.yml | 29 ++++++++++ resources/ansible_roles/qtip-deps/tasks/debian.yml | 33 ------------ resources/ansible_roles/qtip-deps/tasks/main.yml | 23 -------- resources/ansible_roles/qtip-deps/tasks/redhat.yml | 24 --------- .../qtip-workspace/files/defaults/run.yml | 62 +++++----------------- .../qtip-workspace/files/defaults/setup.yml | 43 ++------------- resources/ansible_roles/qtip/tasks/aggregate.yml | 15 ++++++ resources/ansible_roles/qtip/tasks/calculate.yml | 18 +++++++ .../ansible_roles/qtip/tasks/gather-facts-apex.yml | 23 ++++++++ .../ansible_roles/qtip/tasks/gather-facts-fuel.yml | 13 +++++ .../qtip/tasks/generate-inventory.yml | 21 ++++++++ .../qtip/tasks/install-deps-debian.yml | 33 ++++++++++++ .../qtip/tasks/install-deps-redhat.yml | 24 +++++++++ .../ansible_roles/qtip/tasks/install-deps.yml | 19 +++++++ resources/ansible_roles/qtip/tasks/main.yml | 12 +++++ resources/ansible_roles/qtip/tasks/setup-local.yml | 21 ++++++++ resources/ansible_roles/qtip/tasks/setup-node.yml | 22 ++++++++ 20 files changed, 271 insertions(+), 199 deletions(-) delete mode 100644 resources/ansible_roles/opnfv-testapi/tasks/init.yml create mode 100644 resources/ansible_roles/opnfv-testapi/tasks/setup.yml delete mode 100644 resources/ansible_roles/qtip-deps/tasks/debian.yml delete mode 100644 resources/ansible_roles/qtip-deps/tasks/main.yml delete mode 100644 resources/ansible_roles/qtip-deps/tasks/redhat.yml create mode 100644 resources/ansible_roles/qtip/tasks/aggregate.yml create mode 100644 resources/ansible_roles/qtip/tasks/calculate.yml create mode 100644 resources/ansible_roles/qtip/tasks/gather-facts-apex.yml create mode 100644 resources/ansible_roles/qtip/tasks/gather-facts-fuel.yml create mode 100644 resources/ansible_roles/qtip/tasks/generate-inventory.yml create mode 100644 resources/ansible_roles/qtip/tasks/install-deps-debian.yml create mode 100644 resources/ansible_roles/qtip/tasks/install-deps-redhat.yml create mode 100644 resources/ansible_roles/qtip/tasks/install-deps.yml create mode 100644 resources/ansible_roles/qtip/tasks/main.yml create mode 100644 resources/ansible_roles/qtip/tasks/setup-local.yml create mode 100644 resources/ansible_roles/qtip/tasks/setup-node.yml diff --git a/resources/ansible_roles/opnfv-testapi/tasks/init.yml b/resources/ansible_roles/opnfv-testapi/tasks/init.yml deleted file mode 100644 index 278a4e27..00000000 --- a/resources/ansible_roles/opnfv-testapi/tasks/init.yml +++ /dev/null @@ -1,28 +0,0 @@ -############################################################################## -# Copyright (c) 2017 ZTE Corporation 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 -############################################################################## - ---- -- name: create project and pod - uri: - url: "{{ testapi_url }}/{{item}}s" - method: POST - body: "{{ lookup('file', '{}/{}.json'.format(qtip_fixtures, item)) }}" - status_code: [200, 403] - body_format: json - with_items: - - project - - pod - -- name: create cases - uri: - url: "{{ testapi_url }}/projects/{{ project_name }}/cases" - method: POST - body: "{{ lookup('file', '{}/case.json'.format(qtip_fixtures)) }}" - status_code: [200, 403] - body_format: json diff --git a/resources/ansible_roles/opnfv-testapi/tasks/main.yml b/resources/ansible_roles/opnfv-testapi/tasks/main.yml index 1dd52208..270ffb59 100644 --- a/resources/ansible_roles/opnfv-testapi/tasks/main.yml +++ b/resources/ansible_roles/opnfv-testapi/tasks/main.yml @@ -8,8 +8,5 @@ ############################################################################## --- -- include: init.yml - when: action == 'init' -- include: report.yml - when: action == 'report' +- include: "{{ tasks }}.yml" diff --git a/resources/ansible_roles/opnfv-testapi/tasks/report.yml b/resources/ansible_roles/opnfv-testapi/tasks/report.yml index fd23e549..aa213a71 100644 --- a/resources/ansible_roles/opnfv-testapi/tasks/report.yml +++ b/resources/ansible_roles/opnfv-testapi/tasks/report.yml @@ -7,6 +7,8 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +--- + - name: push result to testapi uri: url: "{{ testapi_url }}/results" diff --git a/resources/ansible_roles/opnfv-testapi/tasks/setup.yml b/resources/ansible_roles/opnfv-testapi/tasks/setup.yml new file mode 100644 index 00000000..e6bb5224 --- /dev/null +++ b/resources/ansible_roles/opnfv-testapi/tasks/setup.yml @@ -0,0 +1,29 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## + +--- + +- name: create project and pod + uri: + url: "{{ testapi_url }}/{{item}}s" + method: POST + body: "{{ lookup('file', '{}/{}.json'.format(qtip_fixtures, item)) }}" + status_code: [200, 403] + body_format: json + with_items: + - project + - pod + +- name: create cases + uri: + url: "{{ testapi_url }}/projects/{{ project_name }}/cases" + method: POST + body: "{{ lookup('file', '{}/case.json'.format(qtip_fixtures)) }}" + status_code: [200, 403] + body_format: json diff --git a/resources/ansible_roles/qtip-deps/tasks/debian.yml b/resources/ansible_roles/qtip-deps/tasks/debian.yml deleted file mode 100644 index 1e15a68b..00000000 --- a/resources/ansible_roles/qtip-deps/tasks/debian.yml +++ /dev/null @@ -1,33 +0,0 @@ -############################################################################## -# Copyright (c) 2017 ZTE Corporation 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 -############################################################################## - ---- -- name: Installing software properties common - apt: - name: "{{ item }}" - state: present - with_items: - - software-properties-common - -- name: Adding ubuntu backport main repo - apt_repository: - repo: "{{ item }}" - state: present - with_items: - - deb http://archive.ubuntu.com/ubuntu/ {{ansible_distribution_release}}-backports main restricted universe multiverse - - deb http://archive.ubuntu.com/ubuntu/ {{ansible_distribution_release}} main restricted universe multiverse - -- name: Installing required software - apt: - name: "{{ item }}" - state: present - with_items: - - build-essentials - - python-selinux - - libpcap-dev diff --git a/resources/ansible_roles/qtip-deps/tasks/main.yml b/resources/ansible_roles/qtip-deps/tasks/main.yml deleted file mode 100644 index 3e885796..00000000 --- a/resources/ansible_roles/qtip-deps/tasks/main.yml +++ /dev/null @@ -1,23 +0,0 @@ -############################################################################## -# Copyright (c) 2017 ZTE Corporation 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 -############################################################################## - ---- -- include: redhat.yml - when: ansible_os_family == "RedHat" - -- include: debian.yml - when: ansible_os_family == "Debian" - -- name: Installing required packages - package: - name: "{{ item }}" - state: present - with_items: - - rsync - - git diff --git a/resources/ansible_roles/qtip-deps/tasks/redhat.yml b/resources/ansible_roles/qtip-deps/tasks/redhat.yml deleted file mode 100644 index 6a53aacf..00000000 --- a/resources/ansible_roles/qtip-deps/tasks/redhat.yml +++ /dev/null @@ -1,24 +0,0 @@ -############################################################################## -# Copyright (c) 2017 ZTE Corporation 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 -############################################################################## - ---- -- name: Installing epel release - yum: - name: epel-release - state: present - -- name: Installing required packages - yum: - name: "{{ item }}" - state: present - with_items: - - "@Development tools" - - gcc-c++ - - libselinux-python - - libpcap-devel diff --git a/resources/ansible_roles/qtip-workspace/files/defaults/run.yml b/resources/ansible_roles/qtip-workspace/files/defaults/run.yml index 31969281..b76e4573 100644 --- a/resources/ansible_roles/qtip-workspace/files/defaults/run.yml +++ b/resources/ansible_roles/qtip-workspace/files/defaults/run.yml @@ -8,74 +8,38 @@ ############################################################################## --- -# Execute compute benchmark plan and collect data -# - system information -# - test condition -# - performance metrics - hosts: localhost - tasks: - - name: setting result directory name - set_fact: - qtip_results_base: "{{ qtip_results }}/{{ pod_name }}-{{ lookup('pipe', 'date +%Y%m%d-%H%M') }}" -- hosts: compute - - pre_tasks: - - - name: check ssh connection - ping: + roles: + # prepare local environment + - { role: qtip, tasks: setup-local } - - name: overriding result directory name - set_fact: - qtip_results: "{{ hostvars['localhost']['qtip_results_base']}}/{{ inventory_hostname }}" - - name: create result directory - file: - path: "{{ qtip_results }}" - state: directory - delegate_to: localhost +- hosts: compute roles: - - qtip-deps - - tags: [setup] + # prepare environment + - { role: qtip, tasks: setup-node } - hosts: compute roles: - + # run test and collect metrics - { role: inxi, tags: [inxi, sysinfo] } - { role: unixbench, tags: [unixbench, float, int] } - { role: openssl, tags: [openssl, ssl]} - { role: nDPI, tags: [ndpi, dpi]} - { role: ramspeed, tags: [ramspeed, mem]} - - post_tasks: - - name: calculate QPI of compute - calculate: - metrics: - ssl_rsa: "{{ ssl_rsa_metrics }}" - spec: "{{ qtip_resources }}/QPI/compute.yaml" - register: qpi_result - delegate_to: localhost - tags: [qpi] + # calculate scores + - { role: qtip, tasks: calculate} - hosts: localhost - pre_tasks: - - - name: aggregate QPI results from all tested nodes - aggregate: - group: compute - register: pod_result - tags: [pod] - - # Generate and publish report - roles: - - role: opnfv-testapi - action: report - when: testapi_url is defined + # aggregate results and produce report + - { role: qtip, tasks: aggregate } + # publish results + - { role: opnfv-testapi, tasks: report, when: testapi_url is defined} diff --git a/resources/ansible_roles/qtip-workspace/files/defaults/setup.yml b/resources/ansible_roles/qtip-workspace/files/defaults/setup.yml index 5b4677e9..a522d67b 100644 --- a/resources/ansible_roles/qtip-workspace/files/defaults/setup.yml +++ b/resources/ansible_roles/qtip-workspace/files/defaults/setup.yml @@ -8,43 +8,10 @@ ############################################################################## # Prepare connection to SUT (System Under Test) -- hosts: fuel-masters - gather_facts: no - tasks: - - name: collect facts of fuel hosts - fuel: - -- hosts: apex-underclouds - gather_facts: no - tasks: - - name: collect overcloud baremetal info - shell: . /root/stackrc && openstack baremetal list --fields instance_uuid properties provision_state --format json - register: baremetal_info - - name: collect overcloud server info - shell: . /root/stackrc && openstack server list --format json - register: server_info - - name: generate inventory - apex_generate_inventory: - baremetal_info: "{{ baremetal_info.stdout | from_json }}" - server_info: "{{ server_info.stdout | from_json }}" +--- -- hosts: - - fuel-masters - - apex-underclouds - tasks: - - name: update inventory file - template: src=templates/hosts dest=./hosts - delegate_to: localhost - - name: update ssh.cfg file - template: src=templates/ssh.cfg dest=./ssh.cfg - delegate_to: localhost - -- hosts: localhost - tasks: - - name: create cache directory - file: - path: "{{ item }}" - state: directory - with_items: - - "{{ qtip_cache }}" +- hosts: [fuel-masters, apex-underclouds] + gather_facts: no + roles: + - { role: qtip, tasks: generate-inventory } diff --git a/resources/ansible_roles/qtip/tasks/aggregate.yml b/resources/ansible_roles/qtip/tasks/aggregate.yml new file mode 100644 index 00000000..659874fe --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/aggregate.yml @@ -0,0 +1,15 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## + +--- + +- name: aggregate results from all tested nodes + aggregate: + group: compute + register: pod_result diff --git a/resources/ansible_roles/qtip/tasks/calculate.yml b/resources/ansible_roles/qtip/tasks/calculate.yml new file mode 100644 index 00000000..aae4b453 --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/calculate.yml @@ -0,0 +1,18 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## + +--- + +- name: calculate compute score + calculate: + metrics: + ssl_rsa: "{{ ssl_rsa_metrics }}" + spec: "{{ qtip_resources }}/QPI/compute.yaml" + register: qpi_result + delegate_to: localhost diff --git a/resources/ansible_roles/qtip/tasks/gather-facts-apex.yml b/resources/ansible_roles/qtip/tasks/gather-facts-apex.yml new file mode 100644 index 00000000..f7112554 --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/gather-facts-apex.yml @@ -0,0 +1,23 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## + +--- + +- name: gathering overcloud baremetal info + shell: . /root/stackrc && openstack baremetal list --fields instance_uuid properties provision_state --format json + register: baremetal_info + +- name: gathering overcloud server info + shell: . /root/stackrc && openstack server list --format json + register: server_info + +- name: generating inventory + apex_generate_inventory: + baremetal_info: "{{ baremetal_info.stdout | from_json }}" + server_info: "{{ server_info.stdout | from_json }}" diff --git a/resources/ansible_roles/qtip/tasks/gather-facts-fuel.yml b/resources/ansible_roles/qtip/tasks/gather-facts-fuel.yml new file mode 100644 index 00000000..cd3e75e7 --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/gather-facts-fuel.yml @@ -0,0 +1,13 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## + +--- + +- name: gathering facts of fuel slave nodes + fuel: diff --git a/resources/ansible_roles/qtip/tasks/generate-inventory.yml b/resources/ansible_roles/qtip/tasks/generate-inventory.yml new file mode 100644 index 00000000..f19b0447 --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/generate-inventory.yml @@ -0,0 +1,21 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## + +# Common tasks for installer master setup + +--- + +- include: "gather-facts-{{ installer }}.yml" + +- name: generating inventory file + template: src=templates/hosts dest=./hosts + delegate_to: localhost +- name: generating ssh.cfg file + template: src=templates/ssh.cfg dest=./ssh.cfg + delegate_to: localhost diff --git a/resources/ansible_roles/qtip/tasks/install-deps-debian.yml b/resources/ansible_roles/qtip/tasks/install-deps-debian.yml new file mode 100644 index 00000000..d71a984e --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/install-deps-debian.yml @@ -0,0 +1,33 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## + +--- +- name: installing software properties common + apt: + name: "{{ item }}" + state: present + with_items: + - software-properties-common + +- name: adding ubuntu backport main repo + apt_repository: + repo: "{{ item }}" + state: present + with_items: + - deb http://archive.ubuntu.com/ubuntu/ {{ansible_distribution_release}}-backports main restricted universe multiverse + - deb http://archive.ubuntu.com/ubuntu/ {{ansible_distribution_release}} main restricted universe multiverse + +- name: installing dependencies + apt: + name: "{{ item }}" + state: present + with_items: + - build-essentials + - python-selinux + - libpcap-dev diff --git a/resources/ansible_roles/qtip/tasks/install-deps-redhat.yml b/resources/ansible_roles/qtip/tasks/install-deps-redhat.yml new file mode 100644 index 00000000..32df3a41 --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/install-deps-redhat.yml @@ -0,0 +1,24 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## + +--- +- name: installing epel release + yum: + name: epel-release + state: present + +- name: installing dependencis + yum: + name: "{{ item }}" + state: present + with_items: + - "@Development tools" + - gcc-c++ + - libselinux-python + - libpcap-devel diff --git a/resources/ansible_roles/qtip/tasks/install-deps.yml b/resources/ansible_roles/qtip/tasks/install-deps.yml new file mode 100644 index 00000000..f48c5191 --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/install-deps.yml @@ -0,0 +1,19 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## + +--- +- include: "install-deps-{{ ansible_os_family|lower }}.yml" + +- name: installing dependencies + package: + name: "{{ item }}" + state: present + with_items: + - rsync + - git diff --git a/resources/ansible_roles/qtip/tasks/main.yml b/resources/ansible_roles/qtip/tasks/main.yml new file mode 100644 index 00000000..270ffb59 --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/main.yml @@ -0,0 +1,12 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## + +--- + +- include: "{{ tasks }}.yml" diff --git a/resources/ansible_roles/qtip/tasks/setup-local.yml b/resources/ansible_roles/qtip/tasks/setup-local.yml new file mode 100644 index 00000000..add58b3e --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/setup-local.yml @@ -0,0 +1,21 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## + +--- + +- name: setting result directory name + set_fact: + qtip_results_base: "{{ qtip_results }}/{{ pod_name }}-{{ lookup('pipe', 'date +%Y%m%d-%H%M') }}" + +- name: create cache directory + file: + path: "{{ item }}" + state: directory + with_items: + - "{{ qtip_cache }}" diff --git a/resources/ansible_roles/qtip/tasks/setup-node.yml b/resources/ansible_roles/qtip/tasks/setup-node.yml new file mode 100644 index 00000000..b40cc625 --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/setup-node.yml @@ -0,0 +1,22 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation 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 +############################################################################## + +--- + +- name: overriding result directory name + set_fact: + qtip_results: "{{ hostvars['localhost']['qtip_results_base']}}/{{ inventory_hostname }}" + +- name: create result directory + file: + path: "{{ qtip_results }}" + state: directory + delegate_to: localhost + +- include: install-deps.yml -- cgit 1.2.3-korg