95 Commits

Author SHA1 Message Date
Wei Zhou
4a77a79949 CLOUDSTACK-9462: Build packages on Ubuntu 14.04/16.04 and support tomcat6/tomcat7
Changes
(1) add systemd support in debian/control and debian/rules for 16.04
(2) add python-setuptools in Build-Depends in debian/control
(3) seperate cloudstack-management.service and cloudstack-management.default for CentOS7 and Ubuntu 16.04
(4) add server7-ssl.xml and server7-nonssl.xml in management installation
(5) link /usr/share/cloudstack-management/lib and /usr/share/cloudstack-management/bin to correct path (tomcat6 or tomcat7)
(6) link /etc/cloudstack/management/server.xml to correct file path (server-nonssl.xml or server7-nonssl.xml)
(7) remove *.zip from .gitignore to avoid build error caused by missing /vhds/test.vhd.zip

Instruction
(1) build packages on Ubuntu 16.04: dpkg-buildpackage -uc -us
    Output on Ubuntu 16.04:
-rw-r--r-- 1 root root      4090 Feb 17 10:12 cloudstack_4.10.0.0-SNAPSHOT_amd64.changes
-rw-r--r-- 1 root root      1235 Feb 17 09:53 cloudstack_4.10.0.0-SNAPSHOT.dsc
-rw-r--r-- 1 root root   8018248 Feb 17 09:53 cloudstack_4.10.0.0-SNAPSHOT.tar.xz
-rw-r--r-- 1 root root  91868746 Feb 17 10:11 cloudstack-agent_4.10.0.0-SNAPSHOT_all.deb
-rw-r--r-- 1 root root     52882 Feb 17 10:12 cloudstack-cli_4.10.0.0-SNAPSHOT_all.deb
-rw-r--r-- 1 root root  98556216 Feb 17 10:08 cloudstack-common_4.10.0.0-SNAPSHOT_all.deb
-rw-r--r-- 1 root root     52864 Feb 17 10:12 cloudstack-docs_4.10.0.0-SNAPSHOT_all.deb
-rw-r--r-- 1 root root    585434 Feb 17 10:12 cloudstack-integration-tests_4.10.0.0-SNAPSHOT_all.deb
-rw-r--r-- 1 root root 323459934 Feb 17 10:10 cloudstack-management_4.10.0.0-SNAPSHOT_all.deb
-rw-r--r-- 1 root root    442656 Feb 17 10:12 cloudstack-marvin_4.10.0.0-SNAPSHOT_all.deb
-rw-r--r-- 1 root root  87037576 Feb 17 10:12 cloudstack-usage_4.10.0.0-SNAPSHOT_all.deb

(2) setup tomcat6/tomcat7 on management server:
    tomcat6: cloudstack-setup-management --tomcat6
    tomcat7: cloudstack-setup-management --tomcat7

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-04-07 18:41:24 +05:30
Wido den Hollander
84e496b4f9
CLOUDSTACK-676: IPv6 Basic Security Grouping for KVM
This commit implements basic Security Grouping for KVM in
Basic Networking.

It does not implement full Security Grouping yet, but it does:
- Prevent IP-Address source spoofing
- Allow DHCPv6 clients, but disallow DHCPv6 servers
- Disallow Instances to send out Router Advertisements

The Security Grouping allows ICMPv6 packets as described by RFC4890
as they are essential for IPv6 connectivity.

Following RFC4890 it allows:
- Router Solicitations
- Router Advertisements (incoming only)
- Neighbor Advertisements
- Neighbor Solicitations
- Packet Too Big
- Time Exceeded
- Destination Unreachable
- Parameter Problem
- Echo Request

ICMPv6 is a essential part of IPv6, without it connectivity will break or be very
unreliable.

For now it allows any UDP and TCP packet to be send in to the Instance which
effectively opens up the firewall completely.

Future commits will implement Security Grouping further which allows controlling UDP and TCP
ports for IPv6 like can be done with IPv4.

Regardless of the egress filtering (which can't be done yet) it will always allow outbound DNS
to port 53 over UDP or TCP.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2017-01-26 15:36:08 +01:00
Rohit Yadav
e6cc78f531 CLOUDSTACK-9710: Switch to JRE1.8
- Switches Travis to use jdk1.8
- Changes java-version to 1.8
- Change jdk/maven version to 1.8
- Switch to F5/java8 compatible library release
- Switch packaging to use jdk 1.8, and jre 1.8 in init/systemd scripts
- Switch systemvm to openjdk-8-jre

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-01-11 14:04:03 +05:30
Rohit Yadav
c8a52c94d2 CLOUDSTACK-9462: Refactor systemd scripts
Refactors and unifies usage of systemd script and default files across
CentOS and Ubuntu/Debian packaging system.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-08-26 15:19:58 +05:30
Wido den Hollander
142772d524 CLOUDSTACK-9462: Systemd support for Ubuntu 16.04
- systemd: Add a /etc/sysconfig/cloudstack-* file

  This allows users to easily override variables passed to Java when
  starting up.

  It also creates a foundation for sharing the systemd service profile
  between CentOS and Ubuntu since it only requires the environment file
  to be changed.

- deb: Add Ubuntu 16.04 support

  Ubuntu 16.04 differs from Ubuntu 14.04 in a few ways:
  - systemd instead of sysvinit / upstart
  - Java 8 support

  The packaging now detects on which distribution it is being
  build and based on that it installs different files in the
  packages, but it also changes the Dependencies.

  Packages for Ubuntu 16.04 will require Java 8 as a JRE

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-08-25 14:18:51 +05:30
Rajani Karuturi
c03d035c8b Merge release branch 4.8 to 4.9
* 4.8:
  server: give more memory to tests
  packaging: Marvin and integration-tests packages
2016-08-05 14:30:45 +05:30
Rohit Yadav
de041df74d packaging: Marvin and integration-tests packages
This introduces two new cloudstack packages: marvin and integration-tests.
The two packages will make it easier for CI systems to install Marvin for a
specific cloudstack release/build and run integration tests that are specific
for that version/build.

- maven: add explicit juniper-contrail-api maven repository
- marvin: build source distribution for both install and package mvn phases

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-07-20 16:31:23 +05:30
Will Stevens
20f779298d merging 4.8 -> master 2016-05-27 15:19:33 -04:00
jeff
9c1c50e05b Add lsb-release dependency to mgmt server and agent on Debian/Ubuntu. 2016-05-26 11:25:22 +00:00
Sverrir Berg
15da0c2b33 Revert "Add perl-modules as install dependency for cloudstack-agent"
perl-modules are no longer required. See:
https://github.com/apache/cloudstack/pull/1533

This reverts commit 64b72a5c5a410f41bd869cc9d40807d888e05055.
2016-05-22 10:16:54 +00:00
Will Stevens
e3b38bbd4f Merge release branch 4.8 to master
* 4.8:
  Add perl-modules as install dependency for cloudstack-agent
2016-05-13 17:07:26 -04:00
Will Stevens
7a0b37a29a Merge pull request #1495 from greenqloud/pr-install-perl-modules-on-agent
Add perl-modules as install dependency for cloudstack-agentRequired to run perl scripts that configure networking for VMs.

* pr/1495:
  Add perl-modules as install dependency for cloudstack-agent

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-05-13 17:05:55 -04:00
Rohit Yadav
07564469e9 CLOUDSTACK-9299: Out-of-band Management for CloudStack
Support access to a host’s out-of-band management interface (e.g. IPMI, iLO,
DRAC, etc.) to manage host power operations (on/off etc.) and querying current
power state in CloudStack.

Given the wide range of out-of-band management interfaces such as iLO and iDRA,
the service implementation allows for development of separate drivers as plugins.
This feature comes with a ipmitool based driver that uses the
ipmitool (http://linux.die.net/man/1/ipmitool) to communicate with any
out-of-band management interface that support IPMI 2.0.

This feature allows following common use-cases:
- Restarting stalled/failed hosts
- Powering off under-utilised hosts
- Powering on hosts for provisioning or to increase capacity
- Allowing system administrators to see the current power state of the host

For testing this feature `ipmisim` can be used:
https://pypi.python.org/pypi/ipmisim

FS:
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Out-of-band+Management+for+CloudStack

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-05-12 11:05:40 +05:30
Rohit Yadav
4347776ac6 CLOUDSTACK-8562: DB-Backed Dynamic Role Based API Access Checker
This feature allows root administrators to define new roles and associate API
permissions to them.

A limited form of role-based access control for the CloudStack management server
API is provided through a properties file, commands.properties, embedded in the
WAR distribution. Therefore, customizing API permissions requires unpacking the
distribution and modifying this file consistently on all servers. The old system
also does not permit the specification of additional roles.

FS:
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Dynamic+Role+Based+API+Access+Checker+for+CloudStack

DB-Backed Dynamic Role Based API Access Checker for CloudStack brings following
changes, features and use-cases:
- Moves the API access definitions from commands.properties to the mgmt server DB
- Allows defining custom roles (such as a read-only ROOT admin) beyond the
  current set of four (4) roles
- All roles will resolve to one of the four known roles types (Admin, Resource
  Admin, Domain Admin and User) which maintains this association by requiring
  all new defined roles to specify a role type.
- Allows changes to roles and API permissions per role at runtime including additions or
  removal of roles and/or modifications of permissions, without the need
  of restarting management server(s)

Upgrade/installation notes:
- The feature will be enabled by default for new installations, existing
  deployments will continue to use the older static role based api access checker
  with an option to enable this feature
- During fresh installation or upgrade, the upgrade paths will add four default
  roles based on the four default role types
- For ease of migration, at the time of upgrade commands.properties will be used
  to add existing set of permissions to the default roles. cloud.account
  will have a new role_id column which will be populated based on default roles
  as well

Dynamic-roles migration tool: scripts/util/migrate-dynamicroles.py
- Allows admins to migrate to the dynamic role based checker at a future date
- Performs a harder one-way migrate and update
- Migrates rules from existing commands.properties file into db and deprecates it
- Enables an internal hidden switch to enable dynamic role based checker feature

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-05-11 09:45:19 +05:30
Wido den Hollander
92e3ba2053 CLOUDSTACK-8818: Use MySQL native connector with Python
MySQLdb has been deprecated and is also not supported in Python 3.

mysql.connector is a connector written in Python which talks the
native MySQL protocol without any external code.

https://dev.mysql.com/doc/connector-python/en/
2016-05-04 23:28:52 +02:00
Sverrir Berg
64b72a5c5a Add perl-modules as install dependency for cloudstack-agent
Required to run perl scripts that configure networking for VMs.
That script fails silently if this is not installed.
2016-04-15 13:09:45 +00:00
Sverrir Berg
c40a1ae0ed Installing bzip2 since it is required for extracting templates. 2016-04-14 14:16:05 +00:00
Boris Schrijver
e5040b5cbd CLOUDSTACK-9040: Use Tomcat6 for Debian packages. 2015-11-05 20:16:11 +01:00
Wido den Hollander
ae5025aca8 debian: Updated dependencies for Packages
A few dependencies have been updated to their latest version and some
have been removed.

The ordering for some dependencies has been changed so that we will
depend on Java 8 over Java 7 when doing a new install.
2015-09-07 16:45:34 +02:00
Wido den Hollander
6d92abcb76 CLOUDSTACK-8635: Depend on the headless JRE for Ubuntu packages
This will install less packages on the system running CloudStack.

The -headless JRE doesn't include packages for running on desktops

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #588
2015-07-15 18:12:25 +05:30
Rene Moser
7451f13f91 debian: allow tomcat7 as optional dependency
This closes #247

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-13 15:40:52 +02:00
Rohit Yadav
58999daafe CLOUDSTACK-8433: remove awsapi rpm and debian packaging
- Removes awsapi packaging rules for debian, centos63, centos7, fedora 20/21
- Removes catalina port 7080 service configs
- Fixes build replace properties for AWSAPILOG
- Removes maven profile for building awsapi and deploying db in developer profile

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-06 15:22:04 +02:00
Rohit Yadav
464af9cb29 debian: allow openjdk1.8 as optional dependency
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-06 02:19:04 +02:00
Felix Geyer
705af84141 Remove dependencies on essential packages.
They are guaranteed to be present on Debian systems.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2015-03-05 14:39:54 +01:00
Felix Geyer
b482766c61 Add dependency on ${misc:Depends} to all packages.
Signed-off-by: Wido den Hollander <wido@widodh.nl>
2015-03-05 14:39:54 +01:00
Felix Geyer
05f865ffd5 Add adduser dependency to cloudstack-management.
Used in the postinst script.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2015-03-05 14:39:54 +01:00
Felix Geyer
b338e88e40 Add proper python dependencies.
Signed-off-by: Wido den Hollander <wido@widodh.nl>
2015-03-05 14:39:54 +01:00
Felix Geyer
f1301a2c5d Swap maven3 | maven build-dependency.
maven3 is not a package in Debian and buildds look only at the
first alternative.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2015-03-05 14:35:52 +01:00
Rohit Yadav
28ad34e31e CLOUDSTACK-7038: Add mysql client dependency for mgmt server, rpms and debs
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 6a26e77514b955e5c9cbb00e51183ec74d3887a3)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-20 12:17:34 +02:00
Wido den Hollander
097b2d711f debian: Do not depend on tomcat for building
No need for Tomcat when building the packages
2014-08-19 00:00:15 +02:00
Wido den Hollander
aac8b91cbe debian: Depend on qemu-system-x86 or qemu-kvm
The qemu-kvm package has become deprecated in Ubuntu 14.04 and
the right package to install would be qemu-system-x86

To maintain backwards compatibility for older Ubuntu LTS releases
we depend on qemu-system-x86 or qemu-kvm
2014-08-15 16:13:49 +02:00
Rohit Yadav
47625af7c3 CLOUDSTACK-6360: Fix JDK paths in ubuntu packaging init scripts, don't use 1.6
Since we've agreed to use JDK/JRE 1.7, this enforces that for Ubuntu builds
- this fix remove usage of 1.6 paths in JDK_DIR for cloud-{agent, management, usage}.
- adds oracle jdk 1.7 path (in case a user is using that)
- adds mysql-connector-java path to CLASSPATH for usage server
- adds libmysql-java pkg dependency (tested and available for precise and trusty)

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 96d6a2a03734ebbb9f41196d56c409d544a268ea)

Conflicts:
	packaging/debian/init/cloud-usage
Adds pessimistic logic to try the hard coded paths if Rajani's logic fails
2014-08-08 14:26:47 +02:00
Wido den Hollander
b141641528 debian: cloudstack-management requires libmysql-java for SQL connection 2014-03-25 21:13:15 +01:00
Wido den Hollander
49a29ce0cf Switch to Java 7
We now require at least Java 7 to build and run CloudStack.

Both the DEB and RPM packaging now also require Java 7 during installation
of the packages.
2014-01-27 11:54:43 +01:00
Wei Zhou
7cdd2ef6ba add iptables/ethtool requirement on Agent in debian/control 2013-10-24 11:33:49 +02:00
Wido den Hollander
e6fd794ca0 packaging: Do not depend on JNA and don't include it in the classpath
It's now packaged with maven due to libvirt 0.5.1 and will be included
in the classpath automatically.
2013-09-29 12:22:46 +02:00
Rene Diepstraten
211b180d55 Replaced virsh() by python-libvirt functions
Signed-off-by: Rene Diepstraten <rene@renediepstraten.nl>
2013-07-25 18:10:58 +02:00
Hiroaki KAWAI
f854f5df87 fix debian packaging
nfs-common is required for a basic NFS installation both in
management server and agent.

Signed-off-by: Hiroaki KAWAI <kawai@stratosphere.co.jp>
2013-05-27 14:54:07 +09:00
Wido den Hollander
df48b6531d CLOUDSTACK-1589: Don't depend on chkconfig
Although this package is semi-available under Ubuntu/Debian we don't use it.

It's not used by the packages, so no reason to depend on it.
2013-04-04 21:10:33 +02:00
Pradeep Soundararajan
6eac422943 CLOUDSTACK-1689: Adding ipset as part of agent install for debian
Signed-off-by: Chip Childers <chip.childers@gmail.com>
2013-04-01 15:33:23 +01:00
Marcus Sorensen
9ad54a082c Summary: KVM - use virtio socket to communicate config to system vms
Detail: This gets rid of the patchdisk method of passing cmdline and
authorized_keys to KVM system VMs. It instead passes them to a virtio socket,
which the KVM guest reads from the character device /dev/vport0p1 during
cloud-early-config. Tested to work on CentOS 6.3 and Ubuntu 12.04. Should
work with even older versions of libvirt.

Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1362691685 -0700
2013-03-07 14:28:05 -07:00
Wido den Hollander
e14e057f3d packaging: Use the JNA version from the distribution
Libvirt-java 0.4.9 works just fine with JNA 3.2.4 which is in
all distributions.

Future libvirt version require at least JNA 3.5.1 due to new methods
and memory management, but that is not our concern now.

By depending on the JNA in the distribution and adding it to the classpath
we can work just fine.
2013-03-05 16:10:38 +01:00
Wido den Hollander
20070ee07f debian: Packaging update for mainly the Agent
The new cloudstack-agent package wouldn't boot due to various issues.

Those all seem to be resolved.

Other changes include path changes like /etc/cloud -> /etc/cloudstack

The new package now installs, but the upgrade hasn't been tested yet.
2013-03-01 15:06:07 +01:00
Wido den Hollander
ca6c1eba9c debian: Require either Java 6 or 7
Our source is 1.6 compatible (pom.xml), but users can choose to compile
with JDK7 and run with JRE 7 if they want.
2013-02-28 13:48:14 +01:00
Noa Resare
2f135be15f CLOUDSTACK-1415: Debian & Ubuntu packaging work
Some concepts included:

* the replace.properties location used by maven is parameterized to allow
  for a build that does not modify the currently git tracked files
* package naming is updated along the lines of what was discussed on the
  -dev mailing list and between committers at the Build a Cloud Day in Belgi
* package version pattern is updated (since we redo all package names,
  we might as well drop the epoch)
2013-02-27 15:44:46 +00:00
Noa Resare
fe9df2186b Have cloud-setup-* tools detect Debian
To minimize this change, treat Debian as Ubuntu for now.

Reviewed-by: Wido (https://reviews.apache.org/r/9310)
2013-02-25 12:32:25 +05:30
Wido den Hollander
4da02c0971 deb: Have the agent depend on the System ISO
This is needed for deploying System VMs on a KVM hypervisor

Without this ISO we can't deploy this System VMs
2012-11-05 10:28:13 +01:00
Wido den Hollander
e9f5c011bf debian: Don't have cloud-agent depend on libservlet2.5-java 2012-09-26 23:29:47 +02:00
Wido den Hollander
8f122a5452 debian: Fix dependencies around libcommons*java
Packages like cloud-agent were depending on various libcommons* packages
which are only used in the server and utils.

Correct the dependency for this
2012-09-26 23:29:47 +02:00
Wido den Hollander
95ad56e2da debian: Do not have cloud-agent depend on libcommons-httpclient
Already done by cloud-agent-libs
2012-09-26 23:29:47 +02:00