diff --git a/debian/cloudstack-agent.dirs b/debian/cloudstack-agent.dirs new file mode 100644 index 000000000000..96c8719045c6 --- /dev/null +++ b/debian/cloudstack-agent.dirs @@ -0,0 +1 @@ +/var/log/cloudstack/agent diff --git a/debian/cloudstack-agent.install b/debian/cloudstack-agent.install index 82fce9f78caf..184d92282bee 100644 --- a/debian/cloudstack-agent.install +++ b/debian/cloudstack-agent.install @@ -18,12 +18,12 @@ /etc/cloudstack/agent/agent.properties /etc/cloudstack/agent/environment.properties /etc/cloudstack/agent/log4j-cloud.xml +/etc/default/cloudstack-agent /etc/profile.d/cloudstack-agent-profile.sh /etc/logrotate.d/cloudstack-agent /etc/init.d/cloudstack-agent /usr/bin/cloudstack-setup-agent /usr/bin/cloudstack-ssh /usr/bin/cloudstack-agent-upgrade -/var/log/cloudstack/agent /usr/share/cloudstack-agent/lib/* /usr/share/cloudstack-agent/plugins diff --git a/debian/cloudstack-usage.dirs b/debian/cloudstack-usage.dirs new file mode 100644 index 000000000000..3f64b79449b5 --- /dev/null +++ b/debian/cloudstack-usage.dirs @@ -0,0 +1 @@ +/var/log/cloudstack/usage diff --git a/debian/cloudstack-usage.install b/debian/cloudstack-usage.install index 4722e688dcd7..c0cc95a80b71 100644 --- a/debian/cloudstack-usage.install +++ b/debian/cloudstack-usage.install @@ -18,5 +18,5 @@ /usr/share/cloudstack-usage/lib/* /usr/share/cloudstack-usage/plugins /etc/init.d/cloudstack-usage -/var/log/cloudstack/usage /etc/cloudstack/usage/* +/etc/default/cloudstack-usage diff --git a/debian/control b/debian/control index 0cf7a11403c5..9855bedeae88 100644 --- a/debian/control +++ b/debian/control @@ -2,8 +2,8 @@ Source: cloudstack Section: libs Priority: extra Maintainer: Wido den Hollander -Build-Depends: debhelper (>= 9), openjdk-8-jdk | openjdk-7-jdk, genisoimage, - python-mysql.connector, maven (>= 3) | maven3, python (>= 2.7) +Build-Depends: debhelper (>= 9), openjdk-8-jdk | java8-sdk | java8-jdk | openjdk-7-jdk, genisoimage, + python-mysql.connector, maven (>= 3) | maven3, python (>= 2.7), lsb-release, dh-systemd Standards-Version: 3.8.1 Homepage: http://www.cloudstack.org/ @@ -22,7 +22,8 @@ Description: CloudStack server library Package: cloudstack-agent Architecture: all -Depends: ${misc:Depends}, ${python:Depends}, openjdk-8-jre-headless | openjdk-7-jre-headless, cloudstack-common (= ${source:Version}), lsb-base (>= 4.0), libcommons-daemon-java, openssh-client, qemu-kvm (>= 1.0), libvirt-bin (>= 0.9.8), uuid-runtime, iproute, ebtables, vlan, jsvc, ipset, python-libvirt, ethtool, iptables, lsb-release +Depends: ${python:Depends}, openjdk-8-jre-headless | java8-runtime-headless | java8-runtime | openjdk-7-jre-headless, cloudstack-common (= ${source:Version}), lsb-base (>= 4.0), libcommons-daemon-java, openssh-client, qemu-kvm (>= 1.0), libvirt-bin (>= 0.9.8), uuid-runtime, iproute, ebtables, vlan, jsvc, ipset, python-libvirt, ethtool, iptables, lsb-release +Recommends: init-system-helpers Conflicts: cloud-agent, cloud-agent-libs, cloud-agent-deps, cloud-agent-scripts Description: CloudStack agent The CloudStack agent is in charge of managing shared computing resources in @@ -31,7 +32,8 @@ Description: CloudStack agent Package: cloudstack-usage Architecture: all -Depends: ${misc:Depends}, openjdk-8-jre-headless | openjdk-7-jre-headless, cloudstack-common (= ${source:Version}), jsvc, libmysql-java +Depends: openjdk-8-jre-headless | java8-runtime-headless | java8-runtime | openjdk-7-jre-headless, cloudstack-common (= ${source:Version}), jsvc, libmysql-java +Recommends: init-system-helpers Description: CloudStack usage monitor The CloudStack usage monitor provides usage accounting across the entire cloud for cloud operators to charge based on usage parameters. diff --git a/debian/rules b/debian/rules index f996699ef05f..cfe7514f252d 100755 --- a/debian/rules +++ b/debian/rules @@ -6,7 +6,7 @@ SYSCONFDIR = "/etc" DESTDIR = "debian/tmp" %: - dh $@ --with python2 + dh $@ --with python2,systemd override_dh_auto_configure: cp packaging/debian/replace.properties replace.properties.tmp @@ -26,6 +26,8 @@ override_dh_auto_install: # Common packages mkdir -p $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE) mkdir -p $(DESTDIR)/$(SYSCONFDIR)/init.d + mkdir -p $(DESTDIR)/$(SYSCONFDIR)/default + mkdir -p $(DESTDIR)/var/cache/$(PACKAGE) mkdir -p $(DESTDIR)/var/log/$(PACKAGE) mkdir -p $(DESTDIR)/var/lib/$(PACKAGE) @@ -35,13 +37,20 @@ override_dh_auto_install: # cloudstack-agent mkdir $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/agent mkdir $(DESTDIR)/$(SYSCONFDIR)/profile.d - mkdir $(DESTDIR)/var/log/$(PACKAGE)/agent mkdir $(DESTDIR)/usr/share/$(PACKAGE)-agent mkdir $(DESTDIR)/usr/share/$(PACKAGE)-agent/plugins install -D agent/target/cloud-agent-$(VERSION).jar $(DESTDIR)/usr/share/$(PACKAGE)-agent/lib/$(PACKAGE)-agent.jar install -D plugins/hypervisors/kvm/target/cloud-plugin-hypervisor-kvm-$(VERSION).jar $(DESTDIR)/usr/share/$(PACKAGE)-agent/lib/ install -D plugins/hypervisors/kvm/target/dependencies/* $(DESTDIR)/usr/share/$(PACKAGE)-agent/lib/ - install -D packaging/debian/init/cloud-agent $(DESTDIR)/$(SYSCONFDIR)/init.d/$(PACKAGE)-agent + + install -m0755 packaging/debian/$(PACKAGE)-agent.init $(DESTDIR)/$(SYSCONFDIR)/init.d/$(PACKAGE)-agent + install -d -m0755 debian/$(PACKAGE)-agent/lib/systemd/system + # Fix libvirt service name for Debian/Ubuntu + sed -i 's/Requires=libvirtd.service/Requires=libvirt-bin.service/g' packaging/systemd/$(PACKAGE)-agent.service + sed -i 's/After=libvirtd.service/After=libvirt-bin.service/g' packaging/systemd/$(PACKAGE)-agent.service + install -m0644 packaging/systemd/$(PACKAGE)-agent.service debian/$(PACKAGE)-agent/lib/systemd/system/$(PACKAGE)-agent.service + install -m0644 packaging/systemd/$(PACKAGE)-agent.default $(DESTDIR)/$(SYSCONFDIR)/default/$(PACKAGE)-agent + install -D agent/target/transformed/cloud-setup-agent $(DESTDIR)/usr/bin/cloudstack-setup-agent install -D agent/target/transformed/cloud-ssh $(DESTDIR)/usr/bin/cloudstack-ssh install -D agent/target/transformed/cloudstack-agent-profile.sh $(DESTDIR)/$(SYSCONFDIR)/profile.d/cloudstack-agent-profile.sh @@ -116,14 +125,17 @@ override_dh_auto_install: # cloudstack-usage mkdir $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/usage - mkdir $(DESTDIR)/var/log/$(PACKAGE)/usage mkdir $(DESTDIR)/usr/share/$(PACKAGE)-usage mkdir $(DESTDIR)/usr/share/$(PACKAGE)-usage/plugins install -D usage/target/cloud-usage-$(VERSION).jar $(DESTDIR)/usr/share/$(PACKAGE)-usage/lib/$(PACKAGE)-usage.jar install -D usage/target/dependencies/* $(DESTDIR)/usr/share/$(PACKAGE)-usage/lib/ cp usage/target/transformed/db.properties $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/usage/ cp usage/target/transformed/log4j-cloud_usage.xml $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/usage/log4j-cloud.xml - install -D packaging/debian/init/cloud-usage $(DESTDIR)/$(SYSCONFDIR)/init.d/$(PACKAGE)-usage + + install -D -m0755 packaging/debian/$(PACKAGE)-usage.init $(DESTDIR)/$(SYSCONFDIR)/init.d/$(PACKAGE)-usage + install -d -m0755 debian/$(PACKAGE)-usage/lib/systemd/system + install -m0644 packaging/systemd/$(PACKAGE)-usage.service debian/$(PACKAGE)-usage/lib/systemd/system/$(PACKAGE)-usage.service + install -m0644 packaging/systemd/$(PACKAGE)-usage.default $(DESTDIR)/$(SYSCONFDIR)/default/$(PACKAGE)-usage # cloudstack-marvin mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)-marvin @@ -136,5 +148,8 @@ override_dh_auto_install: override_dh_installinit: dh_installinit -pcloudstack-management -pcloudstack-agent -pcloudstack-usage --onlyscripts --no-start +override_dh_systemd_enable: + dh_systemd_enable -pcloudstack-agent -pcloudstack-usage + override_dh_installdocs: dh_installdocs -A tools/whisker/LICENSE tools/whisker/NOTICE INSTALL.md diff --git a/packaging/README.md b/packaging/README.md new file mode 100644 index 000000000000..abfd420ba4de --- /dev/null +++ b/packaging/README.md @@ -0,0 +1,39 @@ +# CloudStack RPM and DEB packaging +This directory contains all the required scripts and tools needed to build RPM and DEB packages for Apache CloudStack. + +These scripts are also used by the CloudStack team to build packages for the official release of CloudStack. + +# Requirements +The RPM and DEB packages have dependencies on versions of specific libraries. Due to these dependencies the following distributions and their versions are supported by the packages. + +* CentOS / RHEL: 6 and 7 +* Debian 7 (Wheezy) and 8 (Jessy) (untested!) +* Ubuntu: 14.04 (Trusty) and 16.04 (Xenial) + +# Building +Using the scripts in the *packaging* directory the RPM and DEB packages can be build. + +## DEB +If you simply want to build packages go to the root directory of your CloudStack source code and run: + +``dpkg-buildpackage`` + +This will build packages for the current distribution version you are running. If you run this on a Ubuntu 16.04 system the packages will be tailored for Ubuntu 16.04 and will not install on Ubuntu 14.04. + +### Building cross-distribution +If you want to build packages for a different distribution run the *build-deb.sh* script. This will build packages with the current distribution as a suffix to the package names. E.g. *cloudstack-agent_4.9.0~xenial_all.deb* + +Using a Docker image you can build packages for a distribution you are not running. + +The following commands assume that the CloudStack source is present in **/tmp/cloudstack** on the system you are running these commands on. + +``docker run -ti -v /tmp:/src ubuntu:16.04 /bin/bash -c "apt-get update && apt-get install -y dpkg-dev python debhelper openjdk-8-jdk genisoimage python-mysql.connector maven lsb-release devscripts && /src/cloudstack/packaging/build-deb.sh"`` + +``docker run -ti -v /tmp:/src ubuntu:14.04 /bin/bash -c "apt-get update && apt-get install -y dpkg-dev python debhelper openjdk-7-jdk genisoimage python-mysql.connector maven lsb-release devscripts && /src/cloudstack/packaging/build-deb.sh"`` + +The commands above will generate Ubuntu 14.04 and 16.04 packages which you will find in */tmp* on your system after the build succeeds. + +## RPM +The *package.sh* script can be used to build RPM packages for CloudStack. In the *packaging* script you can run the following command: + +``./package.sh --pack oss --distribution centos7`` diff --git a/packaging/build-deb.sh b/packaging/build-deb.sh new file mode 100755 index 000000000000..aa17dc51c9fa --- /dev/null +++ b/packaging/build-deb.sh @@ -0,0 +1,53 @@ +#!/bin/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. + +set -e + +# +# This script builds Debian packages for CloudStack and does +# so by altering the debian/changelog file and add the Ubuntu +# version as a suffix, for example: 4.9.0~xenial +# +# To build packages for Ubuntu 14.04 run this script on a +# 14.04 system. The same goes for Ubuntu 16.04 +# +# The biggest difference between those two versions is the +# sysvinit vs systemd and Java 7 vs Java 8 +# +# These packages can be build using Docker for example: +# +# Assume that the cloudstack source is present in /tmp/cloudstack +# +# Ubuntu 16.04 +# docker run -ti -v /tmp:/src ubuntu:16.04 /bin/bash -c "apt-get update && apt-get install -y dpkg-dev python debhelper openjdk-8-jdk genisoimage python-mysql.connector maven lsb-release devscripts && /src/cloudstack/packaging/build-deb.sh" +# +# Ubuntu 14.04 +# docker run -ti -v /tmp:/src ubuntu:14.04 /bin/bash -c "apt-get update && apt-get install -y dpkg-dev python debhelper openjdk-7-jdk genisoimage python-mysql.connector maven lsb-release devscripts && /src/cloudstack/packaging/build-deb.sh" +# + +cd `dirname $0` +cd .. + +dpkg-checkbuilddeps + +VERSION=$(grep '^ ' pom.xml| cut -d'>' -f2 |cut -d'<' -f1) +DISTCODE=$(lsb_release -sc) + +dch -b -v "${VERSION}~${DISTCODE}" -u low -m "Apache CloudStack Release ${VERSION}" + +dpkg-buildpackage -j2 -b -uc -us diff --git a/packaging/centos7/cloud.spec b/packaging/centos7/cloud.spec index 658d8dad1389..15ad8dea4e0e 100644 --- a/packaging/centos7/cloud.spec +++ b/packaging/centos7/cloud.spec @@ -210,7 +210,7 @@ mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management mkdir -p ${RPM_BUILD_ROOT}%{_initrddir} -mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig +mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/default mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d @@ -285,10 +285,10 @@ install python/bindir/cloud-external-ipallocator.py ${RPM_BUILD_ROOT}%{_bindir}/ install -D client/target/pythonlibs/jasypt-1.9.2.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/lib/jasypt-1.9.2.jar install -D packaging/centos7/cloud-ipallocator.rc ${RPM_BUILD_ROOT}%{_initrddir}/%{name}-ipallocator -install -D packaging/centos7/cloud-management.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/%{name}-management -install -D server/target/conf/cloudstack-sudoers ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d/%{name}-management -install -D packaging/centos7/cloud-management.service ${RPM_BUILD_ROOT}%{_unitdir}/%{name}-management.service install -D packaging/centos7/cloud.limits ${RPM_BUILD_ROOT}%{_sysconfdir}/security/limits.d/cloud +install -D packaging/systemd/cloudstack-management.service ${RPM_BUILD_ROOT}%{_unitdir}/%{name}-management.service +install -D packaging/systemd/cloudstack-management.default ${RPM_BUILD_ROOT}%{_sysconfdir}/default/%{name}-management +install -D server/target/conf/cloudstack-sudoers ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d/%{name}-management touch ${RPM_BUILD_ROOT}%{_localstatedir}/run/%{name}-management.pid install -D server/target/conf/cloudstack-catalina.logrotate ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}-catalina @@ -309,6 +309,7 @@ mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/lib mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/plugins install -D packaging/systemd/cloudstack-agent.service ${RPM_BUILD_ROOT}%{_unitdir}/%{name}-agent.service +install -D packaging/systemd/cloudstack-agent.default ${RPM_BUILD_ROOT}%{_sysconfdir}/default/%{name}-agent install -D agent/target/transformed/agent.properties ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent/agent.properties install -D agent/target/transformed/environment.properties ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent/environment.properties install -D agent/target/transformed/log4j-cloud.xml ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent/log4j-cloud.xml @@ -329,6 +330,7 @@ install -D usage/target/transformed/db.properties ${RPM_BUILD_ROOT}%{_sysconfdir install -D usage/target/transformed/log4j-cloud_usage.xml ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/usage/log4j-cloud.xml cp usage/target/dependencies/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-usage/lib/ install -D packaging/systemd/cloudstack-usage.service ${RPM_BUILD_ROOT}%{_unitdir}/%{name}-usage.service +install -D packaging/systemd/cloudstack-usage.default ${RPM_BUILD_ROOT}%{_sysconfdir}/default/%{name}-usage mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/usage/ # CLI @@ -403,6 +405,10 @@ if [ ! -f %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/vhd-util echo %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/ fi +if [ -f %{_sysconfdir}/sysconfig/%{name}-management ] ; then + mv %{_sysconfdir}/sysconfig/%{name}-management %{_sysconfdir}/default/%{name}-management +fi + %preun agent /sbin/service cloudstack-agent stop || true if [ "$1" == "0" ] ; then @@ -482,7 +488,7 @@ pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz %dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/management/work %dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/management/temp %dir %attr(0770,root,cloud) %{_localstatedir}/log/%{name}/management -%config(noreplace) %{_sysconfdir}/sysconfig/%{name}-management +%config(noreplace) %{_sysconfdir}/default/%{name}-management %config(noreplace) %{_sysconfdir}/sudoers.d/%{name}-management %config(noreplace) %{_sysconfdir}/security/limits.d/cloud %config(noreplace) %attr(0640,root,cloud) %{_sysconfdir}/%{name}/management/db.properties @@ -533,6 +539,7 @@ pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz %attr(0755,root,root) %{_bindir}/%{name}-agent-upgrade %attr(0755,root,root) %{_bindir}/%{name}-ssh %attr(0644,root,root) %{_unitdir}/%{name}-agent.service +%config(noreplace) %{_sysconfdir}/default/%{name}-agent %attr(0644,root,root) %{_sysconfdir}/profile.d/%{name}-agent-profile.sh %attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name}-agent %attr(0755,root,root) %{_datadir}/%{name}-common/scripts/network/cisco @@ -559,6 +566,7 @@ pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz %files usage %attr(0644,root,root) %{_unitdir}/%{name}-usage.service +%config(noreplace) %{_sysconfdir}/default/%{name}-usage %attr(0644,root,root) %{_datadir}/%{name}-usage/*.jar %attr(0644,root,root) %{_datadir}/%{name}-usage/lib/*.jar %dir %attr(0770,root,cloud) %{_localstatedir}/log/%{name}/usage diff --git a/packaging/debian/init/cloud-agent b/packaging/debian/cloudstack-agent.init similarity index 100% rename from packaging/debian/init/cloud-agent rename to packaging/debian/cloudstack-agent.init diff --git a/packaging/debian/init/cloud-usage b/packaging/debian/cloudstack-usage.init similarity index 100% rename from packaging/debian/init/cloud-usage rename to packaging/debian/cloudstack-usage.init diff --git a/packaging/systemd/cloudstack-agent.default b/packaging/systemd/cloudstack-agent.default new file mode 100644 index 000000000000..659d71503e3b --- /dev/null +++ b/packaging/systemd/cloudstack-agent.default @@ -0,0 +1,21 @@ +# 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. + +JAVA=/usr/bin/java +JAVA_HEAP_INITIAL=256m +JAVA_HEAP_MAX=2048m +JAVA_CLASS=com.cloud.agent.AgentShell diff --git a/packaging/systemd/cloudstack-agent.service b/packaging/systemd/cloudstack-agent.service index 00411f1b3890..dd1560c2a41e 100644 --- a/packaging/systemd/cloudstack-agent.service +++ b/packaging/systemd/cloudstack-agent.service @@ -23,14 +23,11 @@ After=libvirtd.service [Service] Type=simple -Environment=JAVA_HOME=/usr/lib/jvm/jre -Environment=JAVA_HEAP_INITIAL=256m -Environment=JAVA_HEAP_MAX=2048m -Environment=JAVA_CLASS=com.cloud.agent.AgentShell +EnvironmentFile=-/etc/default/cloudstack-agent ExecStart=/bin/sh -ec '\ export ACP=`ls /usr/share/cloudstack-agent/lib/*.jar /usr/share/cloudstack-agent/plugins/*.jar 2>/dev/null|tr "\\n" ":"`; \ export CLASSPATH="$ACP:/etc/cloudstack/agent:/usr/share/cloudstack-common/scripts"; \ - ${JAVA_HOME}/bin/java -Xms${JAVA_HEAP_INITIAL} -Xmx${JAVA_HEAP_MAX} -cp "$CLASSPATH" $JAVA_CLASS' + ${JAVA} -Xms${JAVA_HEAP_INITIAL} -Xmx${JAVA_HEAP_MAX} -cp "$CLASSPATH" $JAVA_CLASS' Restart=always RestartSec=10s diff --git a/packaging/centos7/cloud-management.sysconfig b/packaging/systemd/cloudstack-management.default similarity index 100% rename from packaging/centos7/cloud-management.sysconfig rename to packaging/systemd/cloudstack-management.default diff --git a/packaging/centos7/cloud-management.service b/packaging/systemd/cloudstack-management.service similarity index 95% rename from packaging/centos7/cloud-management.service rename to packaging/systemd/cloudstack-management.service index db52dcf1ba1e..c1ede4bed80c 100644 --- a/packaging/centos7/cloud-management.service +++ b/packaging/systemd/cloudstack-management.service @@ -28,7 +28,7 @@ UMask=0022 Type=simple EnvironmentFile=/etc/tomcat/tomcat.conf Environment="NAME=cloudstack-management" -EnvironmentFile=-/etc/sysconfig/cloudstack-management +EnvironmentFile=-/etc/default/cloudstack-management ExecStart=/usr/libexec/tomcat/server start ExecStop=/usr/libexec/tomcat/server stop SuccessExitStatus=143 diff --git a/packaging/systemd/cloudstack-usage.default b/packaging/systemd/cloudstack-usage.default new file mode 100644 index 000000000000..84de943ceedc --- /dev/null +++ b/packaging/systemd/cloudstack-usage.default @@ -0,0 +1,22 @@ +# 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. + +JAVA=/usr/bin/java +JAVA_HEAP_INITIAL=256m +JAVA_HEAP_MAX=2048m +JAVA_CLASS=com.cloud.usage.UsageServer +JAVA_PID=$$ diff --git a/packaging/systemd/cloudstack-usage.service b/packaging/systemd/cloudstack-usage.service index 641d125d25cd..424a4556372b 100644 --- a/packaging/systemd/cloudstack-usage.service +++ b/packaging/systemd/cloudstack-usage.service @@ -23,15 +23,11 @@ After=network.target network-online.target [Service] Type=simple -Environment=JAVA_HOME=/usr/lib/jvm/jre -Environment=JAVA_HEAP_INITIAL=256m -Environment=JAVA_HEAP_MAX=2048m -Environment=JAVA_CLASS=com.cloud.usage.UsageServer -Environment=JAVA_PID=$$ +EnvironmentFile=-/etc/default/cloudstack-usage ExecStart=/bin/sh -ec '\ export UCP=`ls /usr/share/cloudstack-usage/cloud-usage-*.jar /usr/share/cloudstack-usage/lib/*.jar /usr/share/cloudstack-mysql-ha/lib/*.jar | tr "\\n" ":"`; \ export CLASSPATH="$UCP:/etc/cloudstack/usage:/usr/share/java/mysql-connector-java.jar"; \ - ${JAVA_HOME}/bin/java -Dpid=${JAVA_PID} -Xms${JAVA_HEAP_INITIAL} -Xmx${JAVA_HEAP_MAX} -cp "$CLASSPATH" $JAVA_CLASS' + ${JAVA} -Dpid=${JAVA_PID} -Xms${JAVA_HEAP_INITIAL} -Xmx${JAVA_HEAP_MAX} -cp "$CLASSPATH" $JAVA_CLASS' Restart=always RestartSec=10s diff --git a/pom.xml b/pom.xml index cb5bbceebe6e..c25f64926ad1 100644 --- a/pom.xml +++ b/pom.xml @@ -832,6 +832,8 @@ **/*.json build/build.number services/console-proxy/server/js/jquery.js + debian/cloudstack-usage.dirs + debian/cloudstack-agent.dirs debian/compat debian/control debian/dirs