You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2016/02/01 18:35:08 UTC

[28/51] [abbrv] brooklyn-dist git commit: add getting started vagrant env to release artifacts - following inclusion of Vagrant as a target in #1144 - previously at https://github.com/johnmccabe/vagrant-brooklyn-getting-started

add getting started vagrant env to release artifacts
- following inclusion of Vagrant as a target in #1144
- previously at https://github.com/johnmccabe/vagrant-brooklyn-getting-started


Project: http://git-wip-us.apache.org/repos/asf/brooklyn-dist/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-dist/commit/e9fd416e
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-dist/tree/e9fd416e
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-dist/diff/e9fd416e

Branch: refs/heads/master
Commit: e9fd416ee2a407eb27bf0454dc47d8f7f09997e7
Parents: fbdd2f7
Author: John McCabe <jo...@johnmccabe.net>
Authored: Thu Jan 21 22:50:59 2016 +0000
Committer: John McCabe <jo...@johnmccabe.net>
Committed: Thu Jan 21 22:50:59 2016 +0000

----------------------------------------------------------------------
 brooklyn-dist/.gitignore                        |   1 +
 brooklyn-dist/pom.xml                           |   1 +
 brooklyn-dist/vagrant/pom.xml                   |  70 ++++
 .../src/main/config/build-distribution.xml      |  33 ++
 .../vagrant/src/main/vagrant/Vagrantfile        |  57 ++++
 .../src/main/vagrant/files/brooklyn.properties  | 325 +++++++++++++++++++
 .../src/main/vagrant/files/brooklyn.service     |  13 +
 .../vagrant/src/main/vagrant/files/logback.xml  |  12 +
 .../vagrant/src/main/vagrant/servers.yaml       |  47 +++
 9 files changed, 559 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/e9fd416e/brooklyn-dist/.gitignore
----------------------------------------------------------------------
diff --git a/brooklyn-dist/.gitignore b/brooklyn-dist/.gitignore
index ed439f2..2ef22e4 100644
--- a/brooklyn-dist/.gitignore
+++ b/brooklyn-dist/.gitignore
@@ -28,5 +28,6 @@ prodDb.*
 brooklyn*.log.*
 
 *brooklyn-persisted-state/
+*.vagrant/
 
 ignored

http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/e9fd416e/brooklyn-dist/pom.xml
----------------------------------------------------------------------
diff --git a/brooklyn-dist/pom.xml b/brooklyn-dist/pom.xml
index a2ecb3a..12ebdd9 100644
--- a/brooklyn-dist/pom.xml
+++ b/brooklyn-dist/pom.xml
@@ -76,6 +76,7 @@
         <module>downstream-parent</module>
         <module>all</module>
         <module>dist</module>
+        <module>vagrant</module>
         <module>archetypes/quickstart</module>
     </modules>
 

http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/e9fd416e/brooklyn-dist/vagrant/pom.xml
----------------------------------------------------------------------
diff --git a/brooklyn-dist/vagrant/pom.xml b/brooklyn-dist/vagrant/pom.xml
new file mode 100644
index 0000000..3fc1844
--- /dev/null
+++ b/brooklyn-dist/vagrant/pom.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <packaging>pom</packaging>
+
+    <artifactId>brooklyn-vagrant</artifactId>
+
+    <name>Brooklyn Vagrant Getting Started Environment</name>
+    <description>
+        Brooklyn Getting Started Vagrant environment archive, includes all required
+        files to start Brooklyn and sample BYON nodes for use.
+    </description>
+
+    <parent>
+        <groupId>org.apache.brooklyn</groupId>
+        <artifactId>brooklyn-dist-root</artifactId>
+        <version>0.9.0-SNAPSHOT</version>  <!-- BROOKLYN_VERSION -->
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>build-distribution-archive</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                        <configuration>
+                            <appendAssemblyId>true</appendAssemblyId>
+                            <descriptors>
+                                <descriptor>src/main/config/build-distribution.xml</descriptor>
+                            </descriptors>
+                          <!-- finalName affects name in `target/` but we cannot influence name when it is attached/installed,
+                               so `apache-` prefix would be lost there. to keep it consistent this is commented out, 
+                               but would be nice to have if there is a way!
+                            <finalName>apache-brooklyn-${project.version}</finalName>
+                          -->
+                            <formats>
+                                <format>tar.gz</format>
+                                <format>zip</format>
+                            </formats>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>

http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/e9fd416e/brooklyn-dist/vagrant/src/main/config/build-distribution.xml
----------------------------------------------------------------------
diff --git a/brooklyn-dist/vagrant/src/main/config/build-distribution.xml b/brooklyn-dist/vagrant/src/main/config/build-distribution.xml
new file mode 100644
index 0000000..823ad2a
--- /dev/null
+++ b/brooklyn-dist/vagrant/src/main/config/build-distribution.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you 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.
+-->
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
+    <id>dist</id>
+    <formats><!-- empty, intended for caller to specify --></formats>
+    <fileSets>
+        <fileSet>
+            <directory>${project.basedir}/src/main/vagrant</directory>
+            <outputDirectory></outputDirectory>
+            <fileMode>0644</fileMode>
+            <directoryMode>0755</directoryMode>
+        </fileSet>
+    </fileSets>
+</assembly>

http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/e9fd416e/brooklyn-dist/vagrant/src/main/vagrant/Vagrantfile
----------------------------------------------------------------------
diff --git a/brooklyn-dist/vagrant/src/main/vagrant/Vagrantfile b/brooklyn-dist/vagrant/src/main/vagrant/Vagrantfile
new file mode 100644
index 0000000..f5f7927
--- /dev/null
+++ b/brooklyn-dist/vagrant/src/main/vagrant/Vagrantfile
@@ -0,0 +1,57 @@
+# -*- mode: ruby -*-
+# # vi: set ft=ruby :
+
+# Specify minimum Vagrant version and Vagrant API version
+Vagrant.require_version ">= 1.8.1"
+VAGRANTFILE_API_VERSION = "2"
+
+# Update OS (Debian/RedHat based only)
+UPDATE_OS_CMD = "(sudo apt-get update && sudo apt-get -y upgrade) || (sudo yum -y update)"
+
+# Require YAML module
+require 'yaml'
+
+# Read YAML file with box details
+yaml_cfg = YAML.load_file(__dir__ + '/servers.yaml')
+
+# Create boxes
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+
+  # Iterate through server entries in YAML file
+  yaml_cfg["servers"].each do |server|
+    config.vm.define server["name"] do |server_config|
+      server_config.vm.box = server["box"]
+
+      server_config.vm.box_check_update = yaml_cfg["default_config"]["check_newer_vagrant_box"]
+
+      if server.has_key?("ip")
+        server_config.vm.network "private_network", ip: server["ip"]
+      end
+
+      if server.has_key?("forwarded_ports")
+        server["forwarded_ports"].each do |ports|
+          server_config.vm.network "forwarded_port", guest: ports["guest"], host: ports["host"], guest_ip: ports["guest_ip"]
+        end
+      end
+
+      server_config.vm.hostname = server["name"]
+      server_config.vm.provider :virtualbox do |vb|
+        vb.name = server["name"]
+        vb.memory = server["ram"]
+        vb.cpus = server["cpus"]
+      end
+
+      if yaml_cfg["default_config"]["run_os_update"]
+        server_config.vm.provision "shell", privileged: false, inline: UPDATE_OS_CMD
+      end
+
+      if server["shell"] && server["shell"]["cmd"]
+        server["shell"]["cmd"].each do |cmd|
+          server_config.vm.provision "shell", privileged: false, inline: cmd, env: server["shell"]["env"]
+        end
+      end
+
+      server_config.vm.post_up_message = server["post_up_message"]
+    end
+  end
+end
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/e9fd416e/brooklyn-dist/vagrant/src/main/vagrant/files/brooklyn.properties
----------------------------------------------------------------------
diff --git a/brooklyn-dist/vagrant/src/main/vagrant/files/brooklyn.properties b/brooklyn-dist/vagrant/src/main/vagrant/files/brooklyn.properties
new file mode 100644
index 0000000..e68f9a6
--- /dev/null
+++ b/brooklyn-dist/vagrant/src/main/vagrant/files/brooklyn.properties
@@ -0,0 +1,325 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+#
+# This is Brooklyn's dot-properties file.
+# It should be located at "~/.brooklyn/brooklyn.properties" for automatic loading,
+# or can be specified as a CLI option with --localProperties /path/to/these.properties.
+
+##################################  Welcome!  ############################################
+
+# It's great to have you here.
+
+# Getting Started options have been pulled to the top. There's a formatting guide at the
+# very bottom.
+
+############################ Getting Started Options  ####################################
+
+## GUI Security
+
+## NOTE: in production it is highly recommended to set this, as otherwise it will not require login,
+## not will it be encrypted (though for safety if security is not set it will only bind to loopback)
+
+## Edit the name(s) and passwords as appropriate to your system:
+
+# brooklyn.webconsole.security.users=admin,bob
+# brooklyn.webconsole.security.user.admin.password=password
+# brooklyn.webconsole.security.user.bob.password=bobsword
+
+## If you prefer to run with https (on port 8443 by default), uncomment this:
+
+# brooklyn.webconsole.security.https.required=true
+
+
+# By default we have AWS set up (but with invalid credentials!).  Many, many other
+# providers are supported.
+
+## Amazon EC2 Credentials
+# These should be an "Access Key ID" and "Secret Access Key" for your account.
+# This is configured at https://console.aws.amazon.com/iam/home?#security_credential .
+
+brooklyn.location.jclouds.aws-ec2.identity = AKA_YOUR_ACCESS_KEY_ID
+brooklyn.location.jclouds.aws-ec2.credential = <access-key-hex-digits>
+
+# Beware of trailing spaces in your cloud credentials. This will cause unexpected
+# 401: unauthorized responses.
+
+## Using Other Clouds
+# 1. Cast your eyes down this document to find your preferred cloud in the Named Locations
+#    section, and the examples.
+# 2. Uncomment the relevant line(s) for your provider.
+# 3. ADD  -.identity and -.credential lines for your provider, similar to the AWS ones above,
+#    replacing 'aws-ec2' with jcloud's id for your cloud.
+
+
+## Deploying to Localhost
+## see: info on locations at brooklyn.io
+#
+## ~/.ssh/id_rsa is Brooklyn's default location
+# brooklyn.location.localhost.privateKeyFile = ~/.ssh/id_rsa
+## Passphrases are supported, but not required
+# brooklyn.location.localhost.privateKeyPassphrase = s3cr3tpassphrase
+
+## Geoscaling Service - used for the Global Web Fabric demo
+## see: the global web example at brooklyn.io
+## https://www.geoscaling.com/dns2/
+## other services may take similar configuration similarly; or can usually be set in YAML
+# brooklyn.geoscaling.username = USERNAME
+# brooklyn.geoscaling.password = PASSWORD
+# brooklyn.geoscaling.primaryDomain = DOMAIN
+
+
+##########################  Getting Started Complete!  ###################################
+
+# That's it, although you may want to read through these options...
+
+################################ Brooklyn Options ########################################
+
+## Brooklyn Management Base Directory: specify where management data should be stored on this server;
+## ~/.brooklyn/ is the default but you could use something like /opt/brooklyn/state/
+## (provided this process has write permissions)
+# brooklyn.base.dir=~/.brooklyn/
+
+## Brooklyn On-Box Directory: specify where data should be stored on managed hosts;
+## for most locations a directory off home is the default (but using /tmp/brooklyn-user/ on localhost),
+## however you could specify something like /opt/brooklyn-managed-process/ (creation and permissions are handled)
+# onbox.base.dir=~/brooklyn-managed-process/
+
+## Additional security: Allow all - if you know what you are doing!
+## (Or you can also plug in e.g. LDAP security etc here)
+# Disabling security on the Vagrant Brooklyn instance for training purposes
+brooklyn.webconsole.security.provider = org.apache.brooklyn.rest.security.provider.AnyoneSecurityProvider
+
+## Optionally disallow deployment to localhost (or any other location)
+# brooklyn.location.localhost.enabled=false
+
+## Scripting Behaviour
+
+## keep scripts around after running them (usually in /tmp)
+# brooklyn.ssh.config.noDeleteAfterExec = true
+
+## Misc Cloud Settings
+## brooklyn will fail a node if the cloud machine doesn't come up, but you can tell it to retry:
+# brooklyn.location.jclouds.machineCreateAttempts = 3
+## many cloud machines don't have sufficient entropy for lots of encrypted networking, so fake it:
+# brooklyn.location.jclouds.installDevUrandom=true
+
+## Sets a minimium ram property for all jclouds locations. Recommended to avoid getting m1.micros on AWS!
+brooklyn.location.jclouds.minRam = 2048
+
+## When setting up a new cloud machine Brooklyn creates a user with the same name as the user running
+## Brooklyn on the management server, but you can force a different user here:
+# brooklyn.location.jclouds.user=brooklyn
+## And you can force a password or key (by default it will use the keys in ~/.ssh/id_rsa{,.pub}
+# brooklyn.location.jclouds.password=s3cr3t
+
+################################ Named Locations ########################################
+
+# Named locations appear in the web console. If using the command line or YAML it may be
+# just as easy to use the jclouds:<provider> locations and specify additional properties there.
+
+## Example: AWS Virginia using Rightscale 6.3 64bit Centos AMI and Large Instances
+# brooklyn.location.named.aws-va-centos-large = jclouds:aws-ec2:us-east-1
+# brooklyn.location.named.aws-va-centos-large.imageId=us-east-1/ami-7d7bfc14
+# brooklyn.location.named.aws-va-centos-large.user=brooklyn
+# brooklyn.location.named.aws-va-centos-large.minRam=4096
+
+## You can also nest these:
+# brooklyn.location.named.aws-acct-two = jclouds:aws-ec2
+# brooklyn.location.named.aws-acct-two.identity = AKA_ACCT_TWO
+# brooklyn.location.named.aws-acct-two.credential = <access-key-hex-digits>
+# brooklyn.location.named.aws-acct-two-singapore = named:aws-acct-two
+# brooklyn.location.named.aws-acct-two-singapore.region = ap-southeast-1
+# brooklyn.location.named.aws-acct-two-singapore.displayName = AWS Singapore (Acct Two)
+
+# For convenience some common defaults:
+brooklyn.location.named.aws-california = jclouds:aws-ec2:us-west-1
+brooklyn.location.named.aws-oregon = jclouds:aws-ec2:us-west-2
+brooklyn.location.named.aws-ireland = jclouds:aws-ec2:eu-west-1
+brooklyn.location.named.aws-tokyo = jclouds:aws-ec2:ap-northeast-1
+
+## Google Compute
+## The credentials for GCE come from the "APIs & auth -> Credentials" page,
+## creating a "Service Account" of type JSON, then extracting
+## the client_email as the identity and private_key as the identity,
+## keeping new lines as \n (exactly as in the JSON supplied)
+# brooklyn.location.jclouds.google-compute-engine.identity=1234567890-somet1mesArand0mU1Dhere@developer.gserviceaccount.com
+# brooklyn.location.jclouds.google-compute-engine.credential=-----BEGIN PRIVATE KEY----- \nMIIblahablahblah \nblahblahblah \n-----END PRIVATE KEY-----
+# brooklyn.location.named.Google\ US = jclouds:google-compute-engine
+# brooklyn.location.named.Google\ US.region=us-central1-a
+# brooklyn.location.named.Google\ EU = jclouds:google-compute-engine
+# brooklyn.location.named.Google\ EU.region=europe-west1-a
+## the following flags for GCE are recommended
+## specify the network to use - otherwise it creates new networks each time and you hit quotas pretty quickly
+## you may have to manually create this network AND enable a firewall rule EG  tcp:1-65535;udp:1-65535;icmp
+## (fix for this is in progress)
+# brooklyn.location.jclouds.google-compute-engine.networkName=brooklyn-default-network
+## gce images have bad entropy, this ensures they have noisy /dev/random (even if the "randomness" is not quite as random)
+# brooklyn.location.jclouds.google-compute-engine.installDevUrandom=true
+## gce images often start with iptables turned on; turn it off unless your blueprints are iptables-aware
+# brooklyn.location.jclouds.google-compute-engine.stopIptables=true
+
+## HP Cloud - also Ubuntu 12.04 LTS
+## You specify your HP Credentials like this:
+# brooklyn.location.jclouds.hpcloud-compute.identity = projectname:username
+# brooklyn.location.jclouds.hpcloud-compute.credential = password
+## where username and password are the same as logging in to the web console, and
+## projectname can be found here: https://account.hpcloud.com/projects
+#�brooklyn.location.named.HP\ Cloud\ Arizona-1 = jclouds:hpcloud-compute:az-1.region-a.geo-1
+# brooklyn.location.named.HP\ Cloud\ Arizona-1.imageId = az-1.region-a.geo-1/75845
+# brooklyn.location.named.HP\ Cloud\ Arizona-1.user = ubuntu
+
+## Softlayer - need a key from the gui, under "administrative -> user administration -> api-access
+# brooklyn.location.jclouds.softlayer.identity=username
+# brooklyn.location.jclouds.softlayer.credential=<private-key-hex-digits>
+## locations
+# brooklyn.location.named.Softlayer\ Dallas=jclouds:softlayer:dal05
+# brooklyn.location.named.Softlayer\ Seattle=jclouds:softlayer:sea01
+# brooklyn.location.named.Softlayer\ Washington\ DC=jclouds:softlayer:wdc01
+# brooklyn.location.named.Softlayer\ Singapore\ 1=jclouds:softlayer:sng01
+# brooklyn.location.named.Softlayer\ Amsterdam\ 1=jclouds:softlayer:ams01
+
+
+## Brooklyn uses the jclouds multi-cloud library to access many clouds.
+## http://www.jclouds.org/documentation/reference/supported-providers/
+
+## Templates for many other clouds, but remember to add identity and credentials:
+
+# brooklyn.location.named.Bluelock = jclouds:bluelock-vcloud-zone01
+
+# brooklyn.location.named.CloudSigma\ Nevada = jclouds:cloudsigma-lvs
+# brooklyn.location.named.CloudSigma\ Zurich = jclouds:cloudsigma-zrh
+
+# brooklyn.location.named.ElasticHosts\ London = jclouds:elastichosts-lon-p
+# brooklyn.location.named.ElasticHosts\ Texas = jclouds:elastichosts-sat-p
+
+# brooklyn.location.named.GleSYS = jclouds:glesys
+
+# brooklyn.location.named.Go2Cloud = jclouds:go2cloud-jhb1
+
+# brooklyn.location.named.GoGrid = jclouds:gogrid
+
+# brooklyn.location.named.Green\ House\ Data = jclouds:greenhousedata-element-vcloud
+
+# brooklyn.location.named.Ninefold = jclouds:ninefold-compute
+
+# brooklyn.location.named.OpenHosting = jclouds:openhosting-east1
+
+# brooklyn.location.named.Rackspace\ Chicago\ (ord) = jclouds:rackspace-cloudservers-us:ORD
+# brooklyn.location.named.Rackspace\ Dallas\ (dfw) = jclouds:rackspace-cloudservers-us:DFW
+# brooklyn.location.named.Rackspace\ Hong\ Kong\ (hkg) = jclouds:rackspace-cloudservers-us:HKG
+# brooklyn.location.named.Rackspace\ Northern\ Virginia\ (iad) = jclouds:rackspace-cloudservers-us:IAD
+# brooklyn.location.named.Rackspace\ Sydney\ (syd) = jclouds:rackspace-cloudservers-us:SYD
+## for UK you will need a separate account with rackspace.co.uk
+# brooklyn.location.named.Rackspace\ London\ (lon) = jclouds:rackspace-cloudservers-uk
+
+## if you need to use Rackspace "first gen" API
+## (note the "next gen" api configured above seems to be faster)
+# brooklyn.location.jclouds.cloudservers-us.identity = YOURAPIKEY
+# brooklyn.location.jclouds.cloudservers-us.credential = YOURSECRETKEY
+# brooklyn.location.named.Rackspace\ US\ (First Gen) = jclouds:cloudservers-us
+## and as with next gen, first gen requires a separate acct for the UK:
+# brooklyn.location.jclouds.cloudservers-uk.identity = YOURAPIKEY
+# brooklyn.location.jclouds.cloudservers-uk.credential = YOURSECRETKEY
+# brooklyn.location.named.Rackspace\ UK\ (First Gen) = jclouds:cloudservers-uk
+
+# brooklyn.location.named.SeverLove = jclouds:serverlove-z1-man
+
+# brooklyn.location.named.SkaliCloud = jclouds:skalicloud-sdg-my
+
+# brooklyn.location.named.Stratogen = jclouds:stratogen-vcloud-mycloud
+
+# brooklyn.location.named.TryStack\ (Openstack) = jclouds:trystack-nova
+
+
+## Production pool of machines for my application (deploy to named:On-Prem\ Iron\ Example)
+# brooklyn.location.named.On-Prem\ Iron\ Example=byon:(hosts="10.9.1.1,10.9.1.2,produser2@10.9.2.{10,11,20-29}")
+# brooklyn.location.named.On-Prem\ Iron\ Example.user=produser1
+# brooklyn.location.named.On-Prem\ Iron\ Example.privateKeyFile=~/.ssh/produser_id_rsa
+# brooklyn.location.named.On-Prem\ Iron\ Example.privateKeyPassphrase=s3cr3tpassphrase
+
+## Various Private Clouds
+
+## Example: OpenStack Nova
+
+## openstack identity and credential are random strings of letters and numbers (TBC - still the case?)
+# brooklyn.location.named.My\ Openstack=jclouds:openstack-nova:https://9.9.9.9:9999/v2.0/
+
+## OpenStack Nova access information can be downloaded from the openstack web interface; for example, as openrc.sh file
+# brooklyn.location.named.My\ Openstack=jclouds:openstack-nova:keystone-url
+# brooklyn.location.named.My\ OpenStack.identity=your-tenant-name:your-user-name
+# brooklyn.location.named.My\ OpenStack.credential=your-password
+# brooklyn.location.named.My\ OpenStack.endpoint=your-keystone-url
+
+## The ID of the image must be configured according to the local OpenStack settings
+## Use the command nova image-list to list all the available images
+## Use the command nova show <image-name> to get more details
+# brooklyn.location.named.My\ OpenStack.imageId=the-region-name/the-image-id
+
+## Virtual Machine flavors must match the ones created upfront according to the local OpenStack settings
+## Use the command nova flavor-list to list all the available options
+## Use the command nova flavor-show <flavor-name> to get more details
+# brooklyn.location.named.My\ OpenStack.hardwareId=the-region-name/the-flavor-id
+
+## (Optional) Configurations
+
+# brooklyn.location.named.My\ OpenStack.user=user-name-inside-the-instance
+
+## The keyPair must by created upfront. Both the following two options are required at the same time.
+# brooklyn.location.named.My\ OpenStack.keyPair=the-key-pair-name
+# brooklyn.location.named.My\ OpenStack.loginUser.privateKeyFile=/path/to/keypair.pem
+
+## Security groups must be created upfront (TBC - How to specify many security groups at one ?)
+# brooklyn.location.named.My\ OpenStack.securityGroups=universal
+
+# brooklyn.location.named.My\ OpenStack.openIptables=true
+# brooklyn.location.named.My\ OpenStack.selinux.disabled=true
+# brooklyn.location.named.My\ OpenStack.auto-create-floating-ips=true
+# brooklyn.location.named.My\ OpenStack.openstack-nova.auto-generate-keypairs=false
+
+## cloudstack identity and credential are rather long random strings of letters and numbers
+## you generate this in the cloudstack gui, under accounts, then "view users", then "generate key"
+## use the "api key" as the identity and "secret key" as the credential
+# brooklyn.location.named.My\ Cloudstack=jclouds:cloudstack:http://9.9.9.9:9999/client/api/
+
+## abiquo identity and credential are your login username/passed
+# brooklyn.location.named.My\ Abiquo=jclouds:abiquo:http://demonstration.abiquo.com/api/
+
+###############################  Formatting Guide  #######################################
+
+! Both # and ! mark lines as comments
+# The follow syntax are ALL valid.
+# example_key example_value
+# example_key : example_value
+# example_key = example_value
+# example_key=example_value
+
+# The backslash below tells Brooklyn to continue reading the value onto the next line.
+# example_key = A very \
+#          	long string!
+# Note all white space before 'long...' is ignored. Also '!' is kept as part of the string
+
+
+# Keys with spaces should be escaped with backslashes.
+# This is useful for named locations, as the name displayed in Brooklyn's web
+# interface is derived from the key name.
+# key\ with\ spaces = some\ value
+
+# Encoding for .properties must be ISO-8859-1, aka Latin-1.
+# All non-latin1 characters must be entered using unicode escape characters
+# polish_pangram = P\u00F3jd\u017A\u017Ce, ki\u0144 \
+#                  t\u0119 chmurno\u015B\u0107 w g\u0142\u0105b flaszy!
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/e9fd416e/brooklyn-dist/vagrant/src/main/vagrant/files/brooklyn.service
----------------------------------------------------------------------
diff --git a/brooklyn-dist/vagrant/src/main/vagrant/files/brooklyn.service b/brooklyn-dist/vagrant/src/main/vagrant/files/brooklyn.service
new file mode 100644
index 0000000..04384a1
--- /dev/null
+++ b/brooklyn-dist/vagrant/src/main/vagrant/files/brooklyn.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Apache Brooklyn service
+Documentation=http://brooklyn.apache.org/documentation/index.html
+
+[Service]
+ExecStart=/home/vagrant/apache-brooklyn/bin/brooklyn launch --persist auto --persistenceDir /vagrant/brooklyn-persisted-state
+WorkingDirectory=/home/vagrant/apache-brooklyn
+Restart=on-abort
+User=vagrant
+Group=vagrant
+
+[Install]
+WantedBy=multi-user.target

http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/e9fd416e/brooklyn-dist/vagrant/src/main/vagrant/files/logback.xml
----------------------------------------------------------------------
diff --git a/brooklyn-dist/vagrant/src/main/vagrant/files/logback.xml b/brooklyn-dist/vagrant/src/main/vagrant/files/logback.xml
new file mode 100644
index 0000000..77b3816
--- /dev/null
+++ b/brooklyn-dist/vagrant/src/main/vagrant/files/logback.xml
@@ -0,0 +1,12 @@
+<configuration scan="true">
+
+    <!-- to supply custom logging, either change this file, supply your own logback-main.xml
+         (overriding the default provided on the classpath) or any of the files it references;
+         see the Logging section of the Brooklyn web site for more information -->
+
+    <property name="logging.basename" scope="context" value="brooklyn" />
+    <property name="logging.dir" scope="context" value="/var/log/brooklyn/" />
+
+    <include resource="logback-main.xml"/>
+
+</configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/e9fd416e/brooklyn-dist/vagrant/src/main/vagrant/servers.yaml
----------------------------------------------------------------------
diff --git a/brooklyn-dist/vagrant/src/main/vagrant/servers.yaml b/brooklyn-dist/vagrant/src/main/vagrant/servers.yaml
new file mode 100644
index 0000000..0bf133b
--- /dev/null
+++ b/brooklyn-dist/vagrant/src/main/vagrant/servers.yaml
@@ -0,0 +1,47 @@
+---
+default_config:
+    check_newer_vagrant_box: true
+    run_os_update: true
+servers:
+  - name: brooklyn
+    box: ubuntu/vivid64
+    ram: 2048
+    cpus: 4
+    ip: 10.10.10.100
+    shell:
+      env:
+        BROOKLYN_VERSION: 0.9.0-SNAPSHOT
+      cmd:
+        - sudo sh -c 'export DEBIAN_FRONTEND=noninteractive; apt-get install --yes openjdk-8-jre-headless'
+        - curl -s -S -J -O -L "https://www.apache.org/dyn/closer.cgi?action=download&filename=brooklyn/apache-brooklyn-${BROOKLYN_VERSION}/apache-brooklyn-${BROOKLYN_VERSION}-bin.tar.gz"
+        - tar zxf apache-brooklyn-${BROOKLYN_VERSION}-bin.tar.gz
+        - ln -s apache-brooklyn-${BROOKLYN_VERSION}-bin apache-brooklyn
+        - sudo mkdir -p /var/log/brooklyn
+        - sudo chown -R vagrant:vagrant /var/log/brooklyn
+        - sudo cp /vagrant/files/brooklyn.service /etc/systemd/system/brooklyn.service
+        - mkdir -p /home/vagrant/.brooklyn
+        - cp /vagrant/files/brooklyn.properties /home/vagrant/.brooklyn/
+        - chmod 600 /home/vagrant/.brooklyn/brooklyn.properties
+        - sudo systemctl start brooklyn
+        - sudo systemctl enable brooklyn
+  - name: byon1
+    box: ubuntu/vivid64
+    ram: 512
+    cpus: 2
+    ip: 10.10.10.101
+  - name: byon2
+    box: ubuntu/vivid64
+    ram: 512
+    cpus: 2
+    ip: 10.10.10.102
+  - name: byon3
+    box: ubuntu/vivid64
+    ram: 512
+    cpus: 2
+    ip: 10.10.10.103
+  - name: byon4
+    box: ubuntu/vivid64
+    ram: 512
+    cpus: 2
+    ip: 10.10.10.104
+...