/consul-cookbook

Installs/configures Consul server, client and UI.

Primary LanguageRubyOtherNOASSERTION

consul-cookbook

Release Build Status Code Coverage

Installs and configures Consul.

Supported Platforms

  • CentOS 5.10, 6.5, 7.0
  • RHEL 5.10, 6.5, 7.0
  • Ubuntu 12.04, 14.04

Attributes

Key Type Description Default
['consul']['version'] String Version to install 0.4.1
['consul']['base_url'] String Base URL for binary downloads https://dl.bintray.com/mitchellh/consul/
['consul']['encrypt'] String Encryption string for consul cluster. nil
['consul']['install_method'] String Method to install consul with when using default recipe: binary or source binary
['consul']['install_dir'] String Directory to install binary to. /usr/local/bin
['consul']['service_mode'] String Mode to run consul as: bootstrap, cluster, server, or client bootstrap
['consul'][bootstrap_expect] String When bootstrapping a cluster, the number of server nodes to expect. nil
['consul']['data_dir'] String Location to store consul's data in /var/lib/consul
['consul']['config_dir'] String Location to read service definitions from (directoy will be created) /etc/consul.d
['consul']['servers'] Array Strings Consul servers to join []
['consul']['bind_addr'] String address that should be bound to for internal cluster communications 0.0.0.0
['consul']['datacenter'] String Name of Datacenter dc1
['consul']['domain'] String Domain for service lookup dns queries .consul
['consul']['enable_syslog'] Boolean enables logging to syslog nil
['consul']['log_level'] String The level of logging to show after the Consul agent has started. Available: "trace", "debug", "info", "warn", "err" info
['consul']['node_name'] String The name of this node in the cluster hostname of the machine
['consul']['advertise_addr'] String address that we advertise to other nodes in the cluster Value of bind_addr
['consul']['init_style'] String Service init mode for running consul as: init or runit init
['consul']['service_user'] String For runit service: run consul as this user (init uses 'root') consul
['consul']['service_group'] String For runit service: run consul as this group (init uses 'root') consul
['consul']['bind_interface'] String Interface to bind to, such as 'eth1'. Sets bind_addr attribute to the IP of the specified interface if it exists. nil
['consul']['advertise_interface'] String Interface to advertise, such as 'eth1'. Sets advertise_addr attribute to the IP of the specified interface if it exists. nil

Consul UI Attributes

Key Type Description Default
['consul']['client_address'] String Address to bind to 0.0.0.0
['consul']['client_interface'] String Interface to advertise, such as 'eth1'. Sets advertise_addr attribute to the IP of the specified interface if it exists. nil
['consul']['ui_dir'] String Location to download the UI to /var/lib/consul/ui
['consul']['serve_ui'] Boolean Determines whether the consul service also serve's the UI false

Usage

consul::default

This uses the binary installation recipe by default. It also starts consul at boot time.

consul::install_binary

Include consul::install_binary in your node's run_list:

{
  "run_list": [
    "recipe[consul::install_binary]"
  ]
}

consul::install_source

Include consul::install_source in your node's run_list:

{
  "run_list": [
    "recipe[consul::install_source]"
  ]
}

consul::ui

This installs the UI into a specified directory.

Include consul::ui in your node's run_list:

{
  "run_list": [
    "recipe[consul::ui]"
  ]
}

LWRP

Adding service without check
consul_service_def 'voice1' do
  port 5060
  tags ['_sip._udp']
end
Adding service with check
consul_service_def 'voice1' do
  port 5060
  tags ['_sip._udp']
  check(
    interval: '10s',
    script: 'echo ok'
  )
end
Removing service
consul_service_def 'voice1' do
  action :delete
end

Authors

Created and maintained by John Bellone @johnbellone (jbellone@bloomberg.net) and a growing community of contributors.