heat_template_version: 2013-05-23 description: Meghdoot Test App parameters: Pool_Name: type: string label: Floating IP Pool description: Floating IP Pool Range from which the instance will get assigned default: asifpub SSH_Key: type: string label: SSH Key description: Public key from the machine from which you'd like to access the instance default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDREkH6Q5tsjPYZ1F9zVTuvOC2zWidftq2ntCw6sLWy9j7sSuHM3mxyP7S5O2oE+pKerBtYieUQDKFo50wB/YRh4BY0aNYSuygQFgjjLDh9IE2HF1JAkfBbRl5rJGVuQtUPUGaldRsZ8KsQauh29jKkFu7N/ZRUI4LrCUb6+pxBt7Np7bNlGxx+5l6EyHkW3kmq5wLEKIYYIqrl71BtMFiFwxHsDpMJonCfKD1aAI0Q+zySJfiAhFkojpLJw7fZhdYTD6B1mDAr5nYKaWcZoG8uuWqJvmlLpcc+oSEnoJMqTVGmVRih1hzXgwRW3Z4vlFqjrQ+p7VnmEuZAwUOJFIgB archoud@thoughtworks.com Image_Name: type: string label: Image Name or ID description: An Ubuntu Cloud Image image already uploaded to OpenStack default: a2aad0e8-0c68-4eac-a22f-ae23d7cc7bf2 resources: mango_app_init: type: OS::Heat::CloudConfig properties: cloud_config: users: - name: ubuntu sudo: ALL=(ALL) NOPASSWD:ALL ssh-authorized-keys: - { get_param: SSH_Key } mango_db_script: type: OS::Heat::SoftwareConfig properties: config: | #!/bin/sh apt-get install -y mongodb-server sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mongodb.conf sudo service mongodb restart mango_app_script: type: OS::Heat::SoftwareConfig properties: config: | #!/bin/sh apt-get install -y git apt-get install -y nodejs-legacy cd /home/ubuntu git clone https://github.com/asifrc/meghdoot-test-app.git meghdoot-test-app/node_modules/.bin/forever start meghdoot-test-app/bin/www sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000 mango_app: type: OS::Heat::MultipartMime properties: parts: - config: { get_resource: mango_app_init } - config: { get_resource: mango_db_script } - config: { get_resource: mango_app_script } mango_db: type: OS::Heat::MultipartMime properties: parts: - config: { get_resource: mango_app_init } - config: { get_resource: mango_db_script } mango_flavor: type: OS::Nova::Flavor properties: ram: 2048 vcpus: 1 disk: 5 mango_keypair: type: OS::Nova::KeyPair properties: name: mango_from_box1 public_key: { get_param: SSH_Key } mango_instance: type: OS::Nova::Server depends_on: [ mango_flavor, mango_keypair ] properties: name: meghdoot_instance flavor: { get_resource: mango_flavor } image: { get_param: Image_Name } key_name: { get_resource: mango_keypair } user_data_format: RAW user_data: get_resource: mango_app mango_instance_db: type: OS::Nova::Server depends_on: [ mango_flavor, mango_keypair ] properties: name: meghdoot_db_instance flavor: { get_resource: mango_flavor } image: { get_param: Image_Name } key_name: { get_resource: mango_keypair } user_data_format: RAW user_data: get_resource: mango_db mango_floatingip: type: OS::Nova::FloatingIP properties: pool: { get_param: Pool_Name } mango_ip_assoc: type: OS::Nova::FloatingIPAssociation depends_on: [ mango_instance ] properties: floating_ip: { get_resource: mango_floatingip } server_id: { get_resource: mango_instance }