summaryrefslogtreecommitdiffstats
path: root/resources/ansible_roles/openstack
diff options
context:
space:
mode:
Diffstat (limited to 'resources/ansible_roles/openstack')
-rw-r--r--resources/ansible_roles/openstack/defaults/main.yml9
-rw-r--r--resources/ansible_roles/openstack/tasks/main.yml80
-rw-r--r--resources/ansible_roles/openstack/templates/heat_template.yml70
3 files changed, 77 insertions, 82 deletions
diff --git a/resources/ansible_roles/openstack/defaults/main.yml b/resources/ansible_roles/openstack/defaults/main.yml
index 3b83d6c0..830def62 100644
--- a/resources/ansible_roles/openstack/defaults/main.yml
+++ b/resources/ansible_roles/openstack/defaults/main.yml
@@ -9,9 +9,10 @@
---
+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
diff --git a/resources/ansible_roles/openstack/tasks/main.yml b/resources/ansible_roles/openstack/tasks/main.yml
index f4d3d18c..ed043831 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,78 @@
---
+- 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 }}"
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 }