Pull request Compare This branch is 6 commits ahead, 2 commits behind develop.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
..
Failed to load latest commit information.
attributes
libraries
recipes
templates
CHANGELOG.md
README.md
metadata.rb

README.md

Corus Cookbook

This cookbook provides the following recipes:

  • default: performs the Corus installation.
  • avis_rpm: installs Avis.

Notes

  • The cookbook is meant to be run on Linux. It installs the Linux-64 package by default.
  • Java is presumed to have previously been installed. Do not forget to state your Java home (see the java_home attribute further below)
  • Typically, you would install Avis or RabbitMQ on separate hosts, and modify the Avis/RabbitMQ connection URLs accordingly at the Corus level.
  • For Corus: live upgrade is disabled by default (it consists in upgrading Corus transparently if it is currently running, without stopping the processes controlled by it). See the live_upgrade attribute further below for more info.

Requirements

  • java - depends on the java cookbook for starting Corus and generating the keystore used for SSL.
  • tar - depends on the tar cookbook for downloading and installing the Corus package.

Attributes

corus::default

Key Type Description Default
['corus']['live_upgrade'] Boolean Indicates if live upgrade should be performed: if yes (true), the recipe will check for a Corus instance currently running; if it's the case, that instance's state will be saved, in order to be restored into the new version. NOTE: this should be set to true only if the currently running version corresponds to 4.7 or above. false
['corus']['extract_dir'] String The path to the directory where the Corus .tar package will be un-packaged. A subdirectory will be created under this path, corresponding to the root of the extracted .tar. /opt/corus
['corus']['current_sym_link'] String The path of the symbolic link that will be created, and which will point to the directory where the latest current package was extracted (see previous attribute). This symbolic link in fact corresponds to CORUS_HOME. /opt/corus/current
['corus']['user'] String The user under which Corus will run. corus
['corus']['group'] String The group of the Corus user. corus
['corus']['gid'] Integer The group ID (gid) of the Corus group. 33000
['corus']['version'] String The Corus version. Set to correspond to the latest Corus version (in the context of which the Cookbook was last built).
['corus']['archive_download_url'] String The URL of the Corus package to download Defaults to the URL of the latest Corus version (preferrably: use an internal corporate URL to which you've uploaded the Corus package)
['corus']['java_home'] String The path to the JDK' home directory. /usr/lib/jvm/java
['corus']['port'] Integer The port on which the Corus server should run. 33000
['corus']['log_dir'] String The directory where Corus should create its log files. Defaults to $CORUS_HOME/logs
['corus']['log_level'] String The log level to use can be one of: DEBUG, INFO, WARNING, ERROR. INFO
['corus']['xms'] String Value of the -Xms switch used when starting Corus. 32M
['corus']['xmx'] String Value of the -Xmx switch used when starting Corus. 96M
['corus']['gc'] String Name of the GC algo to use by the JVM in which Corus runs. UseConcMarkSweepGC
['corus']['args'] String Additional arguments to pass to the Corus server at startup. Empty string by default
['corus']['domain'] String Domain name under which Corus should start. default
['corus']['repo_type'] String Repository role of the Corus instance. none
['corus']['server_address_pattern'] String If specified, indicates to Corus to which IP address it should bind its server (e.g.: 10\\.10\\.\\d+\\.\\d+). UNDEFINED
['corus']['tags'] String If specified, a comma-delimited list of tags to add to the Corus instance (e.g.: foo,bar. UNDEFINED
['corus']['process_properties'] List A list of process properties to add to the Corus instance (each element in the list is expected to be a property literal, corresponding to name=value) Defaults to an empty list
['corus']['server_properties'] List A list of server properties to add to the Corus instance (each element in the list is expected to be a property literal, corresponding to name=value) Defaults to an empty list
['corus']['log_sym_link_name'] String If specified: indicates to the logical name under which the directory for application logs should be displayed in the Corus web UI. UNDEFINED
['corus']['log_sym_link_path'] String Indicates the path of the application log directory. /var/log/apps
['corus']['rest_admin_client_id'] String The client ID of the REST admin account. admin
['corus']['rest_admin_appkey'] String The application key of the REST admin account. 383ab9ffbb604ebcbf7053a04938ca50
['corus']['rest_admin_role'] String The name of the REST admin role. admin
['corus']['rest_automation_client_id'] String The client ID of the REST account used to control Corus from external apps. automation
['corus']['rest_automation_appkey'] String The application key of the REST account used to control Corus from external apps. 08d73288239547c6a70400f59746e387
['corus']['rest_automation_role'] String The name of the REST account used to control Corus from external apps. automation
['corus']['rest_automation_guest_id'] String The client ID of the REST guest account. guest
['corus']['rest_guest_appkey'] String The application key of the REST guest account. 08d73288239547c6a70400f59746e387
['corus']['rest_guest_role'] String The name of the REST guest account. guest
['corus']['api_auth_always'] String Corresponds to the corus.server.api.auth.required property in corus.properties. true
['corus']['ssl_enabled'] String Corresponds to the corus.server.api.ssl.enforced property in corus.properties. true
['corus']['ssl_port'] Integer Determines the SSL port: if set to 0, the HTTPS port will take the value resulting from corus_port + 1 (that is, the Corus' non-HTTPS port is 33000, the SSL port will be 33443). 0
['corus']['keystore_path'] String The path of the keystore file that will be created to hold the SSL encryption keys. $HOME/$CORUS_USER/.keystore.jks
['corus']['keystore_alias'] String The alias associated to the encryption keys in the keystore. corus_server
['corus']['keystore_keypass'] String The password to use both as a keypass word, and as a keystore password (having different passwords for each results in an error at runtime). 1q2w3e4r
['corus']['keystore_CN'] String Value of the CN (common name) keystore attribute. corus
['corus']['keystore_OU'] String Value of the OU (organizational unit) keystore attribute. Deployment
['corus']['keystore_O'] String Value of the O (organization) keystore attribute. www.sapia-oss.org
['corus']['keystore_L'] String Value of the L (locality) keystore attribute. Seattle
['corus']['keystore_ST'] String Value of the ST (state) keystore attribute. WA
['corus']['keystore_C'] String Value of the C (country) keystore attribute. US
['corus']['broadcast_provider'] String Indicates the so-called "broadcast provider" to use for Corus peer discover. Can be either avis or rabbitmq. avis
['corus']['avis_url'] String The URL of the Avis instance to connect to. elvin://localhost
['corus']['rabbitmq_url'] String The URL of the RabbitMQ instance to connect to - including the topic name as the last element of the path. IMPORTANT: use a topic specific to Corus. rabbitmq://localhost/corus_cluster_channel
['corus']['rabbitmq_vhost'] String The RabbitMQ vhost path to use. /
['corus']['rabbitmq_addresses'] String A comma-delimited list of host:port pairs corresponding to additional RabbitMQ brokers to connect to (makes sense only if using multiple RabbitMQ brokers organized in a cluster). UNDEFINED
['corus']['rabbitmq_username'] String The username associated to the RabbitMQ account to use. UNDEFINED
['corus']['rabbitmq_password'] String The password associated to the RabbitMQ account to use. UNDEFINED
['corus']['rabbitmq_password'] String The password associated to the RabbitMQ account to use. UNDEFINED
['corus']['consul_url'] String The URL of the Consul agent to connect to (e.g.: http://localhost:8500). UNDEFINED
['corus']['consul_interval'] String The interval (in seconds) at which Corus should publish its service definition to the Consul agent. 30
['corus']['consul_ttl'] String The time-to-live (in seconds) of the service definition published to the Consul agent by Corus - should be greater than consul_interval. 45

avis::rpm

Key Type Description Default
['corus']['avis_xms'] String The value to pass to Avis' -Xms JVM startup argument. 16M
['corus']['avis_xmx'] String The value to pass to Avis' -Xmx JVM startup argument. 96M
['corus']['avis_gc'] String The name of the GC algo to use for Avis. UseConcMarkSweepGC
['corus']['avis_download_url'] String The URL of the Avis RPM package to install. http://www.mediafire.com/download/jech2hca5yc49q7/avis-1.2.2.rpm

Usage

Installs Avis, then Corus:

{
  "run_list": [
    "recipe[corus::avis_rpm]",
    "recipe[corus]"
  ]
}

Contributing

  1. Fork the repository on Github
  2. Create a named feature branch (like add_component_x)
  3. Write your change
  4. Write tests for your change (if applicable)
  5. Run the tests, ensuring they all pass
  6. Submit a Pull Request using Github

License

This Cookbook is licensed under Apache 2.0.