Ansible role for installing and configuring Uchiwa, the open-source sensu dashboard.
This role doesn't have any hard dependencies on other roles. Uchiwa can run on a standalone, vanilla box. However, you may want to connect Uchiwa to sensu-api in order to display clients and events.
You can install Sensu and RabbitMQ on the same node. The following Ansible roles may help:
Currently Debian-like and RedHat-like operating systems are supported. This includes the popular Ubuntu and CentOS.
This role is tested on ubuntu/precise64 and centos/6.5 OSes. For more information, check out the vagrant folder included in this project.
You can use ansible-galaxy:
$ ansible-galaxy install queeno.ansible-uchiwa
These variables are defined in defaults/main.yml
. Please overwrite if you have different requirements.
Name | Type | Description | Default |
---|---|---|---|
supported_os_families |
List of strings | Supported OS families by the role | ['Debian','RedHat'] |
install_repo |
Boolean | Determines whether to install sensu repo | True |
sensu_apt_repo_url |
String | Sensu APT repository URL | 'http://repos.sensuapp.org/apt' |
sensu_apt_repo_distribution |
String | Sensu APT repository distribution | 'sensu' |
sensu_apt_repo |
String | Sensu APT repository name | 'main' |
sensu_apt_repo_key_url |
String | Sensu APT repository key URL | Please see 1 |
sensu_apt_repo_key_id |
String | Sensu APT repository key ID | '7580C77F' |
sensu_yum_repo |
String | Determines which YUM sensu repo to install 2 | 'sensu' |
version |
String | Determines the uchiwa version to install 3 | 'installed' |
uchiwa_apt_pkg |
String | The uchiwa package name for Debian systems | 'uchiwa' |
uchiwa_yum_pkg |
String | The uchiwa package name for RedHat systems | 'uchiwa' |
sensu_api_endpoints |
List of hashes | List of sensu API endpoint configuration 4 | Please see 4 |
host |
String | The uchiwa host or IP address to bind uchiwa to | '0.0.0.0' |
port |
Integer | The port uchiwa listens on | 3000 |
user |
String | The username to access uchiwa dashboard | '' (empty for none) |
pass |
String | The password to access uchiwa dashboard | '' (empty for none) |
refresh |
Integer | The interval to pull the sensu APIs (in seconds) | 5 |
users |
List of hashes | Multiple user credentials to access uchiwa dashhboard | Please see 5 |
1 http://repos.sensuapp.org/apt/pubkey.gpg
2 sensu_yum_repo
could be either sensu
(installs the stable YUM repo) or sensu-unstable
(installs the unstable YUM repo). The repo configuration is in files\*sensu_yum_repo*.repo
.
3 version
takes the following values:
latest
: Ensures the uchiwa latest version is always installed.installed
: Installs the uchiwa latest version without updating it.*version number*
: Explicitly specify a version number to pin uchiwa to a specific version.
4 sensu_api_endpoints
identifies the sensu API endpoints, so uchiwa can connect to them.
You don't need to overwrite all the hash keys in the array. If you don't pass a hash key, the respective default will be used.
Name | Type | Description | Default |
---|---|---|---|
name |
String | The name of the sensu API endpoint | 'sensu' |
host |
String | The IP address or name of the sensu API endpoint | '127.0.0.1' |
ssl |
Boolean | Determines whether or not the sensu API endpoint requires SSL authentication | False |
insecure |
Boolean | Determines whether or not to accept an insecure SSL certificate | True |
port |
Integer | The sensu API endpoint listening port | 4567 |
user |
String | The username of the sensu API endpoint | '' (empty for none) |
pass |
String | The password of the sensu API endpoint | '' (empty for none) |
path |
String | The path to the sensu API endpoint | '' (empty for none) |
timeout |
Integer | Timeout of the sensu API endpoint in seconds | 5 |
5 users
specifies a list of user credentials to access the uchiwa dashboard. This feature is available from uchiwa 0.10.0.
users
has precedence over user
. If left empty or omitted the user
and password
values will be used instead.
Please specify the following keys for each element of users
:
Name | Type | Description | Default |
---|---|---|---|
username |
String | The username to access uchiwa dashboard | |
password |
String | The password to access uchiwa dashboard | |
readonly |
Boolean | Should the user have read only access? | false |
You need to have the following files in the role folder (for RedHat only):
files/
| - sensu.repo
| - sensu-unstable.repo
No hard dependency.
Weak dependencies on:
- Redis
- RabbitMQ
- Sensu
Vagrant creates a Debian
-like VM (hashicorp/precise64) and a RedHat
-like VM (chef/centos-6.5).
The vagrant up
command will trigger a standalone.yml
ansible-playbook run that will test this role on the two VMs.
You can also spin up a specific vm:
vagrant up debian
spins up hashicorp/precise64
vagrant up redhat
spins up chef/centos-6.5
The acceptance tests will be in the vagrant/
folder and will be integrated with travis-ci
. Watch this space for more info.
BSD