cookbook 'abiquo', '= 0.6.0'
abiquo
(31) Versions
0.6.0
-
Follow5
Installs and configures an Abiquo platform
cookbook 'abiquo', '= 0.6.0', :supermarket
knife supermarket install abiquo
knife supermarket download abiquo
Abiquo Cookbook
This cookbook provides several recipes to install an upgrade an Abiquo platform.
It allows to provision an Abiquo Server, the Remote Services server, standalone V2V
server, monitoring server and a KVM hypervisor from scratch, as long as upgrading
an existing Abiquo installation using the latest nightly builds.
Requirements
- CentOS >= 6.5
This cookbook depends on the following cookbooks:
- apache2
- ark
- cassandra-dse
- iptables
- java-management
- selfsigned_certificate
- selinux
- yum
Recipes
The cookbook contains the following recipes:
-
recipe[abiquo]
- Installs an Abiquo Platform -
recipe[abiquo::repository]
- Configures the Abiquo yum repositories -
recipe[abiquo::install_monolithic]
- Installs an Abiquo Monolithic -
recipe[abiquo::install_server]
- Installs an Abiquo Server -
recipe[abiquo::install_remoteservices]
- Installs the Abiquo Remote Services -
recipe[abiquo::install_v2v]
- Installs an standalone V2V Server -
recipe[abiquo::install_kvm]
- Installs the KVM hypervisor -
recipe[abiquo::setup_monolithic]
- Configures the Abiquo Monolithic Server -
recipe[abiquo::setup_server]
- Configures the Abiquo Server -
recipe[abiquo::setup_remoteservices]
- Configures the Abiquo Remote Services -
recipe[abiquo::setup_v2v]
- Configures an standalone V2V Server -
recipe[abiquo::setup_kvm]
- Configures the KVM hypervisor -
recipe[abiquo::upgrade]
- Upgrades an Abiquo Platform -
recipe[abiquo::install_database]
- Installs the Abiquo database -
recipe[abiquo::install_ext_services]
- Installs the Abiquo supporting services like Redis, RabbitMQ, etc. -
recipe[abiquo::install_jce]
- Installs the JCE unlimited strength jurisdiction policy files -
recipe[abiquo::monitoring]
- Installs an Abiquo monitoring node with KairosDB and Cassandra -
recipe[abiquo::certificate]
- Configures the SSL certificates
Attributes
The following attributes are under the node['abiquo']
namespace.
Attribute | Description | Type | Default |
---|---|---|---|
['profile'] |
The profile to install: "monolithic", "server", "remoteservices", "v2v", "kvm" or "monitoring" | String | "monolithic" |
['install_ext_services'] |
Whether or not to install supporting services like MariaDB, Redis, RabbitMQ, etc. | Boolean | true |
['ui_address_type'] |
The attribute to use as the Abiquo UI address: "fqdn", "ipaddress", "fixed" | String | "fqdn" |
['ui_address'] |
When ['ui_address_type'] is fixed use this as address |
String | node['fqdn'] |
['nfs']['mountpoint'] |
The path where the image repository is mounted | String | "/opt/vm_repository" |
['nfs']['location'] |
If set, the NFS repository to mount | String | nil |
['license'] |
The Abiquo license to install | String | nil |
['properties'] |
Hash with additional Abiquo properties to add to the Abiquo configuration file | Hash | {} |
['yum']['repository'] |
The main Abiquo yum repository | String | "http://mirror.abiquo.com/abiquo/3.2/os/x86_64" |
['yum']['nightly-repo'] |
A yum repository with nightly builds | String | nil |
['db']['host'] |
The database host used when running the database upgrade | String | "localhost"" |
['db']['port'] |
The database port used when running the database upgrade | Integer | 3306 |
['db']['user'] |
The database user used when running the database upgrade | String | "root" |
['db']['password'] |
The database password used when running the database upgrade | String | nil |
['db']['install'] |
Install the database when installing the Monolithic profile | Boolean | true |
['db']['upgrade'] |
Run the database upgrade when upgrading the monolithic profile | Boolean | true |
['aim']['port'] |
In a KVM, the port where the Abiquo AIM agent will listen | Integer | 8889 |
['tomcat']['http-port'] |
The port where the Tomcat listens to HTTP traffic | Integer | 8009 |
['tomcat']['ajp-port'] |
The port where the Tomcat listens to AJP traffic | Integer | 8010 |
['tomcat']['wait-for-webapps'] |
If Chef will wait for the webapps to be running after restarting Tomcat | Boolean | false |
['ssl']['certificatefile'] |
The path to the SSL certificate | String | "/etc/pki/tls/certs/ca.cert" |
['ssl']['keyfile'] |
The path to the certificate's key | String | "/etc/pki/tls/private/ca.key" |
['kairosdb']['port'] |
The host where KairosDB is listening | Integer | 8080 |
['kairosdb']['version'] |
The version of KairosDB to install in the monitoring node | String | "0.9.4" |
['kairosdb']['release'] |
The release of the configured KairosDB version to install in the monitoring node | String | "6" |
['cassandra']['cluster_name'] |
The name for the Cassandra cluster in the monitoring node | String | "abiquo" |
Resources and providers
The Abiquo cookbook provides the following LWRPs:
abiquo_wait_for_webapp
This LWRP will make the Chef run wait until the configured webapp is started.
Parameters
-
host
- The address where the webapp is running -
port
- The port where the webapp is listening -
webapp
- The name of the webapp -
open_timeout
- The timeout to open a connection to the webapp -
read_timeout
- The timeout to read from a connection to the webapp
Example
abiquo_wait_for_webapp "api" do
host "localhost"
port 8009
retries 3 # Retry if Tomcat is still not started
retry_delay 5
action :wait
end
abiquo_wait_for_port
This LWRP will make the Chef run wait until the configured port is open.
Parameters
-
host
- The address where the service is running -
port
- The port where the service is listening -
service
- The name of the service -
delay
- The delay in seconds between retries -
timeout
- The timeout for a connection to be considered failed
Example
abiquo_wait_for_port "cassandra" do
host "localhost"
port 9160
delay 10
timeout 5
action :wait
end
Usage
The cookbook is pretty straightforwatd to use. Just set the node['abiquo']['profile']
attribute
according to the profile you want to install or upgrade and and include one of the following recipes
in the run list:
-
recipe[abiquo]
- To perform an installation from scratch -
recipe[abiquo::upgrade]
- To upgrade an existing installation
The available profiles are: monolithic
, remoteservices
, server
, v2v
and kvm
.
When installing the Abiquo Monolithic profile, you may also want to set the node['selfsigned_certificate']['cn']
attribute to match the hostname of the node. You can also use it together with the hostname cookbook to make sure the node will have it properly configured.
Testing
In order to test the cookbook you will need to install Vagrant and VirtualBox. Once installed you can run the unit and integration tests as follows:
bundle install
bundle exec rake # Run the unit and style tests
bundle exec rake kitchen # Run the integration tests
The tests and Gemfile have been developed using Ruby 2.1.5, and that is the recommended Ruby version to use to run the tests. Other versions may cause conflicts with the versions of the gems Bundler will install.
License and Authors
- Author:: Ignasi Barrera (ignasi.barrera@abiquo.com)
- Author:: Marc Cirauqui (marc.cirauqui@abiquo.com)
Copyright:: 2014, Abiquo
Licensed 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.
Dependent cookbooks
apache2 ~> 3.1.0 |
ark ~> 0.9.0 |
cassandra-dse ~> 4.1.0 |
iptables ~> 2.0.1 |
java-management ~> 1.0.3 |
selfsigned_certificate ~> 0.1.0 |
selinux ~> 0.9.0 |
yum ~> 3.8.2 |
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
abiquo CHANGELOG
0.6.0
- Added custom firewall templates for each profile.
- General recipe refactor to include the 'server' and 'v2v' profiles.
- Created a Kitchen suite to use nightly build branches.
0.5.0
- Configured the firewall in the kvm profile.
- Upgrade the database using the abiquo-liquibase script.
- Added integration tests with ServerSpec.
- Added a recipe to install a monitoring node.
- Upgraded base repositories to 3.6.
0.4.0
- Use the rpm signing keys from the abiquo-release-ee package.
0.3.3
- Removed the start, stop and update recipes.
- Changed the upgrade recipe to also upgrade the database.
- Added database configuration attributes.
0.3.2
- Added the abiquo-updates yum repository.
- Configured the rpm GPG sign keys that are not present in the abiquo-release-ee package.
- Fixed encofing in the UI configuration file.
0.3.1
- Fixed the NFS resource.
0.3.0
- Added support for Abiquo 3.3.
0.2.1
- Install Java and RabbitMQ from the Abiquo repositories.
- Added all missing signatures to the repository configuration.
- Configured the cookbook to install Abiquo 3.3.
0.2.0
- Support Java 8.
- Support using JCE unlimited strength encryption policies.
- Allow customization of the RabbitMQ and Redis properties.
- Dropped support to configure the Abiquo Tomcat in jpda mode.
- Redis is installed from the Abiquo packages.
0.1.0
- Initial release. Support for Monolithic installations from scratch and platform upgrades using nightly builds.
Foodcritic Metric
0.6.0 passed this metric
0.6.0 passed this metric