Няма описание

cmacrae 9385966731 Adding support for remote plugin deployment преди 10 години
defaults 9385966731 Adding support for remote plugin deployment преди 10 години
docs 9385966731 Adding support for remote plugin deployment преди 10 години
files 2f4b192ef4 Debian 8 now supported! преди 10 години
handlers 2f4b192ef4 Debian 8 now supported! преди 10 години
meta 2f4b192ef4 Debian 8 now supported! преди 10 години
tasks 9385966731 Adding support for remote plugin deployment преди 10 години
templates 8b770f5251 Initial commit преди 10 години
tests 2f4b192ef4 Debian 8 now supported! преди 10 години
vars 2f4b192ef4 Debian 8 now supported! преди 10 години
.gitignore e01a72ddec Add Vagrant testing framework преди 10 години
LICENSE 20bc9a0100 Initial commit of documentation преди 10 години
README.md 9385966731 Adding support for remote plugin deployment преди 10 години
mkdocs.yml 9385966731 Adding support for remote plugin deployment преди 10 години

README.md

Sensu Ansible Galaxy

This role deploys a full Sensu stack, a modern, open source monitoring framework.

Features

  • Deploy a full Sensu stack, including RabbitMQ, Redis, and the Uchiwa dashboard
  • Tight integration with the Ansible inventory - deployment of monitoring checks based on inventory grouping
  • Fine grained control over dynamic client configurations
  • Automatic generation and dynamic deployment of SSL certs for secure communication between your clients and servers
  • Highly configurable

Documentation Documentation

Read the full documentation for a comprehensive overview of this role and its powerful features.

Supported Platforms

Current Release

Future Releases

  • OpenBSD
  • FreeBSD
  • NetBSD

Role Variables

All variables have sensible defaults, which can be found in defaults/main.yml. The current version includes the following variables:

Defaults

Service Deployment Options

Name Default Value Description
sensu_deploy_rabbitmq true Determines whether or not to use this role to deploy/configure RabbitMQ
sensu_deploy_redis true Determines whether or not to use this role to deploy/configure Redis

Note: The above options are intended to provide users with flexibility. This allows the use of other roles for deployment of these services.

RabbitMQ Server Properties

Name Default Value Description
rabbitmq_config_path /etc/rabbitmq Path to the RabbitMQ configuration directory
rabbitmq_config_template rabbitmq.config.j2 The template to use for the RabbitMQ service configuration
rabbitmq_host "{{ groups\['rabbitmq_servers']\[0] }}" The hostname/IP address of the RabbitMQ node
rabbitmq_port 5671 The transmission port for RabbitMQ communications
rabbitmq_pkg_state present The state of the RabbitMQ package (should be set to present or latest)
rabbitmq_server false Determines whether to include the deployment of RabbitMQ
rabbitmq_service_name rabbitmq-server The name of the RabbitMQ service
rabbitmq_sensu_user_name sensu Username for authentication with the RabbitMQ vhost
rabbitmq_sensu_password sensu Password for authentication with the RabbitMQ vhost
rabbitmq_sensu_vhost /sensu Name of the RabbitMQ Sensu vhost

Redis Server Properties

Name Default Value Description
redis_host "{{ groups['redis_servers'][0] }}" Hostname/IP address of the Redis node
redis_server false Determines whether to include the deployment of Redis
redis_pkg_repo undefined The PPA to use for installing Redis from (specific to Debian flavored systems)
redis_service_name redis The name of the Redis service
redis_pkg_name redis The name of the Redis package to install
redis_pkg_state present The state of the Redis package (should be set to present or latest)
redis_port 6379 The transmission port for Redis communications

Sensu Properties

Name Default Value Description
sensu_api_host "{{ groups['sensu_masters'][0] }}" Hostname/IP address of the node running the Sensu API
sensu_api_port 4567 Transmission port for Sensu API communications
sensu_api_ssl "false" Determines whether to use SSL for Sensu API communications
sensu_api_user_name admin Username for authentication with the Sensu API
sensu_api_password secret Password for authentication with the Sensu API
sensu_api_uchiwa_path '' Path to append to the Sensu API URI for Uchiwa communications
sensu_api_timeout 5000 Value to set for the Sensu API timeout
sensu_client_config client.json.j2 Jinja2 template to use for node configuration of the Sensu Client service
sensu_config_path /etc/sensu Path to the Sensu configuration directory
sensu_gem_state present State of the Sensu gem - can be set to latest to keep Sensu updated
sensu_plugin_gem_state present State of the Sensu Plugins gem - can be set to latest to keep Sensu Plugins updated
sensu_group_name sensu The name of the Sensu service user's primary group
sensu_include_plugins true Determines whether to include the sensu-plugins gem
sensu_include_dashboard false Determines whether to deploy the Uchiwa dashboard
sensu_master false Determines if a node is to act as the Sensu "master" node
sensu_user_name sensu The name of the Sensu service user
sensu_remote_plugins undefined Sensu plugins to install via sensu-install (Ruby Gems)

Sensu/RabbitMQ SSL certificate properties

sensu_ssl_gen_certs: true
sensu_ssl_client_cert: "{{ dynamic_data_store }}/{{ groups['sensu_masters'][0] }}/{{ sensu_config_path }}/ssl_generation/sensu_ssl_tool/client/cert.pem"
sensu_ssl_client_key: "{{ dynamic_data_store }}/{{ groups['sensu_masters'][0] }}/{{ sensu_config_path }}/ssl_generation/sensu_ssl_tool/client/key.pem"
sensu_ssl_server_cacert: "{{ dynamic_data_store }}/{{ groups['sensu_masters'][0] }}/{{ sensu_config_path }}/ssl_generation/sensu_ssl_tool/sensu_ca/cacert.pem"
sensu_ssl_server_cert: "{{ dynamic_data_store }}/{{ groups['sensu_masters'][0] }}/{{ sensu_config_path }}/ssl_generation/sensu_ssl_tool/server/cert.pem"
sensu_ssl_server_key: "{{ dynamic_data_store }}/{{ groups['sensu_masters'][0] }}/{{ sensu_config_path }}/ssl_generation/sensu_ssl_tool/server/key.pem"

Uchiwa Properties

Name Default Value Description
uchiwa_dc_name undefined Datacenter name for Uchiwa instance
uchiwa_path /opt/uchiwa Path to the Uchiwa configuration directory
uchiwa_redis_use_ssl false Determines whether to use SSL for Redis communication
uchiwa_user_name admin The user-name to log into Uchiwa
uchiwa_password admin The password to log into Uchiwa
uchiwa_port 3000 The TCP port to bind the Uchiwa web service to
uchiwa_refresh 5 The interval to pull the Sensu APIs in seconds
uchiwa_pkg_download_sha256sum undefined The SHA256 hash sum to use for verification of the Uchiwa package being fetched (specific to Linux systems)
uchiwa_pkg_download_path undefined The path to fetch the Uchiwa package to (specific to Linux systems)
uchiwa_pkg_version undefined The version of the Uchiwa package to fetch (specific to Linux systems)
uchiwa_pkg_download_url undefined The URL of the Uchiwa package to fetch (specific to Linux systems)

Ubuntu

Redis Server Properties

Name Default Value Description
redis_pkg_repo 'ppa:rwky/redis' The PPA to use for installing Redis from

Sensu Properties

Name Default Value Description
sensu_user_name root The name of the Sensu service user
sensu_group_name root The name of the Sensu service user's primary group
uchiwa_pkg_download_sha256sum See vars/Ubuntu.yml The SHA256 hash sum to use for verification of the Uchiwa package being fetched
uchiwa_pkg_download_path /root/uchiwa_latest.deb The path to fetch the Uchiwa package to
uchiwa_pkg_version See vars/Ubuntu.yml The version of the Uchiwa package to fetch (specific to Linux systems)
uchiwa_pkg_download_url See vars/Ubuntu.yml The URL of the Uchiwa package to fetch

Debian

Redis Server Properties

Name Default Value Description
redis_pkg_repo 'ppa:rwky/redis' The PPA to use for installing Redis from
redis_service_name redis-server The name of the Redis service

Sensu Properties

Name Default Value Description
sensu_user_name root The name of the Sensu service user
sensu_group_name root The name of the Sensu service user's primary group
uchiwa_pkg_download_sha256sum See vars/Debian.yml The SHA256 hash sum to use for verification of the Uchiwa package being fetched
uchiwa_pkg_download_path /root/uchiwa_latest.deb The path to fetch the Uchiwa package to
uchiwa_pkg_version See vars/Debian.yml The version of the Uchiwa package to fetch (specific to Linux systems)
uchiwa_pkg_download_url See vars/Debian.yml The URL of the Uchiwa package to fetch

CentOS

Sensu Properties

Name Default Value Description
sensu_user_name root The name of the Sensu service user
sensu_group_name root The name of the Sensu service user's primary group
uchiwa_pkg_version See vars/CnetOS.yml The version of the Uchiwa package to fetch (specific to Linux systems)
uchiwa_pkg_download_url See vars/CentOS.yml The URL of the Uchiwa package to fetch

SmartOS

RabbitMQ Server Properties

Name Default Value Description
rabbitmq_config_path /opt/local/etc/rabbitmq Path to the RabbitMQ configuration directory
rabbitmq_service_name rabbitmq The name of the RabbitMQ service

Sensu Properties

Name Default Value Description
sensu_config_path /opt/local/etc/sensu Path to the Sensu configuration directory

Example Playbook

  - hosts: all
    roles:
      - role: cmacrae.sensu

Or, passing parameter values:

  - hosts: sensu_masters
    roles:
	  - { role: cmacrae.sensu, sensu_master: true, sensu_include_dashboard: true  }

License

MIT

Author Information

Created by Calum MacRae

Feel free to:
Contact me - @calumacrae, mailto:calum0macrae@gmail.com
Raise an issue
Contribute