102 Commits
0.2.0 ... 0.9.0

Author SHA1 Message Date
3df05b4738 Merge pull request #47 from dj-wasabi/prepare_090
Updating to 0.9.0
2018-05-06 09:38:52 +02:00
4fcb2ac9d2 Updating to 0.9.0 2018-05-06 09:32:37 +02:00
8f5cc0959d Merge pull request #46 from tjend/use_hash_for_extra_plugins
Convert the telegraf_plugins_extra varaible to a hash so that we can …
2018-05-06 09:27:42 +02:00
51ac4b7640 Convert the telegraf_plugins_extra varaible to a hash so that we can merge the hashes of multiple var files 2018-05-06 16:54:34 +10:00
2f3b11241d Merge pull request #45 from boxrick/smallimprovements
Improved comments, split up role, moved tags and added defaults
2018-04-06 15:53:13 +02:00
d0258da789 Removal of extra parameter
It seems that diskio and io are one and the same, so this causes it to
be loaded twice. Removing the extra diskio.
2018-04-06 13:48:38 +01:00
a49a079664 Improved comments, split up role, moved tags and added defaults
- Added some commenting inside of defaults to clarify which variables
  adjust which files

- Split up the role taking items out of main.yml in tasks. This is to
  improve clarity of what each bit of Ansible code is doing.

- Tags were defined for each and every task within the Debian.yml moved
  ths up to main.yml so they don't need repeating every task adding
  clutter.

- Added some extra default plugins, as of current release version these
  are now within the default configuration but were missing from this
  role.

- Added some commenting inside the templates and the top of some tasks
  to clarify where the templated file was coming from.
2018-04-06 12:25:27 +01:00
af96592932 Merge pull request #43 from tszym/override-redhat-version
Allow to override RedHat release version
2018-03-18 16:18:01 +01:00
875b1a5ee8 Allow to override RedHat release version
Systems like Amazon Linux are from the RedHat OS family but have a
specific release versions notation. Influxdata does not always provide a
yum repository with these versions, so it should be something to override
in order to install telegraf from a different release version path.

For instance, Influxdata currently provides telegraf for both RHEL
versions 6 and 2016.09 with packages being the same (same checksums).
This is because of Amazon Linux 2016.09 being a RHEL version 6.
However, now Amazon Linux 2017.09 is out, still being a RHEL 6 but
Influxdata does not provide a 2017.09 release version path so we cannon
install telegraf on it. Overriding the release version to 6 or 2016.09
will allow to install.
2018-03-09 11:49:06 +01:00
aafd65f4b1 Merge pull request #42 from dj-wasabi/fix_travis
Fix Travis Tests
2018-03-01 19:22:10 +01:00
6d04f839e0 Debugging (2) 2018-03-01 18:05:08 +01:00
2c896aa512 Debugging (1) 2018-03-01 18:01:52 +01:00
e6d715e81a Install higher docker module 2018-03-01 17:54:49 +01:00
316772ba64 Install higher docker module 2018-03-01 17:50:02 +01:00
1d413000a4 Lower the molecule version 2018-03-01 17:07:04 +01:00
63249b4fba Merge pull request #41 from Angristan/patch-1
Fix markdown
2018-03-01 16:42:00 +01:00
c1758eaa74 Disable no_log 2018-03-01 16:41:35 +01:00
0f001e68c2 Disable rsyslog 2018-03-01 16:23:51 +01:00
57f5395c7d Fix markdown 2018-03-01 02:07:23 +01:00
eb986ae494 Merge pull request #40 from cycloidio/master
plugins: be able to specify the filename of extra plugings
2017-12-04 19:22:05 +01:00
cc40194a65 plugins: be able to specify the filename of extra plugings
This commit allow you to override the filename used to create the extra
config file for a plugin.

You might need it If you want to call several time the
same input plugin : for example https://github.com/influxdata/telegraf/issues/2294

Explain here : https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md#multiple-inputs-of-the-same-type

An input plugin can be called several time. Allowing to override the filename seems to be the best solution
to not break ansible-telegraf configuration and offer a way to call several time an input.
2017-12-04 09:20:48 +01:00
06a63e3580 Merge pull request #32 from cycloidio/master
tags: give an option to use AWS tags as telegraf tags
2017-11-14 13:40:35 +01:00
5829b6bc02 tags: give an option to use AWS tags as telegraf tags
From : https://github.com/rossmcdonald/telegraf

Add `telegraf_agent_aws_tags` boolean to enable AWS tag in telegraf agent
tags section.

Also add `telegraf_agent_aws_tags_prefix` to allow usage of a prefix on AWS tags name.
2017-11-14 09:16:25 +01:00
bd62e6316e Updating to 0.8.0 2017-10-30 19:54:29 +01:00
b86a9f29a3 Merge pull request #38 from tszym/rename_tags_parameter
Use telegra_global_tags for oldest telegraf versions
2017-10-24 18:48:31 +02:00
b2a1652c47 Use telegra_global_tags for oldest telegraf versions
Users will use the same config key for global tags regardless of the
telegraf version.
Also fix the documentation about this parameter to be consistent with
changes from #37
2017-10-24 15:06:47 +02:00
2bee19f8a1 Merge pull request #37 from aarnaud/master
Fix extra plugins by file  /  Change apt source filename / Change tags by global_tags
2017-10-24 11:55:57 +02:00
87e6e95c72 Fix extra plugins by file 2017-10-23 23:10:25 -04:00
4fb8da24af Change apt source filename 2017-10-23 23:10:24 -04:00
b4317d8e5d Change tags by global_tags 2017-10-23 23:10:09 -04:00
7766329cb8 Merge pull request #36 from tszym/remove-redhat-useless-packages
Remove useless packages on RedHat. fix #28
2017-10-18 14:54:16 +02:00
1e57d51575 Remove useless packages on RedHat. fix #28
Once used for testing, these packages are no longer useful and can even
lead to certain issues, as installation can fail.
2017-10-18 14:41:35 +02:00
163284ab36 Merge pull request #35 from tszym/fix-lsb-usage
Test if LSB codename exists before using it
2017-10-17 17:16:25 +02:00
a08dee2562 Test if LSB codename exists before using it
Testing Debian with Molecule, Ansible will see the ansible_lsb defined
but the codename attribute is not. Testing its definition will prevent
access to an undifined attribute.
2017-10-17 14:24:19 +02:00
9e0be2c3d2 Setting to 1.4 2017-09-11 10:14:27 +02:00
82ca1ef61d Merge pull request #31 from dj-wasabi/port_molecule_v2
Updating to Molecule V2
2017-09-10 18:18:08 +02:00
4f8fa12fad Updating to Molecule V2 2017-09-10 18:11:07 +02:00
1100ceddd6 Merge pull request #27 from dj-wasabi/release_0.7.0
Updating to release 0.7.0
2017-02-23 21:11:16 +02:00
40b25772f3 Updating to release 0.7.0 2017-02-23 19:45:11 +01:00
71f436f8ca Merge pull request #26 from tszym/remove-actions
Replace action by modules
2017-02-22 20:37:34 +02:00
c416bb20a7 Replace action by modules 2017-02-22 19:20:29 +01:00
ae8c1cbe7f Merge pull request #25 from tszym/rpm-repo
Use yum repository to install telegraf on RedHat
2017-02-22 19:05:49 +02:00
c6848506cf Fix a typo 2017-02-22 10:27:03 +01:00
0b82b8420e Use yum repository to install telegraf on RedHat family
The role does not use a direct download of the rpm package but use the
yum repository for InfluxData products as it is advised in the current
documentation for installation.
https://docs.influxdata.com/telegraf/v1.2/introduction/installation/
2017-02-22 10:27:03 +01:00
f7e7045e9f Remove unused vars 2017-02-22 10:27:03 +01:00
35b594cf36 Merge pull request #24 from emersondispatch/master
Remove for-loop in extra-plugin template
2017-02-21 22:10:45 +02:00
128faa55b6 Consolidate instead to a single extra-plugins conf file, to cover the case of multiple instances of same plugin 2017-02-21 10:40:19 -08:00
641981bfb3 Remove for-loop in extra-plugin template, because this is performed by the task itself. Was causing all extra plugin configurations to be written in each sub-configuration file 2017-02-20 20:24:19 -08:00
e29aa87c04 Merge pull request #23 from zend0/patch-1
Update Debian.yml
2017-02-09 20:13:12 +01:00
227c6f9418 Update Debian.yml
upd

add become: yes
2017-02-09 15:25:05 +04:00
cb215db02c Merge pull request #21 from oboukili/master
extra plugins tags
2017-01-20 12:34:37 +01:00
0597f0115c extra plugins tags 2017-01-20 11:58:17 +01:00
62a6158281 Merge pull request #20 from szibis/input_tags
Input tags support
2017-01-20 10:48:36 +01:00
fe9f970bde Fixes closing if for tags template 2017-01-20 10:01:13 +01:00
2696c2aca5 Merge pull request #19 from szibis/permissions
Fix telegraf confguration permissions
2017-01-19 19:31:48 +01:00
f3f67f4f7a Input tags support 2017-01-18 21:29:42 +01:00
8b522beab0 fix typo 2017-01-18 21:24:16 +01:00
4291b00a6e Fix telegraf permissions - tests fix 2017-01-18 21:14:28 +01:00
7694682e56 Fix telegraf permissions. Telegraf package adds user and group telegraf. 2017-01-18 21:10:39 +01:00
8fd9c2c9c9 Fix merge issue 2017-01-02 13:03:22 +01:00
4c0d09d11e Set release 0.6.0 2017-01-02 13:02:26 +01:00
9aad1a8d39 Merge pull request #17 from lhoss/readme-update-with-telegraf-v1.1-settings
update the README with the latest v0.13 - v1.1 agent settings
2017-01-02 12:41:59 +01:00
2c54dea8d2 update the README with the latest v0.13 - v1.1 agent settings 2017-01-02 10:27:23 +01:00
f962f4ca82 Merge pull request #15 from dj-wasabi/fix_molecule
Fixing molecule
2016-12-31 19:54:27 +01:00
194d3d6e92 Merge branch 'master' into fix_molecule 2016-12-30 18:45:12 +01:00
5036595b79 Merge pull request #16 from lhoss/support_newer_agent_settings
support missing agent settings upto telegraf v1.1
2016-12-30 18:44:35 +01:00
3bd9681567 Fixing merge issue 2016-12-30 18:38:52 +01:00
536dce400b Merge pull request #14 from lhoss/improve_version_compare
use version_compare filter …
2016-12-30 18:37:26 +01:00
0405d3d993 support missing agent settings upto telegraf v1.1 2016-12-30 18:36:29 +01:00
1533214071 FIxing ansible-lint issues 2016-12-30 18:35:49 +01:00
26b473b0fb Added some version commands 2016-12-30 18:03:51 +01:00
d486975c81 Fixing molecule 2016-12-30 17:55:21 +01:00
3201ec329c use version_compare filter (more readable, stable and no extra set_fact required) 2016-12-30 17:39:44 +01:00
b95a67954f Merge pull request #13 from romainbureau/master
set telegraf hostname in defaults.
2016-09-20 18:04:53 +02:00
ad1a4430c6 set telegraf hostname in defaults. 2016-09-20 15:33:07 +02:00
ec63b2aa24 Merge pull request #12 from dj-wasabi/fix_test
Removed imports
2016-09-11 20:04:28 +02:00
8dbb365ed0 Removed imports 2016-09-11 19:55:16 +02:00
f23fc6ea23 Merge pull request #11 from Ismael/fix_repo
Fix the Influxdb repo for "hybrid" debian distros (like "jessie/sid")
2016-09-11 19:52:52 +02:00
51c82e1c85 Merge pull request #10 from Ismael/fix_become
Do "become" for the steps that require root access on Debian
2016-09-11 19:52:00 +02:00
a3ca2db212 For Debian: Use ansible_lsb only if it's defined 2016-09-07 19:07:55 -03:00
9c9dc33ac3 Fix the Influxdb repo for "hybrid" debian distros (like "jessie/sid")
Use ansible_lsb.codename to set the path to the influxdb repo because "hybrid" distros (when you have testing+unstable, for example) don't work otherwise
2016-09-07 19:07:51 -03:00
95d5161d33 Do "become" for the steps that require root access on Debian
Actions with apt require being root. Add "become" to those.
"sudo" is deprecated, changed it to "become"
2016-09-07 18:52:46 -03:00
86fabca61b Merge pull request #7 from dj-wasabi/new_molecule_setup
Added new code for correct molecule verification
2016-08-24 19:17:20 +02:00
b0dfe773a7 Added new code for correct molecule verification 2016-08-24 19:09:23 +02:00
3826a37496 Added 0.5.1 2016-08-24 19:00:27 +02:00
4d197aa8ea Merge pull request #6 from mycujoo/master
fixed issue with ansible not getting the package
2016-08-12 09:03:50 +02:00
40230aa198 fixed issue with ansible not getting the package
Ansible was not getting the package properly on ubuntu 14.04 because of SSL problems. Could be resolved by installing additional pip packages but this is cleaner.
2016-08-11 16:58:35 +02:00
7512939626 Updated changelog 2016-07-17 15:31:01 +02:00
e4ac118212 Removed Travis Test; Update travis build; Added Molecule tests; Updated default installation version 2016-07-17 15:15:22 +02:00
6e990c9a03 Merge pull request #5 from stvnwrgs/feature/add_extra_plugins_to_telegrafd_folder
Feature/add extra plugins to telegrafd folder
2016-06-23 18:53:54 +02:00
01d05b0a88 added template for extra plugins 2016-06-23 12:56:59 +02:00
cf37fb1d2e moved extra plugins to extra configs in telegraf.d and changed the main.yml to more yml stylish definitions 2016-04-06 16:11:48 +02:00
4bd9a85f94 Updated the urls 2016-02-06 16:06:40 +01:00
fe287f5d7c Fixes for serverspec 2016-02-06 15:58:43 +01:00
a733de5695 Updating Readme 2016-02-05 20:01:27 +01:00
f28ba37db5 Removed default entry 'telegraf_plugins_extra' 2016-02-05 19:51:31 +01:00
54f2b75af5 Added build status 2016-01-31 19:31:48 +01:00
bbcd52e32f Fixed installation for Ubuntu 2016-01-31 18:49:58 +01:00
e2205aa7d8 Fixed test and added travis. 2016-01-31 18:41:25 +01:00
66e20cd7f6 Updated to 0.10.1 default version 2016-01-31 16:10:05 +01:00
720e9c94da Updated documentation and changelog for new version 2016-01-13 15:55:16 +01:00
ec993c2066 Made it work with telegraf 0.10.0 2016-01-13 15:50:54 +01:00
30 changed files with 651 additions and 233 deletions

10
.gitignore vendored
View File

@ -1,3 +1,7 @@
.kitchen/ .idea
.kitchen.local.yml .molecule
.idea/ tests/.cache
.cache
__pycache__
*.retry
pmip

View File

@ -1,22 +0,0 @@
---
driver:
name: docker
provision_command: sed -i '/tsflags=nodocs/d' /etc/yum.conf
provisioner:
name: ansible_playbook
ansible_yum_repo: "http://mirror.logol.ru/epel/6/x86_64/epel-release-6-8.noarch.rpm"
hosts: localhost
require_chef_for_busser: false
require_ruby_for_busser: true
platforms:
- name: centos-6.7
verifier:
ruby_bindir: '/usr/bin'
suites:
- name: default
run_list:
attributes:

15
.travis.yml Normal file
View File

@ -0,0 +1,15 @@
---
sudo: required
language: python
services:
- docker
install:
- pip install molecule ansible docker==2.7.0
script:
- molecule --version
- ansible --version
- molecule test
notifications:
webhooks: https://galaxy.ansible.com/api/v1/notifications/

View File

@ -5,6 +5,68 @@ Below an overview of all changes in the releases.
Version (Release date) Version (Release date)
0.9.0 (2018-05-06)
* plugins: be able to specify the filename of extra plugings #40 (By pull request: gaelL (Thanks!))
* Fix markdown #41 (By pull request: Angristan (Thanks!))
* Allow to override RedHat release version #43 (By pull request: tszym (Thanks!))
* Improved comments, split up role, moved tags and added defaults #45 (By pull request: boxrick (Thanks!))
* Fix Travis Tests #42
* Convert the telegraf_plugins_extra varaible to a hash so that we can … #46 (By pull request: tjend (Thanks!))
0.8.0 (2017-10-30)
* Updating to Molecule V2
* Test if LSB codename exists before using it #35 (By pull request: tszym (Thanks!))
* Remove useless packages on RedHat. fix #28 #36 (By pull request: tszym (Thanks!))
* Fix extra plugins by file / Change apt source filename / Change tags by global_tags #37 (By pull request: aarnaud (Thanks!))
* Use telegra_global_tags for oldest telegraf versions #38 (By pull request: tszym (Thanks!))
0.7.0 (2017-02-23)
* Replace action by modules #26 (By pull request: tszym (Thanks!))
* Use yum repository to install telegraf on RedHat #25 (By pull request: tszym (Thanks!))
* Remove for-loop in extra-plugin template #24 (By pull request: emersondispatch (Thanks!))
* Update Debian.yml #23 (By pull request: zend0 (Thanks!))
* extra plugins tags #21 (By pull request: oboukili (Thanks!))
* Input tags support #20 (By pull request: szibis (Thanks!))
* Fix telegraf confguration permissions #19 (By pull request: szibis (Thanks!))
0.6.0 (2017-01-02)
* Fix the Influxdb repo for "hybrid" debian distros (like "jessie/sid") #9 (By pull request: Ismael (Thanks!))
* Do "become" for the steps that require root access on Debian #10 (By pull request: Ismael (Thanks!))
* Fix the Influxdb repo for "hybrid" debian distros (like "jessie/sid") #11 (By pull request: Ismael (Thanks!))
* Removed imports #12
* Fixing molecule #15
* set telegraf hostname in defaults. #13 (By pull request: romainbureau (Thanks!))
* use version_compare filter … #14 (By pull request: lhoss (Thanks!))
* support missing agent settings upto telegraf v1.1 #16 (By pull request: lhoss (Thanks!))
* update the README with the latest v0.13 - v1.1 agent settings #17 (By pull request: lhoss (Thanks!))
0.5.1 (2016-08-24)
* fixed issue with ansible not getting the package #6 (By pull request: thecodeassassin (Thanks!))
0.5.0 (2016-07-17)
* Removed Test Kitchen tests
* Added Molecule tests and travis make use of them
* Updated default version to 1.0.0 beta2
* Feature/add extra plugins to telegrafd folder #5 (By pull request: stvnwrgs (Thanks!))
0.4.0 (2016-02-05)
* Fixed test for test-kitchen
* Added travis-ci test for testing default installation when PR is made
* Fixed Download url for Debian
* Removed default entry for telegraf_plugins_extra
0.3.0 (2016-01-13)
* Made it work with telegraf 0.10.0
* Default installation: 0.10.0
0.2.0 (2015-11-14) 0.2.0 (2015-11-14)
* Fixed kitchen test setup * Fixed kitchen test setup

View File

@ -1,5 +0,0 @@
source "https://rubygems.org"
gem "test-kitchen"
gem "kitchen-docker"
gem "kitchen-ansible"

View File

@ -1,41 +0,0 @@
GEM
remote: https://rubygems.org/
specs:
faraday (0.9.2)
multipart-post (>= 1.2, < 3)
highline (1.7.8)
kitchen-ansible (0.0.30)
librarian-ansible
test-kitchen
kitchen-docker (2.3.0)
test-kitchen (>= 1.0.0)
librarian (0.1.2)
highline
thor (~> 0.15)
librarian-ansible (1.0.6)
faraday
librarian (~> 0.1.0)
mixlib-shellout (2.2.3)
multipart-post (2.0.0)
net-scp (1.2.1)
net-ssh (>= 2.6.5)
net-ssh (2.9.2)
safe_yaml (1.0.4)
test-kitchen (1.4.2)
mixlib-shellout (>= 1.2, < 3.0)
net-scp (~> 1.1)
net-ssh (~> 2.7, < 2.10)
safe_yaml (~> 1.0)
thor (~> 0.18)
thor (0.19.1)
PLATFORMS
ruby
DEPENDENCIES
kitchen-ansible
kitchen-docker
test-kitchen
BUNDLED WITH
1.10.6

View File

@ -1,5 +1,8 @@
dj-wasabi.telegraf # dj-wasabi.telegraf
=========
## Build status:
[![Build Status](https://travis-ci.org/dj-wasabi/ansible-telegraf.svg?branch=master)](https://travis-ci.org/dj-wasabi/ansible-telegraf)
This role will install and configure telegraf. This role will install and configure telegraf.
@ -9,24 +12,44 @@ Design goals are to have a minimal memory footprint with a plugin system so that
(https://github.com/influxdb/telegraf) (https://github.com/influxdb/telegraf)
Requirements ## Requirements
------------
No requirements. (Yes, an Influxdb server somewhere on the network will help though ;-) ) No requirements. (Yes, an Influxdb server somewhere on the network will help though ;-) )
Role Variables ## Upgrade
-------------- ### 0.7.0
There was an issue:
If I configure a telegraf_plugins_extra, run ansible, delete the plugin and run ansible again, the plugin stays on the machine.
## Role Variables
The following parameters can be set for the Telegraf agent: The following parameters can be set for the Telegraf agent:
* `telegraf_agent_version`: The version of Telegraf to install. Default: `0.2.0` * `telegraf_agent_version`: The version of Telegraf to install. Default: `1.0.0`
* `telegraf_agent_interval`: The interval configured for sending data to the server. Default: `10` * `telegraf_agent_interval`: The interval configured for sending data to the server. Default: `10`
* `telegraf_agent_debug`: Setting the Telegraf in debug mode. Default: `False` * `telegraf_agent_debug`: Run Telegraf in debug mode. Default: `False`
* `telegraf_agent_round_interval`: Rounds collection interval to 'interval' Default: True
* `telegraf_agent_flush_interval`: Default data flushing interval for all outputs. Default: 10
* `telegraf_agent_flush_jitter`: Jitter the flush interval by a random amount. Default: 0
* `telegraf_agent_aws_tags`: Configure AWS ec2 tags into Telegraf tags section Default: `False`
* `telegraf_agent_aws_tags_prefix`: Define a prefix for AWS ec2 tags. Default: `""`
* `telegraf_agent_collection_jitter`: Jitter the collection by a random amount. Default: 0 (since v0.13)
* `telegraf_agent_metric_batch_size`: The agent metric batch size. Default: 1000 (since v0.13)
* `telegraf_agent_metric_buffer_limit`: The agent metric buffer limit. Default: 10000 (since v0.13)
* `telegraf_agent_quiet`: Run Telegraf in quiet mode (error messages only). Default: `False` (since v0.13)
* `telegraf_agent_logfile`: The agent logfile name. Default: '' (means to log to stdout) (since v1.1)
* `telegraf_agent_omit_hostname`: Do no set the "host" tag in the agent. Default: `False` (since v1.1)
Full agent settings reference: https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md#agent-configuration
You can set tags for the host running telegraf: You can set tags for the host running telegraf:
telegraf_agent_tags: telegraf_global_tags:
- tag_name: some_name - tag_name: some_name
tag_value: some_value tag_value: some_value
@ -35,8 +58,10 @@ Specifying an output. The default is set to localhost, you'll have to specify th
telegraf_agent_output: telegraf_agent_output:
- type: influxdb - type: influxdb
config: config:
- url = "http://localhost:8086" - urls = ["http://localhost:8086"]
- database = "telegraf" - database = "telegraf"
tagpass:
- diskmetrics = ["true"]
The config will be printed line by line into the configuration, so you could also use: The config will be printed line by line into the configuration, so you could also use:
@ -45,7 +70,7 @@ The config will be printed line by line into the configuration, so you could als
and it will be printed in the configuration file. and it will be printed in the configuration file.
There are two properties which are the same, but are used differently. Those are: There are two properties which are similar, but are used differently. Those are:
* `telegraf_plugins_default` * `telegraf_plugins_default`
* `telegraf_plugins_extra` * `telegraf_plugins_extra`
@ -63,19 +88,20 @@ With the property `telegraf_plugins_default` it is set to use the default set of
- plugin: swap - plugin: swap
- plugin: netstat - plugin: netstat
Every telegraf agent has these as an default configuration. Every telegraf agent has these as a default configuration.
The 2nd parameter `telegraf_plugins_extra` can be used to add plugins specific to the servers goal. Following is an example for using this parameter for MySQL database servers: The 2nd parameter `telegraf_plugins_extra` can be used to add plugins specific to the servers goal. It is a hash instead of a list, so that you can merge values from multiple var files together. Following is an example for using this parameter for MySQL database servers:
cat group_vars/mysql_database cat group_vars/mysql_database
telegraf_plugins_extra: telegraf_plugins_extra:
- plugin: mysql mysql:
config: config:
- servers = ["root:{{ mysql_root_password }}@tcp(localhost:3306)/"] - servers = ["root:{{ mysql_root_password }}@tcp(localhost:3306)/"]
Telegraf plugin options: Telegraf plugin options:
* `tags` An k/v tags to apply to a specific input's measurements. Can be used on any stage for better filtering for example in outputs.
* `pass`: An array of strings that is used to filter metrics generated by the current plugin. Each string in the array is tested as a prefix against metric names and if it matches, the metric is emitted. * `pass`: An array of strings that is used to filter metrics generated by the current plugin. Each string in the array is tested as a prefix against metric names and if it matches, the metric is emitted.
* `drop`: The inverse of pass, if a metric name matches, it is not emitted. * `drop`: The inverse of pass, if a metric name matches, it is not emitted.
* `tagpass`: (added in Telegraf 0.1.5) tag names and arrays of strings that are used to filter metrics by the current plugin. Each string in the array is tested as an exact match against the tag name, and if it matches the metric is emitted. * `tagpass`: (added in Telegraf 0.1.5) tag names and arrays of strings that are used to filter metrics by the current plugin. Each string in the array is tested as an exact match against the tag name, and if it matches the metric is emitted.
@ -87,41 +113,56 @@ An example might look like this:
telegraf_plugins_default: telegraf_plugins_default:
- plugin: disk - plugin: disk
interval: 12 interval: 12
tags:
- diskmetrics = "true"
tagpass: tagpass:
- fstype = [ "ext4", "xfs" ] - fstype = [ "ext4", "xfs" ]
- path = [ "/opt", "/home" ] - path = [ "/opt", "/home" ]
Dependencies ## Dependencies
------------
No dependencies No dependencies
Example Playbook ## Example Playbook
----------------
- hosts: servers - hosts: servers
roles: roles:
- { role: dj-wasabi.telegraf } - { role: dj-wasabi.telegraf }
##Contributors ## Contributors
The following have contributed to this Ansible role: The following have contributed to this Ansible role:
* aferrari-technisys * Thomas Szymanski
* Alejandro
* Slawomir Skowron
* Ismael
* Laurent Hoss
* Anthony ARNAUD
* Rick Box
* Emerson Knapp
* gaelL
* Steven Wirges
* zend0
* Angristan
* Olivier Boukili
* Romain BUREAU
* TheCodeAssassin
* tjend
Thank you all!
Test Kitchen ## Molecule
------------
This roles is configured to be tested with Test Kitchen. You can find on this page some more information regarding Test Kitchen: http://werner-dijkerman.nl/2015/08/20/using-test-kitchen-with-docker-and-serverspec-to-test-ansible-roles/ This roles is configured to be tested with Molecule. You can find on this page some more information regarding Molecule: https://werner-dijkerman.nl/2016/07/10/testing-ansible-roles-with-molecule-testinfra-and-docker/
License ## License
-------
BSD BSD
Author Information ## Author Information
------------------
Please let me know if you have issues. Pull requests are also accepted! :-) Please let me know if you have issues. Pull requests are also accepted! :-)

View File

@ -1,18 +1,36 @@
--- ---
# defaults file for ansible-telegraf # defaults file for ansible-telegraf
telegraf_agent_version: 0.2.0 telegraf_agent_version: 1.4.0
telegraf_agent_hostname: "{{ ansible_fqdn }}"
telegraf_agent_interval: 10 telegraf_agent_interval: 10
telegraf_agent_debug: False telegraf_agent_debug: False
telegraf_agent_round_interval: True
telegraf_agent_flush_interval: 10
telegraf_agent_flush_jitter: 0
telegraf_agent_aws_tags: False
telegraf_agent_aws_tags_prefix: ""
telegraf_agent_tags: # v0.13 settings (not sure if supported in older version):
telegraf_agent_collection_jitter: 0
telegraf_agent_metric_batch_size: 1000
telegraf_agent_metric_buffer_limit: 10000
telegraf_agent_quiet: False
# v1.1 settings:
telegraf_agent_logfile: ""
telegraf_agent_omit_hostname: False
telegraf_global_tags: []
telegraf_agent_output: telegraf_agent_output:
- type: influxdb - type: influxdb
config: config:
- url = "http://localhost:8086" - urls = ["http://localhost:8086"]
- database = "telegraf" - database = "telegraf"
- precision = "s"
# defaults - /etc/telegraf/telegraf.conf
telegraf_plugins_default: telegraf_plugins_default:
- plugin: cpu - plugin: cpu
config: config:
@ -24,9 +42,11 @@ telegraf_plugins_default:
- plugin: system - plugin: system
- plugin: swap - plugin: swap
- plugin: netstat - plugin: netstat
- plugin: processes
- plugin: kernel
telegraf_plugins_extra: # extra configuration - /etc/telegraf/telegraf.d/*
- plugin: procstat telegraf_plugins_extra: {}
specifications:
- prefix = "" # optional string to prefix measurements # RedHat specific settings for convenience
- exe = "java" # the name as pgrep can find telegraf_redhat_releasever: "$releasever"

View File

@ -2,8 +2,8 @@
# handlers file for ansible-telegraf # handlers file for ansible-telegraf
- name: "Restart Telegraf" - name: "Restart Telegraf"
action: service service:
name=telegraf name: telegraf
state=restarted state: restarted
enabled=yes enabled: yes
sudo: yes become: yes

View File

@ -6,15 +6,15 @@ galaxy_info:
license: license BSD license: license BSD
min_ansible_version: 1.2 min_ansible_version: 1.2
platforms: platforms:
- name: EL - name: EL
versions: versions:
- all - all
- name: Ubuntu - name: Ubuntu
versions: versions:
- all - all
- name: Debian - name: Debian
versions: versions:
- all - all
categories: categories:
- monitoring - monitoring
dependencies: [] dependencies: []

View File

@ -0,0 +1,7 @@
FROM {{ item.image }}
RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get upgrade -y && apt-get install -y python sudo bash ca-certificates && apt-get clean; \
elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python python-devel python2-dnf bash && dnf clean all; \
elif [ $(command -v yum) ]; then yum makecache fast && yum update -y && yum install -y python sudo yum-plugin-ovl bash && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \
elif [ $(command -v zypper) ]; then zypper refresh && zypper update -y && zypper install -y python sudo bash python-xml && zypper clean -a; \
elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; fi

View File

@ -0,0 +1,46 @@
*******
Install
*******
This set of playbooks have specific dependencies on Ansible due to the modules
being used.
Requirements
============
* Ansible 2.2
* Docker Engine
* docker-py
Install OS dependencies on CentOS 7
.. code-block:: bash
$ sudo yum install -y epel-release
$ sudo yum install -y gcc python-pip python-devel openssl-devel
# If installing Molecule from source.
$ sudo yum install libffi-devel git
Install OS dependencies on Ubuntu 16.x
.. code-block:: bash
$ sudo apt-get update
$ sudo apt-get install -y python-pip libssl-dev docker-engine
# If installing Molecule from source.
$ sudo apt-get install -y libffi-dev git
Install OS dependencies on Mac OS
.. code-block:: bash
$ brew install python
$ brew install git
Install using pip:
.. code-block:: bash
$ sudo pip install ansible
$ sudo pip install docker-py
$ sudo pip install molecule --pre

View File

@ -0,0 +1,47 @@
---
- name: Create
hosts: localhost
connection: local
gather_facts: False
# no_log: "{{ not lookup('env', 'MOLECULE_DEBUG') | bool }}"
vars:
molecule_file: "{{ lookup('env', 'MOLECULE_FILE') }}"
molecule_ephemeral_directory: "{{ lookup('env', 'MOLECULE_EPHEMERAL_DIRECTORY') }}"
molecule_scenario_directory: "{{ lookup('env', 'MOLECULE_SCENARIO_DIRECTORY') }}"
molecule_yml: "{{ lookup('file', molecule_file) | from_yaml }}"
tasks:
- name: Create Dockerfiles from image names
template:
src: "{{ molecule_scenario_directory }}/Dockerfile.j2"
dest: "{{ molecule_ephemeral_directory }}/Dockerfile_{{ item.image | regex_replace('[^a-zA-Z0-9_]', '_') }}"
with_items: "{{ molecule_yml.platforms }}"
register: platforms
- name: Discover local Docker images
docker_image_facts:
name: "molecule_local/{{ item.item.name }}"
with_items: "{{ platforms.results }}"
register: docker_images
- name: Build an Ansible compatible image
docker_image:
path: "{{ molecule_ephemeral_directory }}"
name: "molecule_local/{{ item.item.image }}"
dockerfile: "{{ item.item.dockerfile | default(item.invocation.module_args.dest) }}"
force: "{{ item.item.force | default(True) }}"
with_items: "{{ platforms.results }}"
when: platforms.changed or docker_images.results | map(attribute='images') | select('equalto', []) | list | count >= 0
- name: Create molecule instance(s)
docker_container:
name: "{{ item.name }}"
hostname: "{{ item.name }}"
image: "molecule_local/{{ item.image }}"
state: started
recreate: False
log_driver: none
command: "{{ item.command | default('sleep infinity') }}"
privileged: "{{ item.privileged | default(omit) }}"
volumes: "{{ item.volumes | default(omit) }}"
capabilities: "{{ item.capabilities | default(omit) }}"
with_items: "{{ molecule_yml.platforms }}"

View File

@ -0,0 +1,16 @@
---
- name: Destroy
hosts: localhost
connection: local
gather_facts: False
no_log: "{{ not lookup('env', 'MOLECULE_DEBUG') | bool }}"
vars:
molecule_file: "{{ lookup('env', 'MOLECULE_FILE') }}"
molecule_yml: "{{ lookup('file', molecule_file) | from_yaml }}"
tasks:
- name: Destroy molecule instance(s)
docker_container:
name: "{{ item.name }}"
state: absent
force_kill: "{{ item.force_kill | default(True) }}"
with_items: "{{ molecule_yml.platforms }}"

View File

@ -0,0 +1,28 @@
---
dependency:
name: galaxy
driver:
name: docker
lint:
name: yamllint
options:
config-file: molecule/default/yaml-lint.yml
platforms:
- name: telegraf-centos
image: milcom/centos7-systemd
privileged: True
- name: telegraf-debian
image: maint/debian-systemd
privileged: True
provisioner:
name: ansible
lint:
name: ansible-lint
scenario:
name: default
verifier:
name: testinfra
lint:
name: flake8

View File

@ -0,0 +1,15 @@
---
- hosts: all
pre_tasks:
- name: "Installing which on CentOS"
yum:
name: which
state: installed
when: ansible_distribution == 'CentOS'
- name: "Installing wget on Debian"
apt:
name: wget
state: installed
when: ansible_distribution == 'Debian'
roles:
- role: ansible-telegraf

View File

@ -0,0 +1,26 @@
import os
import testinfra.utils.ansible_runner
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all')
def test_telegraf_running_and_enabled(Service, SystemInfo):
telegraf = Service("telegraf")
assert telegraf.is_enabled
if SystemInfo.distribution == 'centos':
assert telegraf.is_running
def test_telegraf_dot_conf(File):
telegraf = File("/etc/telegraf/telegraf.conf")
assert telegraf.user == "telegraf"
assert telegraf.group == "telegraf"
assert telegraf.mode == 0o640
assert telegraf.contains('[[inputs.cpu]]')
def test_telegraf_package(Package, SystemInfo):
telegraf = Package('telegraf')
assert telegraf.is_installed

Binary file not shown.

View File

@ -0,0 +1,9 @@
---
extends: default
rules:
line-length:
max: 120
level: warning
truthy: disable

View File

@ -1,14 +1,42 @@
--- ---
- name: "Fetch telegraf installation package | Debian" - name: Ensure the system can use the HTTPS transport for APT.
action: get_url stat:
url=http://get.influxdb.org/telegraf/telegraf-{{ telegraf_agent_version }}_amd64.deb path: /usr/lib/apt/methods/https
dest=/tmp/telegraf_{{ telegraf_agent_version }}_amd64.deb register: apt_https_transport
mode=0440
- name: Install APT HTTPS transport.
apt:
name: "apt-transport-https"
state: present
when: not apt_https_transport.stat.exists
become: yes
- name: Download Telegraf apt key.
apt_key:
url: "https://repos.influxdata.com/influxdb.key"
state: present
become: yes
- name: Add Telegraf repository (using LSB).
apt_repository:
repo: "deb https://repos.influxdata.com/{{ ansible_distribution|lower }} {{ ansible_lsb.codename }} stable"
filename: "telegraf"
state: present
become: yes
when: ansible_lsb is defined and ansible_lsb.codename is defined
- name: Add Telegraf repository.
apt_repository:
repo: "deb https://repos.influxdata.com/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} stable"
filename: "telegraf"
state: present
become: yes
when: ansible_lsb is not defined or ansible_lsb.codename is not defined
- name: "Install telegraf package | Debian" - name: "Install telegraf package | Debian"
action: apt apt:
deb=/tmp/telegraf_{{ telegraf_agent_version }}_amd64.deb name: "telegraf"
state=installed state: installed
notify: "Restart Telegraf" notify: "Restart Telegraf"
sudo: yes become: yes

View File

@ -1,14 +1,16 @@
--- ---
# description: RedHat specific installation
- name: "Fetch telegraf installation package | RedHat" - name: "Add yum repository | RedHat"
action: get_url yum_repository:
url=http://get.influxdb.org/telegraf/telegraf-{{ telegraf_agent_version }}-1.x86_64.rpm name: influxdb
dest=/tmp/telegraf_{{ telegraf_agent_version }}-1.x86_64.rpm description: InfluxDB Repository - RHEL $releasever
mode=0440 baseurl: "https://repos.influxdata.com/rhel/{{ telegraf_redhat_releasever }}/$basearch/stable"
gpgcheck: yes
gpgkey: https://repos.influxdata.com/influxdb.key
- name: "Install telegraf package | RedHat" - name: "Install telegraf package | RedHat"
action: yum yum:
name=/tmp/telegraf_{{ telegraf_agent_version }}-1.x86_64.rpm name: "telegraf-{{ telegraf_agent_version }}"
state=installed state: installed
notify: "Restart Telegraf" notify: "Restart Telegraf"
sudo: yes

51
tasks/configure.yml Normal file
View File

@ -0,0 +1,51 @@
---
# description: Configure telegraf and get all relevent ec2 information
- name: Retrieve ec2 facts
ec2_facts:
when: telegraf_agent_aws_tags
- name: Retrieve all ec2 tags on the instance
ec2_tag:
region: '{{ ansible_ec2_placement_region }}'
resource: '{{ ansible_ec2_instance_id }}'
state: list
when: telegraf_agent_aws_tags
register: ec2_tags
- name: "Copy the template for versions < 0.10.0"
template:
src: etc-opt-telegraf-telegraf.conf.j2
dest: /etc/opt/telegraf/telegraf.conf
owner: telegraf
group: telegraf
mode: 0640
become: yes
when: telegraf_agent_version|version_compare('0.10.0', '<')
notify: "Restart Telegraf"
- name: "Copy the template for versions >= 0.10.0"
template:
src: telegraf.conf.j2
dest: /etc/telegraf/telegraf.conf
owner: telegraf
group: telegraf
mode: 0640
become: yes
when: telegraf_agent_version|version_compare('0.10.0', '>=')
notify: "Restart Telegraf"
- name: "Copy telegraf extra plugins"
template:
src: "telegraf-extra-plugin.conf.j2"
dest: "/etc/telegraf/telegraf.d/{{ item.value.filename | default(item.key) }}.conf"
owner: telegraf
group: telegraf
mode: 0640
with_dict: "{{ telegraf_plugins_extra }}"
when: "telegraf_plugins_extra is defined and telegraf_plugins_extra is iterable"
become: yes
notify: "Restart Telegraf"
- name: "Force restart service after reread config"
meta: flush_handlers

View File

@ -8,13 +8,9 @@
- name: "Install the correct repository" - name: "Install the correct repository"
include: "Debian.yml" include: "Debian.yml"
when: ansible_os_family == "Debian" when: ansible_os_family == "Debian"
tags:
- telegraf
- packages
- name: "Copy the template" - name: "Configure telegraf"
action: template include: "configure.yml"
src=etc-opt-telegraf-telegraf.conf.j2
dest=/etc/opt/telegraf/telegraf.conf
owner=root
group=root
mode=644
sudo: yes
notify: "Restart Telegraf"

View File

@ -1,12 +1,18 @@
# Telegraf configuration ### MANAGED BY {{ role_path|basename }} ANSIBLE ROLE ###
[tags] [tags]
{% if telegraf_agent_tags is defined and telegraf_agent_tags is iterable %} {% if telegraf_global_tags is defined and telegraf_global_tags is iterable %}
{% for item in telegraf_agent_tags %} {% for item in telegraf_global_tags %}
{{ item.tag_name }} = "{{ item.tag_value }}" {{ item.tag_name }} = "{{ item.tag_value }}"
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{% if telegraf_agent_aws_tags == true and ec2_tags is defined and ec2_tags != None %}
{% for key, value in ec2_tags.tags.iteritems()%}
{{telegraf_agent_aws_tags_prefix}}{{ key }} = "{{ value }}"
{% endfor %}
{% endif %}
# Configuration for telegraf itself # Configuration for telegraf itself
[agent] [agent]
interval = "{{ telegraf_agent_interval }}s" interval = "{{ telegraf_agent_interval }}s"
@ -68,50 +74,5 @@
{% endif %} {% endif %}
{% endfor %}
{% endif %}
{% if telegraf_plugins_extra is defined and telegraf_plugins_extra is iterable %}
{% for item in telegraf_plugins_extra %}
[{{ item.plugin }}]
{% if item.interval is defined %}
interval = "{{ item.interval }}s"
{% endif %}
{% if item.config is defined and item.config is iterable %}
{% for items in item.config %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagpass is defined and item.tagpass is iterable %}
[{{ item.plugin }}.tagpass]
{% for items in item.tagpass %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagdrop is defined and item.tagdrop is iterable %}
[{{ item.plugin }}.tagdrop]
{% for items in item.tagdrop %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.pass is defined and item.pass is iterable %}
[{{ item.plugin }}.pass]
{% for items in item.pass %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.drop is defined and item.drop is iterable %}
[{{ item.plugin }}.drop]
{% for items in item.drop %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.specifications is defined and item.specifications is iterable %}
[[{{item.plugin}}.specifications]]
{% for items in item.specifications %}
{{ items }}
{% endfor %}
{% endif %}
{% endfor %} {% endfor %}
{% endif %} {% endif %}

View File

@ -0,0 +1,47 @@
### MANAGED BY {{ role_path|basename }} ANSIBLE ROLE ###
[[inputs.{{ item.key }}]]
{% if item.value.interval is defined %}
interval = "{{ item.value.interval }}s"
{% endif %}
{% if item.value.config is defined and item.value.config is iterable %}
{% for items in item.value.config %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.value.tags is defined and item.value.tags is iterable %}
[inputs.{{ item.key }}.tags]
{% for items in item.value.tags %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.value.tagpass is defined and item.value.tagpass is iterable %}
[{{ item.key }}.tagpass]
{% for items in item.value.tagpass %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.value.tagdrop is defined and item.value.tagdrop is iterable %}
[{{ item.key }}.tagdrop]
{% for items in item.value.tagdrop %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.value.pass is defined and item.value.pass is iterable %}
[{{ item.key }}.pass]
{% for items in item.value.pass %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.value.drop is defined and item.value.drop is iterable %}
[{{ item.key }}.drop]
{% for items in item.value.drop %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.value.specifications is defined and item.value.specifications is iterable %}
[[{{item.key}}.specifications]]
{% for items in item.value.specifications %}
{{ items }}
{% endfor %}
{% endif %}

100
templates/telegraf.conf.j2 Normal file
View File

@ -0,0 +1,100 @@
### MANAGED BY {{ role_path|basename }} ANSIBLE ROLE ###
[global_tags]
{% if telegraf_global_tags is defined and telegraf_global_tags is iterable %}
{% for item in telegraf_global_tags %}
{{ item.tag_name }} = "{{ item.tag_value }}"
{% endfor %}
{% endif %}
{% if telegraf_agent_aws_tags == true and ec2_tags is defined and ec2_tags != None %}
{% for key, value in ec2_tags.tags.iteritems()%}
{{telegraf_agent_aws_tags_prefix}}{{ key }} = "{{ value }}"
{% endfor %}
{% endif %}
# Configuration for telegraf agent
[agent]
interval = "{{ telegraf_agent_interval }}s"
debug = {{ telegraf_agent_debug | lower }}
hostname = "{{ telegraf_agent_hostname }}"
round_interval = {{ telegraf_agent_round_interval | lower }}
flush_interval = "{{ telegraf_agent_flush_interval }}s"
flush_jitter = "{{ telegraf_agent_flush_jitter }}s"
{% if telegraf_agent_version|version_compare('0.13', '>=') %}
collection_jitter = "{{ telegraf_agent_collection_jitter }}s"
metric_batch_size = {{ telegraf_agent_metric_batch_size }}
metric_buffer_limit = {{ telegraf_agent_metric_buffer_limit }}
quiet = {{ telegraf_agent_quiet | lower }}
{% endif %}
{% if telegraf_agent_version|version_compare('1.1', '>=') %}
logfile = "{{ telegraf_agent_logfile }}"
omit_hostname = {{ telegraf_agent_omit_hostname | lower }}
{% endif %}
###############################################################################
# OUTPUTS #
###############################################################################
{% if telegraf_agent_output is defined and telegraf_agent_output is iterable %}
{% for item in telegraf_agent_output %}
[[outputs.{{ item.type }}]]
{% for items in item.config %}
{{ items }}
{% endfor %}
{% endfor %}
{% endif %}
###############################################################################
# INPUTS #
###############################################################################
{% if telegraf_plugins_default is defined and telegraf_plugins_default is iterable %}
{% for item in telegraf_plugins_default %}
[[inputs.{{ item.plugin }}]]
{% if item.interval is defined %}
interval = "{{ item.interval }}s"
{% endif %}
{% if item.config is defined and item.config is iterable %}
{% for items in item.config %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tags is defined and item.tags is iterable %}
[inputs.{{ item.plugin }}.tags]
{% for items in item.tags %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagpass is defined and item.tagpass is iterable %}
[{{ item.plugin }}.tagpass]
{% for items in item.tagpass %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagdrop is defined and item.tagdrop is iterable %}
[{{ item.plugin }}.tagdrop]
{% for items in item.tagdrop %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.pass is defined and item.pass is iterable %}
[{{ item.plugin }}.pass]
{% for items in item.pass %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.drop is defined and item.drop is iterable %}
[{{ item.plugin }}.drop]
{% for items in item.drop %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.specifications is defined and item.specifications is iterable %}
[[{{item.plugin}}.specifications]]
{% for items in item.specifications %}
{{ items }}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}

View File

@ -1,4 +0,0 @@
---
- hosts: localhost
roles:
- role: ansible-telegraf

View File

@ -1,27 +0,0 @@
require 'serverspec'
require 'spec_helper'
describe 'Telegraf Packages' do
describe package('telegraf') do
it { should be_installed }
end
end
describe 'Telegraf Services' do
describe service('telegraf') do
it { should be_enabled }
end
end
describe 'Telegraf Configuration' do
describe file('/etc/opt/telegraf/telegraf.conf') do
it { should be_file}
it { should be_owned_by 'root'}
it { should be_grouped_into 'root'}
it { should contain "[cpu]" }
it { should contain "[mem]" }
it { should contain "url = \"http://localhost:8086\"" }
end
end

View File

@ -1,2 +0,0 @@
require 'serverspec'
set :backend, :exec

View File

@ -1,2 +0,0 @@
---
# vars file for .