Add role for heat stack creation 97/47397/4
authorTaseer Ahmed <taseer94@gmail.com>
Fri, 17 Nov 2017 07:06:44 +0000 (12:06 +0500)
committerTaseer Ahmed <taseer94@gmail.com>
Mon, 20 Nov 2017 18:43:23 +0000 (23:43 +0500)
JIRA: QTIP-284

Change-Id: I8de67c74fe31d6353f05892df67f21ae9af9640e
Signed-off-by: Taseer Ahmed <taseer94@gmail.com>
resources/ansible_roles/openstack/defaults/main.yml [new file with mode: 0644]
resources/ansible_roles/openstack/tasks/main.yml [new file with mode: 0644]
resources/ansible_roles/openstack/templates/heat_template.yml [new file with mode: 0644]

diff --git a/resources/ansible_roles/openstack/defaults/main.yml b/resources/ansible_roles/openstack/defaults/main.yml
new file mode 100644 (file)
index 0000000..3b83d6c
--- /dev/null
@@ -0,0 +1,17 @@
+##############################################################################
+# 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
+##############################################################################
+
+---
+
+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
new file mode 100644 (file)
index 0000000..f4d3d18
--- /dev/null
@@ -0,0 +1,22 @@
+##############################################################################
+# 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
+##############################################################################
+
+---
+
+- name: create qtip stack
+  os_stack:
+    name: "{{ stack_name }}"
+    state: present
+    template: heat_template.yml
+    parameters:
+      image_name: "{{ image_name }}"
+      flavor_name: "{{ flavor_name }}"
+      net_name: "{{ net_name }}"
+      subnet_name: "{{ subnet_name }}"
+      instance_name: "{{ inst_name }}"
diff --git a/resources/ansible_roles/openstack/templates/heat_template.yml b/resources/ansible_roles/openstack/templates/heat_template.yml
new file mode 100644 (file)
index 0000000..ed5a3ab
--- /dev/null
@@ -0,0 +1,70 @@
+##############################################################################
+# 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 }