214 Commits

Author SHA1 Message Date
084df32f10 Another attempt to make it work (2) 2025-02-07 17:40:26 +01:00
1c6c4b02fb Another attempt to make it work 2025-02-07 17:33:28 +01:00
2088fc7001 Another Attempt to make it work 2025-02-07 17:24:27 +01:00
1f142bd1a5 Attempt to make it work 2025-02-07 17:18:41 +01:00
dc3825add5 Using envs properly 2025-02-07 17:05:36 +01:00
6552bb02fc Updating dependency versions for ci job as well 2025-02-06 20:14:48 +01:00
b10164589d Upgrading as older version for pipeline job doesn't seem to work anymore 2025-02-06 20:13:24 +01:00
0c7f32937f Updated CHANGELOG.md on "2024-12-04 07:28:29" 2024-12-04 07:28:29 +00:00
2f2619580b Bump ansible-core from 2.18.0 to 2.18.1 (#192)
Bumps [ansible-core](https://github.com/ansible/ansible) from 2.18.0 to 2.18.1.
- [Release notes](https://github.com/ansible/ansible/releases)
- [Commits](https://github.com/ansible/ansible/compare/v2.18.0...v2.18.1)

---
updated-dependencies:
- dependency-name: ansible-core
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-04 08:27:47 +01:00
9363cfd04b Updated CHANGELOG.md on "2024-11-26 14:21:50" 2024-11-26 14:21:50 +00:00
ff77201873 Bump ansible-core from 2.16.8 to 2.18.0 (#191)
Bumps [ansible-core](https://github.com/ansible/ansible) from 2.16.8 to 2.18.0.
- [Release notes](https://github.com/ansible/ansible/releases)
- [Commits](https://github.com/ansible/ansible/compare/v2.16.8...v2.18.0)

---
updated-dependencies:
- dependency-name: ansible-core
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-26 15:21:13 +01:00
9febe3fa4c Updated CHANGELOG.md on "2024-11-26 13:22:27" 2024-11-26 13:22:27 +00:00
45ad4915eb Updating CHANGELOG.md file for release 0.14.2 2024-11-26 14:21:56 +01:00
b798c93a6a Updating CONTRIBUTORS file for release 0.14.2 2024-11-26 14:21:23 +01:00
68af70ea86 Updated CHANGELOG.md on "2024-11-26 13:09:19" 2024-11-26 13:09:19 +00:00
7c9c047c67 fix: add missing tasks for RedHat distro (rpm install) (#189) 2024-11-26 14:08:46 +01:00
732dffa435 Updated CHANGELOG.md on "2024-11-25 13:51:52" 2024-11-25 13:51:52 +00:00
570f81a779 Updating the Python packages to make Molecule work (#190)
* Updating the Python packages to make Molecule work
* Triggering jobs with updating Telegraf version
* Changing Ansible version
* Changing github ci version
* Changing Python version version
* Removal of Debian9
2024-11-25 14:51:20 +01:00
29fb3ea5e0 Updated CHANGELOG.md on "2024-11-06 16:17:14" 2024-11-06 16:17:14 +00:00
c318de1e2e Bump ansible-core from 2.15.9 to 2.17.6 (#188)
Bumps [ansible-core](https://github.com/ansible/ansible) from 2.15.9 to 2.17.6.
- [Release notes](https://github.com/ansible/ansible/releases)
- [Commits](https://github.com/ansible/ansible/compare/v2.15.9...v2.17.6)

---
updated-dependencies:
- dependency-name: ansible-core
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-06 17:16:39 +01:00
8a5a7187fa Updated CHANGELOG.md on "2024-10-08 07:02:11" 2024-10-08 07:02:11 +00:00
6f30799a7f fix: add almalinux analog to rockylinux in defaults/main.yml (#187)
Co-authored-by: Simon Couball <simon.couball@akquinet.de>
2024-10-08 09:01:37 +02:00
2b8cb8a9d8 Updated CHANGELOG.md on "2024-06-25 06:44:26" 2024-06-25 06:44:26 +00:00
108284cda1 Add Archlinux OS (#186)
Signed-off-by: Frank Villaro-Dixon <frank@villaro-dixon.eu>
2024-06-25 08:43:52 +02:00
51c2bb66f5 Updated CHANGELOG.md on "2024-02-28 19:01:19" 2024-02-28 19:01:19 +00:00
bfe52cd752 Support for sub_inputs in extra plugins (#184)
Co-authored-by: Michał Lisowski <mlisowski@sentient.ie>
2024-02-28 20:00:49 +01:00
b5179f4dfe Updated CHANGELOG.md on "2024-02-19 08:33:43" 2024-02-19 08:33:43 +00:00
c8a2209fe5 use redhat baseurl (#183) 2024-02-19 09:33:14 +01:00
bd5dfd18c1 Updated CHANGELOG.md on "2024-02-17 11:37:35" 2024-02-17 11:37:35 +00:00
870e56c5a7 Updating CHANGELOG.md file for release 0.14.1 2024-02-17 12:37:08 +01:00
5fb03da151 Updating CONTRIBUTORS file for release 0.14.1 2024-02-17 12:36:46 +01:00
39bc504fd5 Merge branch 'master' of github.com:dj-wasabi/ansible-telegraf 2024-02-17 12:34:10 +01:00
171ecb0434 Updated CHANGELOG.md on "2024-02-17 11:33:43" 2024-02-17 11:33:43 +00:00
06117f38a1 Bump ansible-core from 2.15.2 to 2.15.9 (#182)
Bumps [ansible-core](https://github.com/ansible/ansible) from 2.15.2 to 2.15.9.
- [Release notes](https://github.com/ansible/ansible/releases)
- [Commits](https://github.com/ansible/ansible/compare/v2.15.2...v2.15.9)

---
updated-dependencies:
- dependency-name: ansible-core
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-17 12:33:17 +01:00
d84931411e Bump ansible from 8.2.0 to 8.5.0 (#181)
Bumps [ansible](https://github.com/ansible-community/ansible-build-data) from 8.2.0 to 8.5.0.
- [Changelog](https://github.com/ansible-community/ansible-build-data/blob/main/docs/release-process.md)
- [Commits](https://github.com/ansible-community/ansible-build-data/compare/8.2.0...8.5.0)

---
updated-dependencies:
- dependency-name: ansible
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-17 12:33:03 +01:00
d5ab4b07a8 Updated CHANGELOG.md on "2023-10-23 06:26:59" 2023-10-23 06:26:59 +00:00
5c160d6bbe Change Debian repo location (#179)
Changing the Debian repo to use "stable/main" instead of release-specific repos, per InfluxDB team suggestion
2023-10-23 08:26:21 +02:00
d36c400cd3 Merge branch 'master' of github.com:dj-wasabi/ansible-telegraf 2023-10-20 18:07:07 +02:00
cec761a336 Updated CHANGELOG.md on "2023-10-20 16:06:42" 2023-10-20 16:06:42 +00:00
da55c4a711 Fix molecule tests so that PR's can properly validated (#180)
* Making molecule work again
* Enable newer os'es
2023-10-20 18:06:02 +02:00
ccdb9bd98e Merge branch 'master' of github.com:dj-wasabi/ansible-telegraf 2023-10-20 17:18:11 +02:00
94774fbc8d Updated CHANGELOG.md on "2023-10-20 15:17:47" 2023-10-20 15:17:47 +00:00
73c00ab7b6 replace depracted aws module (#178)
Co-authored-by: Lauber, Simon <Simon.Lauber@adesso-service.com>
2023-10-20 17:17:06 +02:00
f241fd34d0 added yaml 1.2.2 compatibility (#176) 2023-10-20 17:16:45 +02:00
4064c8b040 Migrate from io to diskio (#173)
Telegraf throws following deprecation warning:

```
W! DeprecationWarning: Plugin "inputs.io" deprecated since version 0.10.0 and will be removed in 2.0.0: use 'inputs.diskio' instead
```

As far as I can tell this is simple rename and the output of these plugins should not change. I've also tried comparing the output locally and it seems to be the same.

```
# The following command outputs two sets of identical data:
telegraf --test --config telegraf.conf --input-filter io:diskio
```
2023-10-20 17:16:10 +02:00
fdcff0b195 Merge branch 'master' of github.com:dj-wasabi/ansible-telegraf 2023-10-20 16:19:48 +02:00
6b6aa755f6 Updated CHANGELOG.md on "2023-03-14 19:02:02" 2023-03-14 19:02:02 +00:00
ca76832c24 Updated CHANGELOG.md on "2023-03-14 18:51:28" 2023-03-14 18:51:28 +00:00
6f6fdf7f5e Replace apt_key with get_url (#170)
* Replace apt_key with get_url

Removing deprecated call to apt_key and replacing with a direct download of the key into trusted.gpg.d due to the apt-key command returning an error on newer releases.

* Dearmor GPG key

* Use new apt keyring method when supported

Changed playbook logic to run classic apt-key task for older Debian releases and use new keyring location for newer releases
2023-03-14 19:50:34 +01:00
f915bc0bd9 Updated CHANGELOG.md on "2023-01-31 14:37:03" 2023-01-31 14:37:03 +00:00
5066c5c7f9 Fix check-mode failures (#168)
* feat: Fix check-mode

* ci: Add "check-mode" runs to tests

* feat: Ensure check-mode works for repo-based installs
2023-01-31 15:36:14 +01:00
adb678a9e5 Updated CHANGELOG.md on "2023-01-30 18:32:17" 2023-01-30 18:32:17 +00:00
b8e8710ccf Updating CONTRIBUTORS file for release 0.14.0 2023-01-30 19:27:39 +01:00
e4728f4a6a Updated CHANGELOG.md on "2023-01-30 18:27:16" 2023-01-30 18:27:16 +00:00
8ac7c14045 Added/removed OS'es for Molecule (#167) 2023-01-30 19:26:38 +01:00
8c665829e6 Updated CHANGELOG.md on "2023-01-30 18:02:07" 2023-01-30 18:02:07 +00:00
68da943438 update influxdata GPG key after rotation (#165)
Co-authored-by: Harald Krämer <harald.kraemer@serviceware.de>
2023-01-30 19:01:27 +01:00
5fad4a7a64 Updated CHANGELOG.md on "2023-01-30 17:40:06" 2023-01-30 17:40:06 +00:00
5eeb4d6409 Downgrade support (#160)
* Support downgrades
2023-01-30 18:39:21 +01:00
83fda666a8 Fixed issues with Windows paths containing spaces (#162)
* Update configure_windows.yml

Add Quotes

* Update main.yml

add quotes
2023-01-30 18:38:44 +01:00
9a548d825d Updated CHANGELOG.md on "2023-01-30 17:38:35" 2023-01-30 17:38:35 +00:00
6d3d9741f0 feat: Ensure check-mode works (#163)
This commit ensures that check-mode works on systems when this role is
run without any telegraf being installed.

Before

```
fatal: [host-1]: FAILED! => {"changed": false, "msg": "Could not find the requested service telegraf: host"}
```

After

```
fatal: [host-1]: FAILED! => {"changed": false, "msg": "Could not find the requested service telegraf: host"}
...ignoring
```
2023-01-30 18:37:53 +01:00
df4af3eeef Updated CHANGELOG.md on "2023-01-30 17:04:28" 2023-01-30 17:04:28 +00:00
6432640e89 Fix the molecule run as part of CI process (#166)
* Updating CI Job;
* Changing gpg rpm key;
2023-01-30 18:03:35 +01:00
4fd39fe753 Updated CHANGELOG.md on "2022-08-08 16:33:46" 2022-08-08 16:33:46 +00:00
e59d785c7e Updating CHANGELOG.md file for release 0.13.3 2022-08-08 18:33:10 +02:00
4bef71819d Updating CONTRIBUTORS file for release 0.13.3 2022-08-08 18:32:34 +02:00
e13c62d918 Updated CHANGELOG.md on "2022-03-21 15:46:31" 2022-03-21 15:46:31 +00:00
f329d9e207 Adding support for aggregators (#156)
* templates/telegraf.conf.j2: Adding aggregator support.

Adding aggregator support and tagpass/tagdrop support for
processors and aggregators.

* Adding test for aggregator templating
2022-03-21 16:45:54 +01:00
554434c7ad Updated CHANGELOG.md on "2022-02-24 19:33:36" 2022-02-24 19:33:36 +00:00
a89b6aff93 Improve usage on SUSE releases (#155)
* Do not install init script on SUSE systems (#152)

The last SUSE releases that didn't support systemd were SLE 11 and
openSUSE 11.x.  The telegraf packages on the Open Build Service all
contain systemd service files.  openSUSE 11.x is long since dead and
buried and SLE 11 has been out of general support since mid-2019.

There are no other users of the script and it can be removed.  The
dependencies required in the molecule configuration can also be removed.

* Fix Python package dependencies on SUSE releases (#153)

The naming of the packages for the Python libxml and xml modules
on SUSE releases is a bit of a mess across releases.

SLE12 ships with Python 3.4 which is not new enough for Ansible to
use so Python 2 must be used.  Those packages are named python-xml
and python-libxml2.

SLE15 ships with Python 3.6 but the package containing the libxml2
module is named python3-libxml2-python.  The xml module is part of
python3-base and will be present if the interpreter is present.

On later releases, the package containing the libxml2 module has been
renamed python3-libxml2 but it still offers an alias for the old name.

* Add default repository handling for SUSE releases (#154)

The repositories for SUSE releases are in well-known locations
and requiring the user to specify them is unnecessary.  If the user
wishes to override the default repo using the telegraf_zypper_baseurl
that will still be honored.
2022-02-24 20:32:54 +01:00
fd18c08145 Updated CHANGELOG.md on "2022-01-19 07:18:03" 2022-01-19 07:18:03 +00:00
3596c7b95e Add variable for openSUSE RPM repository (#151) 2022-01-19 08:17:27 +01:00
8e4b34d4bd Updated CHANGELOG.md on "2021-11-02 18:53:24" 2021-11-02 18:53:24 +00:00
632fe13972 Add telegraf_yum_baseurl for Rocky Linux (#147)
Rocky Linux is an alternative to CentOS 8
2021-11-02 19:52:43 +01:00
4b7d9713e3 Updated CHANGELOG.md on "2021-05-19 16:07:01" 2021-05-19 16:07:01 +00:00
968b005f3a Add Windows feature of upgrade agents (#146) 2021-05-19 18:06:16 +02:00
28cd5b8f6e Updated CHANGELOG.md on "2021-04-15 05:41:37" 2021-04-15 05:41:37 +00:00
eb55757a01 Removed redundant "telegraf" folder in path (#144)
Fixed issues with paths containing spaces
2021-04-15 07:41:02 +02:00
1c15756019 Updated CHANGELOG.md on "2021-04-07 17:22:32" 2021-04-07 17:22:32 +00:00
9a1c543906 Updating CHANGELOG.md file for release 0.13.2 2021-04-07 19:21:51 +02:00
805071d0d9 Updating CONTRIBUTORS file for release 0.13.2 2021-04-07 19:21:34 +02:00
81246d67ea Updated CHANGELOG.md on "2021-03-05 17:23:51" 2021-03-05 17:23:51 +00:00
0ca3c1ddda Fix spacing for telegraf_plugins_extra example in readme.md (#143)
The spacing for the telegraf_plugins_extra section (lines 273-276) in readme.md was too indented, corrected spacing to hopefully be valid YML.
2021-03-05 18:22:57 +01:00
ecce0edb9b Remove telegraf repository after switching to online method (#142)
* Remove telegraf repository after switching to online method

Co-authored-by: Jérémy CHABERNAUD <jeremy.chabernaud@axians.com>
2021-02-08 17:03:19 +01:00
d7863b10ef Updating CONTRIBUTORS file for release 0.13.1 2021-01-31 12:00:45 +01:00
a9809890ee Updating CHANGELOG.md file for release 0.13.1 2021-01-31 12:00:45 +01:00
84d31bdaa6 Merge pull request #141 from dj-wasabi/add-action
Added GH Action to automatically update CHANGELOG.md
2021-01-06 20:57:14 +01:00
e2001ee2c7 Added GH Action to automatically update CHANGELOG.md 2021-01-06 20:55:32 +01:00
4d57c29311 Merge pull request #139 from billabongrob/workaround-138-windows-telegraf
adjustments for Windows >= 1.15
2020-12-23 19:57:56 +01:00
4e31a334a7 adjustments for Windows >= 1.15 2020-12-23 11:52:59 -06:00
8d25c09575 Merge pull request #137 from dj-wasabi/docker-image-version
Added property telegraf_agent_docker_image_version for using a specific version of the Docker image
2020-10-17 20:59:19 +02:00
55b4b6530e Added property telegraf_agent_docker_image_version for using a specific version of the Docker image 2020-10-17 14:36:04 +02:00
518f60132e Minor clarification in doc 2020-10-17 12:53:39 +02:00
7960f96a2a Merge pull request #136 from dj-wasabi/update-pre-commit
Apply ansible-lint in pre-commit hook and fix changes
2020-10-17 11:44:14 +02:00
0b24ff0853 Apply ansible-lint in pre-commit hook and fix changes 2020-10-17 11:23:19 +02:00
f206e93e1b Merge pull request #135 from dj-wasabi/fix-compare
Using version as version_compare is deprecated
2020-10-16 16:59:41 +02:00
57fe305579 Roll back for prepare to use shell 2020-10-16 16:50:50 +02:00
a9e6a96183 version_compare is deprecated 2020-10-16 16:45:56 +02:00
7eda3206fd Merge pull request #134 from dj-wasabi/fix-ansible-lint-issues
Using command instead of shell module
2020-10-16 16:31:37 +02:00
2c91f9de08 Using command instead of shell module 2020-10-16 16:15:45 +02:00
132e39ed47 Removing authors, removed to specific file 2020-10-16 16:10:48 +02:00
ab3730e24f Updating Authors file for release 0.13.0 2020-10-16 16:10:26 +02:00
1fae6b597f Updating CHANGELOG.md file for release 0.13.0 2020-10-16 16:09:27 +02:00
7f00767dc2 Merge pull request #131 from dj-wasabi/add-requirements-ci
Removing requirements file and use it from dj-wasabi-release repo
2020-10-16 16:05:29 +02:00
04935c3de4 Changing requirements file, removing leap 2020-10-16 15:56:44 +02:00
23f8339d99 Merge branch 'master' into add-requirements-ci 2020-10-16 15:47:41 +02:00
9b912d8f97 Added proper newline 2020-10-16 15:37:21 +02:00
07a0358410 Merge pull request #132 from NotDead/master
corrected "Example Docker configuration" to make it work by default
2020-09-07 07:49:04 +02:00
0b749fba5e corrected "Example Docker configuration" to make it work by default 2020-09-06 22:28:44 +03:00
559081b000 Removing requirements file and use it from ci-base repo 2020-09-01 16:02:05 +02:00
562a751990 Update README.md
Corrected badge
2020-08-31 18:15:59 +02:00
0ad660efb8 Merge pull request #130 from dj-wasabi/add-to-github-actions
Going to Github Actions
2020-08-01 18:50:39 +02:00
bffd2f1549 Added leap 2020-08-01 18:41:39 +02:00
998ad25059 Fixed some things to make it work: 2020-08-01 17:54:49 +02:00
a5dc1b8de5 Added leap and fixed installation of packages 2020-08-01 16:42:25 +02:00
bc3b670ca2 Corrected name and removed the scenario 2020-08-01 16:25:54 +02:00
add696bc78 Added requirements file;Removed some collection stuff 2020-08-01 16:24:03 +02:00
1112020f45 Going to Github Actions 2020-08-01 16:21:47 +02:00
6e72a8f278 Create FUNDING.yml 2020-07-31 10:08:30 +02:00
7508f3927d Merge pull request #127 from wingcon/master
made service status configurable
2020-07-10 15:32:35 +02:00
79422a70a1 Merge pull request #129 from comtravo/chore/fix-aws-tags
quote aws ec2 global tags
2020-07-10 15:32:19 +02:00
d3195b7b88 quote aws ec2 tags 2020-07-10 14:51:38 +02:00
20a7653f95 made service status configurable 2020-06-23 17:14:15 +02:00
08b1c62710 Merge pull request #126 from carlba/plugin-dependencies
Plugin dependencies are installed and configured
2020-06-14 20:57:15 +02:00
4b10834a00 Plugin dependencies are installed and configured 2020-06-13 15:50:19 +02:00
9353a544f9 Merge pull request #123 from carlba/macos-support
MacOS support
2020-06-13 11:16:07 +02:00
d750f4d259 Addressed PR Comments 2020-06-13 10:42:26 +02:00
7c32a52748 Merge pull request #124 from dwerder/fix-debian-latest-comparison
fix debian packagename on state latest
2020-06-03 09:05:25 +02:00
7a1ae28929 fix debian for package state
Closes #121
2020-06-02 15:52:07 +02:00
59b3613fe1 Deployment for MacOS 2020-05-23 19:35:20 +02:00
987aeb4406 Ensured role presented correctly on Ansible Galaxy 2020-05-23 18:32:29 +02:00
b15e674884 Merge pull request #122 from marcinwito/gpg_yum_repo_fix
gpgkey yum repo fix
2020-05-19 15:10:19 +02:00
331ffb7cb5 gpgkey yum repo fix 2020-05-19 13:40:18 +02:00
ea64e9bac4 Merge pull request #120 from rohit-gohri/patch-1
Fix RedHat task list
2020-05-08 20:48:41 +02:00
292cc2a2f4 Also add become for installation 2020-04-22 20:45:16 +05:30
685487f198 Fix omit syntax 2020-04-22 19:52:34 +05:30
7b8809c311 Add yum_repo as privileged user
For #119
2020-04-22 19:45:15 +05:30
8fdab6fdcd Merge pull request #117 from wingcon/master
added installation method manual - skip installation
2020-03-18 20:54:32 +01:00
7d5d5c1ea1 added installation method manual - skip installation 2020-03-18 17:43:33 +01:00
7d89ab270a Merge pull request #116 from rlex/pgsql_extensible_queries
Support postgresql_extensible queries
2020-03-02 07:38:00 +01:00
4956663701 add queries var to template 2020-02-27 22:09:58 +03:00
67253f5438 Merge pull request #113 from dj-wasabi/add-sub-configuration
Added extra filtering possibilities for a plugin
2020-02-04 12:54:55 +01:00
a55ef0b0c0 Added extra filtering possibilities for a plugin 2019-12-01 16:23:09 +01:00
0006d91e5e Updating documentation regarding issue 105;Added Toc;Added badges 2019-12-01 12:02:36 +01:00
10193da1cf Forgot to update changelog 2019-12-01 11:57:31 +01:00
a4c6db7be1 Merge pull request #112 from dj-wasabi/fix-travis
Minor changes to get Travis working again
2019-10-24 13:35:00 +02:00
02d6e48a39 Minor changes to get Travis working again 2019-10-24 13:11:42 +02:00
e977863e97 Merge pull request #98 from dj-wasabi/make-use-of-proxy
Added the use_proxy argument to use a proxy (or not)
2019-09-28 12:19:38 +02:00
a1505ad499 Merge pull request #109 from dj-wasabi/download-from-influxdb
Download from influxdb
2019-09-10 07:07:46 +02:00
a4cf4827cc Merge pull request #108 from matttrach/patch-1
Don't override package name unless "latest"
2019-09-10 07:06:05 +02:00
b48ff6b273 Don't override package name unless "latest" 2019-09-04 18:09:18 -05:00
2687513dc8 Merge pull request #106 from remkade/arm64_support
Adding support for arm64 systems
2019-08-23 07:04:38 +02:00
341a00f16d Adding support for arm64 systems
Adds support for `arm64` based systems (AWS `a1.*` instances).
2019-08-22 15:44:57 -07:00
4b6f773bba Merge pull request #104 from diego1q2w/patch-1
Use items() instead of iteritems()
2019-06-22 10:39:31 +02:00
ff9a820b01 Use items() instead of iteritems()
Python3 doesn't support iteritems()
2019-06-21 13:28:18 +02:00
dec1cab940 Merge pull request #103 from asfaltboy/fix/update-apt-cache
Fix: ensure apt-cache is updated before install
2019-05-28 20:40:56 +02:00
4fdafac2d0 fix: ensure apt-cache is updated before install 2019-05-28 19:54:13 +02:00
0c500cf06d Merge pull request #102 from langerma/FreeBSD
on FreeBSD the telegeraf.conf is in root of /usr/local/etc.
2019-05-01 10:22:24 +02:00
ab68b6813b on FreeBSD the telegeraf.conf is in root of /usr/local/etc. so i changed the telegraf_agent_config_path. now the telegraf rc scripts finds the right config and now error about missing directories is thrown. 2019-05-01 10:03:08 +02:00
852cfaa55e Merge pull request #101 from dj-wasabi/minor-changes-for-freebsd
Some changes for fixing FreeBSD
2019-04-27 16:22:01 +02:00
3fdba74518 Some changes for fixing FreeBSD 2019-04-27 16:09:29 +02:00
f843a3f51a Merge pull request #100 from langerma/FreeBSD
basic FreeBSD support
2019-04-27 15:41:04 +02:00
4ab32df6df basic FreeBSD support 2019-04-25 23:52:06 +02:00
ca4a07f87d As per comment in issue the environment argument should be provided 2019-04-21 19:50:14 +02:00
3cd91d0316 Added the use_proxy argument to use a proxy (or not) 2019-04-21 18:51:26 +02:00
27f2665772 Merge pull request #97 from dj-wasabi/minor-changes-for-molecule
Various small changes for molecule
2019-04-21 18:29:24 +02:00
a11694ff86 Various small changes for molecule 2019-04-21 18:17:54 +02:00
567539a637 Updated Changelog for release 0.12.0 2019-03-12 19:51:10 +01:00
69526620d9 Merge pull request #94 from ph4r5h4d/master
Add processors section in Telegraf config
2019-03-12 16:25:37 +01:00
618b8fa540 Add processors sample to README 2019-03-12 17:50:26 +03:30
f59d45a167 Add processors section in Telegraf config
telegraf_processors: 
  - processor: rename
  - processor: rename.replace  
    config:
        - tag = "message"
        - dest = "messages"
2019-03-12 14:21:45 +03:30
857a7a7938 Merge pull request #93 from dj-wasabi/download-from-influxdb
Updated to Telegraf 1.10.0;Different installation methods
2019-03-11 07:26:45 +01:00
dd28f645a9 increasing limit 2019-03-10 12:45:51 +01:00
0aba53bb17 Updated to Telegraf 1.10.0;Different installation methods 2019-03-10 12:39:14 +01:00
8a8d826de4 Merge pull request #92 from sdurrheimer/master
Updating Telegraf default to 1.9.5
2019-02-27 19:11:36 +01:00
499f217ed3 Updating Telegraf default to 1.9.5
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2019-02-27 15:26:58 +01:00
6f8bf1162c Merge pull request #90 from sdurrheimer/master
Updating Telegraf default to 1.9.4
2019-02-07 21:39:29 +01:00
9d24186e01 Updating Telegraf default to 1.9.4
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2019-02-07 11:49:40 +01:00
8b0cfeac4d Merge pull request #88 from jgeusebroek/master
Docker enhancements
2019-02-02 17:09:10 +01:00
b88d46ad1a Disable apparmor for Telegraf container (otherwise the logs are swamped with errors). Ignored on other platforms. 2019-02-02 15:52:51 +01:00
2003635e73 Docker telegraf uid and gid configurable 2019-02-02 15:51:19 +01:00
50c4043389 Merge pull request #87 from sdurrheimer/master
Updating Telegraf default to 1.9.3
2019-01-23 16:19:36 +01:00
2086b24b79 Updating Telegraf default to 1.9.3
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2019-01-23 15:48:28 +01:00
cf84634ce4 Added register 2019-01-23 11:40:11 +01:00
eaa7210976 Merge pull request #86 from dj-wasabi/add-register-for-trying-again
Added register for installation of packages
2019-01-23 11:25:18 +01:00
87c014da34 Set molecule to latest 2019-01-23 10:12:11 +01:00
bf008bec0c Aded a register so installation can be done again. This would also reduce the amount of E405 lint errors 2019-01-23 09:58:00 +01:00
0b285f7772 Minor documentation changes 2019-01-23 09:53:21 +01:00
2c444d97a8 Merge pull request #85 from jgeusebroek/master
Add Docker container support
2019-01-22 19:35:33 +01:00
5785e4a690 Only restart container when docker is the target platform 2019-01-22 19:04:00 +01:00
1d57bf2af8 Fix test 2019-01-22 16:40:13 +01:00
9f98ae6a76 Add Docker container support 2019-01-22 16:24:21 +01:00
35cd29007a Merge pull request #84 from jgeusebroek/master
Remove legacy options
2019-01-22 15:07:26 +01:00
8cdce07205 Update README, remove legacy options 2019-01-21 18:08:55 +01:00
f826414f5f Remove legacy configuration options 2019-01-21 17:24:01 +01:00
f6be7d6a4c Merge pull request #83 from jgeusebroek/master
Fix tagpass and tagdrop
2019-01-21 16:52:22 +01:00
5764b4bc90 item != inputs 2019-01-21 15:37:43 +01:00
07a6cb0135 Fix tagpass & tagdrop on outputs 2019-01-21 15:34:07 +01:00
140597e41d Also fix tagpass and tagdrop for older configuration format 2019-01-21 15:04:33 +01:00
d744a12f6f Fix tagpass and tagdrop syntax 2019-01-21 15:02:32 +01:00
0cb6770905 Merge pull request #81 from pad92/patch-1
[bug] debian - add cache_valid_time
2019-01-17 15:04:46 +01:00
1ccb184813 add cache_valid_time
- influx keep only last version on they repo

set cache_valid_time to 15mintutes to avoid fail install of old telegraf version
2019-01-17 10:43:19 +01:00
88ba1e218f Merge pull request #79 from anthonysr-mc/2019_01_08_amazon_linux
Add Yum repo support for Amazon Linux
2019-01-09 10:41:02 +01:00
5b31515d1b Merge pull request #80 from sdurrheimer/master
Updating Telegraf default to 1.9.2
2019-01-09 10:39:44 +01:00
38933cfc30 Updating Telegraf default to 1.9.2
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2019-01-09 10:06:09 +01:00
454ee8be7b Add Yum repo support for Amazon Linux 2019-01-08 13:15:47 -08:00
d49c278506 Merge pull request #78 from ikke-t/fedora-dnf
Fix to work with Fedora Linux
2018-12-17 06:45:30 +01:00
e3c553e729 Need to pull RHEL packages for Fedora
It seems Influxdb does not provide packages for Fedora. Thus the package repository URL needs to be hard coded to RHEL7 if run from Fedora. This change recognises we are on Fedora, and fakes RHEL release to be 7 so URL gets right.
2018-12-17 00:14:19 +02:00
c5e6883c1b Fedora dnf breaks with yum module.
Fedora uses dnf instead of yum. If this change is not made, playbook fails with:
fatal: [xx.yy]: FAILED! => {"changed": false, "msg": "The Python 2 yum module is needed for this module. If you require Python 3 support use the `dnf` Ansible module instead."}
2018-12-16 23:45:47 +02:00
a4d3eb237c Merge pull request #76 from jdivy/windows
Add support for extra win_perf_counters and prevent python u'' strings
2018-12-13 18:42:28 +01:00
ced8fd8ad5 Merge pull request #77 from dj-wasabi/update-telegraf
Updating to newer version of Telegraf
2018-12-13 18:42:21 +01:00
5f5d393a3f Updating to newer version of Telegraf 2018-12-13 18:26:11 +01:00
086dfab7d3 Add support for extra win_perf_counters and prevent python u'' strings 2018-12-13 10:42:39 -06:00
44 changed files with 1907 additions and 776 deletions

4
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,4 @@
# These are supported funding model platforms
github: dj-wasabi
patreon: wernerdijkerman

49
.github/workflows/main.yml vendored Normal file
View File

@ -0,0 +1,49 @@
# This will execute some scripts on main branch.
name: MasterRun
on:
push:
branches:
- master
- main
workflow_dispatch:
jobs:
runme:
runs-on: ubuntu-latest
steps:
- name: Checkout dj-wasabi-release repo
uses: actions/checkout@v2
with:
repository: dj-wasabi/dj-wasabi-release
path: dj-wasabi-release
- name: Checkout current repo
uses: actions/checkout@v2
with:
path: main
- name: Commit Changelog file
run: |
# We are cloned in the 'main' directory and the dj-wasabi-release
# repository is the 'dj-wasabi-release' next to 'main'
cd main
# Generate CHANGELOG.md file
../dj-wasabi-release/release.sh -d
# Let commit the changes if there are any? (Well there should be!)
if [[ $(git status | grep -c 'CHANGELOG.md' || true) -gt 0 ]]
then echo "Committing file"
git config --global user.name 'Werner Dijkerman [GH bot]'
git config --global user.email 'github@dj-wasabi.nl'
git add CHANGELOG.md
git commit -m "Updated CHANGELOG.md on \"$(date "+%Y-%m-%d %H:%M:%S")\"" CHANGELOG.md
git push
fi
env:
CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

75
.github/workflows/telegraf.yml vendored Normal file
View File

@ -0,0 +1,75 @@
name: "ansible-telegraf"
on:
push:
paths:
- 'defaults/**'
- 'files/**'
- 'handlers/**'
- 'meta/**'
- 'molecule/**'
- 'tasks/**'
- 'templates/**'
- '.github/workflows/telegraf.yml'
pull_request:
paths:
- 'defaults/**'
- 'files/**'
- 'handlers/**'
- 'meta/**'
- 'molecule/**'
- 'tasks/**'
- 'templates/**'
- '.github/workflows/telegraf.yml'
jobs:
molecule:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
molecule_distro:
# - container: rocky8
# image: geerlingguy/docker-rockylinux8-ansible
- container: rocky9
image: geerlingguy/docker-rockylinux9-ansible
- container: ubuntu2204
image: geerlingguy/docker-ubuntu2204-ansible:latest
- container: ubuntu2004
image: geerlingguy/docker-ubuntu2004-ansible:latest
# - container: ubuntu1804
# image: geerlingguy/docker-ubuntu1804-ansible:latest
- container: debian10
image: geerlingguy/docker-debian10-ansible:latest
- container: debian11
image: geerlingguy/docker-debian11-ansible:latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: 3.11.11
# - name: Install dependencies
# run: |
# python -m pip install --upgrade pip
# pip install -r requirements.txt
- name: Install test dependencies.
run: pip3 install ansible molecule molecule-plugins[docker] docker pytest testinfra
- name: Run role tests on empty systems in check-mode
env:
MY_MOLECULE_CONTAINER: ${{ matrix.molecule_distro.container }}
MY_MOLECULE_IMAGE: ${{ matrix.molecule_distro.image }}
MY_MOLECULE_GROUP: ${{ matrix.molecule_distro.group }}
MY_MOLECULE_DOCKER_COMMAND: ${{ matrix.molecule_distro.command }}
run: molecule test -s empty-checkmode
- name: Run role tests
env:
MY_MOLECULE_CONTAINER: ${{ matrix.molecule_distro.container }}
MY_MOLECULE_IMAGE: ${{ matrix.molecule_distro.image }}
MY_MOLECULE_GROUP: ${{ matrix.molecule_distro.group }}
MY_MOLECULE_DOCKER_COMMAND: ${{ matrix.molecule_distro.command }}
run: molecule test

2
.gitignore vendored
View File

@ -5,3 +5,5 @@ tests/.cache
__pycache__
*.retry
pmip
# IDE:s
.idea

16
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,16 @@
---
repos:
- repo: local
hooks:
- id: ansible-lint
name: Ansible-lint
description: This hook runs ansible-lint.
entry: ansible-lint --force-color .
language: python
pass_filenames: false
always_run: true
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.2.0
hooks:
- id: end-of-file-fixer
- id: trailing-whitespace

View File

@ -1,16 +0,0 @@
---
sudo: required
language: python
services:
- docker
install:
- curl -sSlo requirements.txt https://raw.githubusercontent.com/dj-wasabi/ansible-ci-base/master/requirements.txt
- pip install -r requirements.txt
script:
- molecule --version
- ansible --version
- molecule test
notifications:
webhooks: https://galaxy.ansible.com/api/v1/notifications/

View File

@ -1,124 +1,386 @@
dj-wasabi.telegraf
------------------
# Changelog
Below an overview of all changes in the releases.
## [Unreleased](https://github.com/dj-wasabi/ansible-telegraf/tree/HEAD)
Version (Release date)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.14.2...HEAD)
0.11.0 (2018-12-11)
**Merged pull requests:**
* Added support for plugins being managed exclusively by this playbook #60 (By pull request: gaizeror (Thanks!))
* Pin apt key ID #61 (By pull request: tszym (Thanks!))
* Wen copying/removing plugins show only plugin name #62 (By pull request: mprasil (Thanks!))
* Using base ci requirements.txt #64
* telegraf-extra-plugin.conf.j2: fix template typo #65 (By pull request: gaelL (Thanks!))
* Some small improvements #66
* Want to use latest #67
* Added Windows as OS #68
* Added support for (Open)Suse #69
* Added default pluging if nothing is configured #70
* Replace 'ec2_facts' with 'ec2_metadata_facts' to fix a deprecation warning #72 (By pull request: Rylon (Thanks!))
* A few enhancements and fixes to windows support #73 (By pull request: jdivy (Thanks!))
* Renamed the tojson to to_json #74
- Bump ansible-core from 2.18.0 to 2.18.1 [\#192](https://github.com/dj-wasabi/ansible-telegraf/pull/192) ([dependabot[bot]](https://github.com/apps/dependabot))
- Bump ansible-core from 2.16.8 to 2.18.0 [\#191](https://github.com/dj-wasabi/ansible-telegraf/pull/191) ([dependabot[bot]](https://github.com/apps/dependabot))
0.10.0 (2018-08-12)
## [0.14.2](https://github.com/dj-wasabi/ansible-telegraf/tree/0.14.2) (2024-11-26)
* Updating to telegraf 1.7.3
* Fix Deprecation warnings #54
* Changed 'include' to 'include_tasks' to remove deprecation warning #53 (By pull request: tjend (Thanks!))
* Add option to remove extra plugin config files #52 (By pull request: tjend (Thanks!))
* Plugins extra hash allow multiple inputs same type #50 (By pull request: tjend (Thanks!))
* Using specific version for tests
* Update minimum Ansible version to 2.4
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.14.1...0.14.2)
0.9.0 (2018-05-06)
**Implemented enhancements:**
* 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!))
- Repo installation fails for Almalinux [\#172](https://github.com/dj-wasabi/ansible-telegraf/issues/172)
- Support for sub\_inputs in extra plugins [\#184](https://github.com/dj-wasabi/ansible-telegraf/pull/184) ([lisuml](https://github.com/lisuml))
0.8.0 (2017-10-30)
**Fixed bugs:**
* 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!))
- Add default repository handling for SUSE releases [\#154](https://github.com/dj-wasabi/ansible-telegraf/issues/154)
- Fix Python package dependencies on SUSE releases [\#153](https://github.com/dj-wasabi/ansible-telegraf/issues/153)
0.7.0 (2017-02-23)
**Closed issues:**
* 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!))
- amazon.aws.ec2\_tag\_info [\#177](https://github.com/dj-wasabi/ansible-telegraf/issues/177)
- Failing on Debian Bookwork, telegraf recomends stable main rather than specific release [\#175](https://github.com/dj-wasabi/ansible-telegraf/issues/175)
- Unable to run against linux machines \(redhat\) [\#159](https://github.com/dj-wasabi/ansible-telegraf/issues/159)
- How to add the sub inputs into the same config file using telegraf\_plugin\_extra [\#149](https://github.com/dj-wasabi/ansible-telegraf/issues/149)
0.6.0 (2017-01-02)
**Merged pull requests:**
* 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!))
- Updating the Python packages to make Molecule work [\#190](https://github.com/dj-wasabi/ansible-telegraf/pull/190) ([dj-wasabi](https://github.com/dj-wasabi))
- fix: add missing tasks for RedHat distro \(rpm install\) [\#189](https://github.com/dj-wasabi/ansible-telegraf/pull/189) ([vfreitassentient](https://github.com/vfreitassentient))
- Bump ansible-core from 2.15.9 to 2.17.6 [\#188](https://github.com/dj-wasabi/ansible-telegraf/pull/188) ([dependabot[bot]](https://github.com/apps/dependabot))
- Use `rhel` within yum url for almalinux [\#187](https://github.com/dj-wasabi/ansible-telegraf/pull/187) ([kuhball](https://github.com/kuhball))
- Add Archlinux OS [\#186](https://github.com/dj-wasabi/ansible-telegraf/pull/186) ([Frankkkkk](https://github.com/Frankkkkk))
- Fixes Role for Almalinux 8.8, Closes \#172 [\#183](https://github.com/dj-wasabi/ansible-telegraf/pull/183) ([mira-miracoli](https://github.com/mira-miracoli))
0.5.1 (2016-08-24)
## [0.14.1](https://github.com/dj-wasabi/ansible-telegraf/tree/0.14.1) (2024-02-17)
* fixed issue with ansible not getting the package #6 (By pull request: thecodeassassin (Thanks!))
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.14.0...0.14.1)
0.5.0 (2016-07-17)
**Implemented enhancements:**
* 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!))
- Fix check-mode failures [\#168](https://github.com/dj-wasabi/ansible-telegraf/pull/168) ([pieterlexis-tomtom](https://github.com/pieterlexis-tomtom))
0.4.0 (2016-02-05)
**Fixed bugs:**
* 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
- Fix molecule tests so that PR's can properly validated [\#180](https://github.com/dj-wasabi/ansible-telegraf/pull/180) ([dj-wasabi](https://github.com/dj-wasabi))
- Replace apt\_key with get\_url [\#170](https://github.com/dj-wasabi/ansible-telegraf/pull/170) ([danclough](https://github.com/danclough))
0.3.0 (2016-01-13)
**Closed issues:**
* Made it work with telegraf 0.10.0
* Default installation: 0.10.0
- Failure due to apt-key when run against newer Debian/Ubuntu releases [\#169](https://github.com/dj-wasabi/ansible-telegraf/issues/169)
0.2.0 (2015-11-14)
**Merged pull requests:**
* Fixed kitchen test setup
* Adding "net" to the telegraf_plugins_default property
* Update etc-opt-telegraf-telegraf.conf.j2 #2 (By pull request: aferrari-technisys (Thanks!))
* Improvement and upgrade for v0.2.0 of telegraf #1 (By pull request: aferrari-technisys (Thanks!))
- Bump ansible-core from 2.15.2 to 2.15.9 [\#182](https://github.com/dj-wasabi/ansible-telegraf/pull/182) ([dependabot[bot]](https://github.com/apps/dependabot))
- Bump ansible from 8.2.0 to 8.5.0 [\#181](https://github.com/dj-wasabi/ansible-telegraf/pull/181) ([dependabot[bot]](https://github.com/apps/dependabot))
- Change Debian repo location [\#179](https://github.com/dj-wasabi/ansible-telegraf/pull/179) ([danclough](https://github.com/danclough))
- replace depracted aws module [\#178](https://github.com/dj-wasabi/ansible-telegraf/pull/178) ([daparm](https://github.com/daparm))
- added yaml 1.2.2 compatibility [\#176](https://github.com/dj-wasabi/ansible-telegraf/pull/176) ([DEvil0000](https://github.com/DEvil0000))
- Migrate from io to diskio to fix deprecation warning [\#173](https://github.com/dj-wasabi/ansible-telegraf/pull/173) ([mprasil](https://github.com/mprasil))
0.1.0 (2015-09-23)
## [0.14.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.14.0) (2023-01-30)
* Updated `telegraf_agent_version` to 0.1.9
* Added restart when package is changed (When updated for example)
* Added several plugin options:
* pass
* drop
* tagpass
* tagdrop
* interval
* Updated documentation
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.13.3...0.14.0)
0.0.2 (2015-09-20)
**Implemented enhancements:**
* Updated README dus to missing colon
* Forgot to update the meta file
* Added Changelog file
- Added/removed OS'es for Molecule CI testing [\#167](https://github.com/dj-wasabi/ansible-telegraf/pull/167) ([dj-wasabi](https://github.com/dj-wasabi))
- Ensure check-mode works [\#163](https://github.com/dj-wasabi/ansible-telegraf/pull/163) ([pieterlexis-tomtom](https://github.com/pieterlexis-tomtom))
- Downgrade support [\#160](https://github.com/dj-wasabi/ansible-telegraf/pull/160) ([maxnasonov](https://github.com/maxnasonov))
0.0.1 (2015-09-20)
**Fixed bugs:**
* Initial release
- Don't install init script on SUSE/openSUSE systems running systemd [\#152](https://github.com/dj-wasabi/ansible-telegraf/issues/152)
- Fix the molecule run as part of CI process [\#166](https://github.com/dj-wasabi/ansible-telegraf/pull/166) ([dj-wasabi](https://github.com/dj-wasabi))
- update influxdata GPG key after rotation [\#165](https://github.com/dj-wasabi/ansible-telegraf/pull/165) ([Tetha](https://github.com/Tetha))
- Fixed issues with Windows paths containing spaces [\#162](https://github.com/dj-wasabi/ansible-telegraf/pull/162) ([KlettIT](https://github.com/KlettIT))
**Closed issues:**
- Influxdata key rotation causing failure [\#164](https://github.com/dj-wasabi/ansible-telegraf/issues/164)
- Influxdb2 output [\#158](https://github.com/dj-wasabi/ansible-telegraf/issues/158)
## [0.13.3](https://github.com/dj-wasabi/ansible-telegraf/tree/0.13.3) (2022-03-21)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.13.2...0.13.3)
**Implemented enhancements:**
- Adding support for aggregators [\#156](https://github.com/dj-wasabi/ansible-telegraf/pull/156) ([simo-tuomisto](https://github.com/simo-tuomisto))
- Add support for Rocky Linux [\#147](https://github.com/dj-wasabi/ansible-telegraf/pull/147) ([maxwondercorn](https://github.com/maxwondercorn))
- Add Windows feature of upgrade agents [\#146](https://github.com/dj-wasabi/ansible-telegraf/pull/146) ([PeterSzegedi](https://github.com/PeterSzegedi))
**Merged pull requests:**
- Improve usage on SUSE releases [\#155](https://github.com/dj-wasabi/ansible-telegraf/pull/155) ([jeffmahoney](https://github.com/jeffmahoney))
- Add variable for openSUSE RPM repository [\#151](https://github.com/dj-wasabi/ansible-telegraf/pull/151) ([kingphil](https://github.com/kingphil))
- Fixed issues with Windows paths containing spaces & removed redundant "telegraf" folder in path [\#144](https://github.com/dj-wasabi/ansible-telegraf/pull/144) ([treanorjp](https://github.com/treanorjp))
## [0.13.2](https://github.com/dj-wasabi/ansible-telegraf/tree/0.13.2) (2021-03-05)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.13.1...0.13.2)
**Implemented enhancements:**
- Remove telegraf repository after switching to online method [\#142](https://github.com/dj-wasabi/ansible-telegraf/pull/142) ([djerfy](https://github.com/djerfy))
**Merged pull requests:**
- Fix spacing for telegraf\_plugins\_extra example in readme.md [\#143](https://github.com/dj-wasabi/ansible-telegraf/pull/143) ([isclever](https://github.com/isclever))
## [0.13.1](https://github.com/dj-wasabi/ansible-telegraf/tree/0.13.1) (2021-01-06)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.13.0...0.13.1)
**Implemented enhancements:**
- Added GH Action to automatically update CHANGELOG.md [\#141](https://github.com/dj-wasabi/ansible-telegraf/pull/141) ([dj-wasabi](https://github.com/dj-wasabi))
**Fixed bugs:**
- adjustments for Windows \>= 1.15 [\#139](https://github.com/dj-wasabi/ansible-telegraf/pull/139) ([billabongrob](https://github.com/billabongrob))
**Closed issues:**
- Newer versions of Telegraf fail on Windows [\#138](https://github.com/dj-wasabi/ansible-telegraf/issues/138)
**Merged pull requests:**
- Added property telegraf\_agent\_docker\_image\_version for using a specific version of the Docker image [\#137](https://github.com/dj-wasabi/ansible-telegraf/pull/137) ([dj-wasabi](https://github.com/dj-wasabi))
- Apply ansible-lint in pre-commit hook and fix changes [\#136](https://github.com/dj-wasabi/ansible-telegraf/pull/136) ([dj-wasabi](https://github.com/dj-wasabi))
- Using version as version\_compare is deprecated [\#135](https://github.com/dj-wasabi/ansible-telegraf/pull/135) ([dj-wasabi](https://github.com/dj-wasabi))
- Using command instead of shell module [\#134](https://github.com/dj-wasabi/ansible-telegraf/pull/134) ([dj-wasabi](https://github.com/dj-wasabi))
## [0.13.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.13.0) (2020-10-16)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.12.0...0.13.0)
**Implemented enhancements:**
- Setup the system for individual plugins [\#125](https://github.com/dj-wasabi/ansible-telegraf/issues/125)
- Logparser configuration [\#111](https://github.com/dj-wasabi/ansible-telegraf/issues/111)
- ansible\_fqdn problematic for getting hostname [\#105](https://github.com/dj-wasabi/ansible-telegraf/issues/105)
- FreeBSD support [\#99](https://github.com/dj-wasabi/ansible-telegraf/issues/99)
- Proxy not taken into consideration when using 'online' [\#96](https://github.com/dj-wasabi/ansible-telegraf/issues/96)
**Closed issues:**
- telegraf\_agent\_aws\_tags creates an invalid Telegraf configuration [\#128](https://github.com/dj-wasabi/ansible-telegraf/issues/128)
- Broken on Ubuntu 20.04 [\#121](https://github.com/dj-wasabi/ansible-telegraf/issues/121)
- Broken on RedHat [\#119](https://github.com/dj-wasabi/ansible-telegraf/issues/119)
**Merged pull requests:**
- corrected "Example Docker configuration" to make it work by default [\#132](https://github.com/dj-wasabi/ansible-telegraf/pull/132) ([NotDead](https://github.com/NotDead))
- Removing requirements file and use it from ci-base repo [\#131](https://github.com/dj-wasabi/ansible-telegraf/pull/131) ([dj-wasabi](https://github.com/dj-wasabi))
- Going to Github Actions [\#130](https://github.com/dj-wasabi/ansible-telegraf/pull/130) ([dj-wasabi](https://github.com/dj-wasabi))
- quote aws ec2 global tags [\#129](https://github.com/dj-wasabi/ansible-telegraf/pull/129) ([Puneeth-n](https://github.com/Puneeth-n))
- made service status configurable [\#127](https://github.com/dj-wasabi/ansible-telegraf/pull/127) ([DEvil0000](https://github.com/DEvil0000))
- Plugin dependencies are installed and configured [\#126](https://github.com/dj-wasabi/ansible-telegraf/pull/126) ([carlba](https://github.com/carlba))
- fix debian packagename on state latest [\#124](https://github.com/dj-wasabi/ansible-telegraf/pull/124) ([dwerder](https://github.com/dwerder))
- MacOS support [\#123](https://github.com/dj-wasabi/ansible-telegraf/pull/123) ([carlba](https://github.com/carlba))
- gpgkey yum repo fix [\#122](https://github.com/dj-wasabi/ansible-telegraf/pull/122) ([marcinwito](https://github.com/marcinwito))
- Fix RedHat task list [\#120](https://github.com/dj-wasabi/ansible-telegraf/pull/120) ([rohit-gohri](https://github.com/rohit-gohri))
- added installation method manual - skip installation [\#117](https://github.com/dj-wasabi/ansible-telegraf/pull/117) ([DEvil0000](https://github.com/DEvil0000))
- Support postgresql\_extensible queries [\#116](https://github.com/dj-wasabi/ansible-telegraf/pull/116) ([rlex](https://github.com/rlex))
- Added extra filtering possibilities for a plugin [\#113](https://github.com/dj-wasabi/ansible-telegraf/pull/113) ([dj-wasabi](https://github.com/dj-wasabi))
- Minor changes to get Travis working again [\#112](https://github.com/dj-wasabi/ansible-telegraf/pull/112) ([dj-wasabi](https://github.com/dj-wasabi))
- Download from influxdb [\#109](https://github.com/dj-wasabi/ansible-telegraf/pull/109) ([dj-wasabi](https://github.com/dj-wasabi))
- Don't override package name unless "latest" [\#108](https://github.com/dj-wasabi/ansible-telegraf/pull/108) ([matttrach](https://github.com/matttrach))
- Adding support for arm64 systems [\#106](https://github.com/dj-wasabi/ansible-telegraf/pull/106) ([remkade](https://github.com/remkade))
- Use items\(\) instead of iteritems\(\) [\#104](https://github.com/dj-wasabi/ansible-telegraf/pull/104) ([diego1q2w](https://github.com/diego1q2w))
- Fix: ensure apt-cache is updated before install [\#103](https://github.com/dj-wasabi/ansible-telegraf/pull/103) ([asfaltboy](https://github.com/asfaltboy))
- on FreeBSD the telegeraf.conf is in root of /usr/local/etc. [\#102](https://github.com/dj-wasabi/ansible-telegraf/pull/102) ([langerma](https://github.com/langerma))
- Some changes for fixing FreeBSD [\#101](https://github.com/dj-wasabi/ansible-telegraf/pull/101) ([dj-wasabi](https://github.com/dj-wasabi))
- basic FreeBSD support [\#100](https://github.com/dj-wasabi/ansible-telegraf/pull/100) ([langerma](https://github.com/langerma))
- Added the use\_proxy argument to use a proxy \(or not\) [\#98](https://github.com/dj-wasabi/ansible-telegraf/pull/98) ([dj-wasabi](https://github.com/dj-wasabi))
- Various small changes for molecule [\#97](https://github.com/dj-wasabi/ansible-telegraf/pull/97) ([dj-wasabi](https://github.com/dj-wasabi))
## [0.12.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.12.0) (2019-03-12)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.11.0...0.12.0)
**Implemented enhancements:**
- Install telegraf from package file instead of repository [\#89](https://github.com/dj-wasabi/ansible-telegraf/issues/89)
**Closed issues:**
- Docker container support [\#82](https://github.com/dj-wasabi/ansible-telegraf/issues/82)
**Merged pull requests:**
- Add processors section in Telegraf config [\#94](https://github.com/dj-wasabi/ansible-telegraf/pull/94) ([ph4r5h4d](https://github.com/ph4r5h4d))
- Updated to Telegraf 1.10.0;Different installation methods [\#93](https://github.com/dj-wasabi/ansible-telegraf/pull/93) ([dj-wasabi](https://github.com/dj-wasabi))
- Updating Telegraf default to 1.9.5 [\#92](https://github.com/dj-wasabi/ansible-telegraf/pull/92) ([sdurrheimer](https://github.com/sdurrheimer))
- Updating Telegraf default to 1.9.4 [\#90](https://github.com/dj-wasabi/ansible-telegraf/pull/90) ([sdurrheimer](https://github.com/sdurrheimer))
- Docker enhancements [\#88](https://github.com/dj-wasabi/ansible-telegraf/pull/88) ([jgeusebroek](https://github.com/jgeusebroek))
- Updating Telegraf default to 1.9.3 [\#87](https://github.com/dj-wasabi/ansible-telegraf/pull/87) ([sdurrheimer](https://github.com/sdurrheimer))
- Added register for installation of packages [\#86](https://github.com/dj-wasabi/ansible-telegraf/pull/86) ([dj-wasabi](https://github.com/dj-wasabi))
- Add Docker container support [\#85](https://github.com/dj-wasabi/ansible-telegraf/pull/85) ([jgeusebroek](https://github.com/jgeusebroek))
- Remove legacy options [\#84](https://github.com/dj-wasabi/ansible-telegraf/pull/84) ([jgeusebroek](https://github.com/jgeusebroek))
- Fix tagpass and tagdrop [\#83](https://github.com/dj-wasabi/ansible-telegraf/pull/83) ([jgeusebroek](https://github.com/jgeusebroek))
- \[bug\] debian - add cache\_valid\_time [\#81](https://github.com/dj-wasabi/ansible-telegraf/pull/81) ([pad92](https://github.com/pad92))
- Updating Telegraf default to 1.9.2 [\#80](https://github.com/dj-wasabi/ansible-telegraf/pull/80) ([sdurrheimer](https://github.com/sdurrheimer))
- Add Yum repo support for Amazon Linux [\#79](https://github.com/dj-wasabi/ansible-telegraf/pull/79) ([anthonysr](https://github.com/anthonysr))
- Fix to work with Fedora Linux [\#78](https://github.com/dj-wasabi/ansible-telegraf/pull/78) ([ikke-t](https://github.com/ikke-t))
- Updating to newer version of Telegraf [\#77](https://github.com/dj-wasabi/ansible-telegraf/pull/77) ([dj-wasabi](https://github.com/dj-wasabi))
- Add support for extra win\_perf\_counters and prevent python u'' strings [\#76](https://github.com/dj-wasabi/ansible-telegraf/pull/76) ([jdivy](https://github.com/jdivy))
## [0.11.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.11.0) (2018-12-11)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.10.0...0.11.0)
**Closed issues:**
- No telegraf\_plugin\_extra info is added to plugins [\#71](https://github.com/dj-wasabi/ansible-telegraf/issues/71)
- Daemon crash because of empty config.conf and plugin.conf files. [\#63](https://github.com/dj-wasabi/ansible-telegraf/issues/63)
- Pin telegraf to {present, latest, specific-version} [\#59](https://github.com/dj-wasabi/ansible-telegraf/issues/59)
- Ability to add multiple times the same extra-plugin [\#57](https://github.com/dj-wasabi/ansible-telegraf/issues/57)
**Merged pull requests:**
- Renamed the tojson to to\_json [\#74](https://github.com/dj-wasabi/ansible-telegraf/pull/74) ([dj-wasabi](https://github.com/dj-wasabi))
- A few enhancements and fixes to windows support [\#73](https://github.com/dj-wasabi/ansible-telegraf/pull/73) ([jdivy](https://github.com/jdivy))
- Replace 'ec2\_facts' with 'ec2\_metadata\_facts' to fix a deprecation warning [\#72](https://github.com/dj-wasabi/ansible-telegraf/pull/72) ([Rylon](https://github.com/Rylon))
- Added default pluging if nothing is configured [\#70](https://github.com/dj-wasabi/ansible-telegraf/pull/70) ([dj-wasabi](https://github.com/dj-wasabi))
- Added support for \(Open\)Suse [\#69](https://github.com/dj-wasabi/ansible-telegraf/pull/69) ([dj-wasabi](https://github.com/dj-wasabi))
- Added Windows as OS [\#68](https://github.com/dj-wasabi/ansible-telegraf/pull/68) ([dj-wasabi](https://github.com/dj-wasabi))
- Want to use latest [\#67](https://github.com/dj-wasabi/ansible-telegraf/pull/67) ([dj-wasabi](https://github.com/dj-wasabi))
- Some small improvements [\#66](https://github.com/dj-wasabi/ansible-telegraf/pull/66) ([dj-wasabi](https://github.com/dj-wasabi))
- telegraf-extra-plugin.conf.j2: fix template typo [\#65](https://github.com/dj-wasabi/ansible-telegraf/pull/65) ([gaelL](https://github.com/gaelL))
- Using base ci requirements.txt [\#64](https://github.com/dj-wasabi/ansible-telegraf/pull/64) ([dj-wasabi](https://github.com/dj-wasabi))
- Wen copying/removing plugins show only plugin name [\#62](https://github.com/dj-wasabi/ansible-telegraf/pull/62) ([mprasil](https://github.com/mprasil))
- Pin apt key ID [\#61](https://github.com/dj-wasabi/ansible-telegraf/pull/61) ([tszym](https://github.com/tszym))
- Added support for plugins being managed exclusively by this playbook [\#60](https://github.com/dj-wasabi/ansible-telegraf/pull/60) ([gaizeror](https://github.com/gaizeror))
## [0.10.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.10.0) (2018-08-12)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.9.0...0.10.0)
**Closed issues:**
- Package changed namespace and broke our Tower instance [\#56](https://github.com/dj-wasabi/ansible-telegraf/issues/56)
- PR \#46 break telegraf "Multiple inputs of the same type" [\#48](https://github.com/dj-wasabi/ansible-telegraf/issues/48)
- telegraf\_plugins\_extra is override when multiple call [\#30](https://github.com/dj-wasabi/ansible-telegraf/issues/30)
**Merged pull requests:**
- Updating to Telegraf 1.7.3;Updating changelog [\#58](https://github.com/dj-wasabi/ansible-telegraf/pull/58) ([dj-wasabi](https://github.com/dj-wasabi))
- Added bunch of files [\#55](https://github.com/dj-wasabi/ansible-telegraf/pull/55) ([dj-wasabi](https://github.com/dj-wasabi))
- Fix Deprecation warnings [\#54](https://github.com/dj-wasabi/ansible-telegraf/pull/54) ([dj-wasabi](https://github.com/dj-wasabi))
- Changed 'include' to 'include\_tasks' to remove deprecation warning [\#53](https://github.com/dj-wasabi/ansible-telegraf/pull/53) ([tjend](https://github.com/tjend))
- Add option to remove extra plugin config files [\#52](https://github.com/dj-wasabi/ansible-telegraf/pull/52) ([tjend](https://github.com/tjend))
- Plugins extra hash allow multiple inputs same type [\#50](https://github.com/dj-wasabi/ansible-telegraf/pull/50) ([tjend](https://github.com/tjend))
- Update to 2.4;Using specific versions of libraries [\#49](https://github.com/dj-wasabi/ansible-telegraf/pull/49) ([dj-wasabi](https://github.com/dj-wasabi))
## [0.9.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.9.0) (2018-05-06)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.8.0...0.9.0)
**Closed issues:**
- Cannot call plugin multiple times anymore [\#39](https://github.com/dj-wasabi/ansible-telegraf/issues/39)
**Merged pull requests:**
- Updating to 0.9.0 [\#47](https://github.com/dj-wasabi/ansible-telegraf/pull/47) ([dj-wasabi](https://github.com/dj-wasabi))
- Convert the telegraf\_plugins\_extra varaible to a hash so that we can … [\#46](https://github.com/dj-wasabi/ansible-telegraf/pull/46) ([tjend](https://github.com/tjend))
- Improved comments, split up role, moved tags and added defaults [\#45](https://github.com/dj-wasabi/ansible-telegraf/pull/45) ([boxrick](https://github.com/boxrick))
- Allow to override RedHat release version [\#43](https://github.com/dj-wasabi/ansible-telegraf/pull/43) ([tszym](https://github.com/tszym))
- Fix Travis Tests [\#42](https://github.com/dj-wasabi/ansible-telegraf/pull/42) ([dj-wasabi](https://github.com/dj-wasabi))
- Fix markdown [\#41](https://github.com/dj-wasabi/ansible-telegraf/pull/41) ([angristan](https://github.com/angristan))
- plugins: be able to specify the filename of extra plugings [\#40](https://github.com/dj-wasabi/ansible-telegraf/pull/40) ([gaelL](https://github.com/gaelL))
- tags: give an option to use AWS tags as telegraf tags [\#32](https://github.com/dj-wasabi/ansible-telegraf/pull/32) ([gaelL](https://github.com/gaelL))
## [0.8.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.8.0) (2017-10-30)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.7.0...0.8.0)
**Closed issues:**
- PIP dependencies conflicting with native yum packages [\#28](https://github.com/dj-wasabi/ansible-telegraf/issues/28)
**Merged pull requests:**
- Use telegra\_global\_tags for oldest telegraf versions [\#38](https://github.com/dj-wasabi/ansible-telegraf/pull/38) ([tszym](https://github.com/tszym))
- Fix extra plugins by file / Change apt source filename / Change tags by global\_tags [\#37](https://github.com/dj-wasabi/ansible-telegraf/pull/37) ([aarnaud](https://github.com/aarnaud))
- Remove useless packages on RedHat. fix \#28 [\#36](https://github.com/dj-wasabi/ansible-telegraf/pull/36) ([tszym](https://github.com/tszym))
- Test if LSB codename exists before using it [\#35](https://github.com/dj-wasabi/ansible-telegraf/pull/35) ([tszym](https://github.com/tszym))
- Updating to Molecule V2 [\#31](https://github.com/dj-wasabi/ansible-telegraf/pull/31) ([dj-wasabi](https://github.com/dj-wasabi))
## [0.7.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.7.0) (2017-02-23)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.6.0...0.7.0)
**Fixed bugs:**
- multiple plugins in telegraf\_plugins\_extra are duplicated [\#22](https://github.com/dj-wasabi/ansible-telegraf/issues/22)
- Deleting extra plugins doesn't delete them [\#8](https://github.com/dj-wasabi/ansible-telegraf/issues/8)
**Merged pull requests:**
- Updating to release 0.7.0 [\#27](https://github.com/dj-wasabi/ansible-telegraf/pull/27) ([dj-wasabi](https://github.com/dj-wasabi))
- Replace action by modules [\#26](https://github.com/dj-wasabi/ansible-telegraf/pull/26) ([tszym](https://github.com/tszym))
- Use yum repository to install telegraf on RedHat [\#25](https://github.com/dj-wasabi/ansible-telegraf/pull/25) ([tszym](https://github.com/tszym))
- Remove for-loop in extra-plugin template [\#24](https://github.com/dj-wasabi/ansible-telegraf/pull/24) ([emersondispatch](https://github.com/emersondispatch))
- Update Debian.yml [\#23](https://github.com/dj-wasabi/ansible-telegraf/pull/23) ([zend0](https://github.com/zend0))
- extra plugins tags [\#21](https://github.com/dj-wasabi/ansible-telegraf/pull/21) ([oboukili](https://github.com/oboukili))
- Input tags support [\#20](https://github.com/dj-wasabi/ansible-telegraf/pull/20) ([szibis](https://github.com/szibis))
- Fix telegraf confguration permissions [\#19](https://github.com/dj-wasabi/ansible-telegraf/pull/19) ([szibis](https://github.com/szibis))
## [0.6.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.6.0) (2017-01-02)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.5.1...0.6.0)
**Merged pull requests:**
- update the README with the latest v0.13 - v1.1 agent settings [\#17](https://github.com/dj-wasabi/ansible-telegraf/pull/17) ([lhoss](https://github.com/lhoss))
- support missing agent settings upto telegraf v1.1 [\#16](https://github.com/dj-wasabi/ansible-telegraf/pull/16) ([lhoss](https://github.com/lhoss))
- Fixing molecule [\#15](https://github.com/dj-wasabi/ansible-telegraf/pull/15) ([dj-wasabi](https://github.com/dj-wasabi))
- use version\_compare filter … [\#14](https://github.com/dj-wasabi/ansible-telegraf/pull/14) ([lhoss](https://github.com/lhoss))
- set telegraf hostname in defaults. [\#13](https://github.com/dj-wasabi/ansible-telegraf/pull/13) ([airbe](https://github.com/airbe))
- Removed imports [\#12](https://github.com/dj-wasabi/ansible-telegraf/pull/12) ([dj-wasabi](https://github.com/dj-wasabi))
- Fix the Influxdb repo for "hybrid" debian distros \(like "jessie/sid"\) [\#11](https://github.com/dj-wasabi/ansible-telegraf/pull/11) ([Ismael](https://github.com/Ismael))
- Do "become" for the steps that require root access on Debian [\#10](https://github.com/dj-wasabi/ansible-telegraf/pull/10) ([Ismael](https://github.com/Ismael))
- Added new code for correct molecule verification [\#7](https://github.com/dj-wasabi/ansible-telegraf/pull/7) ([dj-wasabi](https://github.com/dj-wasabi))
## [0.5.1](https://github.com/dj-wasabi/ansible-telegraf/tree/0.5.1) (2016-08-24)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.5.0...0.5.1)
**Merged pull requests:**
- fixed issue with ansible not getting the package [\#6](https://github.com/dj-wasabi/ansible-telegraf/pull/6) ([thecodeassassin](https://github.com/thecodeassassin))
## [0.5.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.5.0) (2016-07-17)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.4.0...0.5.0)
**Closed issues:**
- A new Release for the .deb package url change [\#3](https://github.com/dj-wasabi/ansible-telegraf/issues/3)
**Merged pull requests:**
- Feature/add extra plugins to telegrafd folder [\#5](https://github.com/dj-wasabi/ansible-telegraf/pull/5) ([stvnwrgs](https://github.com/stvnwrgs))
## [0.4.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.4.0) (2016-02-05)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.3.0...0.4.0)
## [0.3.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.3.0) (2016-01-13)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.2.0...0.3.0)
## [0.2.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.2.0) (2015-11-14)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.1.0...0.2.0)
**Merged pull requests:**
- Update etc-opt-telegraf-telegraf.conf.j2 [\#2](https://github.com/dj-wasabi/ansible-telegraf/pull/2) ([aferrari-technisys](https://github.com/aferrari-technisys))
- Improvement and upgrade for v0.2.0 of telegraf [\#1](https://github.com/dj-wasabi/ansible-telegraf/pull/1) ([aferrari-technisys](https://github.com/aferrari-technisys))
## [0.1.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.1.0) (2015-09-23)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.0.2...0.1.0)
## [0.0.2](https://github.com/dj-wasabi/ansible-telegraf/tree/0.0.2) (2015-09-20)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.0.1...0.0.2)
## [0.0.1](https://github.com/dj-wasabi/ansible-telegraf/tree/0.0.1) (2015-09-20)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/03adb259af33123c917cdc960d23aeee07e01fef...0.0.1)
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*

View File

@ -22,9 +22,9 @@ Please note that this project is released with a Contributor Code of Conduct. By
2. Create a branch and apply your changes to this branch.
a. Make sure you have updated the documentation when adding new variables;
b. Don't forget to add/update tests so we can test the functionality during each Pull Request;
c. Make sure the tests will succeed.
3. Push the branch to your fork and submit a pull request.
@ -44,13 +44,14 @@ Style guides are important because they ensure consistency in the content, look,
## (local) Development
This role make use of Molecule to test the execution of the role and verificate it. In the root of the repository, a file named `requirements.txt` exists and contains the versions used by the tests.
This role make use of Molecule to test the execution of the role and verificate it. In the repository https://github.com/dj-wasabi/dj-wasabi-release, a file named `requirements.txt` exists and contains the versions used by the tests.
### Requirements
You can install them with the following command:
```
wget https://raw.githubusercontent.com/dj-wasabi/dj-wasabi-release/main/requirements.txt
pip install -r requirements.txt
```
@ -67,6 +68,10 @@ It should run without any issues.
# Other
## pre-commit
This repository contains a pre-commit hook. This means that when you want to commit the changes, 1 or more tests are executed to validate the changes. Please take a look at how to install the `pre-commit` package from the official [site](https://pre-commit.com/). Also make sure to install `ansible-lint` via `pip install ansible-lint` as this is 1 of the tools that is executed while a pre-commit hooks runs.
## Virtualenv
Suggestion is to create a virtualenv so you won't have issues with other projects.
@ -85,4 +90,4 @@ Some web pages describing for virtual env:
[Molecule V2 with your own role](https://werner-dijkerman.nl/2017/09/05/using-molecule-v2-to-test-ansible-roles/)
**End note**: Have fun making changes. If a feature helps you, then others find it helpful too and I will happily have it merged.
**End note**: Have fun making changes. If a feature helps you, then others find it helpful too and I will happily have it merged.

64
CONTRIBUTORS Normal file
View File

@ -0,0 +1,64 @@
A. Binzxxxxxx
Alejandro
Angristan
Anthony ARNAUD
Carl Bäckström
DEvil0000
DJΞRFY
Dan Clough
Daniel Werdermann
Diego Nava
Emerson Knapp
Farshad Nematdoust
Frank Villaro-Dixon
Greg
Harald Kraemer
Heckel, Robert J
Ilkka Tengvall
Ismael
Jack Ivy
Jeff Mahoney
Jeroen Geusebroek
Klett IT
Kyle
Laurent Hoss
Lex Rivera
Marcin Wito
Markus Langer
Matt
Max Nasonov
Michał Lisowski
Mira
Miro Prasil
Miroslav Prasil
NotDead
Olivier Boukili
Pascal
Pavel Savchenko
PeterSzegedi
Pieter Lexis (TomTom)
Puneeth Nanjundaswamy
Rick Box
Rohit Gohri
Romain BUREAU
Ryan Conway
Simo Tuomisto
Simon
Slawomir Skowron
Steve Durrheimer
Steven Wirges
TheCodeAssassin
Thomas Szymanski
ThorstenHeck
Troy Jendra
Vinicius Freitas
Werner Dijkerman
Werner Dijkerman [GH bot]
aroglian
dependabot[bot]
gaelL
kingphil
maxwondercorn
or
treanorjp
zend0

269
README.md
View File

@ -1,8 +1,38 @@
# dj-wasabi.telegraf
- [dj-wasabi.telegraf](#dj-wasabitelegraf)
* [Build status:](#build-status-)
* [Requirements](#requirements)
+ [Supported systems](#supported-systems)
+ [InfluxDB](#influxdb)
+ [Docker](#docker)
* [Upgrade](#upgrade)
+ [0.7.0](#070)
* [Role Variables](#role-variables)
+ [Ansible role specific variables](#ansible-role-specific-variables)
- [Telegraf Package](#telegraf-package)
+ [Telegraf agent process configuration.](#telegraf-agent-process-configuration)
+ [Docker specific role variables:](#docker-specific-role-variables-)
* [Extra information](#extra-information)
+ [ansible_fqdn problematic for getting hostname](#ansible-fqdn-problematic-for-getting-hostname)
+ [Setting tags](#setting-tags)
+ [Docker specifics](#docker-specifics)
- [Docker image](#docker-image)
- [Docker mounts](#docker-mounts)
- [Example Docker configuration](#example-docker-configuration)
* [Windows specific Variables](#windows-specific-variables)
* [Extra information](#extra-information-1)
+ [telegraf_plugins_default](#telegraf-plugins-default)
+ [telegraf_plugins_extra](#telegraf-plugins-extra)
* [Dependencies](#dependencies)
* [Example Playbook](#example-playbook)
* [Molecule](#molecule)
* [License](#license)
* [Author Information](#author-information)
## Build status:
[![Build Status](https://travis-ci.org/dj-wasabi/ansible-telegraf.svg?branch=master)](https://travis-ci.org/dj-wasabi/ansible-telegraf)
[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fdj-wasabi%2Fansible-telegraf%2Fbadge%3Fref%3Dmaster&style=flat)](https://actions-badge.atrox.dev/dj-wasabi/ansible-telegraf/goto?ref=master) <img src="https://img.shields.io/ansible/role/d/5173"/> <img src="https://img.shields.io/ansible/quality/5173"/>
This role will install and configure telegraf.
@ -14,21 +44,34 @@ Design goals are to have a minimal memory footprint with a plugin system so that
## Requirements
### Operating systems
This role will work on the following operating systems:
### Supported systems
This role supports the following systems:
* Red Hat
* Debian
* Ubuntu
* Windows (Best effort)
* Docker container
* (Open)Suse
* Windows (Best effort)
* FreeBSD (Best effort)
* Archlinux (only "online" mode)
So, you'll need one of those operating systems.. :-)
Please sent Pull Requests or suggestions when you want to use this role for other Operating systems.
So, you'll need one of those systems.. :-)
Please sent Pull Requests or suggestions when you want to use this role for other systems.
### InfluxDB
You'll need an InfluxDB instance running somewhere on your network.
You'll need an InfluxDB instance running somewhere on your network. Or 1 of the other output types found on https://github.com/influxdata/telegraf/#output-plugins
### Docker
Docker needs to be installed on the target host. I can recommend these roles to install Docker:
* [jgeusebroek.docker](https://galaxy.ansible.com/jgeusebroek/docker)
* [geerlingguy.docker](https://galaxy.ansible.com/geerlingguy/docker)
This is only the case when the configuration is needed for a Telegraf inside a Docker container (When `telegraf_agent_docker: True`).
## Upgrade
### 0.7.0
@ -39,13 +82,31 @@ There was an issue:
## Role Variables
### Overall variables
### Ansible role specific variables
The following parameters can be set for the Telegraf agent:
Specifying the version to be installed:
* `telegraf_agent_version`: The version of Telegraf to install. Default: `1.9.0`
* `telegraf_agent_package`: The name of the Telegraf package. Default: `telegraf`
* `telegraf_agent_version`: The version of Telegraf to install. If `telegraf_agent_package_state` is set to `latest`, then this property and value is ignored. Default: `1.10.0`
How `Telegraf` needs to be installed. There are 4 methods in getting `Telegraf` installed on the target host:
* Via the package manager, like `yum`, `apt` or `zypper` ("repo");
* Via a download from the `https://dl.influxdata.com/` site ("online");
* Already provided and is already available on the target host, but not yet installed/configured ("offline");
* Already installed on the target host or done manually, but not yet configured ("manual");
This can be configured by setting `telegraf_agent_package_method` to one of the appropriate values ( `repo`, `online`, `offline` or `manual`).
#### Telegraf Package
These properties set in how and what package will be installed.
* `telegraf_agent_package`: The name of the Telegraf package to install. When `telegraf_agent_package_method` is set to `online` or `offline`, it needs to have the full path of the file. Example: `telegraf_agent_package: /tmp/telegraf.rpm`. Default: `telegraf_agent_package: telegraf`.
* `telegraf_agent_package_method`: The installation method to be used. Can choose between: `repo`, `offline` or `online`.
* `telegraf_agent_package_state`: If the package should be `present` or `latest`. When set to `latest`, `telegraf_agent_version` will be ignored. Default: `present`
### Telegraf agent process configuration.
* `telegraf_agent_interval`: The interval configured for sending data to the server. Default: `10`
* `telegraf_agent_debug`: Run Telegraf in debug mode. Default: `False`
* `telegraf_agent_round_interval`: Rounds collection interval to 'interval' Default: True
@ -58,9 +119,40 @@ The following parameters can be set for the Telegraf agent:
* `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_hostname`: The agent hostname. Default: `ansible_fqdn`
* `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
### Docker specific role variables:
* `telegraf_agent_docker`: Install Telegraf as a docker container. Default: `False`
* `telegraf_agent_docker_name`: Name of the docker container. Default: `telegraf`
* `telegraf_agent_docker_network_mode`: Networking mode of the docker container. Default: `bridge`
* `telegraf_agent_docker_restart_policy`: Docker container restart policy. Default: `unless-stopped`
* `telegraf_agent_docker_image_version`: The version of the Docker Telegraf image to be used. Default the value contains the value given for `telegraf_agent_version`. Can be set to `latest` to get the actual `latest` tag for the provided Docker image.
* `telegraf_uid_docker`: Override user id. Default: `995`
* `telegraf_gid_docker`: Override group id. Default: `998`
Full agent settings reference: [https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md#agent-configuration](https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md#agent-configuration).
## Extra information
### ansible_fqdn problematic for getting hostname
Extra info regarding: ansible_fqdn problematic for getting hostname #105
*Describe the bug*
In some nodes I'm getting weird hostnames, mostly localhost.localdomain. Those nodes show proper configuration in hostnamectl. I've seen you're using 'ansible_fqdn' as default.
Seems like ansible_fqdn and ansible_hostname can give different results, and sometimes even very weird results, as it sometimes makes DNS calls (which is not under my control in that cases) to infer that names.
*Fix proposal*
In my playbook I've added this parameter:
telegraf_agent_hostname: "{{ ansible_nodename }}"
### Setting tags
You can set tags for the host running telegraf:
@ -75,8 +167,8 @@ Specifying an output. The default is set to localhost, you'll have to specify th
config:
- urls = ["http://localhost:8086"]
- database = "telegraf"
tagpass:
- diskmetrics = ["true"]
tagpass:
- cpu = ["cpu0"]
The config will be printed line by line into the configuration, so you could also use:
@ -85,16 +177,75 @@ The config will be printed line by line into the configuration, so you could als
and it will be printed in the configuration file.
### Docker specifics
#### Docker image
The official [Influxdata Telegraf image](https://hub.docker.com/_/telegraf) is used. `telegraf_agent_version` will translate to the image tag.
#### Docker mounts
Please note that the Docker container bind mounts basicly your whole system (read-only) to monitor the Docker Engine Host from within the container. To be precise:
- /etc/telegraf:/etc/telegraf:ro
- /:/hostfs:ro
- /etc:/hostfs/etc:ro
- /proc:/hostfs/proc:ro
- /sys:/hostfs/sys:ro
- /var/run:/var/run:ro
More information: [https://github.com/influxdata/telegraf/blob/master/docs/FAQ.md](https://github.com/influxdata/telegraf/blob/master/docs/FAQ.md).
#### Example Docker configuration
telegraf_agent_docker: True
# Force host networking mode, so Docker Engine Host traffic metrics can be gathered.
telegraf_agent_docker_network_mode: host
# Force a specific image tag.
telegraf_agent_version: 1.10.0-alpine
telegraf_plugins_default:
- plugin: cpu
config:
- percpu = true
- plugin: disk
tagpass:
- fstype = [ "ext4", "xfs" ]
tagdrop:
- path = [ "/etc", "/etc/telegraf", "/etc/hostname", "/etc/hosts", "/etc/resolv.conf" ]
- plugin: io
- plugin: mem
- plugin: system
- plugin: swap
- plugin: netstat
- plugin: processes
- plugin: docker
config:
- endpoint = "unix:///var/run/docker.sock"
- timeout = "5s"
## Windows specific Variables
**NOTE**
_Supporting Windows is an best effort (I don't have the possibility to either test/verify changes on the various amount of available Windows instances). PR's specific to Windows will almost immediately be merged, unless some one is able to provide a Windows test mechanism via Travis for Pull Requests._
_Supporting Windows is an best effort (I don't have the possibility to either test/verify changes on the various amount of available Windows instances). PR's specific to Windows will almost immediately be merged, unless some one is able to provide a Windows test mechanism via Travis or other service for Pull Requests._
* `telegraf_win_install_dir`: The directory where Telegraf will be installed.
* `telegraf_win_logfile`: The location to the logfile of Telegraf.
* `telegraf_win_include`: The directory that will contain all plugin configuration.
## openSUSE specific Variables
* `telegraf_zypper_baseurl`: The URL to the openSUSE repository that hosts Telegraf (for example, for openSUSE Leap: "http://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Leap_{{ ansible_distribution_version }}/"). If this is unspecified, a default repository will be used.
## MacOS specific Variables
**NOTE**
_MacOS support is as the Window Support an best effort and not officially supported._
* `telegraf_mac_user`: Telegraf will run as this user (needed as running things as other users using brew is problematic)
## Extra information
There are two properties which are similar, but are used differently. Those are:
@ -102,6 +253,8 @@ There are two properties which are similar, but are used differently. Those are:
* `telegraf_plugins_default`
* `telegraf_plugins_extra`
### telegraf_plugins_default
With the property `telegraf_plugins_default` it is set to use the default set of Telegraf plugins. You could override it with more plugins, which should be enabled at default.
telegraf_plugins_default:
@ -117,37 +270,86 @@ With the property `telegraf_plugins_default` it is set to use the default set of
Every telegraf agent has these as a default configuration.
### telegraf_plugins_extra
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
telegraf_plugins_extra:
mysql:
config:
- servers = ["root:{{ mysql_root_password }}@tcp(localhost:3306)/"]
mysql:
config:
- servers = ["root:{{ mysql_root_password }}@tcp(localhost:3306)/"]
There is an option to delete extra-plugin files in /etc/telegraf/telegraf.d if they weren't generated by this playbook with `telegraf_plugins_extra_exclusive` variable.
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.
* `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.
* `tagdrop`: (added in Telegraf 0.1.5) The inverse of tagpass. If a tag matches, the metric is not emitted. This is tested on metrics that have passed the tagpass test.
* `interval`: How often to gather this metric. Normal plugins use a single global interval, but if one particular plugin should be run less or more often, you can configure that here.
* `filter.name`: Like when there is an extra filter that needs to be configured, like `grok` for a `logparser` plugin.
* `filter.config`: The extra configuration for the - in the `filter.name` example - `grok` filter. (See example below)
* `sub_inputs`: If the input requires other sub inputs, you can add them here (see example below).
An example might look like this:
telegraf_plugins_default:
- plugin: disk
interval: 12
tags:
- diskmetrics = "true"
tags:
- diskmetrics = "true"
tagpass:
- fstype = [ "ext4", "xfs" ]
- path = [ "/opt", "/home" ]
If you want to define processors you can simply use `telegraf_processors` variable.
An example might look like this:
```
telegraf_processors:
- processor: rename
- processor: rename.replace
config:
- tag = "level"
- dest = "LogLevel"
```
When you want to make use of the `grok` filter for the logparser:
telegraf_plugins_extra:
logparser:
plugin: logparser
config:
- files = ["/var/log/messages"]
- from_beginning = false
filter:
name: grok
config:
- patterns = ["invoked oom-killer"]
When you want to include a sub inputs with their own configuration:
```yaml
sqs:
plugin: cloudwatch
config:
- region = "eu-west-1"
- access_key = "foo"
- secret_key = "bar"
- period = "1m"
- delay = "2m"
- interval = "1m"
- namespace = "AWS/SQS"
- statistic_include = ["average"]
sub_inputs:
metrics:
- names = [
"ApproximateAgeOfOldestMessage",
"ApproximateNumberOfMessagesVisible",
]
metrics.dimensions:
- name = "QueueName"
- value = "*"
```
## Dependencies
@ -159,29 +361,6 @@ No dependencies
roles:
- { role: dj-wasabi.telegraf }
## Contributors
The following have contributed to this Ansible role:
* 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!
## Molecule
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/

View File

@ -1,9 +1,14 @@
---
telegraf_enabled: True
# defaults file for ansible-telegraf
telegraf_agent_version: 1.9.0
telegraf_agent_version: 1.32.3
telegraf_agent_version_patch: 1
telegraf_agent_package: telegraf
telegraf_agent_package_file_deb: telegraf_{{ telegraf_agent_version }}-{{ telegraf_agent_version_patch }}_{{ telegraf_agent_package_arch }}.deb
telegraf_agent_package_file_rpm: telegraf-{{ telegraf_agent_version }}-{{ telegraf_agent_version_patch }}.{{ ansible_architecture }}.rpm
telegraf_agent_package_path: /tmp
telegraf_agent_package_method: repo
telegraf_agent_package_state: present
telegraf_agent_hostname: "{{ ansible_fqdn }}"
telegraf_agent_interval: 10
@ -13,6 +18,17 @@ telegraf_agent_flush_interval: 10
telegraf_agent_flush_jitter: 0
telegraf_agent_aws_tags: False
telegraf_agent_aws_tags_prefix: ""
telegraf_agent_config_path: /etc/telegraf
telegraf_win_logfile_rotation_max_archives: 3
# Docker specific settings
telegraf_uid_docker: 998
telegraf_gid_docker: 995
telegraf_agent_docker: False
telegraf_agent_docker_name: telegraf
telegraf_agent_docker_network_mode: bridge
telegraf_agent_docker_restart_policy: unless-stopped
telegraf_agent_docker_image_version: "{{ telegraf_agent_version }}"
# v0.13 settings (not sure if supported in older version):
telegraf_agent_collection_jitter: 0
@ -39,7 +55,7 @@ telegraf_plugins_default:
config:
- percpu = true
- plugin: disk
- plugin: io
- plugin: diskio
- plugin: mem
- plugin: net
- plugin: system
@ -55,10 +71,27 @@ telegraf_plugins_extra_exclusive: False
# RedHat specific settings for convenience
telegraf_redhat_releasever: "$releasever"
telegraf_yum_baseurl:
amazon: "https://repos.influxdata.com/centos/6/$basearch/stable"
centos: "https://repos.influxdata.com/rhel/{{ telegraf_redhat_releasever }}/$basearch/stable"
default: "https://repos.influxdata.com/{{ ansible_distribution|lower }}/{{ telegraf_redhat_releasever }}/$basearch/stable"
redhat: "https://repos.influxdata.com/rhel/{{ telegraf_redhat_releasever }}/$basearch/stable"
rocky: "https://repos.influxdata.com/rhel/{{ telegraf_redhat_releasever }}/$basearch/stable"
almalinux: "https://repos.influxdata.com/rhel/{{ telegraf_redhat_releasever }}/$basearch/stable"
telegraf_yum_gpgkey: "https://repos.influxdata.com/influxdata-archive_compat.key"
telegraf_zypper_repos:
"opensuse tumbleweed": "http://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Factory/"
"default": "http://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Factory/"
"sles": "http://download.opensuse.org/repositories/devel:/languages:/go/SLE_{{ ansible_distribution_major_version }}_SP{{ ansible_distribution_release }}/"
"opensuse leap": "http://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Leap_{{ ansible_distribution_version }}/"
telegraf_win_install_dir: 'C:\Telegraf'
telegraf_win_logfile: 'C:\\Telegraf\\telegraf.log'
telegraf_win_include: 'C:\Telegraf\telegraf_agent.d'
telegraf_win_service_args:
- -service install
- -config {{ telegraf_win_install_dir }}\telegraf\telegraf.conf
- --config-directory {{ telegraf_win_include }}
- '-config "{{ telegraf_win_install_dir }}\telegraf.conf"'
- '--config-directory "{{ telegraf_win_include }}"'
telegraf_mac_user: user
telegraf_mac_group: admin

View File

@ -1,212 +0,0 @@
#! /usr/bin/env bash
# chkconfig: 2345 99 01
# description: Telegraf daemon
### BEGIN INIT INFO
# Provides: telegraf
# Required-Start: $all
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start telegraf at boot time
### END INIT INFO
# this init script supports three different variations:
# 1. New lsb that define start-stop-daemon
# 2. Old lsb that don't have start-stop-daemon but define, log, pidofproc and killproc
# 3. Centos installations without lsb-core installed
#
# In the third case we have to define our own functions which are very dumb
# and expect the args to be positioned correctly.
# Command-line options that can be set in /etc/default/telegraf. These will override
# any config file values.
TELEGRAF_OPTS=
USER=telegraf
GROUP=telegraf
if [ -r /lib/lsb/init-functions ]; then
source /lib/lsb/init-functions
fi
DEFAULT=/etc/default/telegraf
if [ -r $DEFAULT ]; then
set -o allexport
source $DEFAULT
set +o allexport
fi
if [ -z "$STDOUT" ]; then
STDOUT=/dev/null
fi
if [ ! -f "$STDOUT" ]; then
mkdir -p `dirname $STDOUT`
fi
if [ -z "$STDERR" ]; then
STDERR=/var/log/telegraf/telegraf.log
fi
if [ ! -f "$STDERR" ]; then
mkdir -p `dirname $STDERR`
fi
OPEN_FILE_LIMIT=65536
function pidofproc() {
if [ $# -ne 3 ]; then
echo "Expected three arguments, e.g. $0 -p pidfile daemon-name"
fi
if [ ! -f "$2" ]; then
return 1
fi
local pidfile=`cat $2`
if [ "x$pidfile" == "x" ]; then
return 1
fi
if ps --pid "$pidfile" | grep -q $(basename $3); then
return 0
fi
return 1
}
function killproc() {
if [ $# -ne 3 ]; then
echo "Expected three arguments, e.g. $0 -p pidfile signal"
fi
pid=`cat $2`
kill -s $3 $pid
}
function log_failure_msg() {
echo "$@" "[ FAILED ]"
}
function log_success_msg() {
echo "$@" "[ OK ]"
}
# Process name ( For display )
name=telegraf
# Daemon name, where is the actual executable
daemon=/usr/bin/telegraf
# pid file for the daemon
pidfile=/var/run/telegraf/telegraf.pid
piddir=`dirname $pidfile`
if [ ! -d "$piddir" ]; then
mkdir -p $piddir
chown $USER:$GROUP $piddir
fi
# Configuration file
config=/etc/telegraf/telegraf.conf
confdir=/etc/telegraf/telegraf.d
# If the daemon is not there, then exit.
[ -x $daemon ] || exit 5
case $1 in
start)
# Checked the PID file exists and check the actual status of process
if [ -e $pidfile ]; then
pidofproc -p $pidfile $daemon > /dev/null 2>&1 && status="0" || status="$?"
# If the status is SUCCESS then don't need to start again.
if [ "x$status" = "x0" ]; then
log_failure_msg "$name process is running"
exit 0 # Exit
fi
fi
# Bump the file limits, before launching the daemon. These will carry over to
# launched processes.
ulimit -n $OPEN_FILE_LIMIT
if [ $? -ne 0 ]; then
log_failure_msg "set open file limit to $OPEN_FILE_LIMIT"
fi
log_success_msg "Starting the process" "$name"
if command -v startproc >/dev/null; then
startproc -u "$USER" -g "$GROUP" -p "$pidfile" -q -- "$daemon" -pidfile "$pidfile" -config "$config" -config-directory "$confdir" $TELEGRAF_OPTS
elif which start-stop-daemon > /dev/null 2>&1; then
start-stop-daemon --chuid $USER:$GROUP --start --quiet --pidfile $pidfile --exec $daemon -- -pidfile $pidfile -config $config -config-directory $confdir $TELEGRAF_OPTS >>$STDOUT 2>>$STDERR &
else
su -s /bin/sh -c "nohup $daemon -pidfile $pidfile -config $config -config-directory $confdir $TELEGRAF_OPTS >>$STDOUT 2>>$STDERR &" $USER
fi
log_success_msg "$name process was started"
;;
stop)
# Stop the daemon.
if [ -e $pidfile ]; then
pidofproc -p $pidfile $daemon > /dev/null 2>&1 && status="0" || status="$?"
if [ "$status" = 0 ]; then
if killproc -p $pidfile SIGTERM && /bin/rm -rf $pidfile; then
log_success_msg "$name process was stopped"
else
log_failure_msg "$name failed to stop service"
fi
fi
else
log_failure_msg "$name process is not running"
fi
;;
reload)
# Reload the daemon.
if [ -e $pidfile ]; then
pidofproc -p $pidfile $daemon > /dev/null 2>&1 && status="0" || status="$?"
if [ "$status" = 0 ]; then
if killproc -p $pidfile SIGHUP; then
log_success_msg "$name process was reloaded"
else
log_failure_msg "$name failed to reload service"
fi
fi
else
log_failure_msg "$name process is not running"
fi
;;
restart)
# Restart the daemon.
$0 stop && sleep 2 && $0 start
;;
status)
# Check the status of the process.
if [ -e $pidfile ]; then
if pidofproc -p $pidfile $daemon > /dev/null; then
log_success_msg "$name Process is running"
exit 0
else
log_failure_msg "$name Process is not running"
exit 1
fi
else
log_failure_msg "$name Process is not running"
exit 3
fi
;;
version)
$daemon version
;;
*)
# For invalid arguments, print the usage message.
echo "Usage: $0 {start|stop|restart|status|version}"
exit 2
;;
esac

View File

@ -5,11 +5,25 @@
service:
name: telegraf
state: restarted
enabled: yes
become: yes
enabled: true
when: not telegraf_agent_docker
become: true
ignore_errors: "{{ ansible_check_mode }}"
- name: "Restart Telegraf container"
docker_container:
name: "{{ telegraf_agent_docker_name }}"
restart: True
when: telegraf_agent_docker
ignore_errors: "{{ ansible_check_mode }}"
- name: "Restart Windows Telegraf"
win_service:
name: Telegraf
start_mode: auto
state: restarted
ignore_errors: "{{ ansible_check_mode }}"
- name: "Restart MacOS Telegraf"
command: brew services restart telegraf
ignore_errors: "{{ ansible_check_mode }}"

View File

@ -2,6 +2,7 @@
galaxy_info:
author: Werner Dijkerman
description: Installing and configuring Telegraf
role_name: telegraf
company: myCompany.Dotcom
license: MIT
min_ansible_version: 2.4
@ -21,6 +22,9 @@ galaxy_info:
- name: Windows
versions:
- all
- name: MacOS
versions:
- all
galaxy_tags:
- monitoring

View File

@ -1,14 +0,0 @@
# Molecule managed
{% if item.registry is defined %}
FROM {{ item.registry.url }}/{{ item.image }}
{% else %}
FROM {{ item.image }}
{% endif %}
RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get install -y python sudo bash ca-certificates && apt-get clean; \
elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python sudo python-devel python2-dnf bash && dnf clean all; \
elif [ $(command -v yum) ]; then yum makecache fast && 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 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; \
elif [ $(command -v xbps-install) ]; then xbps-install -Syu && xbps-install -y python sudo bash ca-certificates && xbps-remove -O; fi

View File

@ -1,46 +0,0 @@
*******
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,4 @@
---
- hosts: telegraf
roles:
- role: ../../ansible-telegraf

View File

@ -1,84 +0,0 @@
---
- name: Create
hosts: localhost
connection: local
gather_facts: false
no_log: "{{ not lookup('env', 'MOLECULE_DEBUG') | bool }}"
tasks:
- name: Log into a Docker registry
docker_login:
username: "{{ item.registry.credentials.username }}"
password: "{{ item.registry.credentials.password }}"
email: "{{ item.registry.credentials.email | default(omit) }}"
registry: "{{ item.registry.url }}"
docker_host: "{{ item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
with_items: "{{ molecule_yml.platforms }}"
when:
- item.registry is defined
- item.registry.credentials is defined
- item.registry.credentials.username is defined
- 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 }}"
docker_host: "{{ item.item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
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 }}"
docker_host: "{{ item.item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
dockerfile: "{{ item.item.dockerfile | default(item.invocation.module_args.dest) }}"
force: "{{ item.item.force | default(true) }}"
pull: "{{ item.item.pull | default(omit) }}"
with_items: "{{ platforms.results }}"
when: platforms.changed or docker_images.results | map(attribute='images') | select('equalto', []) | list | count >= 0
- name: Create docker network(s)
docker_network:
name: "{{ item }}"
docker_host: "{{ item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
state: present
with_items: "{{ molecule_yml.platforms | molecule_get_docker_networks }}"
- name: Create molecule instance(s)
docker_container:
name: "{{ item.name }}"
docker_host: "{{ item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
hostname: "{{ item.hostname | default(item.name) }}"
image: "molecule_local/{{ item.image }}"
state: started
recreate: false
log_driver: json-file
command: "{{ item.command | default('bash -c \"while true; do sleep 10000; done\"') }}"
privileged: "{{ item.privileged | default(omit) }}"
security_opts: "{{ item.security_opts | default(omit) }}"
volumes: "{{ item.volumes | default(omit) }}"
tmpfs: "{{ item.tmpfs | default(omit) }}"
capabilities: "{{ item.capabilities | default(omit) }}"
exposed_ports: "{{ item.exposed_ports | default(omit) }}"
published_ports: "{{ item.published_ports | default(omit) }}"
ulimits: "{{ item.ulimits | default(omit) }}"
networks: "{{ item.networks | default(omit) }}"
dns_servers: "{{ item.dns_servers | default(omit) }}"
register: server
with_items: "{{ molecule_yml.platforms }}"
async: 7200
poll: 0
- name: Wait for instance(s) creation to complete
async_status:
jid: "{{ item.ansible_job_id }}"
register: docker_jobs
until: docker_jobs.finished
retries: 300
with_items: "{{ server.results }}"

View File

@ -1,32 +0,0 @@
---
- name: Destroy
hosts: localhost
connection: local
gather_facts: false
no_log: "{{ not lookup('env', 'MOLECULE_DEBUG') | bool }}"
tasks:
- name: Destroy molecule instance(s)
docker_container:
name: "{{ item.name }}"
docker_host: "{{ item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
state: absent
force_kill: "{{ item.force_kill | default(true) }}"
register: server
with_items: "{{ molecule_yml.platforms }}"
async: 7200
poll: 0
- name: Wait for instance(s) deletion to complete
async_status:
jid: "{{ item.ansible_job_id }}"
register: docker_jobs
until: docker_jobs.finished
retries: 300
with_items: "{{ server.results }}"
- name: Delete docker network(s)
docker_network:
name: "{{ item }}"
docker_host: "{{ item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
state: absent
with_items: "{{ molecule_yml.platforms | molecule_get_docker_networks }}"

View File

@ -3,11 +3,8 @@ dependency:
name: galaxy
driver:
name: docker
lint:
name: yamllint
options:
config-file: molecule/default/yaml-lint.yml
role_name_check: 1
platforms:
- name: influxdb
image: influxdb:1.7-alpine
@ -18,39 +15,18 @@ platforms:
- name: telegraf
environment:
INFLUXDB_DB: telegraf
- name: telegraf-centos
image: milcom/centos7-systemd
- name: telegraf-${MY_MOLECULE_CONTAINER:-centos8}
image: ${MY_MOLECULE_IMAGE:-"geerlingguy/docker-centos8-ansible"}
command: ${MY_MOLECULE_DOCKER_COMMAND:-""}
privileged: True
groups:
- telegraf
pre_build_image: True
cgroupns_mode: host
networks:
- name: telegraf
- name: telegraf-debian
image: minimum2scp/systemd-stretch
privileged: True
command: /sbin/init
groups:
- telegraf
networks:
- name: telegraf
- name: telegraf-ubuntu
image: solita/ubuntu-systemd:bionic
privileged: True
command: /sbin/init
groups:
- telegraf
networks:
- name: telegraf
- name: telegraf-opensuse
image: wdijkerman/molecule-systemd-leap
privileged: True
command: /sbin/init
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
- /sys/fs/cgroup:/sys/fs/cgroup:rw
groups:
- telegraf
networks:
- name: telegraf
provisioner:
name: ansible
@ -58,7 +34,10 @@ provisioner:
name: ansible-lint
inventory:
group_vars:
debian:
telegraf_agent_package_method: online
all:
telegraf_agent_package_state: latest
telegraf_agent_output:
- type: influxdb
config:
@ -66,17 +45,24 @@ provisioner:
- database = "telegraf"
- precision = "s"
telegraf_plugins_extra:
percpu-usage:
plugin: cpu
logparser:
plugin: logparser
config:
- percpu = true
- totalcpu = false
- name_override = "percpu_usage"
- fielddrop = ["cpu_time*"]
- files = ["/var/log/messages"]
- from_beginning = false
filter:
name: grok
config:
- patterns = ["invoked oom-killer"]
telegraf_aggregators:
- aggregator: basicstats
config:
- drop_original = false
- stats = ['mean']
tagpass:
- cpu = ["cpu-total"]
scenario:
name: default
verifier:
name: testinfra
lint:
name: flake8

View File

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

View File

@ -9,20 +9,37 @@
when:
- ansible_os_family == 'RedHat'
- name: "Apt get update"
shell: apt-get update
when:
- ansible_os_family == 'Debian'
- name: "Installing packages on Debian"
apt:
name:
- wget
- gpg
- "{{ 'gnupg-agent' if ansible_distribution_major_version in ['8', '18', '16'] else 'gpg-agent' }}"
update_cache: True
state: present
when:
- ansible_os_family == 'Debian'
- ansible_distribution_major_version not in [9, 10]
- name: "Installing packages on Debian"
apt:
name:
- wget
- python-apt
- "{{ 'gnupg-agent' if ansible_distribution_major_version in ['8', '18', '16'] else 'gpg-agent' }}"
update_cache: True
state: present
when:
- ansible_os_family == 'Debian'
- ansible_distribution_major_version in [9, 10]
- name: "Installing packages on Suse"
zypper:
name:
- sysvinit-tools
- insserv-compat
- aaa_base
state: present
when:

View File

@ -6,15 +6,15 @@ testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('telegraf')
def test_telegraf_running_and_enabled(Service, SystemInfo):
telegraf = Service("telegraf")
if SystemInfo.distribution not in ['opensuse-leap']:
def test_telegraf_running_and_enabled(host):
telegraf = host.service("telegraf")
if host.system_info.distribution not in ['opensuse-leap']:
assert telegraf.is_enabled
assert telegraf.is_running
def test_telegraf_dot_conf(File):
telegraf = File("/etc/telegraf/telegraf.conf")
def test_telegraf_dot_conf(host):
telegraf = host.file("/etc/telegraf/telegraf.conf")
assert telegraf.user == "telegraf"
assert telegraf.group == "telegraf"
assert telegraf.mode == 0o640
@ -24,25 +24,26 @@ def test_telegraf_dot_conf(File):
assert telegraf.contains('[[outputs.influxdb]]')
assert telegraf.contains('["http://influxdb:8086"]')
assert telegraf.contains('[[inputs.net]]')
assert telegraf.contains('[[aggregators.basicstats]]')
def test_telegraf_dot_d_dir(File):
telegraf = File("/etc/telegraf/telegraf.d")
def test_telegraf_dot_d_dir(host):
telegraf = host.file("/etc/telegraf/telegraf.d")
assert telegraf.user == "root"
assert telegraf.group == "root"
assert telegraf.mode == 0o755
assert telegraf.is_directory
def test_telegraf_dot_d(File):
telegraf = File("/etc/telegraf/telegraf.d/percpu-usage.conf")
def test_telegraf_dot_d(host):
telegraf = host.file("/etc/telegraf/telegraf.d/logparser.conf")
assert telegraf.user == "telegraf"
assert telegraf.group == "telegraf"
assert telegraf.mode == 0o640
assert telegraf.contains('[[inputs.cpu]]')
assert telegraf.contains('totalcpu = false')
assert telegraf.contains('[[inputs.logparser]]')
assert telegraf.contains('from_beginning = false')
def test_telegraf_package(Package):
telegraf = Package('telegraf')
def test_telegraf_package(host):
telegraf = host.package('telegraf')
assert telegraf.is_installed

View File

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

View File

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

View File

@ -0,0 +1,70 @@
---
dependency:
name: galaxy
driver:
name: docker
role_name_check: 1
platforms:
- name: telegraf-${MY_MOLECULE_CONTAINER:-centos8}
image: ${MY_MOLECULE_IMAGE:-"geerlingguy/docker-centos8-ansible"}
command: ${MY_MOLECULE_DOCKER_COMMAND:-""}
privileged: True
pre_build_image: True
cgroupns_mode: host
networks:
- name: telegraf
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:rw
groups:
- telegraf
provisioner:
name: ansible
lint:
name: ansible-lint
inventory:
group_vars:
debian:
telegraf_agent_package_method: online
all:
telegraf_agent_package_state: latest
telegraf_agent_output:
- type: influxdb
config:
- urls = ["http://influxdb:8086"]
- database = "telegraf"
- precision = "s"
telegraf_plugins_extra:
logparser:
plugin: logparser
config:
- files = ["/var/log/messages"]
- from_beginning = false
filter:
name: grok
config:
- patterns = ["invoked oom-killer"]
telegraf_aggregators:
- aggregator: basicstats
config:
- drop_original = false
- stats = ['mean']
tagpass:
- cpu = ["cpu-total"]
scenario:
name: empty-checkmode
test_sequence:
- dependency
- cleanup
- destroy
- syntax
- create
- prepare
- check
- verify
- cleanup
- destroy
verifier:
name: testinfra

View File

@ -0,0 +1,46 @@
---
- hosts: telegraf
tasks:
- name: "Installing packages on CentOS"
yum:
name: which
state: present
when:
- ansible_os_family == 'RedHat'
- name: "Apt get update"
shell: apt-get update
when:
- ansible_os_family == 'Debian'
- name: "Installing packages on Debian"
apt:
name:
- wget
- "{{ 'gnupg-agent' if ansible_distribution_major_version in ['8', '18', '16'] else 'gpg-agent' }}"
update_cache: True
state: present
when:
- ansible_os_family == 'Debian'
- ansible_distribution_major_version not in [9, 10]
- name: "Installing packages on Debian"
apt:
name:
- wget
- python-apt
- "{{ 'gnupg-agent' if ansible_distribution_major_version in ['8', '18', '16'] else 'gpg-agent' }}"
update_cache: True
state: present
when:
- ansible_os_family == 'Debian'
- ansible_distribution_major_version in [9, 10]
- name: "Installing packages on Suse"
zypper:
name:
- aaa_base
state: present
when:
- ansible_os_family == 'Suse'

View File

@ -0,0 +1,32 @@
import os
import testinfra.utils.ansible_runner
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('telegraf')
def test_telegraf_running_and_enabled(host):
telegraf = host.service("telegraf")
if host.system_info.distribution not in ['opensuse-leap']:
assert not telegraf.is_enabled
assert not telegraf.is_running
def test_telegraf_dot_conf(host):
telegraf = host.file("/etc/telegraf/telegraf.conf")
assert not telegraf.exists
def test_telegraf_dot_d_dir(host):
telegraf = host.file("/etc/telegraf/telegraf.d")
assert not telegraf.exists
def test_telegraf_dot_d(host):
telegraf = host.file("/etc/telegraf/telegraf.d/logparser.conf")
assert not telegraf.exists
def test_telegraf_package(host):
telegraf = host.package('telegraf')
assert not telegraf.is_installed

11
requirements.txt Normal file
View File

@ -0,0 +1,11 @@
ansible==11.2.0
ansible-compat==25.1.2
ansible-core==2.18.2
docker==7.1.0
molecule==25.2.0
molecule-docker==2.1.0
molecule-plugins==23.7.0
netaddr==1.3.0
pytest==8.3.4
pytest-testinfra==10.1.1
testinfra==6.0.0

86
tasks/Archlinux.yml Normal file
View File

@ -0,0 +1,86 @@
---
- name: "Archlinux | Set name if state != latest"
set_fact:
telegraf_agent_binary: telegraf={{ telegraf_agent_version }}-{{ telegraf_agent_version_patch }}
when:
- telegraf_agent_package_state != "latest"
- name: "Archlinux | Set telegraf_agent_package_arch"
set_fact:
telegraf_agent_package_arch: "{{ ansible_architecture }}"
- name: "Archlinux | Set telegraf_agent_package_arch specific for x86_64"
set_fact:
telegraf_agent_package_arch: "amd64"
when:
- ansible_architecture == "x86_64"
- name: "Archlinux | Set telegraf_agent_package_arch specific for arm64/armv7l"
set_fact:
telegraf_agent_package_arch: "armhf"
when:
- ansible_architecture == "arm64" or ansible_architecture == "armv7l"
- name: "Archlinux | Create telegraf user"
user:
name: telegraf
system: yes
shell: /bin/false
home: /etc/telegraf
when:
- telegraf_agent_package_method == "online"
- name: "Archlinux | Create telegraf directory"
file:
path: /etc/telegraf
state: directory
when:
- telegraf_agent_package_method == "online"
- name: "Archlinux | Extract telegraf binary"
ansible.builtin.unarchive:
src: "https://dl.influxdata.com/telegraf/releases/telegraf-{{ telegraf_agent_version }}_linux_{{ telegraf_agent_package_arch }}.tar.gz"
dest: /tmp/
remote_src: yes
when:
- telegraf_agent_package_method == "online"
- name: "Archlinux | Copy telegraf binary"
ansible.builtin.copy:
src: "/tmp/telegraf-{{ telegraf_agent_version }}/usr/bin/telegraf"
remote_src: yes
dest: /usr/bin/
owner: root
group: root
mode: 0755
when:
- telegraf_agent_package_method == "online"
- name: "Archlinux | Copy telegraf unit file"
ansible.builtin.copy:
src: "/tmp/telegraf-{{ telegraf_agent_version }}/usr/lib/telegraf/scripts/telegraf.service"
remote_src: yes
dest: /etc/systemd/system/telegraf.service
owner: root
group: root
mode: 0755
when:
- telegraf_agent_package_method == "online"
- name: "Archlinux | Copy telegraf unit file"
ansible.builtin.copy:
src: "/tmp/telegraf-{{ telegraf_agent_version }}/usr/lib/telegraf/scripts/telegraf.service"
remote_src: yes
dest: /etc/systemd/system/telegraf.service
owner: root
group: root
mode: 0755
when:
- telegraf_agent_package_method == "online"
register: telegraf_service
- name: Reload systemd
ansible.builtin.systemd:
daemon_reload: yes
when: telegraf_service.changed

View File

@ -1,11 +1,27 @@
---
- name: "Debian | Set name if state == latest"
- name: "Debian | Set name if state != latest"
set_fact:
telegraf_agent_package: telegraf={{ telegraf_agent_version }}-{{ telegraf_agent_version_patch }}
when:
- telegraf_agent_package_state != "latest"
- name: "Debian | Set telegraf_agent_package_arch"
set_fact:
telegraf_agent_package_arch: "{{ ansible_architecture }}"
- name: "Debian | Set telegraf_agent_package_arch specific for x86_64"
set_fact:
telegraf_agent_package_arch: "amd64"
when:
- ansible_architecture == "x86_64"
- name: "Debian | Set telegraf_agent_package_arch specific for arm64"
set_fact:
telegraf_agent_package_arch: "armhf"
when:
- ansible_architecture == "arm64"
- name: "Debian | Ensure the system can use the HTTPS transport for APT"
stat:
path: /usr/lib/apt/methods/https
@ -15,40 +31,113 @@
apt:
name: "apt-transport-https"
state: present
register: are_telegraf_dependencies_packages_installed
until: are_telegraf_dependencies_packages_installed is succeeded
when:
- not apt_https_transport.stat.exists
become: yes
become: true
- name: "Debian | Download Telegraf apt key"
apt_key:
url: "https://repos.influxdata.com/influxdb.key"
id: 2582E0C5
state: present
become: yes
- name: "Debian | 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
- name: "Debian | Configure Telegraf apt repository"
when:
- ansible_lsb is defined
- ansible_lsb.codename is defined
- telegraf_agent_package_method == "repo"
block:
- when: (ansible_distribution == "Debian" and ansible_distribution_major_version|int < 9) or (ansible_distribution == "Ubuntu" and ansible_distribution_major_version|int < 18)
name: "Debian | Download Telegraf apt key"
apt_key:
url: "https://repos.influxdata.com/influxdata-archive.key"
id: 7df8b07e
state: present
register: are_telegraf_dependencies_keys_installed
until: are_telegraf_dependencies_keys_installed is succeeded
become: true
- when: (ansible_distribution == "Debian" and ansible_distribution_major_version|int >= 9) or (ansible_distribution == "Ubuntu" and ansible_distribution_major_version|int >= 18)
block:
- name: "Debian | Ensure the shared keyrings directory exists"
stat:
path: /usr/share/keyrings
register: usr_share_keyrings
- name: "Debian | Add Telegraf repository"
apt_repository:
repo: "deb https://repos.influxdata.com/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} stable"
filename: "telegraf"
state: present
become: yes
- name: "Debian | Create shared keyrings directory"
file:
state: directory
path: /usr/share/keyrings
owner: root
group: root
mode: 0755
when:
- not usr_share_keyrings.stat.exists
become: true
- name: "Debian | Install Telegraf apt key"
get_url:
url: https://repos.influxdata.com/influxdata-archive.key
dest: /usr/share/keyrings/influxdata-archive.asc
register: are_telegraf_dependencies_keys_installed
until: are_telegraf_dependencies_keys_installed is succeeded
become: true
- name: "Debian | Set Telegraf apt repository parameters"
set_fact:
telegraf_repository_params: "[signed-by=/usr/share/keyrings/influxdata-archive.asc]"
- name: "Debian | Add Telegraf repository"
copy:
content: "deb {{ telegraf_repository_params | default('') }} https://repos.influxdata.com/{{ ansible_distribution|lower }} stable main"
dest: /etc/apt/sources.list.d/telegraf.list
become: yes
- name: "Debian | Install Telegraf package (repo)"
apt:
name: "{{ telegraf_agent_package }}"
state: "{{ telegraf_agent_package_state }}"
update_cache: true
register: is_telegraf_package_installed
until: is_telegraf_package_installed is succeeded
notify: "Restart Telegraf"
become: true
when:
- telegraf_agent_package_method == "repo"
ignore_errors: "{{ ansible_check_mode }}"
- name: "Debian | Install Telegraf package (repo)"
apt:
name: "{{ telegraf_agent_package }}"
state: "{{ telegraf_agent_package_state }}"
update_cache: true
register: is_telegraf_package_installed
until: is_telegraf_package_installed is succeeded
notify: "Restart Telegraf"
become: true
ignore_errors: "{{ ansible_check_mode }}"
- name: "Debian | Download Telegraf package (online)"
get_url:
url: https://dl.influxdata.com/telegraf/releases/{{ telegraf_agent_package_file_deb }}
dest: "{{ telegraf_agent_package_path }}/{{ telegraf_agent_package }}"
use_proxy: "{{ true if http_proxy is defined and http_proxy else false }}"
environment:
http_proxy: "{{ http_proxy | default(None) | default(omit) }}"
https_proxy: "{{ https_proxy | default(None) | default(omit) }}"
when:
- ansible_lsb is not defined or ansible_lsb.codename is not defined
- telegraf_agent_package_method == "online"
- name: "Debian | Install telegraf package"
- name: "Debian | Install Telegraf package (online)"
apt:
name: "{{ telegraf_agent_package }}"
state: "{{ telegraf_agent_package_state }}"
force: True
deb: "{{ telegraf_agent_package_path }}/{{ telegraf_agent_package }}"
state: "present"
allow_downgrade: true
register: is_telegraf_package_installed
until: is_telegraf_package_installed is succeeded
notify: "Restart Telegraf"
become: yes
become: true
when:
- telegraf_agent_package_method == "online" or telegraf_agent_package_method == "offline"
ignore_errors: "{{ ansible_check_mode }}"
- name: "Debian | Remove repository (online/offline install)"
file:
path: "/etc/apt/sources.list.d/telegraf.list"
state: absent
become: true
when:
- telegraf_agent_package_method == "online" or telegraf_agent_package_method == "offline"

24
tasks/FreeBSD.yml Normal file
View File

@ -0,0 +1,24 @@
---
# description: FreeBSD specific installation
- name: "FreeBSD | set package name"
set_fact:
telegraf_agent_package: telegraf
- name: "FreeBSD | Install Telegraf package"
pkgng:
name: "{{ telegraf_agent_package }}"
state: "{{ telegraf_agent_package_state }}"
register: is_telegraf_package_installed
until: is_telegraf_package_installed is succeeded
notify: "Restart Telegraf"
- name: "FreeBSD | add telegraf_flags for extra plugins"
command: sysrc telegraf_flags="-quiet -config-directory=/usr/local/etc/telegraf.d"
tags:
- skip_ansible_lint
- name: "FreeBSD | add telegraf to init"
command: sysrc telegraf_enable="YES"
tags:
- skip_ansible_lint

14
tasks/MacOS.yml Normal file
View File

@ -0,0 +1,14 @@
---
# description: MacOS specific installation
- name: "MacOS | set package name"
set_fact:
telegraf_agent_package: telegraf
- name: "MacOS | Install Telegraf package"
package:
name: "{{ telegraf_agent_package }}"
state: "{{ telegraf_agent_package_state }}"
register: is_telegraf_package_installed
until: is_telegraf_package_installed is succeeded
notify: "Restart Telegraf"

View File

@ -7,16 +7,56 @@
when:
- telegraf_agent_package_state != "latest"
- name: Use RHEL 7 packages for Fedora
set_fact:
telegraf_redhat_releasever: 7
when:
- ansible_distribution == "Fedora"
- name: "RedHat | Add yum repository"
yum_repository:
name: influxdb
description: InfluxDB Repository - RHEL $releasever
baseurl: "https://repos.influxdata.com/rhel/{{ telegraf_redhat_releasever }}/$basearch/stable"
gpgcheck: yes
gpgkey: https://repos.influxdata.com/influxdb.key
baseurl: "{{ telegraf_yum_baseurl['redhat'] | default(telegraf_yum_baseurl['default']) }}"
gpgcheck: "{{ telegraf_yum_gpgcheck | default('true') }}"
gpgkey: "{{ telegraf_yum_gpgkey }}"
become: true
when:
- telegraf_agent_package_method == "repo"
- name: "RedHat | Install telegraf package"
yum:
- name: "RedHat | Download Telegraf package (online)"
get_url:
url: https://dl.influxdata.com/telegraf/releases/{{ telegraf_agent_package_file_rpm }}
dest: "{{ telegraf_agent_package_path }}"
use_proxy: "{{ true if http_proxy is defined and http_proxy else false }}"
environment:
http_proxy: "{{ http_proxy | default(None) | default(omit) }}"
https_proxy: "{{ https_proxy | default(None) | default(omit) }}"
when:
- telegraf_agent_package_method == "online"
- name: "RedHat | Install Telegraf package (repo)"
package:
name: "{{ telegraf_agent_package }}"
state: "{{ telegraf_agent_package_state }}"
register: is_telegraf_package_installed
until: is_telegraf_package_installed is succeeded
become: true
notify: "Restart Telegraf"
ignore_errors: "{{ ansible_check_mode }}"
when:
- telegraf_agent_package_method == "repo"
- name: "RedHat | Install Telegraf package (online)"
dnf:
name: "{{ telegraf_agent_package_path }}/{{ telegraf_agent_package_file_rpm }}"
disable_gpg_check: true
state: "{{ telegraf_agent_package_state }}"
register: is_telegraf_package_installed
until: is_telegraf_package_installed is succeeded
become: true
notify: "Restart Telegraf"
ignore_errors: "{{ ansible_check_mode }}"
when:
- telegraf_agent_package_method == "online"

View File

@ -1,52 +1,77 @@
---
- name: "Suse | Adding telegraf group"
- name: "Suse | Adding Telegraf group"
group:
name: telegraf
state: present
- name: "Suse | Adding telegraf user"
- name: "Suse | Adding Telegraf user"
user:
name: telegraf
group: telegraf
state: present
become: yes
become: true
- name: "Suse | Install repo dependencies"
- name: "Suse | Install repo dependencies for Python 2"
zypper:
name: ["python-libxml2", "python-xml"]
name:
- python-libxml2
- python-xml
update_cache: True
state: present
become: yes
register: are_telegraf_dependencies_packages_installed
until: are_telegraf_dependencies_packages_installed is succeeded
become: true
when: ansible_python.version.major == 2
- name: "Suse | Install basic repo file"
- name: "Suse | Install repo dependencies for Python >= 3"
zypper:
name:
- python3-libxml2-python
update_cache: True
state: present
register: are_telegraf_dependencies_packages_installed
until: are_telegraf_dependencies_packages_installed is succeeded
become: true
when: ansible_python.version.major >= 3
- name: "Suse | Add default Open Build Service repository"
zypper_repository:
repo: "http://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Factory/"
name: The Go Programming Language (openSUSE_Factory)
repo: "{{ telegraf_zypper_repos[ansible_distribution|lower] | default(telegraf_zypper_repos['default']) }}"
name: "telegraf"
state: present
runrefresh: True
auto_import_keys: True
become: yes
become: true
when: telegraf_zypper_baseurl is not defined
- name: "Suse | Add specified package repository"
zypper_repository:
repo: "{{ telegraf_zypper_baseurl }}"
name: "telegraf"
state: present
runrefresh: True
auto_import_keys: True
become: true
when: telegraf_zypper_baseurl is defined
- name: "Suse | Install Telegraf"
zypper:
name: "{{ telegraf_agent_package }}"
state: "{{ telegraf_agent_package_state }}"
become: yes
register: is_telegraf_package_installed
until: is_telegraf_package_installed is succeeded
become: true
ignore_errors: "{{ ansible_check_mode }}"
- name: "Suse | Create directories for telegraf"
file:
path: "{{ item.path }}"
owner: "{{ item.owner }}"
mode: 0755
state: directory
with_items:
- path: /etc/telegraf/telegraf.d/
owner: root
- path: /var/log/telegraf
owner: telegraf
- name: "Suse | Install init file"
copy:
src: telegraf.init
dest: /etc/init.d/telegraf
mode: 0755

View File

@ -6,11 +6,16 @@
when:
- telegraf_agent_aws_tags
- name: "Add prefix path"
set_fact:
telegraf_agent_config_path: /usr/local/etc
when:
- ansible_os_family == "FreeBSD"
- name: Retrieve all ec2 tags on the instance
ec2_tag:
amazon.aws.ec2_tag_info:
region: '{{ ansible_ec2_placement_region }}'
resource: '{{ ansible_ec2_instance_id }}'
state: list
when:
- telegraf_agent_aws_tags
register: ec2_tags
@ -22,26 +27,30 @@
owner: telegraf
group: telegraf
mode: 0640
become: yes
become: true
when:
- telegraf_agent_version is version_compare('0.10.0', '<')
notify: "Restart Telegraf"
- telegraf_agent_version is version('0.10.0', '<')
notify:
- Restart Telegraf
- Restart Telegraf container
- name: "Copy the template for versions >= 0.10.0"
template:
src: telegraf.conf.j2
dest: /etc/telegraf/telegraf.conf
dest: "{{ telegraf_agent_config_path }}/telegraf.conf"
owner: telegraf
group: telegraf
mode: 0640
become: yes
become: true
when:
- telegraf_agent_version is version_compare('0.10.0', '>=')
notify: "Restart Telegraf"
- telegraf_agent_version is version('0.10.0', '>=')
notify:
- Restart Telegraf
- Restart Telegraf container
- name: "Check if extra plugins directory exists in case of exclusive"
stat:
path: /etc/telegraf/telegraf.d
path: "{{ telegraf_agent_config_path }}/telegraf.d"
register: telegraf_directory
when:
- telegraf_plugins_extra_exclusive
@ -49,30 +58,34 @@
- name: "Delete telegraf extra plugin path"
file:
state: absent
path: "/etc/telegraf/telegraf.d/"
path: "{{ telegraf_agent_config_path }}/telegraf.d/"
when:
- telegraf_plugins_extra_exclusive
- telegraf_directory.stat.exists
become: yes
notify: "Restart Telegraf"
become: true
notify:
- Restart Telegraf
- Restart Telegraf container
- name: "Create telegraf extra plugin path"
file:
state: directory
path: "/etc/telegraf/telegraf.d/"
path: "{{ telegraf_agent_config_path }}/telegraf.d/"
owner: telegraf
group: telegraf
mode: 0755
when:
- telegraf_plugins_extra_exclusive
- telegraf_directory.stat.exists
become: yes
notify: "Restart Telegraf"
become: true
notify:
- Restart Telegraf
- Restart Telegraf container
- name: "Copy telegraf extra plugins"
template:
src: "telegraf-extra-plugin.conf.j2"
dest: "/etc/telegraf/telegraf.d/{{ item.key }}.conf"
dest: "{{ telegraf_agent_config_path }}/telegraf.d/{{ item.key }}.conf"
owner: telegraf
group: telegraf
mode: 0640
@ -83,12 +96,14 @@
- telegraf_plugins_extra is defined
- telegraf_plugins_extra is iterable
- item.value.state|default('present') != 'absent'
become: yes
notify: "Restart Telegraf"
become: true
notify:
- Restart Telegraf
- Restart Telegraf container
- name: "Remove telegraf extra plugins"
file:
path: "/etc/telegraf/telegraf.d/{{ item.key }}.conf"
path: "{{ telegraf_agent_config_path }}/telegraf.d/{{ item.key }}.conf"
state: absent
with_dict: "{{ telegraf_plugins_extra }}"
loop_control:
@ -97,8 +112,10 @@
- telegraf_plugins_extra is defined
- telegraf_plugins_extra is iterable
- item.value.state|default('present') == 'absent'
become: yes
notify: "Restart Telegraf"
become: true
notify:
- Restart Telegraf
- Restart Telegraf container
- name: "Force restart service after reread config"
meta: flush_handlers
@ -106,6 +123,67 @@
- name: "Start Telegraf (If it wasn't running)"
service:
name: telegraf
state: started
enabled: yes
become: yes
state: "{{ telegraf_enabled | ternary('started', 'stopped') }}"
enabled: "{{ telegraf_enabled }}"
become: true
when: not telegraf_agent_docker
ignore_errors: "{{ ansible_check_mode }}"
- name: Configure system for for docker plugin
block:
- name: Add telegraf user to docker group
user:
name: telegraf
groups: docker
append: true
become: true
notify:
- Restart Telegraf
when: "'docker' in telegraf_plugins_extra and not telegraf_agent_docker"
- name: Configure system for for smart plugin
block:
- name: Install smartmontools
become: true
package:
name: smartmontools
- name: Find path of smartctl
command: which smartctl
register: which_smartctl
ignore_errors: true
changed_when: false
become: true
- name: Ensure telegraf user can execute smartctl
blockinfile:
marker: "# {mark} ANSIBLE MANAGED BLOCK (Ensure telegraf user can execute smartctl)"
dest: "/etc/sudoers.d/telegraf"
block: "telegraf ALL=(root) NOPASSWD: {{ which_smartctl.stdout }}"
mode: 0400
create: true
become: true
notify:
- Restart Telegraf
when: "'smart' in telegraf_plugins_extra and not telegraf_agent_docker"
- name: Configure system for for sensors plugin
block:
- name: Debian | Install lm-sensors
package:
name: lm-sensors
become: true
notify:
- Restart Telegraf
when: ansible_os_family == "Debian"
- name: RedHat | Install lm-sensors
package:
name: lm_sensors
become: true
notify:
- Restart Telegraf
when: ansible_os_family == "RedHat"
when: "'sensors' in telegraf_plugins_extra and not telegraf_agent_docker"

128
tasks/configure_macos.yml Normal file
View File

@ -0,0 +1,128 @@
---
# description: Configure telegraf and get all relevent ec2 information
- name: Retrieve ec2 facts
ec2_metadata_facts:
when:
- telegraf_agent_aws_tags
- name: "Add prefix path"
set_fact:
telegraf_agent_config_path: /usr/local/etc
when:
- ansible_os_family in ["FreeBSD", "Darwin"]
- name: Retrieve all ec2 tags on the instance
amazon.aws.ec2_tag_info:
region: '{{ ansible_ec2_placement_region }}'
resource: '{{ ansible_ec2_instance_id }}'
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_mac_user }}"
group: "{{ telegraf_mac_group }}"
mode: 0640
become: true
when:
- telegraf_agent_version is version('0.10.0', '<')
notify:
- Restart Telegraf
- Restart Telegraf container
- name: "Copy the template for versions >= 0.10.0"
template:
src: telegraf.conf.j2
dest: "{{ telegraf_agent_config_path }}/telegraf.conf"
owner: "{{ telegraf_mac_user }}"
group: "{{ telegraf_mac_group }}"
mode: 0640
become: true
when:
- telegraf_agent_version is version('0.10.0', '>=')
notify:
- Restart MacOS Telegraf
- Restart Telegraf container
- name: "Check if extra plugins directory exists in case of exclusive"
stat:
path: "{{ telegraf_agent_config_path }}/telegraf.d"
register: telegraf_directory
when:
- telegraf_plugins_extra_exclusive
- name: "Delete telegraf extra plugin path"
file:
state: absent
path: "{{ telegraf_agent_config_path }}/telegraf.d/"
when:
- telegraf_plugins_extra_exclusive
- telegraf_directory.stat.exists
become: true
notify:
- Restart MacOS Telegraf
- Restart Telegraf container
- name: "Create telegraf extra plugin path"
file:
state: directory
path: "{{ telegraf_agent_config_path }}/telegraf.d/"
owner: "{{ telegraf_mac_user }}"
group: "{{ telegraf_mac_group }}"
mode: 0755
when:
- telegraf_plugins_extra_exclusive
- telegraf_directory.stat.exists
become: true
notify:
- Restart MacOS Telegraf
- Restart Telegraf container
- name: "Copy telegraf extra plugins"
template:
src: "telegraf-extra-plugin.conf.j2"
dest: "{{ telegraf_agent_config_path }}/telegraf.d/{{ item.key }}.conf"
owner: "{{ telegraf_mac_user }}"
group: "{{ telegraf_mac_group }}"
mode: 0640
with_dict: "{{ telegraf_plugins_extra }}"
loop_control:
label: "{{ item.key }}"
when:
- telegraf_plugins_extra is defined
- telegraf_plugins_extra is iterable
- item.value.state|default('present') != 'absent'
become: true
notify:
- Restart MacOS Telegraf
- Restart Telegraf container
- name: "Remove telegraf extra plugins"
file:
path: "{{ telegraf_agent_config_path }}/telegraf.d/{{ item.key }}.conf"
state: absent
with_dict: "{{ telegraf_plugins_extra }}"
loop_control:
label: "{{ item.key }}"
when:
- telegraf_plugins_extra is defined
- telegraf_plugins_extra is iterable
- item.value.state|default('present') == 'absent'
become: true
notify:
- Restart MacOS Telegraf
- Restart Telegraf container
- name: "Force restart service after reread config"
meta: flush_handlers
- name: "Start Telegraf (If it wasn't running)"
command: brew services start telegraf
register: brew_services_start_telegraf
changed_when: '"Successfully started `telegraf`" in brew_services_start_telegraf.stdout'
when: not telegraf_agent_docker
ignore_errors: "{{ ansible_check_mode }}"

View File

@ -20,16 +20,39 @@
when:
- not file_info.stat.exists
- name: "Windows | Unzip file"
- name: "Windows | Unzip file (newer than 1.15)"
win_unzip:
src: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}_windows_amd64.zip'
dest: "{{ telegraf_win_install_dir }}"
creates: '{{ telegraf_win_install_dir }}\telegraf\telegraf.exe'
creates: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}\telegraf.exe'
when: telegraf_agent_version is version('1.15', '>=')
- name: "Windows | Move extracted directory (newer than 1.15)"
win_copy:
src: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}\telegraf.exe'
dest: '{{ telegraf_win_install_dir }}\telegraf.exe'
remote_src: true
when: telegraf_agent_version is version('1.15', '>=')
- name: "Windows | Unzip file"
win_unzip:
src: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}_windows_amd64.zip'
dest: '{{ telegraf_win_install_dir }}'
creates: '{{ telegraf_win_install_dir }}\telegraf.exe'
delete_archive: true
when: telegraf_agent_version is version('1.15', '<')
- name: "Windows | Move extracted executable"
win_copy:
src: '{{ telegraf_win_install_dir }}\telegraf\telegraf.exe'
dest: '{{ telegraf_win_install_dir }}\telegraf.exe'
remote_src: true
when: telegraf_agent_version is version('1.15', '<')
- name: "Windows | Configure Telegraf"
win_template:
src: telegraf.conf.j2
dest: '{{ telegraf_win_install_dir }}\telegraf\telegraf.conf'
dest: '{{ telegraf_win_install_dir }}\telegraf.conf'
notify: "Restart Windows Telegraf"
- name: "Windows | Copy telegraf extra plugins"
@ -58,21 +81,40 @@
- item.value.state|default('present') == 'absent'
notify: "Restart Windows Telegraf"
- name: "Windows | Register Service"
win_command: '{{ telegraf_win_install_dir }}\telegraf\telegraf.exe {{ telegraf_win_service_args | join(" ") }}'
register: telegraf_windows_install
args:
creates: '{{ telegraf_win_install_dir }}\.installed'
- name: "Windows | Check if Telegraf service is already in place"
win_service:
name: telegraf
register: service_result
failed_when: service_result is not defined
- name: "Windows | Create done file so it won't register itself again"
win_file:
path: '{{ telegraf_win_install_dir }}\.installed'
state: touch
- debug: msg={{ service_result }}
- name: "Windows | Set service startup mode to auto and ensure it is started"
win_service:
name: Telegraf
start_mode: auto
state: stopped
when:
- telegraf_windows_install is changed
- service_result.exists
- name: "Windows | Unregister Service"
win_command: '"{{ telegraf_win_install_dir }}\telegraf.exe" --service uninstall'
register: telegraf_windows_uninstall
when:
- service_result.exists
- name: "Windows | Register Service"
win_command: '"{{ telegraf_win_install_dir }}\telegraf.exe" {{ telegraf_win_service_args | join(" ") }}'
register: telegraf_windows_install
- name: "Windows | Set service startup mode to auto and ensure it is started"
win_service:
name: Telegraf
start_mode: auto
state: started
- name: "Windows | Cleanup"
win_file:
path: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}'
state: absent
when: telegraf_agent_version is version('1.15', '>=')

59
tasks/docker.yml Normal file
View File

@ -0,0 +1,59 @@
---
- name: Adding Telegraf group
group:
name: telegraf
state: present
gid: "{{ telegraf_gid_docker }}"
- name: Adding Telegraf user
user:
name: telegraf
group: telegraf
state: present
create_home: False
home: /etc/telegraf
uid: "{{ telegraf_uid_docker }}"
system: True
become: true
- name: Create /etc/telegraf (home) directory
file:
path: /etc/telegraf
owner: telegraf
group: telegraf
mode: 0750
state: directory
become: true
- name: Create /etc/telegraf.d directory
file:
path: /etc/telegraf/telegraf.d
owner: telegraf
group: telegraf
mode: 0750
state: directory
become: true
- name: Ensure Telegraf Docker container is running
docker_container:
name: "{{ telegraf_agent_docker_name }}"
image: "telegraf:{{ telegraf_agent_docker_image_version }}"
state: started
restart_policy: "{{ telegraf_agent_docker_restart_policy }}"
command: -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d
network_mode: "{{ telegraf_agent_docker_network_mode }}"
security_opts:
- apparmor:unconfined
volumes:
- /etc/telegraf:/etc/telegraf:ro
- /:/hostfs:ro
- /etc:/hostfs/etc:ro
- /proc:/hostfs/proc:ro
- /sys:/hostfs/sys:ro
- /var/run:/var/run:ro
env:
HOST_MOUNT_PREFIX: /hostfs
HOST_ETC: /hostfs/etc
HOST_PROC: /hostfs/proc
HOST_SYS: /hostfs/sys

View File

@ -4,26 +4,49 @@
- name: "Install on RedHat"
include_tasks: "RedHat.yml"
when:
- ansible_os_family == "RedHat"
- ansible_os_family == "RedHat" and not telegraf_agent_docker
- name: "Install on Debian"
include_tasks: "Debian.yml"
when:
- ansible_os_family == "Debian"
- ansible_os_family == "Debian" and not telegraf_agent_docker
tags:
- telegraf
- packages
- name: "Install on Archlinux"
include_tasks: "Archlinux.yml"
when:
- ansible_os_family == "Archlinux" and not telegraf_agent_docker
- name: "Install on Suse"
include_tasks: "Suse.yml"
when: ansible_os_family == "Suse"
when: ansible_os_family == "Suse" and not telegraf_agent_docker
- name: "Configure telegraf"
- name: "Install on FreeBSD"
include_tasks: "FreeBSD.yml"
when:
- ansible_os_family == "FreeBSD" and not telegraf_agent_docker
- name: "Install on MacOS"
include_tasks: "MacOS.yml"
when:
- ansible_os_family == "Darwin" and not telegraf_agent_docker
- include_tasks: "docker.yml"
when: telegraf_agent_docker
- name: "Configure Telegraf"
include_tasks: "configure_linux.yml"
when:
- ansible_os_family != "Windows"
- ansible_os_family not in ['Windows', 'Darwin']
- name: "Install / Configure telegraf on Windows"
include_tasks: "configure_windows.yml"
when:
- ansible_os_family == "Windows"
- ansible_os_family == "Windows" and not telegraf_agent_docker
- name: "Install / Configure telegraf on MacOS"
include_tasks: "configure_macos.yml"
when:
- ansible_os_family == "Darwin" and not telegraf_agent_docker

View File

@ -9,7 +9,7 @@
{% 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 }}"
"{{telegraf_agent_aws_tags_prefix}}{{ key }}" = "{{ value }}"
{% endfor %}
{% endif %}
@ -27,6 +27,18 @@
{% for items in item.config %}
{{ items }}
{% endfor %}
{% if item.tagpass is defined and item.tagpass is iterable %}
[outputs.{{ item.type }}.tagpass]
{% for items in item.tagpass %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagdrop is defined and item.tagdrop is iterable %}
[outputs.{{ item.type }}.tagdrop]
{% for items in item.tagdrop %}
{{ items }}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}
@ -43,36 +55,17 @@
{% endfor %}
{% endif %}
{% if item.tagpass is defined and item.tagpass is iterable %}
[{{ item.plugin }}.tagpass]
[inputs.{{ item.plugin }}.tagpass]
{% for items in item.tagpass %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagdrop is defined and item.tagdrop is iterable %}
[{{ item.plugin }}.tagdrop]
[inputs.{{ 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

@ -16,32 +16,50 @@
{% endfor %}
{% endif %}
{% if item.value.tagpass is defined and item.value.tagpass is iterable %}
[{{ item.value.plugin | default(item.key) }}.tagpass]
[inputs.{{ item.value.plugin | default(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.value.plugin | default(item.key) }}.tagdrop]
[inputs.{{ item.value.plugin | default(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.value.plugin | default(item.key) }}.pass]
{% for items in item.value.pass %}
{% if item.value.filter is defined %}
{% if item.value.filter.name is defined %}
[inputs.{{ item.value.plugin | default(item.key) }}.{{ item.value.filter.name | default("grok") }}]
{% if item.value.filter.config is defined and item.value.filter.config is iterable %}
{% for items in item.value.filter.config %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.value.drop is defined and item.value.drop is iterable %}
[{{ item.value.plugin | default(item.key) }}.drop]
{% for items in item.value.drop %}
{{ items }}
{% endif %}
{% endif %}
{% if item.value.objects is defined and item.value.objects is iterable %}
{% for object in item.value.objects %}
[[inputs.{{ item.value.plugin | default(item.key) }}.object]]
ObjectName = {{ object.name | to_json }}
Instances = {{ object.instances | default(["*"]) | to_json }}
Counters = {{ object.counters | default(["*"]) | to_json }}
Measurement = {{ object.measurement | default("win_perf_counters") | to_json }}
IncludeTotal = {{ object.total | default(false) | string | lower }}
{% endfor %}
{% endif %}
{% if item.value.specifications is defined and item.value.specifications is iterable %}
[[{{item.value.plugin | default(item.key)}}.specifications]]
{% for items in item.value.specifications %}
{{ items }}
{% if item.value.queries is defined and item.value.queries is iterable %}
{% for query in item.value.queries %}
[[inputs.{{ item.value.plugin | default(item.key) }}.query]]
{% for item in item.value.queries[query] %}
{{ item }}
{% endfor %}
{% endfor %}
{% endif %}
{% if item.value.sub_inputs is defined and item.value.sub_inputs is iterable %}
{% for sub_input, config in item.value.sub_inputs.items() %}
[[inputs.{{ item.value.plugin | default(item.key) }}.{{ sub_input }}]]
{% for items in config %}
{{ items }}
{% endfor %}
{% endfor %}
{% endif %}

View File

@ -8,8 +8,8 @@
{% 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 }}"
{% for key, value in ec2_tags.tags.items()%}
"{{telegraf_agent_aws_tags_prefix}}{{ key }}" = "{{ value }}"
{% endfor %}
{% endif %}
@ -30,6 +30,9 @@
{% if telegraf_agent_version is version_compare('1.1', '>=') %}
{% if ansible_os_family == "Windows" %}
logfile = "{{ telegraf_win_logfile }}"
logfile_rotation_interval = "{{ telegraf_win_logfile_rotation_interval }}"
logfile_rotation_max_size = "{{ telegraf_win_logfile_rotation_max_size }}"
logfile_rotation_max_archives = {{ telegraf_win_logfile_rotation_max_archives| int }}
{% else %}
logfile = "{{ telegraf_agent_logfile }}"
{% endif %}
@ -46,6 +49,18 @@
{% for items in item.config %}
{{ items }}
{% endfor %}
{% if item.tagpass is defined and item.tagpass is iterable %}
[outputs.{{ item.type }}.tagpass]
{% for items in item.tagpass %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagdrop is defined and item.tagdrop is iterable %}
[outputs.{{ item.type }}.tagdrop]
{% for items in item.tagdrop %}
{{ items }}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}
@ -71,45 +86,27 @@
{% endfor %}
{% endif %}
{% if item.tagpass is defined and item.tagpass is iterable %}
[{{ item.plugin }}.tagpass]
[inputs.{{ item.plugin }}.tagpass]
{% for items in item.tagpass %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagdrop is defined and item.tagdrop is iterable %}
[{{ item.plugin }}.tagdrop]
[inputs.{{ 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.objects is defined and item.objects is iterable %}
{% for object in item.objects %}
[[inputs.{{ item.plugin }}.object]]
ObjectName = {{ object.name | to_json }}
Instances = {{ object.instances | default(["*"]) }}
Counters = {{ object.counters | default(["*"]) }}
Instances = {{ object.instances | default(["*"]) | to_json }}
Counters = {{ object.counters | default(["*"]) | to_json }}
Measurement = {{ object.measurement | default("win_perf_counters") | to_json }}
IncludeTotal = {{ object.total | default(false) | string | lower }}
{% 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 %}
@ -118,4 +115,58 @@
# No plugins configured, added a mem plugin so telegraf doesn't stop working.
[[inputs.mem]]
{% endif %}
{% endif %}
{% endif %}
###############################################################################
# PROCESSORS #
###############################################################################
{% if telegraf_processors is defined and telegraf_processors is iterable %}
{% for item in telegraf_processors %}
[[processors.{{ item.processor }}]]
{% 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 %}
[processors.{{ item.processor }}.tagpass]
{% for items in item.tagpass %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagdrop is defined and item.tagdrop is iterable %}
[processors.{{ item.processor }}.tagdrop]
{% for items in item.tagdrop %}
{{ items }}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}
###############################################################################
# AGGREGATORS #
###############################################################################
{% if telegraf_aggregators is defined and telegraf_aggregators is iterable %}
{% for item in telegraf_aggregators %}
[[aggregators.{{ item.aggregator }}]]
{% 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 %}
[aggregators.{{ item.aggregator }}.tagpass]
{% for items in item.tagpass %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagdrop is defined and item.tagdrop is iterable %}
[aggregators.{{ item.aggregator }}.tagdrop]
{% for items in item.tagdrop %}
{{ items }}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}