http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/26c4604c/vagrant/pom.xml ---------------------------------------------------------------------- diff --git a/vagrant/pom.xml b/vagrant/pom.xml new file mode 100644 index 0000000..fbe6539 --- /dev/null +++ b/vagrant/pom.xml @@ -0,0 +1,83 @@ +<?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> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.rat</groupId> + <artifactId>apache-rat-plugin</artifactId> + <configuration> + <excludes combine.children="append"> + <exclude>src/main/vagrant/README.md</exclude> + </excludes> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> +</project>
http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/26c4604c/vagrant/src/main/config/build-distribution.xml ---------------------------------------------------------------------- diff --git a/vagrant/src/main/config/build-distribution.xml b/vagrant/src/main/config/build-distribution.xml new file mode 100644 index 0000000..823ad2a --- /dev/null +++ b/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/26c4604c/vagrant/src/main/vagrant/README.md ---------------------------------------------------------------------- diff --git a/vagrant/src/main/vagrant/README.md b/vagrant/src/main/vagrant/README.md new file mode 100644 index 0000000..2f5573c --- /dev/null +++ b/vagrant/src/main/vagrant/README.md @@ -0,0 +1,41 @@ + +# [](http://brooklyn.apache.org/) + +### Using Vagrant with Brooklyn -SNAPSHOT builds + +##### Install a community-managed version from Maven +1. No action is required other than setting the `BROOKLYN_VERSION:` environment variable in `servers.yaml` to a `-SNAPSHOT` version. For example: + + ``` + env: + BROOKLYN_VERSION: 0.9.0-SNAPSHOT + ``` + +2. You may proceed to use the `Vagrantfile` as normal; `vagrant up`, `vagrant destroy` etc. + +##### Install a locally built `-dist.tar.gz` + +1. Set the `BROOKLYN_VERSION:` environment variable in `servers.yaml` to your current `-SNAPSHOT` version. For example: + + ``` + env: + BROOKLYN_VERSION: 0.9.0-SNAPSHOT + ``` + +2. Set the `INSTALL_FROM_LOCAL_DIST:` environment variable in `servers.yaml` to `true`. For example: + + ``` + env: + INSTALL_FROM_LOCAL_DIST: true + ``` + + +3. Copy your locally built `-dist.tar.gz` archive to the same directory as the Vagrantfile (this directory is mounted in the Vagrant VM at `/vagrant/`). + + For example to copy a locally built `0.9.0-SNAPSHOT` dist: + + ``` + cp ~/.m2/repository/org/apache/brooklyn/brooklyn-dist/0.9.0-SNAPSHOT/brooklyn-dist-0.9.0-SNAPSHOT-dist.tar.gz . + ``` + +4. You may proceed to use the `Vagrantfile` as normal; `vagrant up`, `vagrant destroy` etc. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/26c4604c/vagrant/src/main/vagrant/Vagrantfile ---------------------------------------------------------------------- diff --git a/vagrant/src/main/vagrant/Vagrantfile b/vagrant/src/main/vagrant/Vagrantfile new file mode 100644 index 0000000..fb35a15 --- /dev/null +++ b/vagrant/src/main/vagrant/Vagrantfile @@ -0,0 +1,76 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : +# +# 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. +# + +# 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/26c4604c/vagrant/src/main/vagrant/files/brooklyn.properties ---------------------------------------------------------------------- diff --git a/vagrant/src/main/vagrant/files/brooklyn.properties b/vagrant/src/main/vagrant/files/brooklyn.properties new file mode 100644 index 0000000..0784ff3 --- /dev/null +++ b/vagrant/src/main/vagrant/files/brooklyn.properties @@ -0,0 +1,23 @@ +# +# 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. +# + +# Disabling security on the Vagrant Brooklyn instance for training purposes +brooklyn.webconsole.security.provider = org.apache.brooklyn.rest.security.provider.AnyoneSecurityProvider + +# Note: BYON locations are loaded from the files/vagrant-catalog.bom on startup \ No newline at end of file http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/26c4604c/vagrant/src/main/vagrant/files/brooklyn.service ---------------------------------------------------------------------- diff --git a/vagrant/src/main/vagrant/files/brooklyn.service b/vagrant/src/main/vagrant/files/brooklyn.service new file mode 100644 index 0000000..28b0fea --- /dev/null +++ b/vagrant/src/main/vagrant/files/brooklyn.service @@ -0,0 +1,32 @@ +# +# 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. +# + +[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 --catalogAdd /vagrant/files/vagrant-catalog.bom +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/26c4604c/vagrant/src/main/vagrant/files/install_brooklyn.sh ---------------------------------------------------------------------- diff --git a/vagrant/src/main/vagrant/files/install_brooklyn.sh b/vagrant/src/main/vagrant/files/install_brooklyn.sh new file mode 100755 index 0000000..9c52017 --- /dev/null +++ b/vagrant/src/main/vagrant/files/install_brooklyn.sh @@ -0,0 +1,92 @@ +#!/usr/bin/env bash + +# +# 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. +# + +BROOKLYN_VERSION="" +INSTALL_FROM_LOCAL_DIST="false" +TMP_ARCHIVE_NAME=apache-brooklyn.tar.gz + +do_help() { + echo "./install.sh -v <Brooklyn Version> [-l <install from local file: true|false>]" + exit 1 +} + +while getopts ":hv:l:" opt; do + case "$opt" in + v) BROOKLYN_VERSION=$OPTARG ;; + # using a true/false argopt rather than just flag to allow easier integration with servers.yaml config + l) INSTALL_FROM_LOCAL_DIST=$OPTARG ;; + h) do_help;; + esac +done + +# Exit if any step fails +set -e + +if [ "x${BROOKLYN_VERSION}" == "x" ]; then + echo "Error: you must supply a Brooklyn version [-v]" + do_help +fi + +if [ ! "${INSTALL_FROM_LOCAL_DIST}" == "true" ]; then + if [ ! -z "${BROOKLYN_VERSION##*-SNAPSHOT}" ] ; then + # url for official release versions + BROOKLYN_URL="https://www.apache.org/dyn/closer.lua?action=download&filename=brooklyn/apache-brooklyn-${BROOKLYN_VERSION}/apache-brooklyn-${BROOKLYN_VERSION}-bin.tar.gz" + BROOKLYN_DIR="apache-brooklyn-${BROOKLYN_VERSION}-bin" + else + # url for community-managed snapshots + BROOKLYN_URL="https://repository.apache.org/service/local/artifact/maven/redirect?r=snapshots&g=org.apache.brooklyn&a=brooklyn-dist&v=${BROOKLYN_VERSION}&c=dist&e=tar.gz" + BROOKLYN_DIR="brooklyn-dist-${BROOKLYN_VERSION}" + fi +else + echo "Installing from a local -dist archive [ /vagrant/brooklyn-dist-${BROOKLYN_VERSION}-dist.tar.gz]" + # url to install from mounted /vagrant dir + BROOKLYN_URL="file:///vagrant/brooklyn-dist-${BROOKLYN_VERSION}-dist.tar.gz" + BROOKLYN_DIR="brooklyn-dist-${BROOKLYN_VERSION}" + + # ensure local file exists + if [ ! -f /vagrant/brooklyn-dist-${BROOKLYN_VERSION}-dist.tar.gz ]; then + echo "Error: file not found /vagrant/brooklyn-dist-${BROOKLYN_VERSION}-dist.tar.gz" + exit 1 + fi +fi + +echo "Installing Apache Brooklyn version ${BROOKLYN_VERSION} from [${BROOKLYN_URL}]" + +echo "Downloading Brooklyn release archive" +curl --fail --silent --show-error --location --output ${TMP_ARCHIVE_NAME} "${BROOKLYN_URL}" +echo "Extracting Brooklyn release archive" +tar zxf ${TMP_ARCHIVE_NAME} + +echo "Creating Brooklyn dirs and symlinks" +ln -s ${BROOKLYN_DIR} apache-brooklyn +sudo mkdir -p /var/log/brooklyn +sudo chown -R vagrant:vagrant /var/log/brooklyn +mkdir -p /home/vagrant/.brooklyn + +echo "Copying default vagrant Brooklyn properties file" +cp /vagrant/files/brooklyn.properties /home/vagrant/.brooklyn/ +chmod 600 /home/vagrant/.brooklyn/brooklyn.properties + +echo "Installing JRE" +sudo sh -c 'export DEBIAN_FRONTEND=noninteractive; apt-get install --yes openjdk-8-jre-headless' + +echo "Copying Brooklyn systemd service unit file" +sudo cp /vagrant/files/brooklyn.service /etc/systemd/system/brooklyn.service \ No newline at end of file http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/26c4604c/vagrant/src/main/vagrant/files/logback.xml ---------------------------------------------------------------------- diff --git a/vagrant/src/main/vagrant/files/logback.xml b/vagrant/src/main/vagrant/files/logback.xml new file mode 100644 index 0000000..1560d8b --- /dev/null +++ b/vagrant/src/main/vagrant/files/logback.xml @@ -0,0 +1,32 @@ +<?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. +--> + +<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/26c4604c/vagrant/src/main/vagrant/files/vagrant-catalog.bom ---------------------------------------------------------------------- diff --git a/vagrant/src/main/vagrant/files/vagrant-catalog.bom b/vagrant/src/main/vagrant/files/vagrant-catalog.bom new file mode 100644 index 0000000..d8b8450 --- /dev/null +++ b/vagrant/src/main/vagrant/files/vagrant-catalog.bom @@ -0,0 +1,82 @@ +# +# 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. +# +brooklyn.catalog: + items: + - id: byon1 + name: Vagrant BYON VM 1 + version: 0.9.0-SNAPSHOT # BROOKLYN_VERSION + itemType: location + item: + type: byon + brooklyn.config: + user: vagrant + password: vagrant + hosts: + - 10.10.10.101 + + - id: byon2 + name: Vagrant BYON VM 2 + version: 0.9.0-SNAPSHOT # BROOKLYN_VERSION + itemType: location + item: + type: byon + brooklyn.config: + user: vagrant + password: vagrant + hosts: + - 10.10.10.102 + + - id: byon3 + name: Vagrant BYON VM 3 + version: 0.9.0-SNAPSHOT # BROOKLYN_VERSION + itemType: location + item: + type: byon + brooklyn.config: + user: vagrant + password: vagrant + hosts: + - 10.10.10.103 + + - id: byon4 + name: Vagrant BYON VM 4 + version: 0.9.0-SNAPSHOT # BROOKLYN_VERSION + itemType: location + item: + type: byon + brooklyn.config: + user: vagrant + password: vagrant + hosts: + - 10.10.10.104 + + - id: byon-all + name: Vagrant BYON VM 1-4 + version: 0.9.0-SNAPSHOT # BROOKLYN_VERSION + itemType: location + item: + type: byon + brooklyn.config: + user: vagrant + password: vagrant + hosts: + - 10.10.10.101 + - 10.10.10.102 + - 10.10.10.103 + - 10.10.10.104 http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/26c4604c/vagrant/src/main/vagrant/servers.yaml ---------------------------------------------------------------------- diff --git a/vagrant/src/main/vagrant/servers.yaml b/vagrant/src/main/vagrant/servers.yaml new file mode 100644 index 0000000..3959fff --- /dev/null +++ b/vagrant/src/main/vagrant/servers.yaml @@ -0,0 +1,73 @@ +# +# 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. +# +# +# Default Config +# check_newer_vagrant_box +# enable/disable the vagrant check for an updated box +# run_os_update +# enable/disable running a yum/apt-get update on box start +# +# Brooklyn Server Config +# shell:env:BROOKLYN_VERSION +# specifies the version of Brooklyn to install, be aware that for SNAPSHOTS you +# may wish to download a local -dist.tar.gz for the latest version. +# shell:env:INSTALL_FROM_LOCAL_DIST +# if set to `true` Vagrant will install from a local -dist.tar.gz stored in /vagrant +# on the guest VM (which is mounted from the Vagrantfile directory). You must +# ensure that a -dist.tar.gz archive has been copied to this directory on your host. + +--- +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 + INSTALL_FROM_LOCAL_DIST: false + cmd: + - /vagrant/files/install_brooklyn.sh -v ${BROOKLYN_VERSION} -l ${INSTALL_FROM_LOCAL_DIST} + - 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 +...
