Commit Graph

117 Commits

Author SHA1 Message Date
nvazquez 0a68b73ad0 Remove aria2 dependency 2018-01-05 14:48:27 -03:00
nvazquez a5c90400d3 CLOUDSTACK-10146: Bypass Secondary Storage 2018-01-05 03:36:51 -03:00
Rohit Yadav 366d82e292 FR12 (CLOUDSTACK-9993): Secure Agent Communications (#38)
This introduces a new certificate authority framework that allows
pluggable CA provider implementations to handle certificate operations
around issuance, revocation and propagation. The framework injects
itself to `NioServer` to handle agent connections securely. The
framework adds assumptions in `NioClient` that a keystore if available
with known name `cloud.jks` will be used for SSL negotiations and
handshake.

This includes a default 'root' CA provider plugin which creates its own
self-signed root certificate authority on first run and uses it for
issuance and provisioning of certificate to CloudStack agents such as
the KVM, CPVM and SSVM agents and also for the management server for
peer clustering.

Additional changes and notes:
- Comma separate list of management server IPs can be set to the 'host'
  global setting. Newly provisioned agents (KVM/CPVM/SSVM etc) will get
  radomized comma separated list to which they will attempt connection
  or reconnection in provided order. This removes need of a TCP LB on
  port 8250 (default) of the management server(s).
- All fresh deployment will enforce two-way SSL authentication where
  connecting agents will be required to present certificates issued
  by the 'root' CA plugin.
- Existing environment on upgrade will continue to use one-way SSL
  authentication and connecting agents will not be required to present
  certificates.
- A script `keystore-setup` is responsible for initial keystore setup
  and CSR generation on the agent/hosts.
- A script `keystore-cert-import` is responsible for import provided
  certificate payload to the java keystore file.
- Agent security (keystore, certificates etc) are setup initially using
  SSH, and later provisioning is handled via an existing agent connection
  using command-answers. The supported clients and agents are limited to
  CPVM, SSVM, and KVM agents, and clustered management server (peering).
- Certificate revocation does not revoke an existing agent-mgmt server
  connection, however rejects a revoked certificate used during SSL
  handshake.
- Older `cloudstackmanagement.keystore` is deprecated and will no longer
  be used by mgmt server(s) for SSL negotiations and handshake. New
  keystores will be named `cloud.jks`, any additional SSL certificates
  should not be imported in it for use with tomcat etc. The `cloud.jks`
  keystore is stricly used for agent-server communications.
- Management server keystore are validated and renewed on start up only,
  the validity of them are same as the CA certificates.

New APIs:
- listCaProviders: lists all available CA provider plugins
- listCaCertificate: lists the CA certificate(s)
- issueCertificate: issues X509 client certificate with/without a CSR
- provisionCertificate: provisions certificate to a host
- revokeCertificate: revokes a client certificate using its serial

Global settings for the CA framework:
- ca.framework.provider.plugin: The configured CA provider plugin
- ca.framework.cert.keysize: The key size for certificate generation
- ca.framework.cert.signature.algorithm: The certificate signature algorithm
- ca.framework.cert.validity.period: Certificate validity in days
- ca.framework.cert.automatic.renewal: Certificate auto-renewal setting
- ca.framework.background.task.delay: CA background task delay/interval
- ca.framework.cert.expiry.alert.period: Days to check and alert expiring certificates

Global settings for the default 'root' CA provider:
- ca.plugin.root.private.key: (hidden/encrypted) CA private key
- ca.plugin.root.public.key: (hidden/encrypted) CA public key
- ca.plugin.root.ca.certificate: (hidden/encrypted) CA certificate
- ca.plugin.root.issuer.dn: The CA issue distinguished name
- ca.plugin.root.auth.strictness: Are clients required to present certificates
- ca.plugin.root.allow.expired.cert: Are clients with expired certificates allowed

UI changes:
- Button to download/save the CA certificates.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-09-26 09:19:31 +05:30
Rohit Yadav 5415c06f30 packaging: backup commands.properties when upgrade to dynamic-roles
In case of rpms, the commands.properties file is bundled at
/usr/share/cloudstack-management/webapps/client/WEB-INF/classes/commands.properties

In case of a rpm upgrade, new rpms won't ship with commands.properties file. For
existing installations this copies the commands.properties file to
/etc/cloudstack/management

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-05-19 11:14:29 +05:30
Rohit Yadav 847d69edfd CLOUDSTACK-9000: logrotate cloudstack-agent out and err logs
Adds logrotate rules for cloudstack-agent.{err,out} log files

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-01-20 12:54:04 +01:00
Rohit Yadav 8348a237b8 CLOUDSTACK-9000: logrotate cloudstack-agent out and err logs
Adds logrotate rules for cloudstack-agent.{err,out} log files

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-01-20 12:54:04 +01:00
Rohit Yadav d2b0c1a32b CLOUDSTACK-8339: Allow non-root users to add KVM host
This allows non-root users to add KVM hosts, the user should be an admin or
added to sudoers to execute sudo cloudstack-setup-agent.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
Signed-off-by: Remi Bergsma <apache@remi.nl>

This closes #288
2015-05-25 14:11:14 +02:00
Rohit Yadav 25e555bd2d packaging: rpm related fixes
CLOUDSTACK-7460: mgmt server package should not create agent directory
Revert "CLOUDSTACK-8402: Depend on openjdk 1.7 for both CentOS 6 and 7"
Revert "CLOUDSTACK-8404: uninstall/conflict if java-1.8.0-openjdk is installed"

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-06 01:46:21 +02:00
Rohit Yadav 8f25be7c0f CLOUDSTACK-8404: uninstall/conflict if java-1.8.0-openjdk is installed
This would force to uninstall openjdk 1.8.0 and only install 1.7 in case of ACS
4.5.x releases. On master/4.6, we might support java 1.8.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-03 15:04:33 +02:00
Rohit Yadav 65a91c5bff packaging: add net-tools dependency on kvm agent
net-tools packages installs ifconfig on centos systems that don't have it
like centos7.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-14 16:46:22 +05:30
Rohit Yadav d1d486cbeb centos63: include java.security.ciphers when packaging rpms
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-19 14:45:37 +05:30
Harikrishna Patnala f947fad197 CS-17504: Weak SSL ciphers supported by the management server
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-13 13:25:33 +05:30
Rohit Yadav c78d3416e7 Revert "Revert "CLOUDSTACK-7671: Management server restart failed after reboot""
This reverts commit e2ca6e38d5.
2015-02-19 14:55:31 +05:30
Rohit Yadav f702097b3e packaging: fix rpm package warning, fix day/date
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-01-20 07:48:26 +05:30
Rohit Yadav 752980f370 Revert "packaging: updated hardcoded jasypt version to 1.9.2"
This reverts commit 43f39a1ec3.
2014-12-04 19:47:10 +05:30
Rohit Yadav 43f39a1ec3 packaging: updated hardcoded jasypt version to 1.9.2
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-12-04 04:02:46 +05:30
Rohit Yadav 5107472a01 CLOUDSTACK-6892: use lowercase noredist, as package.sh lowercases build type
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit a18d067278)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-11-13 17:48:56 +05:30
rayeesn dfdf9edd52 updated packge scripts to support simularot rpm build
(cherry picked from commit f96c65416a)
2014-10-13 00:35:31 -04:00
Nitin Mehta a516e5d224 Revert "CLOUDSTACK-7671: Management server restart failed after reboot"
This reverts commit e8f1c59212.

(cherry picked from commit e2ca6e38d5)
2014-10-13 00:33:58 -04:00
Damodar 7bea2f7098 CLOUDSTACK-7671: Management server restart failed after reboot
(cherry picked from commit e8f1c59212)
2014-10-13 00:30:41 -04:00
Damodar 51e0488e5c CLOUDSTACK-7316: Usage Server is not getting started when we install it on management server. This is happening when encryption is enabled. For usage server it is not able to get key file in the classpath. 2014-09-02 15:13:45 +05:30
Damodar 7ea7deded0 CLOUDSTACK-7106 : RPM build failing with RHEL7 Reviewed By : Rayees
Signed-off-by: Santhosh Edukulla <santhosh.edukulla@gmail.com>
2014-08-26 11:04:48 +05:30
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 6a26e77514)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-20 12:17:34 +02:00
Frank.Zhang a0f1012903 CloudStackCLOUDSTACK-7366
Baremetal agent is not including in RPM spec file
2014-08-18 11:23:46 -07:00
Hugo Trippaers 539db08956 CLOUDSTACK-6892 Create separate package for the mysql HA component 2014-07-04 14:37:07 +02:00
David Bierce 59eed9ef77 CLOUDSTACK-6552 Cloudstack-Management install package creates log
directory that is never used
2014-05-06 11:24:47 +02:00
ynojima 155745e26c CLOUDSTACK-6351 bugfix: Java1.6 is installed instead of Java7
Since epoch spesicifation doesn't work on RHEL6.3,
"java7" is used in the rpm spec.

Conflicts:
	packaging/centos63/cloud.spec
2014-05-02 00:21:24 -06:00
Rajesh Battala 4bc9f74b2d Removed Epoch tag/number from the cloud.spec to fix the rpm installation of Management Server, Agent and awsapi 2014-04-29 17:14:49 +05:30
ynojima 098ad53c23 Bugfix: java6 is installed instead of java7 by yum dependancy resolution. 2014-04-18 22:53:17 -06: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
Alex Hitchins a9c25dcfa3 Added required dependancy to agent setup.
(cherry picked from commit 78f62c6347)
Signed-off-by: David Nalley <david@gnsa.us>
2014-01-22 12:24:52 -05:00
rayeesn 0d24d323c0 Fix for defect CLOUDSTACK-5053, QEMU should be installed in KVM agent hosts 2014-01-10 14:03:17 -08:00
Wei Zhou eb4c52ebca Remove cloudmanagementserver.keystore from installation
(cherry picked from commit 3855922378)
2013-11-11 18:11:06 +01:00
Wei Zhou 57ba367f3c CLOUDSTACK-5042: change cloud.keystore to cloudmanagementserver.keystore and install it (cherry picked from commit de448ec479) 2013-11-08 09:00:29 +01:00
Darren Shepherd e3280bdba2 Merge remote-tracking branch 'origin/spring-modularization'
Conflicts:
	client/tomcatconf/applicationContext.xml.in
	client/tomcatconf/nonossComponentContext.xml.in
	client/tomcatconf/simulatorComponentContext.xml.in
	framework/db/src/com/cloud/utils/db/Transaction.java
	plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java
	server/src/com/cloud/api/ApiServer.java
	server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
2013-10-23 11:14:42 -07:00
Kishan Kavala 294b0c7277 CLOUDSTACK-4921 : Add usage service to chkconfig 2013-10-23 16:05:12 +05:30
rayeesn c5c5e2367e follow up fix for CLOUDSTACK-1049 2013-10-22 15:29:15 -07:00
Darren Shepherd 8cf00de51d Configuration to enable Spring Modularization
All of the code changes for the Spring Modularization will work in
a modularized context or a non-modularized context.  This commit
is the final commit to turn modularization on.  Revert this commit
to disable the modularization and go back to monolithic Spring
configuration.
2013-10-02 15:43:11 -07: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
ynojima daec10e37a fix rpm/deb build error caused by moving systemvm to its own maven project 2013-09-24 10:51:01 -04:00
Wei Zhou 164e3e33b4 CLOUDSTACK-4405: change rpm and debian packaging to support automatic update (KVM upgrade)
Including following steps:
b. Run "cloudstack-agent-upgrade". This script will upgrade all the existing bridge name to new bridge name, and update related firewall rules.
c. install a libvirt hook:
    c1. mkdir /etc/libvirt/hooks
    c2. cp /usr/share/cloudstack-agent/lib/libvirtqemuhook /etc/libvirt/hooks/qemu
    c3. chmod +x /etc/libvirt/hooks/qemu
    c4. service libvirtd restart
(cherry picked from commit a0988780ad)

Signed-off-by: Wei Zhou <w.zhou@leaseweb.com>
2013-09-24 09:55:35 +02:00
Edison Su e325fb66ab CLOUDSTACK-4405: fix vm migration during the upgrade to 4.2
Signed-off-by: Wei Zhou <w.zhou@leaseweb.com>
2013-09-24 09:53:55 +02:00
Edison Su 7b4f846220 CLOUDSTACK-4405: add a tool: cloudstack-agent-upgrade to upgrade bridge name on kvm host
(cherry picked from commit 0ef6084d2c)

Signed-off-by: Wei Zhou <w.zhou@leaseweb.com>
2013-09-24 09:53:05 +02:00
Hugo Trippaers da99f6552c Fix the spec file for the noredist build 2013-09-21 14:42:31 +08:00
rayeesn fa26eaafbd CLOUDSTACK-4509 : management cache folder need to cleanup before upgrade, currently its cleaning up only for 3.x upgrade ie /var/cache/cloud, it should do that same for 4.2 also /var/cache/cloudstack 2013-08-28 11:23:22 -07:00
rayeesn c09bbd316c CLOUDSTACK-4370 - Upgrade failing due to depenency with cloudstack-agent, changed remove dependency from cloud-agent to cloud-common 2013-08-19 15:13:23 -07:00
frank d1b4a8d98c CLOUDSTACK-4149
[upgrade][2.2.13 -> 2.2.14 -> 4.2][KVM] When we try to upgrade the KVM agent from 2.2.14 to 4.2 using the "U" option in install.sh script, management server also gets installed!
2013-08-12 14:52:28 -07:00
frank 35ab598d1f CLOUDSTACK-4149
[upgrade][2.2.13 -> 2.2.14 -> 4.2][KVM] When we try to upgrade the KVM agent from 2.2.14 to 4.2 using the "U" option in install.sh script, management server also gets installed!
2013-08-12 12:11:25 -07:00
rayeesn e80fdcda94 Fix for CLOUDSTACK-3858, 2.2.14 does not contions symbolic link to create sever.xml, we need to check both file or symbolic link exist or not in save folder 2013-08-09 17:02:14 -07:00
rayeesn a49da6bee8 Supporting packaging for RHEL 5 and 6.2; updated macros
Signed-off-by: Edison Su <sudison@gmail.com>
2013-07-29 13:37:31 -07:00