aboutsummaryrefslogtreecommitdiffstats
path: root/resources
diff options
context:
space:
mode:
Diffstat (limited to 'resources')
-rw-r--r--resources/ansible_roles/ceph-info/tasks/main.yml6
-rw-r--r--resources/ansible_roles/openstack/defaults/main.yml10
-rw-r--r--resources/ansible_roles/openstack/tasks/main.yml99
-rw-r--r--resources/ansible_roles/openstack/templates/heat_template.yml70
-rw-r--r--resources/ansible_roles/openstack/templates/hosts.j217
-rw-r--r--resources/ansible_roles/openstack/templates/ssh.cfg.j211
-rw-r--r--resources/ansible_roles/opnfv-testapi/tasks/main.yml2
-rw-r--r--resources/ansible_roles/opnfv-testapi/tasks/report.yml2
-rw-r--r--resources/ansible_roles/qtip-generator/defaults/main.yml4
-rw-r--r--resources/ansible_roles/qtip-generator/files/compute/group_vars/all.yml4
-rw-r--r--resources/ansible_roles/qtip-generator/files/compute/heat_template.yml101
-rw-r--r--resources/ansible_roles/qtip-generator/files/compute/host_vars/localhost.yml6
-rw-r--r--resources/ansible_roles/qtip-generator/files/compute/run.yml16
-rw-r--r--resources/ansible_roles/qtip-generator/files/compute/setup.yml15
-rw-r--r--resources/ansible_roles/qtip-generator/files/compute/teardown.yml4
-rw-r--r--resources/ansible_roles/qtip-generator/files/doctor/group_vars/all.yml9
-rw-r--r--resources/ansible_roles/qtip/tasks/generate-inventory.yml2
-rw-r--r--resources/ansible_roles/qtip/tasks/install-deps.yml2
-rw-r--r--resources/ansible_roles/qtip/tasks/main.yml2
-rw-r--r--resources/ansible_roles/qtip/tasks/setup-node.yml2
20 files changed, 291 insertions, 93 deletions
diff --git a/resources/ansible_roles/ceph-info/tasks/main.yml b/resources/ansible_roles/ceph-info/tasks/main.yml
index 04cc859c..cb10b4c1 100644
--- a/resources/ansible_roles/ceph-info/tasks/main.yml
+++ b/resources/ansible_roles/ceph-info/tasks/main.yml
@@ -9,6 +9,6 @@
---
-- include: cache.yml
-- include: disk.yml
-- include: network.yml
+- import_tasks: cache.yml
+- import_tasks: disk.yml
+- import_tasks: network.yml
diff --git a/resources/ansible_roles/openstack/defaults/main.yml b/resources/ansible_roles/openstack/defaults/main.yml
index 3b83d6c0..261504ea 100644
--- a/resources/ansible_roles/openstack/defaults/main.yml
+++ b/resources/ansible_roles/openstack/defaults/main.yml
@@ -9,9 +9,11 @@
---
+image_url: https://cloud-images.ubuntu.com/releases/16.04/release-20180222/ubuntu-16.04-server-cloudimg-amd64-disk1.img
+checksum: 027b3e9d219f0f6c17b5448ed67dc41e
+temp_dir: /tmp/qtip
+
+flavor_name: qtip_flavor
stack_name: qtip_stack
image_name: qtip_image
-flavor_name: m1.large
-net_name: qtip_net
-subnet_name: qtip_subnet
-instance_name: qtip_vm \ No newline at end of file
+ansible_user: ubuntu
diff --git a/resources/ansible_roles/openstack/tasks/main.yml b/resources/ansible_roles/openstack/tasks/main.yml
index f4d3d18c..57942260 100644
--- a/resources/ansible_roles/openstack/tasks/main.yml
+++ b/resources/ansible_roles/openstack/tasks/main.yml
@@ -1,6 +1,6 @@
##############################################################################
-# Copyright (c) 2017 ZTE Corporation and others.
-# taseer94@gmail.com
+# Copyright (c) 2018 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
@@ -9,14 +9,97 @@
---
+- name: Delete QTIP stack
+ os_stack:
+ name: "{{ stack_name }}"
+ state: absent
+
+- name: Delete QTIP keypair
+ os_keypair:
+ name: QtipKey
+ state: absent
+
+- name: Delete QTIP flavor
+ os_nova_flavor:
+ name: "{{ flavor_name }}"
+ state: absent
+
+- name: Delete qtip image
+ os_image:
+ name: "{{ image_name }}"
+ state: absent
+
+- name: Create temp directory for QTIP
+ file:
+ path: "{{ temp_dir }}"
+ state: directory
+
+- name: Clean the existing SSH keypair
+ file:
+ state: absent
+ path: "{{ temp_dir }}/{{ item }}"
+ with_items:
+ - QtipKey.pub
+ - QtipKey
+
+- name: Generate a SSH key for QTIP VM
+ shell: ssh-keygen -t rsa -N "" -f "{{ temp_dir }}/QtipKey" -q
+
+- name: Create QTIP keypair
+ os_keypair:
+ name: QtipKey
+ public_key_file: "{{ temp_dir }}/QtipKey.pub"
+ state: present
+
+- name: Create QTIP flavor
+ os_nova_flavor:
+ name: "{{ flavor_name }}"
+ ram: 2048
+ vcpus: 3
+ disk: 4
+ state: present
+
+- name: Download image as qtip image
+ get_url:
+ url: "{{ image_url }}"
+ dest: "{{ temp_dir }}/{{ image_name }}.img"
+ checksum: "md5:{{ checksum }}"
+ when: image_url | search("https://")
+
+- name: Upload qtip image
+ os_image:
+ name: "{{ image_name }}"
+ container_format: bare
+ disk_format: qcow2
+ state: present
+ filename: "{{ temp_dir }}/{{ image_name }}.img"
+
- name: create qtip stack
os_stack:
name: "{{ stack_name }}"
state: present
- template: heat_template.yml
+ template: "{{ heat_template }}"
parameters:
- image_name: "{{ image_name }}"
- flavor_name: "{{ flavor_name }}"
- net_name: "{{ net_name }}"
- subnet_name: "{{ subnet_name }}"
- instance_name: "{{ inst_name }}"
+ image: "{{ image_name }}"
+ flavor: "{{ flavor_name }}"
+ keypair: QtipKey
+ external_network: "{{ external_network }}"
+ register: stack
+
+- name: Wait 600s for vm connection to become reachable/usable
+ wait_for:
+ host: "{{ item.output_value }}"
+ port: 22
+ timeout: 600
+ search_regex: OpenSSH
+ with_items: "{{ stack.stack.outputs }}"
+
+- name: generating inventory file
+ template:
+ src: hosts.j2
+ dest: ./hosts
+
+- name: generating ssh.cfg
+ template:
+ src: ssh.cfg.j2
+ dest: ./ssh.cfg
diff --git a/resources/ansible_roles/openstack/templates/heat_template.yml b/resources/ansible_roles/openstack/templates/heat_template.yml
deleted file mode 100644
index ed5a3ab7..00000000
--- a/resources/ansible_roles/openstack/templates/heat_template.yml
+++ /dev/null
@@ -1,70 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 ZTE Corporation and others.
-# taseer94@gmail.com
-# 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
-##############################################################################
-
----
-
-heat_template_version: 2015-04-30
-
-description: Simple template to deploy a single compute instance
-
-parameters:
- image_name:
- type: string
- label: Image ID
- description: Image to be used for compute instance
- default: Ubuntu 16.04 x86_64
- flavor_name:
- type: string
- label: Instance Type
- description: Type of instance (flavor) to be used
- default: m1.large
- net_name:
- type: string
- label: Test network name
- description: The name of the stack's network
- default: qtip_net
- subnet_name:
- type: string
- label: Test subnet name
- description: The name of the stack's subnet
- default: qtip_subnet
- instance_name:
- type: string
- label: Test VM name
- description: The name of the spawned vm
- default: qtip_vm
-
-resources:
- private_net:
- type: OS::Neutron::Net
- properties:
- name: { get_param: net_name }
-
- private_subnet:
- type: OS::Neutron::Subnet
- properties:
- name: { get_param: subnet_name }
- network_id: { get_resource: private_net }
- cidr: 10.0.0.0/24
-
- server1_port:
- type: OS::Neutron::Port
- properties:
- network_id: { get_resource: private_net }
- fixed_ips:
- - subnet_id: { get_resource: private_subnet }
-
- my_instance:
- type: OS::Nova::Server
- properties:
- name: { get_param: inst_name }
- image: { get_param: image_name }
- flavor: { get_param: flavor_name }
- networks:
- - port: { get_resource: server1_port }
diff --git a/resources/ansible_roles/openstack/templates/hosts.j2 b/resources/ansible_roles/openstack/templates/hosts.j2
new file mode 100644
index 00000000..6756d2a2
--- /dev/null
+++ b/resources/ansible_roles/openstack/templates/hosts.j2
@@ -0,0 +1,17 @@
+localhost ansible_connection=local
+
+[SUT:children]
+compute
+
+[node-groups:children]
+compute
+
+[node-groups:vars]
+ansible_ssh_common_args=-F ./ssh.cfg
+
+[compute]
+{% for item in stack.stack.outputs %}
+{% if item.output_key == 'instance_ip' %}
+{{item.output_value}}
+{% endif %}
+{% endfor %}
diff --git a/resources/ansible_roles/openstack/templates/ssh.cfg.j2 b/resources/ansible_roles/openstack/templates/ssh.cfg.j2
new file mode 100644
index 00000000..c0a1f94e
--- /dev/null
+++ b/resources/ansible_roles/openstack/templates/ssh.cfg.j2
@@ -0,0 +1,11 @@
+# Connect to target node
+
+{% for item in stack.stack.outputs %}
+{% if item.output_key == 'instance_ip' %}
+Host {{ item.output_value }}
+ HostName {{ item.output_value }}
+ User {{ ansible_user }}
+ IdentityFile {{ temp_dir }}/QtipKey
+{% endif %}
+
+{% endfor %}
diff --git a/resources/ansible_roles/opnfv-testapi/tasks/main.yml b/resources/ansible_roles/opnfv-testapi/tasks/main.yml
index 270ffb59..334e06f4 100644
--- a/resources/ansible_roles/opnfv-testapi/tasks/main.yml
+++ b/resources/ansible_roles/opnfv-testapi/tasks/main.yml
@@ -9,4 +9,4 @@
---
-- include: "{{ tasks }}.yml"
+- include_tasks: "{{ tasks }}.yml"
diff --git a/resources/ansible_roles/opnfv-testapi/tasks/report.yml b/resources/ansible_roles/opnfv-testapi/tasks/report.yml
index 0633eafb..6db3a785 100644
--- a/resources/ansible_roles/opnfv-testapi/tasks/report.yml
+++ b/resources/ansible_roles/opnfv-testapi/tasks/report.yml
@@ -21,7 +21,7 @@
project_name: "{{ project_name }}"
case_name: "{{ case_name }}"
pod_name: "{{ pod_name }}"
- installer: "{{ installer_type }}"
+ installer: "{{ installer_type_adapter[installer_type] }}"
version: "{{ version }}"
scenario: "{{ scenario }}"
start_date: "{{ ansible_date_time.date }}"
diff --git a/resources/ansible_roles/qtip-generator/defaults/main.yml b/resources/ansible_roles/qtip-generator/defaults/main.yml
index 344feb54..6665d11f 100644
--- a/resources/ansible_roles/qtip-generator/defaults/main.yml
+++ b/resources/ansible_roles/qtip-generator/defaults/main.yml
@@ -16,6 +16,10 @@ installer_group:
apex: apex-underclouds
mcp: salt-master
+network_group:
+ mcp: floating_net
+ apex: external
+
project_name: 'qtip-project'
project_template: 'compute'
diff --git a/resources/ansible_roles/qtip-generator/files/compute/group_vars/all.yml b/resources/ansible_roles/qtip-generator/files/compute/group_vars/all.yml
index efb2bdb7..1b34fd69 100644
--- a/resources/ansible_roles/qtip-generator/files/compute/group_vars/all.yml
+++ b/resources/ansible_roles/qtip-generator/files/compute/group_vars/all.yml
@@ -21,3 +21,7 @@ installer_group:
fuel: fuel-masters
apex: apex-underclouds
mcp: salt-master
+
+network_group:
+ mcp: floating_net
+ apex: external
diff --git a/resources/ansible_roles/qtip-generator/files/compute/heat_template.yml b/resources/ansible_roles/qtip-generator/files/compute/heat_template.yml
new file mode 100644
index 00000000..cb67e624
--- /dev/null
+++ b/resources/ansible_roles/qtip-generator/files/compute/heat_template.yml
@@ -0,0 +1,101 @@
+##############################################################################
+# Copyright (c) 2018 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
+##############################################################################
+heat_template_version: 2015-04-30
+
+description: >
+ Used to run VMs for QTIP
+
+parameters:
+ image:
+ type: string
+ description: Name of the image
+ default: qtip_image
+
+ flavor:
+ type: string
+ description: Name of flavor
+ default: qtip_flavor
+
+ keypair:
+ type: string
+ description: Name of keypair
+ default: QtipKey
+
+ external_network:
+ type: string
+ description: Name of the external network
+
+resources:
+
+ network:
+ type: OS::Neutron::Net
+ properties:
+ name: qtip_net
+
+ subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ name: qtip_subnet
+ ip_version: 4
+ cidr: 192.168.0.0/24
+ network: { get_resource: network }
+ dns_nameservers: [8.8.8.8]
+
+ management_router:
+ type: OS::Neutron::Router
+ properties:
+ name: qtip_router
+ external_gateway_info:
+ network: { get_param: external_network }
+
+ management_router_interface:
+ type: OS::Neutron::RouterInterface
+ properties:
+ router: { get_resource: management_router }
+ subnet: { get_resource: subnet }
+
+ floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network: { get_param: external_network }
+
+ floating_ip_association:
+ type: OS::Nova::FloatingIPAssociation
+ properties:
+ floating_ip: { get_resource: floating_ip }
+ server_id: { get_resource: qtip_instance }
+
+ security_group:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ name: qtip_security_group
+ rules:
+ - port_range_min: 22
+ port_range_max: 5201
+ protocol: tcp
+ - port_range_min: 22
+ port_range_max: 5201
+ protocol: udp
+ - protocol: icmp
+
+ qtip_instance:
+ type: OS::Nova::Server
+ depends_on: [subnet]
+ properties:
+ name: { get_param: "OS::stack_name" }
+ image: { get_param: image }
+ flavor: { get_param: flavor }
+ key_name: { get_param: keypair }
+ security_groups: [{ get_resource: security_group }]
+ networks:
+ - network: { get_resource: network }
+outputs:
+ instance_ip:
+ description: The IP address of the instance
+ value: { get_attr: [floating_ip, floating_ip_address] }
diff --git a/resources/ansible_roles/qtip-generator/files/compute/host_vars/localhost.yml b/resources/ansible_roles/qtip-generator/files/compute/host_vars/localhost.yml
index cc587c69..7f339045 100644
--- a/resources/ansible_roles/qtip-generator/files/compute/host_vars/localhost.yml
+++ b/resources/ansible_roles/qtip-generator/files/compute/host_vars/localhost.yml
@@ -14,3 +14,9 @@ case_name: "{{ case_name|default('compute') }}"
pod_name: "{{ pod_name|default('qtip-pod') }}"
scenario: "{{ scenario|default('generic') }}"
version: "{{ lookup('env','OPNFV_RELEASE')|default('master') }}"
+
+installer_type_adapter:
+ fuel: fuel
+ mcp: fuel
+ apex: apex
+ manual: manual \ No newline at end of file
diff --git a/resources/ansible_roles/qtip-generator/files/compute/run.yml b/resources/ansible_roles/qtip-generator/files/compute/run.yml
index f8e71f0c..c166e488 100644
--- a/resources/ansible_roles/qtip-generator/files/compute/run.yml
+++ b/resources/ansible_roles/qtip-generator/files/compute/run.yml
@@ -18,6 +18,22 @@
- hosts: SUT
+{% if sut == 'vnf' %}
+ gather_facts: no
+ pre_tasks:
+
+ - name: check whether install python 2.x in remote target
+ become: yes
+ raw: test -e /usr/bin/python || (apt-get -y update && apt-get install -y python-minimal)
+ register: rs
+ # Sometimes vm's network is not ready, have to give some attempts to install packages
+ until: rs.stdout.find("Setting up python-minimal") != -1
+ retries: 10
+ delay: 10
+ - name: gather facts
+ setup:
+{% endif %}
+
roles:
# prepare environment
- { role: qtip, tasks: setup-node, tags: [setup] }
diff --git a/resources/ansible_roles/qtip-generator/files/compute/setup.yml b/resources/ansible_roles/qtip-generator/files/compute/setup.yml
index f5920c1f..c3e8f58e 100644
--- a/resources/ansible_roles/qtip-generator/files/compute/setup.yml
+++ b/resources/ansible_roles/qtip-generator/files/compute/setup.yml
@@ -10,13 +10,24 @@
# Prepare connection to SUT (System Under Test)
---
+
+{% if sut == 'vnf' %}
+- hosts: localhost
+ gather_facts: no
+ roles:
+ - { role: openstack, external_network: {{ network_group[installer_type] }}, heat_template: heat_template.yml }
+
+{% elif sut == 'node' %}
+
{% if installer_type == 'manual' %}
- hosts: localhost
gather_facts: no
tasks:
- - debug: "msg='please add hosts to SUT group in `hosts` file manually.'"
+ - debug: "msg='please add hosts to SUT group in `hosts` file manually.'"
+
{% else %}
- hosts: [{{ installer_group[installer_type] }}]
roles:
- - { role: qtip, tasks: generate-inventory }
+ - { role: qtip, tasks: generate-inventory }
+{% endif %}
{% endif %}
diff --git a/resources/ansible_roles/qtip-generator/files/compute/teardown.yml b/resources/ansible_roles/qtip-generator/files/compute/teardown.yml
index dc659930..e483d7f6 100644
--- a/resources/ansible_roles/qtip-generator/files/compute/teardown.yml
+++ b/resources/ansible_roles/qtip-generator/files/compute/teardown.yml
@@ -7,8 +7,12 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+
- hosts: SUT
roles:
# teardown environment
- { role: qtip, tasks: teardown }
+
+
+
diff --git a/resources/ansible_roles/qtip-generator/files/doctor/group_vars/all.yml b/resources/ansible_roles/qtip-generator/files/doctor/group_vars/all.yml
index 55d5b250..766520b9 100644
--- a/resources/ansible_roles/qtip-generator/files/doctor/group_vars/all.yml
+++ b/resources/ansible_roles/qtip-generator/files/doctor/group_vars/all.yml
@@ -1,3 +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
+##############################################################################
+
{% raw %}
doctor_project: doctor
doctor_user: doctor
diff --git a/resources/ansible_roles/qtip/tasks/generate-inventory.yml b/resources/ansible_roles/qtip/tasks/generate-inventory.yml
index aee25260..8aa36294 100644
--- a/resources/ansible_roles/qtip/tasks/generate-inventory.yml
+++ b/resources/ansible_roles/qtip/tasks/generate-inventory.yml
@@ -11,7 +11,7 @@
---
-- include: "gather-facts-{{ installer_type }}.yml"
+- include_tasks: "gather-facts-{{ installer_type }}.yml"
- name: generating inventory file
template: src=templates/hosts dest=./hosts
diff --git a/resources/ansible_roles/qtip/tasks/install-deps.yml b/resources/ansible_roles/qtip/tasks/install-deps.yml
index e9590f4b..81d054f6 100644
--- a/resources/ansible_roles/qtip/tasks/install-deps.yml
+++ b/resources/ansible_roles/qtip/tasks/install-deps.yml
@@ -8,4 +8,4 @@
##############################################################################
---
-- include: "install-deps-{{ ansible_os_family|lower }}.yml"
+- include_tasks: "install-deps-{{ ansible_os_family|lower }}.yml"
diff --git a/resources/ansible_roles/qtip/tasks/main.yml b/resources/ansible_roles/qtip/tasks/main.yml
index 270ffb59..334e06f4 100644
--- a/resources/ansible_roles/qtip/tasks/main.yml
+++ b/resources/ansible_roles/qtip/tasks/main.yml
@@ -9,4 +9,4 @@
---
-- include: "{{ tasks }}.yml"
+- include_tasks: "{{ tasks }}.yml"
diff --git a/resources/ansible_roles/qtip/tasks/setup-node.yml b/resources/ansible_roles/qtip/tasks/setup-node.yml
index af848f70..1fa7f9c4 100644
--- a/resources/ansible_roles/qtip/tasks/setup-node.yml
+++ b/resources/ansible_roles/qtip/tasks/setup-node.yml
@@ -26,4 +26,4 @@
path: "{{ qtip_workdir }}"
state: directory
-- include: install-deps.yml
+- import_tasks: install-deps.yml