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:15 UTC
[35/51] [abbrv] brooklyn-dist git commit: add support for SNAPSHOT
downloads - supports release downloads via Apache closer.lua mirror -
supports snapshot download from Apache maven - supports snapshot download
from a local -dist.tar.gz archive. *NOTE* t
add support for SNAPSHOT downloads
- supports release downloads via Apache closer.lua mirror
- supports snapshot download from Apache maven
- supports snapshot download from a local -dist.tar.gz archive.
*NOTE* this currently requires the user to copy the dist to the same directory
as the Vagrantfile
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-dist/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-dist/commit/88327712
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-dist/tree/88327712
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-dist/diff/88327712
Branch: refs/heads/master
Commit: 88327712bf3925f1db1ee0c458fd71b1536f2039
Parents: eab89f0
Author: John McCabe <jo...@johnmccabe.net>
Authored: Thu Jan 28 16:27:44 2016 +0000
Committer: John McCabe <jo...@johnmccabe.net>
Committed: Thu Jan 28 16:27:44 2016 +0000
----------------------------------------------------------------------
.../vagrant/src/main/vagrant/README.md | 58 ++++--------
.../vagrant/src/main/vagrant/Vagrantfile | 4 -
.../src/main/vagrant/files/install_brooklyn.sh | 92 ++++++++++++++++++++
.../vagrant/src/main/vagrant/servers.yaml | 27 +++---
4 files changed, 127 insertions(+), 54 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/88327712/brooklyn-dist/vagrant/src/main/vagrant/README.md
----------------------------------------------------------------------
diff --git a/brooklyn-dist/vagrant/src/main/vagrant/README.md b/brooklyn-dist/vagrant/src/main/vagrant/README.md
index b446ab8..2f5573c 100644
--- a/brooklyn-dist/vagrant/src/main/vagrant/README.md
+++ b/brooklyn-dist/vagrant/src/main/vagrant/README.md
@@ -1,63 +1,41 @@
# [![**Brooklyn**](https://brooklyn.apache.org/style/img/apache-brooklyn-logo-244px-wide.png)](http://brooklyn.apache.org/)
-### Using Vagrant with Brooklyn -SNAPSHOT releases
-Due to the absence of a single source for snapshots (i.e. locally built vs. [periodically published archives](https://brooklyn.apache.org/v/0.9.0-SNAPSHOT/misc/download.html)), we require that you override the supplied `servers.yaml` to explicitly point at your desired `-SNAPSHOT` release.
+### Using Vagrant with Brooklyn -SNAPSHOT builds
-Full releases use the `BROOKLYN_VERSION` environment variable to download the associated `-bin` artifact from the closest Apache mirror, if this environment variable is set to a `-SNAPSHOT` we abort creating the Brooklyn Vagrant VM.
-
-##### Installing from local file
-For example to install from a locally built `-dist` archive:
-
-1. Copy the SNAPSHOT `-dist` archive to the same directory as the `Vagrantfile`
-
- ```
- cp ~/Workspaces/incubator-brooklyn/brooklyn-dist/dist/target/brooklyn-dist-0.9.0-SNAPSHOT-dist.tar.gz .
- ```
-
-2. Delete the `BROOKLYN_VERSION:` environment variable from `servers.yaml`. For example:
+##### 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
```
-3. Update `servers.yaml` to install from the `-dist` archive. For example, replace:
- ```
- - 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
- ```
- with:
- ```
- - cp /vagrant/brooklyn-dist-0.9.0-SNAPSHOT-dist.tar.gz .
- - tar zxf brooklyn-dist-0.9.0-SNAPSHOT-dist.tar.gz
- - ln -s brooklyn-dist-0.9.0-SNAPSHOT apache-brooklyn
- ```
-
-4. You may proceed to use the `Vagrantfile` as normal; `vagrant up`, `vagrant destroy` etc.
+2. You may proceed to use the `Vagrantfile` as normal; `vagrant up`, `vagrant destroy` etc.
-##### Installing from URL
-For example to install from a published `-SHAPSHOT` archive:
+##### Install a locally built `-dist.tar.gz`
-1. Delete the `BROOKLYN_VERSION:` environment variable from `servers.yaml`. For example:
+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. Update `servers.yaml` to install from URL. For example, replace:
+2. Set the `INSTALL_FROM_LOCAL_DIST:` environment variable in `servers.yaml` to `true`. For example:
+
```
- - 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
+ env:
+ INSTALL_FROM_LOCAL_DIST: true
```
- with:
+
+
+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:
+
```
- - curl -s -S -J -O -L "https://repository.apache.org/service/local/artifact/maven/redirect?r=snapshots&g=org.apache.brooklyn&a=brooklyn-dist&v=0.9.0-SNAPSHOT&c=dist&e=tar.gz"
- - tar zxf brooklyn-dist-0.9.0-SNAPSHOT-dist.tar.gz
- - ln -s brooklyn-dist-0.9.0-SNAPSHOT apache-brooklyn
+ cp ~/.m2/repository/org/apache/brooklyn/brooklyn-dist/0.9.0-SNAPSHOT/brooklyn-dist-0.9.0-SNAPSHOT-dist.tar.gz .
```
-3. You may proceed to use the `Vagrantfile` as normal; `vagrant up`, `vagrant destroy` etc.
\ No newline at end of file
+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/88327712/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
index 7f5dbb0..fb35a15 100644
--- a/brooklyn-dist/vagrant/src/main/vagrant/Vagrantfile
+++ b/brooklyn-dist/vagrant/src/main/vagrant/Vagrantfile
@@ -39,10 +39,6 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
yaml_cfg["servers"].each do |server|
config.vm.define server["name"] do |server_config|
- if server["shell"] && server["shell"]["env"]["BROOKLYN_VERSION"] =~ /SNAPSHOT/i
- raise Vagrant::Errors::VagrantError.new, "Deploying Brooklyn SNAPSHOTS is not supported without a manual update to servers.yaml. See README for instructions."
- end
-
server_config.vm.box = server["box"]
server_config.vm.box_check_update = yaml_cfg["default_config"]["check_newer_vagrant_box"]
http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/88327712/brooklyn-dist/vagrant/src/main/vagrant/files/install_brooklyn.sh
----------------------------------------------------------------------
diff --git a/brooklyn-dist/vagrant/src/main/vagrant/files/install_brooklyn.sh b/brooklyn-dist/vagrant/src/main/vagrant/files/install_brooklyn.sh
new file mode 100755
index 0000000..9c52017
--- /dev/null
+++ b/brooklyn-dist/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/88327712/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
index 5203171..3959fff 100644
--- a/brooklyn-dist/vagrant/src/main/vagrant/servers.yaml
+++ b/brooklyn-dist/vagrant/src/main/vagrant/servers.yaml
@@ -16,6 +16,21 @@
# 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:
@@ -30,17 +45,9 @@ servers:
shell:
env:
BROOKLYN_VERSION: 0.9.0-SNAPSHOT
+ INSTALL_FROM_LOCAL_DIST: false
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
+ - /vagrant/files/install_brooklyn.sh -v ${BROOKLYN_VERSION} -l ${INSTALL_FROM_LOCAL_DIST}
- sudo systemctl start brooklyn
- sudo systemctl enable brooklyn
- name: byon1