You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by dr...@apache.org on 2017/09/13 13:52:10 UTC
[3/6] brooklyn-dist git commit: Improve DEB package
Improve DEB package
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-dist/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-dist/commit/c640784c
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-dist/tree/c640784c
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-dist/diff/c640784c
Branch: refs/heads/master
Commit: c640784c6efd60afc494b776fe2a00a8c06b02a7
Parents: 4118fc4
Author: Thomas Bouron <th...@cloudsoftcorp.com>
Authored: Fri Sep 8 15:47:06 2017 +0100
Committer: Thomas Bouron <th...@cloudsoftcorp.com>
Committed: Mon Sep 11 10:19:33 2017 +0100
----------------------------------------------------------------------
deb-packaging/deb/control/control | 2 +-
deb-packaging/deb/control/postinst | 3 -
deb-packaging/deb/control/preinst | 10 ++
deb-packaging/pom.xml | 173 ++++++++++++++-----
.../resources/service/upstart/deb/brooklyn.conf | 13 +-
shared-packaging/src/test/yaml/Vagrantfile | 4 +-
.../src/test/yaml/package-apps.yaml | 6 +-
shared-packaging/src/test/yaml/package.bom | 12 +-
8 files changed, 159 insertions(+), 64 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/c640784c/deb-packaging/deb/control/control
----------------------------------------------------------------------
diff --git a/deb-packaging/deb/control/control b/deb-packaging/deb/control/control
index a1283d4..a3b6e26 100644
--- a/deb-packaging/deb/control/control
+++ b/deb-packaging/deb/control/control
@@ -19,6 +19,6 @@ Version: [[version]]
Section: misc
Priority: optional
Architecture: all
-Depends: default-jre-headless (>= 1.7)
+Depends: java8-runtime
Maintainer: Aleksandr Vasilev <al...@cloudsoftcorp.com>
Description: Apache Brooklyn is a framework for modeling, monitoring, and managing applications through autonomic blueprints.
http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/c640784c/deb-packaging/deb/control/postinst
----------------------------------------------------------------------
diff --git a/deb-packaging/deb/control/postinst b/deb-packaging/deb/control/postinst
index 20ddb29..fd786d6 100644
--- a/deb-packaging/deb/control/postinst
+++ b/deb-packaging/deb/control/postinst
@@ -18,7 +18,4 @@
if which systemctl > /dev/null 2>&1; then
systemctl daemon-reload
- systemctl start brooklyn.service
-elif which initctl > /dev/null 2>&1; then
- initctl start brooklyn
fi
http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/c640784c/deb-packaging/deb/control/preinst
----------------------------------------------------------------------
diff --git a/deb-packaging/deb/control/preinst b/deb-packaging/deb/control/preinst
index 1c613da..4215068 100644
--- a/deb-packaging/deb/control/preinst
+++ b/deb-packaging/deb/control/preinst
@@ -17,3 +17,13 @@
# under the License.
/usr/bin/getent group brooklyn || /usr/sbin/groupadd -r brooklyn
/usr/bin/getent passwd brooklyn || /usr/sbin/useradd -r -g brooklyn -d /opt/brooklyn -s /bin/false brooklyn
+# Remove the symbolic link "/opt/brooklyn" if exists (means that we are upgrading brooklyn)
+BROOKLYN_ROOT=/opt/brooklyn
+if [[ -L $BROOKLYN_ROOT && -d $BROOKLYN_ROOT ]]; then
+ rm -f $BROOKLYN_ROOT
+fi
+# Remove the symbolic link "/var/log/brooklyn" if exists (means that we are upgrading brooklyn)
+BROOKLYN_LOG=/var/log/brooklyn
+if [[ -L $BROOKLYN_LOG && -d $BROOKLYN_LOG ]]; then
+ rm -f $BROOKLYN_LOG
+fi
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/c640784c/deb-packaging/pom.xml
----------------------------------------------------------------------
diff --git a/deb-packaging/pom.xml b/deb-packaging/pom.xml
index a6e5611..27a9af9 100644
--- a/deb-packaging/pom.xml
+++ b/deb-packaging/pom.xml
@@ -26,6 +26,14 @@
Brooklyn DEB Package for Debian and Ubuntu operating systems
</description>
+ <properties>
+ <brooklyn.directory.permission.default>740</brooklyn.directory.permission.default>
+ <brooklyn.directory.permission.root>740</brooklyn.directory.permission.root>
+ <brooklyn.file.permission.default>740</brooklyn.file.permission.default>
+ <brooklyn.file.permission.bin>740</brooklyn.file.permission.bin>
+ <brooklyn.file.permission.global>664</brooklyn.file.permission.global>
+ </properties>
+
<parent>
<groupId>org.apache.brooklyn</groupId>
<artifactId>brooklyn-dist-root</artifactId>
@@ -36,8 +44,9 @@
<dependencies>
<dependency>
<groupId>org.apache.brooklyn</groupId>
- <artifactId>brooklyn-dist</artifactId>
+ <artifactId>apache-brooklyn</artifactId>
<version>${project.version}</version>
+ <type>zip</type>
</dependency>
<dependency>
<groupId>org.apache.brooklyn</groupId>
@@ -58,23 +67,22 @@
<goal>unpack</goal>
</goals>
<configuration>
- <artifactItems>
- <artifactItem>
- <groupId>org.apache.brooklyn</groupId>
- <artifactId>brooklyn-dist</artifactId>
- <version>${project.version}</version>
- <classifier>dist</classifier>
- <type>tar.gz</type>
- <outputDirectory>${project.build.directory}/deps</outputDirectory>
- </artifactItem>
- <artifactItem>
- <groupId>org.apache.brooklyn</groupId>
- <artifactId>shared-packaging</artifactId>
- <version>${project.version}</version>
- <type>jar</type>
- <outputDirectory>${project.build.directory}/deps/shared-packaging</outputDirectory>
- </artifactItem>
- </artifactItems>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.apache.brooklyn</groupId>
+ <artifactId>apache-brooklyn</artifactId>
+ <version>${project.version}</version>
+ <type>zip</type>
+ <outputDirectory>${project.build.directory}/deps</outputDirectory>
+ </artifactItem>
+ <artifactItem>
+ <groupId>org.apache.brooklyn</groupId>
+ <artifactId>shared-packaging</artifactId>
+ <version>${project.version}</version>
+ <type>jar</type>
+ <outputDirectory>${project.build.directory}/deps/shared-packaging</outputDirectory>
+ </artifactItem>
+ </artifactItems>
</configuration>
</execution>
</executions>
@@ -92,86 +100,159 @@
<configuration>
<verbose>false</verbose>
<skipPOMs>false</skipPOMs>
- <deb>${project.build.directory}/apache-brooklyn_${project.version}_all.deb</deb>
+ <!-- Try to follow the deb package naming convention, restricted by the maven artifact naming -->
+ <classifier>all</classifier>
+ <deb>${project.build.directory}/apache-brooklyn-${project.version}-all.deb</deb>
<controlDir>${basedir}/deb/control</controlDir>
<dataSet>
<data>
- <src>${project.build.directory}/deps/brooklyn-dist-${project.version}</src>
+ <src>${project.build.directory}/deps/apache-brooklyn-${project.version}/bin</src>
<type>directory</type>
<mapper>
<type>perm</type>
- <prefix>/opt/brooklyn</prefix>
+ <prefix>/opt/brooklyn-${project.version}/bin</prefix>
<user>brooklyn</user>
<group>brooklyn</group>
+ <filemode>${brooklyn.file.permission.bin}</filemode>
</mapper>
</data>
<data>
- <src>${project.build.directory}/deps/shared-packaging/service/upstart/deb/brooklyn.conf</src>
- <type>file</type>
+ <src>${project.build.directory}/deps/apache-brooklyn-${project.version}/catalog</src>
+ <type>directory</type>
<mapper>
<type>perm</type>
- <prefix>/etc/init</prefix>
- <filemode>644</filemode>
+ <prefix>/opt/brooklyn-${project.version}/catalog</prefix>
+ <user>brooklyn</user>
+ <group>brooklyn</group>
+ <filemode>${brooklyn.file.permission.default}</filemode>
</mapper>
</data>
<data>
- <!-- TODO Probably should live in /usr/lib/systemd/system with a symlink in the following folder -->
- <src>${project.build.directory}/deps/shared-packaging/service/systemd/brooklyn.service</src>
- <type>file</type>
+ <src>${project.build.directory}/deps/apache-brooklyn-${project.version}/data</src>
+ <type>directory</type>
<mapper>
<type>perm</type>
- <prefix>/etc/systemd/system/multi-user.target.wants</prefix>
- <filemode>644</filemode>
+ <prefix>/opt/brooklyn-${project.version}/data</prefix>
+ <user>brooklyn</user>
+ <group>brooklyn</group>
+ <filemode>${brooklyn.file.permission.default}</filemode>
+ </mapper>
+ </data>
+ <data>
+ <src>${project.build.directory}/deps/apache-brooklyn-${project.version}/deploy</src>
+ <type>directory</type>
+ <mapper>
+ <type>perm</type>
+ <prefix>/opt/brooklyn-${project.version}/deploy</prefix>
+ <user>brooklyn</user>
+ <group>brooklyn</group>
+ <filemode>${brooklyn.file.permission.default}</filemode>
+ </mapper>
+ </data>
+ <data>
+ <src>${project.build.directory}/deps/apache-brooklyn-${project.version}/etc</src>
+ <type>directory</type>
+ <conffile>true</conffile>
+ <mapper>
+ <type>perm</type>
+ <prefix>/etc/brooklyn</prefix>
+ <user>brooklyn</user>
+ <group>brooklyn</group>
+ <filemode>${brooklyn.file.permission.default}</filemode>
+ </mapper>
+ </data>
+ <data>
+ <src>${project.build.directory}/deps/apache-brooklyn-${project.version}/lib</src>
+ <type>directory</type>
+ <mapper>
+ <type>perm</type>
+ <prefix>/opt/brooklyn-${project.version}/lib</prefix>
+ <user>brooklyn</user>
+ <group>brooklyn</group>
+ <filemode>${brooklyn.file.permission.default}</filemode>
+ </mapper>
+ </data>
+ <data>
+ <src>${project.build.directory}/deps/apache-brooklyn-${project.version}/system</src>
+ <type>directory</type>
+ <mapper>
+ <type>perm</type>
+ <prefix>/opt/brooklyn-${project.version}/system</prefix>
+ <user>brooklyn</user>
+ <group>brooklyn</group>
+ <filemode>${brooklyn.file.permission.default}</filemode>
</mapper>
</data>
<data>
<type>template</type>
<paths>
- <path>etc/brooklyn</path>
- <path>var/lib/brooklyn</path>
+ <path>/opt/brooklyn-${project.version}/data/log</path>
</paths>
<mapper>
<type>perm</type>
<user>brooklyn</user>
<group>brooklyn</group>
+ <filemode>${brooklyn.file.permission.default}</filemode>
</mapper>
</data>
<data>
<type>template</type>
<paths>
- <path>var/log/brooklyn</path>
+ <path>/var/lib/brooklyn</path>
</paths>
<mapper>
<type>perm</type>
<user>brooklyn</user>
<group>brooklyn</group>
- <filemode>700</filemode>
+ <filemode>${brooklyn.file.permission.default}</filemode>
</mapper>
</data>
<data>
- <src>${project.build.directory}/deps/shared-packaging/conf/brooklyn.conf</src>
+ <src>${project.build.directory}/deps/shared-packaging/service/upstart/deb/brooklyn.conf</src>
<type>file</type>
- <conffile>true</conffile>
<mapper>
<type>perm</type>
- <prefix>/etc/brooklyn</prefix>
- <user>brooklyn</user>
- <group>brooklyn</group>
- <filemode>600</filemode>
+ <prefix>/etc/init</prefix>
+ <filemode>${brooklyn.file.permission.global}</filemode>
</mapper>
</data>
<data>
- <src>${project.build.directory}/deps/shared-packaging/conf/logback.xml</src>
+ <src>${project.build.directory}/deps/shared-packaging/service/systemd/brooklyn.service</src>
<type>file</type>
- <conffile>true</conffile>
<mapper>
<type>perm</type>
- <prefix>/etc/brooklyn</prefix>
- <user>brooklyn</user>
- <group>brooklyn</group>
- <filemode>644</filemode>
+ <prefix>/lib/systemd/system</prefix>
+ <filemode>${brooklyn.file.permission.global}</filemode>
+ </mapper>
+ </data>
+ <data>
+ <!-- TODO Probably should live in /usr/lib/systemd/system with a symlink in the following folder -->
+ <src>${project.build.directory}/deps/shared-packaging/service/systemd/brooklyn.service</src>
+ <type>file</type>
+ <mapper>
+ <type>perm</type>
+ <prefix>/etc/systemd/system/multi-user.target.wants</prefix>
+ <filemode>${brooklyn.file.permission.global}</filemode>
</mapper>
</data>
+ <data>
+ <type>link</type>
+ <linkName>/opt/brooklyn</linkName>
+ <linkTarget>/opt/brooklyn-${project.version}</linkTarget>
+ <symlink>true</symlink>
+ </data>
+ <data>
+ <type>link</type>
+ <linkName>/opt/brooklyn-${project.version}/etc</linkName>
+ <linkTarget>/etc/brooklyn</linkTarget>
+ <symlink>true</symlink>
+ </data>
+ <data>
+ <type>link</type>
+ <linkName>/var/log/brooklyn</linkName>
+ <linkTarget>/opt/brooklyn-${project.version}/data/log</linkTarget>
+ <symlink>true</symlink>
+ </data>
</dataSet>
</configuration>
</execution>
http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/c640784c/shared-packaging/src/main/resources/service/upstart/deb/brooklyn.conf
----------------------------------------------------------------------
diff --git a/shared-packaging/src/main/resources/service/upstart/deb/brooklyn.conf b/shared-packaging/src/main/resources/service/upstart/deb/brooklyn.conf
index 931fffd..c62a98e 100644
--- a/shared-packaging/src/main/resources/service/upstart/deb/brooklyn.conf
+++ b/shared-packaging/src/main/resources/service/upstart/deb/brooklyn.conf
@@ -22,6 +22,7 @@ start on started networking
stop on runlevel [016]
respawn
respawn limit 5 10
+umask 0066
setuid brooklyn
setgid brooklyn
@@ -33,11 +34,13 @@ pre-start script
end script
script
- BROOKLYN_HOME="/opt/brooklyn/"
- JAVA_OPTS="-Dbrooklyn.location.localhost.address=127.0.0.1 -XX:SoftRefLRUPolicyMSPerMB=1 -Dlogback.configurationFile=/etc/brooklyn/logback.xml -Xms256m -Xmx1g"
- CLASSPATH="/opt/brooklyn/conf:/opt/brooklyn/lib/patch/*:/opt/brooklyn/lib/brooklyn/*:/opt/brooklyn/lib/dropins/*"
- export BROOKLYN_HOME
- exec java ${JAVA_OPTS} -cp "${CLASSPATH}" org.apache.brooklyn.cli.Main launch --noGlobalBrooklynProperties --localBrooklynProperties /etc/brooklyn/brooklyn.conf --persist auto
+ EXTRA_JAVA_OPTS="-Dbrooklyn.location.localhost.address=127.0.0.1 -XX:SoftRefLRUPolicyMSPerMB=1 -Xms256m -Xmx1g"
+ KARAF_HOME="/opt/brooklyn/"
+ KARAF_ETC="/etc/brooklyn/"
+ KARAF_REDIRECT=/dev/null
+ BROOKLYN_PERSISTENCE_DIR="/var/lib/brooklyn"
+ export EXTRA_JAVA_OPTS KARAF_REDIRECT KARAF_HOME KARAF_ETC BROOKLYN_PERSISTENCE_DIR
+ exec /opt/brooklyn/bin/karaf server >> "$KARAF_REDIRECT" 2>&1
end script
pre-stop script
http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/c640784c/shared-packaging/src/test/yaml/Vagrantfile
----------------------------------------------------------------------
diff --git a/shared-packaging/src/test/yaml/Vagrantfile b/shared-packaging/src/test/yaml/Vagrantfile
index 9855aff..3e561bd 100644
--- a/shared-packaging/src/test/yaml/Vagrantfile
+++ b/shared-packaging/src/test/yaml/Vagrantfile
@@ -33,8 +33,10 @@ Vagrant.configure(2) do |config|
config.vm.provision "shell", name:"set key permissions", privileged:false, inline: "chmod 400 ~/.ssh/authorized_keys"
config.vm.define "apt-systemd" do |config|
- config.vm.box = "ubuntu/wily64"
+ config.vm.box = "ubuntu/xenial64"
config.vm.network "private_network", ip: "172.28.128.3"
+ config.ssh.insert_key = true
+ config.ssh.forward_agent = true
end
config.vm.define "apt-upstart" do |config|
config.vm.box = "ubuntu/trusty64"
http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/c640784c/shared-packaging/src/test/yaml/package-apps.yaml
----------------------------------------------------------------------
diff --git a/shared-packaging/src/test/yaml/package-apps.yaml b/shared-packaging/src/test/yaml/package-apps.yaml
index bda0c51..0900dd7 100644
--- a/shared-packaging/src/test/yaml/package-apps.yaml
+++ b/shared-packaging/src/test/yaml/package-apps.yaml
@@ -23,9 +23,9 @@ services:
byon:
hosts: ["172.28.128.3"]
# privateKeyFile: ~/.ssh/<private key>
- user: vagrant
+ user: ubuntu
brooklyn.config:
- package.file: ~/.m2/repository/org/apache/brooklyn/deb-packaging/0.12.0-SNAPSHOT/deb-packaging-0.12.0-SNAPSHOT.deb # BROOKLYN_VERSION
+ package.file: ~/.m2/repository/org/apache/brooklyn/deb-packaging/0.12.0-SNAPSHOT/deb-packaging-0.12.0-SNAPSHOT-all.deb # BROOKLYN_VERSION
---
@@ -38,7 +38,7 @@ services:
# privateKeyFile: ~/.ssh/<private key>
user: vagrant
brooklyn.config:
- package.file: ~/.m2/repository/org/apache/brooklyn/deb-packaging/0.12.0-SNAPSHOT/deb-packaging-0.12.0-SNAPSHOT.deb # BROOKLYN_VERSION
+ package.file: ~/.m2/repository/org/apache/brooklyn/deb-packaging/0.12.0-SNAPSHOT/deb-packaging-0.12.0-SNAPSHOT-all.deb # BROOKLYN_VERSION
---
http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/c640784c/shared-packaging/src/test/yaml/package.bom
----------------------------------------------------------------------
diff --git a/shared-packaging/src/test/yaml/package.bom b/shared-packaging/src/test/yaml/package.bom
index bc1780d..ba5615a 100644
--- a/shared-packaging/src/test/yaml/package.bom
+++ b/shared-packaging/src/test/yaml/package.bom
@@ -53,6 +53,7 @@ brooklyn.catalog:
sudo apt-get update
sudo apt-get install -y default-jre-headless
sudo dpkg -i brooklyn-package.deb
+ sudo systemctl start brooklyn
- id: apt-upstart-brooklyn
item:
@@ -65,6 +66,7 @@ brooklyn.catalog:
sudo apt-get update
sudo apt-get install -y default-jre-headless
sudo dpkg -i brooklyn-package.deb
+ sudo initctl start brooklyn
- id: yum-systemd-brooklyn
item:
@@ -166,17 +168,17 @@ brooklyn.catalog:
name: Check paths permissions
command: |
BROOKLYN_DIRECTORIES="/opt/brooklyn/ /etc/brooklyn/ /var/lib/brooklyn/ /var/log/brooklyn/"
- [ "$(sudo stat -c "%A %U %G" /opt/brooklyn)" = "lrwxrwxrwx brooklyn brooklyn" ]
+ [ "$(sudo stat -c "%A" /opt/brooklyn)" = "lrwxrwxrwx" ]
[ "$(sudo stat -c "%A %U %G" /etc/init)" = "drwxr-xr-x root root" ]
[ "$(sudo stat -c "%A %U %G" /lib/systemd/system/)" = "drwxr-xr-x root root" ]
[ "$(sudo stat -c "%A %U %G" /etc/init/brooklyn.conf)" = "-rw-rw-r-- root root" ]
[ "$(sudo stat -c "%A %U %G" /lib/systemd/system/brooklyn.service)" = "-rw-rw-r-- root root" ]
if hash systemctl ; then
- [ "$(sudo stat -c "%A %U %G" /etc/systemd/system/multi-user.target.wants/brooklyn.service)" = "-rwxr----- root root" ]
+ [ "$(sudo stat -c "%A %U %G" /etc/systemd/system/multi-user.target.wants/brooklyn.service)" = "-rw-rw-r-- root root" ]
fi
- ! sudo ls -d /opt/brooklyn-* | xargs stat -c "%F %a %U %G" | grep -v -E "^directory\s740\sbrooklyn\sbrooklyn$"
- ! sudo find ${BROOKLYN_DIRECTORIES} -type f | xargs sudo stat -c "%a %U %G" | grep -v -E "^[6,7][0,4,6][0]\sbrooklyn\sbrooklyn"
- ! sudo find ${BROOKLYN_DIRECTORIES} -type d | xargs sudo stat -c "%a %U %G" | grep -v -E "^[6,7][0,1,4][0-1]\sbrooklyn\sbrooklyn"
+ ! sudo ls -d /opt/brooklyn-* | xargs stat -c "%F %a %U %G" | grep -v -E "^directory\s[7][4,5][0,5]\sbrooklyn\sbrooklyn$"
+ ! sudo find ${BROOKLYN_DIRECTORIES} -type f | xargs sudo stat -c "%a %U %G" | grep -v -E "^[6,7][0,4,6][0]\sbrooklyn\s(brooklyn|wheel)"
+ ! sudo find ${BROOKLYN_DIRECTORIES} -type d | xargs sudo stat -c "%a %U %G" | grep -v -E "^[6,7][0,1,4,5][0,1,5]\sbrooklyn\s(brooklyn|wheel)"
assertStatus:
equals: 0
- id: test-log-files-exist