diff options
Diffstat (limited to 'reference_templates/centos_vm.yaml-template')
-rw-r--r-- | reference_templates/centos_vm.yaml-template | 243 |
1 files changed, 243 insertions, 0 deletions
diff --git a/reference_templates/centos_vm.yaml-template b/reference_templates/centos_vm.yaml-template new file mode 100644 index 0000000..aa3bdb4 --- /dev/null +++ b/reference_templates/centos_vm.yaml-template @@ -0,0 +1,243 @@ +# -*- indent-tabs-mode: nil -*- # vi: set expandtab: +# +# ============LICENSE_START========================================== +# org.onap.dcae +# =================================================================== +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# =================================================================== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END============================================ +# +# ECOMP and OpenECOMP are trademarks +# and service marks of AT&T Intellectual Property. +# + +tosca_definitions_version: cloudify_dsl_1_3 + +imports: + - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml + - http://www.getcloudify.org/spec/openstack-plugin/1.4/plugin.yaml + - http://www.getcloudify.org/spec/fabric-plugin/1.4.1/plugin.yaml + - types/dns_types.yaml + - types/sshkey_types.yaml + +inputs: + centos7image_id: + type: string + ubuntu1604image_id: + type: string + flavor_id: + type: string + security_group: + type: string + public_net: + type: string + private_net: + type: string + openstack: {} + keypair: + type: string + location_prefix: + type: string + location_domain: + type: string + key_filename: + type: string + codesource_url: + type: string + codesource_version: + type: string + cname: + type: string + default: dcae-orcl + datacenter: + type: string + vm_init_clmg_00: + type: string + default: |- + #!/bin/sh + set -x + DATACENTER= + vm_init_clmg_01: + type: string + default: | + CONSULVER=0.8.3 + CONSULNAME=consul_${CONSULVER}_linux_amd64 + MYIP=`curl -Ss http://169.254.169.254/2009-04-04/meta-data/local-ipv4` + MYNAME=`hostname` + if [ ! -z "$(echo $MYNAME |grep '.')" ]; then MYNAME="$(echo $MYNAME | cut -f1 -d '.')"; fi + echo >>/etc/hosts + echo $MYIP $MYNAME >>/etc/hosts + mkdir -p /opt/consul/config /opt/consul/data /opt/consul/bin + yum install -y unzip + # Download Consul + curl -Ss https://releases.hashicorp.com/consul/${CONSULVER}/${CONSULNAME}.zip > ${CONSULNAME}.zip + unzip -d /opt/consul/bin ${CONSULNAME}.zip + rm ${CONSULNAME}.zip + chmod +x /opt/consul/bin/consul + cat <<EOF > /opt/consul/config/consul.json + { + "bind_addr" : "0.0.0.0", + "client_addr" : "0.0.0.0", + "data_dir" : "/opt/consul/data", + "datacenter": "$DATACENTER", + "rejoin_after_leave": true, + "http_api_response_headers": { + "Access-Control-Allow-Origin" : "*" + }, + "server": false, + "ui": false, + "enable_syslog": true, + "log_level": "info" + } + EOF + cat <<EOF > /lib/systemd/system/consul.service + [Unit] + Description=Consul + Requires=network-online.target + After=network.target + [Service] + Type=simple + ExecStart=/opt/consul/bin/consul agent -config-dir=/opt/consul/config + ExecReload=/bin/kill -HUP \$MAINPID + [Install] + WantedBy=multi-user.target + EOF + systemctl enable consul + systemctl start consul + yum install -y python-psycopg2 + +node_templates: + key_pair: + type: cloudify.openstack.nodes.KeyPair + properties: + private_key_path: { get_input: key_filename } + use_external_resource: True + resource_id: { get_input: keypair } + openstack_config: &open_conf + get_input: openstack + private_net: + type: cloudify.openstack.nodes.Network + properties: + use_external_resource: True + resource_id: { get_input: private_net } + openstack_config: *open_conf + security_group: + type: cloudify.openstack.nodes.SecurityGroup + properties: + use_external_resource: True + resource_id: { get_input: security_group } + openstack_config: *open_conf + fixedip_vm00: + type: cloudify.openstack.nodes.Port + properties: + port: + extra_dhcp_opts: + - opt_name: 'domain-name' + opt_value: { get_input: location_domain } + openstack_config: *open_conf + relationships: + - type: cloudify.relationships.contained_in + target: private_net + floatingip_vm00: + type: cloudify.openstack.nodes.FloatingIP + properties: + openstack_config: *open_conf + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + args: + floating_network_name: { get_input: public_net } + dns_vm00: + type: ccsdk.nodes.dns.arecord + properties: + fqdn: { concat: [ { get_input: location_prefix }, 'orcl00.', { get_input: location_domain } ] } + openstack: *open_conf + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + args: + ip_addresses: + - { get_attribute: [ floatingip_vm00, floating_ip_address ] } + relationships: + - type: cloudify.relationships.depends_on + target: floatingip_vm00 + dns_cm: + type: ccsdk.nodes.dns.arecord + properties: + fqdn: { concat: [ 'cloudify-manager-', { get_input: datacenter}, '.', { get_input: location_domain } ] } + openstack: *open_conf + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + args: + ip_addresses: + - { get_attribute: [ floatingip_vm00, floating_ip_address ] } + relationships: + - type: cloudify.relationships.depends_on + target: floatingip_vm00 + dns_cname: + type: ccsdk.nodes.dns.cnamerecord + properties: + fqdn: { concat: [ { get_input: cname }, '.', { get_input: location_domain } ] } + openstack: *open_conf + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + args: + cname: { get_property: [ dns_vm00, fqdn ] } + relationships: + - type: cloudify.relationships.depends_on + target: dns_vm00 + host_vm00: + type: cloudify.openstack.nodes.Server + properties: + install_agent: false + image: { get_input: centos7image_id } + flavor: { get_input: flavor_id } + management_network_name: { get_input: private_net } + openstack_config: *open_conf + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + args: + name: { concat: [ { get_input: location_prefix }, 'orcl00' ] } + userdata: + concat: + - { get_input: vm_init_clmg_00 } + - { get_input: datacenter } + - |+ + + - { get_input: vm_init_clmg_01 } + relationships: + - type: cloudify.openstack.server_connected_to_port + target: fixedip_vm00 + - type: cloudify.openstack.server_connected_to_security_group + target: security_group + - type: cloudify.openstack.server_connected_to_floating_ip + target: floatingip_vm00 + - type: cloudify.openstack.server_connected_to_keypair + target: key_pair + - type: cloudify.relationships.depends_on + target: dns_vm00 + - type: cloudify.relationships.depends_on + target: dns_cm + +outputs: + public_ip: + value: { get_attribute: [floatingip_vm00, floating_ip_address] } |