mirror of
https://github.com/dj-wasabi/ansible-telegraf.git
synced 2025-07-17 08:46:37 +00:00
Compare commits
51 Commits
Author | SHA1 | Date | |
---|---|---|---|
39bc504fd5 | |||
171ecb0434 | |||
06117f38a1 | |||
d84931411e | |||
d5ab4b07a8 | |||
5c160d6bbe | |||
d36c400cd3 | |||
cec761a336 | |||
da55c4a711 | |||
ccdb9bd98e | |||
94774fbc8d | |||
73c00ab7b6 | |||
f241fd34d0 | |||
4064c8b040 | |||
fdcff0b195 | |||
6b6aa755f6 | |||
ca76832c24 | |||
6f6fdf7f5e | |||
f915bc0bd9 | |||
5066c5c7f9 | |||
adb678a9e5 | |||
b8e8710ccf | |||
e4728f4a6a | |||
8ac7c14045 | |||
8c665829e6 | |||
68da943438 | |||
5fad4a7a64 | |||
5eeb4d6409 | |||
83fda666a8 | |||
9a548d825d | |||
6d3d9741f0 | |||
df4af3eeef | |||
6432640e89 | |||
4fd39fe753 | |||
e59d785c7e | |||
4bef71819d | |||
e13c62d918 | |||
f329d9e207 | |||
554434c7ad | |||
a89b6aff93 | |||
fd18c08145 | |||
3596c7b95e | |||
8e4b34d4bd | |||
632fe13972 | |||
4b7d9713e3 | |||
968b005f3a | |||
28cd5b8f6e | |||
eb55757a01 | |||
1c15756019 | |||
9a1c543906 | |||
805071d0d9 |
33
.github/workflows/telegraf.yml
vendored
33
.github/workflows/telegraf.yml
vendored
@ -22,40 +22,49 @@ on:
|
|||||||
- '.github/workflows/telegraf.yml'
|
- '.github/workflows/telegraf.yml'
|
||||||
jobs:
|
jobs:
|
||||||
molecule:
|
molecule:
|
||||||
runs-on: ubuntu-18.04
|
runs-on: ubuntu-22.04
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
molecule_distro:
|
molecule_distro:
|
||||||
- container: centos8
|
- container: rocky8
|
||||||
image: geerlingguy/docker-centos8-ansible:latest
|
image: geerlingguy/docker-rockylinux8-ansible
|
||||||
- container: centos7
|
- container: rocky9
|
||||||
image: geerlingguy/docker-centos7-ansible:latest
|
image: geerlingguy/docker-rockylinux9-ansible
|
||||||
|
- container: ubuntu2204
|
||||||
|
image: geerlingguy/docker-ubuntu2204-ansible:latest
|
||||||
- container: ubuntu2004
|
- container: ubuntu2004
|
||||||
image: geerlingguy/docker-ubuntu2004-ansible:latest
|
image: geerlingguy/docker-ubuntu2004-ansible:latest
|
||||||
- container: ubuntu1804
|
- container: ubuntu1804
|
||||||
image: geerlingguy/docker-ubuntu1804-ansible:latest
|
image: geerlingguy/docker-ubuntu1804-ansible:latest
|
||||||
- container: ubuntu1604
|
|
||||||
image: geerlingguy/docker-ubuntu1604-ansible:latest
|
|
||||||
- container: debian9
|
- container: debian9
|
||||||
image: geerlingguy/docker-debian9-ansible:latest
|
image: geerlingguy/docker-debian9-ansible:latest
|
||||||
- container: debian8
|
- container: debian10
|
||||||
image: geerlingguy/docker-debian8-ansible:latest
|
image: geerlingguy/docker-debian10-ansible:latest
|
||||||
|
- container: debian11
|
||||||
|
image: geerlingguy/docker-debian11-ansible:latest
|
||||||
steps:
|
steps:
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
- name: Set up Python 3.7
|
- name: Set up Python 3.9
|
||||||
uses: actions/setup-python@v1
|
uses: actions/setup-python@v1
|
||||||
with:
|
with:
|
||||||
python-version: 3.7
|
python-version: 3.9
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
python -m pip install --upgrade pip
|
python -m pip install --upgrade pip
|
||||||
curl -so requirements.txt 'https://raw.githubusercontent.com/dj-wasabi/dj-wasabi-release/main/requirements.txt'
|
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
|
|
||||||
|
- name: Run role tests on empty systems in check-mode
|
||||||
|
run: >-
|
||||||
|
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 }}
|
||||||
|
molecule test -s empty-checkmode
|
||||||
|
|
||||||
- name: Run role tests
|
- name: Run role tests
|
||||||
run: >-
|
run: >-
|
||||||
MY_MOLECULE_CONTAINER=${{ matrix.molecule_distro.container }}
|
MY_MOLECULE_CONTAINER=${{ matrix.molecule_distro.container }}
|
||||||
|
68
CHANGELOG.md
68
CHANGELOG.md
@ -2,7 +2,71 @@
|
|||||||
|
|
||||||
## [Unreleased](https://github.com/dj-wasabi/ansible-telegraf/tree/HEAD)
|
## [Unreleased](https://github.com/dj-wasabi/ansible-telegraf/tree/HEAD)
|
||||||
|
|
||||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.13.1...HEAD)
|
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.14.0...HEAD)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Fix check-mode failures [\#168](https://github.com/dj-wasabi/ansible-telegraf/pull/168) ([pieterlexis-tomtom](https://github.com/pieterlexis-tomtom))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- 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))
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Failure due to apt-key when run against newer Debian/Ubuntu releases [\#169](https://github.com/dj-wasabi/ansible-telegraf/issues/169)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- 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) ([ThorstenHeck](https://github.com/ThorstenHeck))
|
||||||
|
- 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.14.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.14.0) (2023-01-30)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.13.3...0.14.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- 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))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- 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:**
|
**Implemented enhancements:**
|
||||||
|
|
||||||
@ -33,6 +97,7 @@
|
|||||||
- 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))
|
- 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))
|
- 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 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)
|
## [0.13.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.13.0) (2020-10-16)
|
||||||
|
|
||||||
@ -54,7 +119,6 @@
|
|||||||
|
|
||||||
**Merged pull requests:**
|
**Merged pull requests:**
|
||||||
|
|
||||||
- Using command instead of shell module [\#134](https://github.com/dj-wasabi/ansible-telegraf/pull/134) ([dj-wasabi](https://github.com/dj-wasabi))
|
|
||||||
- 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))
|
- 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))
|
- 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))
|
- Going to Github Actions [\#130](https://github.com/dj-wasabi/ansible-telegraf/pull/130) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||||
|
13
CONTRIBUTORS
13
CONTRIBUTORS
@ -3,31 +3,40 @@
|
|||||||
Anthony ARNAUD
|
Anthony ARNAUD
|
||||||
Carl Bäckström
|
Carl Bäckström
|
||||||
DEvil0000
|
DEvil0000
|
||||||
|
DJΞRFY
|
||||||
Daniel Werdermann
|
Daniel Werdermann
|
||||||
Diego Nava
|
Diego Nava
|
||||||
Emerson Knapp
|
Emerson Knapp
|
||||||
Farshad Nematdoust
|
Farshad Nematdoust
|
||||||
|
Greg
|
||||||
|
Harald Kraemer
|
||||||
Heckel, Robert J
|
Heckel, Robert J
|
||||||
Ilkka Tengvall
|
Ilkka Tengvall
|
||||||
Ismael
|
Ismael
|
||||||
Jack Ivy
|
Jack Ivy
|
||||||
|
Jeff Mahoney
|
||||||
Jeroen Geusebroek
|
Jeroen Geusebroek
|
||||||
|
Klett IT
|
||||||
Kyle
|
Kyle
|
||||||
Laurent Hoss
|
Laurent Hoss
|
||||||
Lex Rivera
|
Lex Rivera
|
||||||
Marcin Wito
|
Marcin Wito
|
||||||
Markus Langer
|
Markus Langer
|
||||||
Matt
|
Matt
|
||||||
|
Max Nasonov
|
||||||
Miroslav Prasil
|
Miroslav Prasil
|
||||||
NotDead
|
NotDead
|
||||||
Olivier Boukili
|
Olivier Boukili
|
||||||
Pascal
|
Pascal
|
||||||
Pavel Savchenko
|
Pavel Savchenko
|
||||||
|
PeterSzegedi
|
||||||
|
Pieter Lexis (TomTom)
|
||||||
Puneeth Nanjundaswamy
|
Puneeth Nanjundaswamy
|
||||||
Rick Box
|
Rick Box
|
||||||
Rohit Gohri
|
Rohit Gohri
|
||||||
Romain BUREAU
|
Romain BUREAU
|
||||||
Ryan Conway
|
Ryan Conway
|
||||||
|
Simo Tuomisto
|
||||||
Slawomir Skowron
|
Slawomir Skowron
|
||||||
Steve Durrheimer
|
Steve Durrheimer
|
||||||
Steven Wirges
|
Steven Wirges
|
||||||
@ -35,7 +44,11 @@
|
|||||||
Thomas Szymanski
|
Thomas Szymanski
|
||||||
Troy Jendra
|
Troy Jendra
|
||||||
Werner Dijkerman
|
Werner Dijkerman
|
||||||
|
Werner Dijkerman [GH bot]
|
||||||
aroglian
|
aroglian
|
||||||
gaelL
|
gaelL
|
||||||
|
kingphil
|
||||||
|
maxwondercorn
|
||||||
or
|
or
|
||||||
|
treanorjp
|
||||||
zend0
|
zend0
|
||||||
|
@ -233,6 +233,10 @@ _Supporting Windows is an best effort (I don't have the possibility to either te
|
|||||||
* `telegraf_win_logfile`: The location to the logfile of Telegraf.
|
* `telegraf_win_logfile`: The location to the logfile of Telegraf.
|
||||||
* `telegraf_win_include`: The directory that will contain all plugin configuration.
|
* `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
|
## MacOS specific Variables
|
||||||
|
|
||||||
**NOTE**
|
**NOTE**
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
telegraf_enabled: True
|
telegraf_enabled: True
|
||||||
# defaults file for ansible-telegraf
|
# defaults file for ansible-telegraf
|
||||||
|
|
||||||
telegraf_agent_version: 1.10.0
|
telegraf_agent_version: 1.18.2
|
||||||
telegraf_agent_version_patch: 1
|
telegraf_agent_version_patch: 1
|
||||||
telegraf_agent_package: telegraf
|
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_deb: telegraf_{{ telegraf_agent_version }}-{{ telegraf_agent_version_patch }}_{{ telegraf_agent_package_arch }}.deb
|
||||||
@ -19,6 +19,7 @@ telegraf_agent_flush_jitter: 0
|
|||||||
telegraf_agent_aws_tags: False
|
telegraf_agent_aws_tags: False
|
||||||
telegraf_agent_aws_tags_prefix: ""
|
telegraf_agent_aws_tags_prefix: ""
|
||||||
telegraf_agent_config_path: /etc/telegraf
|
telegraf_agent_config_path: /etc/telegraf
|
||||||
|
telegraf_win_logfile_rotation_max_archives: 3
|
||||||
|
|
||||||
# Docker specific settings
|
# Docker specific settings
|
||||||
telegraf_uid_docker: 998
|
telegraf_uid_docker: 998
|
||||||
@ -54,7 +55,7 @@ telegraf_plugins_default:
|
|||||||
config:
|
config:
|
||||||
- percpu = true
|
- percpu = true
|
||||||
- plugin: disk
|
- plugin: disk
|
||||||
- plugin: io
|
- plugin: diskio
|
||||||
- plugin: mem
|
- plugin: mem
|
||||||
- plugin: net
|
- plugin: net
|
||||||
- plugin: system
|
- plugin: system
|
||||||
@ -75,15 +76,21 @@ telegraf_yum_baseurl:
|
|||||||
centos: "https://repos.influxdata.com/rhel/{{ telegraf_redhat_releasever }}/$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"
|
default: "https://repos.influxdata.com/{{ ansible_distribution|lower }}/{{ telegraf_redhat_releasever }}/$basearch/stable"
|
||||||
redhat: "https://repos.influxdata.com/rhel/{{ telegraf_redhat_releasever }}/$basearch/stable"
|
redhat: "https://repos.influxdata.com/rhel/{{ telegraf_redhat_releasever }}/$basearch/stable"
|
||||||
telegraf_yum_gpgkey: "https://repos.influxdata.com/influxdb.key"
|
rocky: "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_install_dir: 'C:\Telegraf'
|
||||||
telegraf_win_logfile: 'C:\\Telegraf\\telegraf.log'
|
telegraf_win_logfile: 'C:\\Telegraf\\telegraf.log'
|
||||||
telegraf_win_include: 'C:\Telegraf\telegraf_agent.d'
|
telegraf_win_include: 'C:\Telegraf\telegraf_agent.d'
|
||||||
telegraf_win_service_args:
|
telegraf_win_service_args:
|
||||||
- -service install
|
- -service install
|
||||||
- -config {{ telegraf_win_install_dir }}\telegraf\telegraf.conf
|
- '-config "{{ telegraf_win_install_dir }}\telegraf.conf"'
|
||||||
- --config-directory {{ telegraf_win_include }}
|
- '--config-directory "{{ telegraf_win_include }}"'
|
||||||
|
|
||||||
telegraf_mac_user: user
|
telegraf_mac_user: user
|
||||||
telegraf_mac_group: admin
|
telegraf_mac_group: admin
|
||||||
|
@ -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
|
|
@ -5,21 +5,25 @@
|
|||||||
service:
|
service:
|
||||||
name: telegraf
|
name: telegraf
|
||||||
state: restarted
|
state: restarted
|
||||||
enabled: yes
|
enabled: true
|
||||||
when: not telegraf_agent_docker
|
when: not telegraf_agent_docker
|
||||||
become: yes
|
become: true
|
||||||
|
ignore_errors: "{{ ansible_check_mode }}"
|
||||||
|
|
||||||
- name: "Restart Telegraf container"
|
- name: "Restart Telegraf container"
|
||||||
docker_container:
|
docker_container:
|
||||||
name: "{{ telegraf_agent_docker_name }}"
|
name: "{{ telegraf_agent_docker_name }}"
|
||||||
restart: True
|
restart: True
|
||||||
when: telegraf_agent_docker
|
when: telegraf_agent_docker
|
||||||
|
ignore_errors: "{{ ansible_check_mode }}"
|
||||||
|
|
||||||
- name: "Restart Windows Telegraf"
|
- name: "Restart Windows Telegraf"
|
||||||
win_service:
|
win_service:
|
||||||
name: Telegraf
|
name: Telegraf
|
||||||
start_mode: auto
|
start_mode: auto
|
||||||
state: restarted
|
state: restarted
|
||||||
|
ignore_errors: "{{ ansible_check_mode }}"
|
||||||
|
|
||||||
- name: "Restart MacOS Telegraf"
|
- name: "Restart MacOS Telegraf"
|
||||||
command: brew services restart telegraf
|
command: brew services restart telegraf
|
||||||
|
ignore_errors: "{{ ansible_check_mode }}"
|
||||||
|
@ -4,6 +4,7 @@ dependency:
|
|||||||
driver:
|
driver:
|
||||||
name: docker
|
name: docker
|
||||||
|
|
||||||
|
role_name_check: 1
|
||||||
platforms:
|
platforms:
|
||||||
- name: influxdb
|
- name: influxdb
|
||||||
image: influxdb:1.7-alpine
|
image: influxdb:1.7-alpine
|
||||||
@ -19,10 +20,11 @@ platforms:
|
|||||||
command: ${MY_MOLECULE_DOCKER_COMMAND:-""}
|
command: ${MY_MOLECULE_DOCKER_COMMAND:-""}
|
||||||
privileged: True
|
privileged: True
|
||||||
pre_build_image: True
|
pre_build_image: True
|
||||||
|
cgroupns_mode: host
|
||||||
networks:
|
networks:
|
||||||
- name: telegraf
|
- name: telegraf
|
||||||
volumes:
|
volumes:
|
||||||
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
- /sys/fs/cgroup:/sys/fs/cgroup:rw
|
||||||
groups:
|
groups:
|
||||||
- telegraf
|
- telegraf
|
||||||
|
|
||||||
@ -52,10 +54,15 @@ provisioner:
|
|||||||
name: grok
|
name: grok
|
||||||
config:
|
config:
|
||||||
- patterns = ["invoked oom-killer"]
|
- patterns = ["invoked oom-killer"]
|
||||||
|
telegraf_aggregators:
|
||||||
|
- aggregator: basicstats
|
||||||
|
config:
|
||||||
|
- drop_original = false
|
||||||
|
- stats = ['mean']
|
||||||
|
tagpass:
|
||||||
|
- cpu = ["cpu-total"]
|
||||||
|
|
||||||
scenario:
|
scenario:
|
||||||
name: default
|
name: default
|
||||||
verifier:
|
verifier:
|
||||||
name: testinfra
|
name: testinfra
|
||||||
lint:
|
|
||||||
name: flake8
|
|
||||||
|
@ -10,10 +10,21 @@
|
|||||||
- ansible_os_family == 'RedHat'
|
- ansible_os_family == 'RedHat'
|
||||||
|
|
||||||
- name: "Apt get update"
|
- name: "Apt get update"
|
||||||
shell: apt-get update && apt-get install -y python-apt
|
shell: apt-get update
|
||||||
when:
|
when:
|
||||||
- ansible_os_family == 'Debian'
|
- 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"
|
- name: "Installing packages on Debian"
|
||||||
apt:
|
apt:
|
||||||
name:
|
name:
|
||||||
@ -24,12 +35,11 @@
|
|||||||
state: present
|
state: present
|
||||||
when:
|
when:
|
||||||
- ansible_os_family == 'Debian'
|
- ansible_os_family == 'Debian'
|
||||||
|
- ansible_distribution_major_version in [9, 10]
|
||||||
|
|
||||||
- name: "Installing packages on Suse"
|
- name: "Installing packages on Suse"
|
||||||
zypper:
|
zypper:
|
||||||
name:
|
name:
|
||||||
- sysvinit-tools
|
|
||||||
- insserv-compat
|
|
||||||
- aaa_base
|
- aaa_base
|
||||||
state: present
|
state: present
|
||||||
when:
|
when:
|
||||||
|
@ -24,6 +24,7 @@ def test_telegraf_dot_conf(host):
|
|||||||
assert telegraf.contains('[[outputs.influxdb]]')
|
assert telegraf.contains('[[outputs.influxdb]]')
|
||||||
assert telegraf.contains('["http://influxdb:8086"]')
|
assert telegraf.contains('["http://influxdb:8086"]')
|
||||||
assert telegraf.contains('[[inputs.net]]')
|
assert telegraf.contains('[[inputs.net]]')
|
||||||
|
assert telegraf.contains('[[aggregators.basicstats]]')
|
||||||
|
|
||||||
|
|
||||||
def test_telegraf_dot_d_dir(host):
|
def test_telegraf_dot_d_dir(host):
|
||||||
|
4
molecule/empty-checkmode/converge.yml
Normal file
4
molecule/empty-checkmode/converge.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
- hosts: telegraf
|
||||||
|
roles:
|
||||||
|
- role: ansible-telegraf
|
70
molecule/empty-checkmode/molecule.yml
Normal file
70
molecule/empty-checkmode/molecule.yml
Normal 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
|
46
molecule/empty-checkmode/prepare.yml
Normal file
46
molecule/empty-checkmode/prepare.yml
Normal 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'
|
32
molecule/empty-checkmode/tests/test_default.py
Normal file
32
molecule/empty-checkmode/tests/test_default.py
Normal 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
|
10
requirements.txt
Normal file
10
requirements.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
ansible==8.5.0
|
||||||
|
ansible-compat==4.1.7
|
||||||
|
ansible-core==2.15.9
|
||||||
|
docker==6.1.3
|
||||||
|
molecule==6.0.1
|
||||||
|
molecule-docker==2.1.0
|
||||||
|
netaddr==0.8.0
|
||||||
|
pytest==7.4.2
|
||||||
|
pytest-testinfra==9.0.0
|
||||||
|
testinfra==6.0.0
|
103
tasks/Debian.yml
103
tasks/Debian.yml
@ -35,39 +35,80 @@
|
|||||||
until: are_telegraf_dependencies_packages_installed is succeeded
|
until: are_telegraf_dependencies_packages_installed is succeeded
|
||||||
when:
|
when:
|
||||||
- not apt_https_transport.stat.exists
|
- not apt_https_transport.stat.exists
|
||||||
become: yes
|
become: true
|
||||||
|
|
||||||
- name: "Debian | Download Telegraf apt key"
|
- name: "Debian | Configure Telegraf apt repository"
|
||||||
|
when:
|
||||||
|
- 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:
|
apt_key:
|
||||||
url: "https://repos.influxdata.com/influxdb.key"
|
url: "https://repos.influxdata.com/influxdata-archive.key"
|
||||||
id: 2582E0C5
|
id: 7df8b07e
|
||||||
state: present
|
state: present
|
||||||
register: are_telegraf_dependencies_keys_installed
|
register: are_telegraf_dependencies_keys_installed
|
||||||
until: are_telegraf_dependencies_keys_installed is succeeded
|
until: are_telegraf_dependencies_keys_installed is succeeded
|
||||||
become: yes
|
become: true
|
||||||
when:
|
- when: (ansible_distribution == "Debian" and ansible_distribution_major_version|int >= 9) or (ansible_distribution == "Ubuntu" and ansible_distribution_major_version|int >= 18)
|
||||||
- telegraf_agent_package_method == "repo"
|
block:
|
||||||
|
- name: "Debian | Ensure the shared keyrings directory exists"
|
||||||
|
stat:
|
||||||
|
path: /usr/share/keyrings
|
||||||
|
register: usr_share_keyrings
|
||||||
|
|
||||||
- name: "Debian | Add Telegraf repository (using LSB)"
|
- name: "Debian | Create shared keyrings directory"
|
||||||
apt_repository:
|
file:
|
||||||
repo: "deb https://repos.influxdata.com/{{ ansible_distribution|lower }} {{ ansible_lsb.codename }} stable"
|
state: directory
|
||||||
filename: "telegraf"
|
path: /usr/share/keyrings
|
||||||
state: present
|
owner: root
|
||||||
become: yes
|
group: root
|
||||||
|
mode: 0755
|
||||||
when:
|
when:
|
||||||
- telegraf_agent_package_method == "repo"
|
- not usr_share_keyrings.stat.exists
|
||||||
- ansible_lsb is defined
|
become: true
|
||||||
- ansible_lsb.codename is defined
|
|
||||||
|
|
||||||
- name: "Debian | Add Telegraf repository"
|
- name: "Debian | Install Telegraf apt key"
|
||||||
apt_repository:
|
get_url:
|
||||||
repo: "deb https://repos.influxdata.com/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} stable"
|
url: https://repos.influxdata.com/influxdata-archive.key
|
||||||
filename: "telegraf"
|
dest: /usr/share/keyrings/influxdata-archive.asc
|
||||||
state: present
|
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
|
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:
|
when:
|
||||||
- telegraf_agent_package_method == "repo"
|
- telegraf_agent_package_method == "repo"
|
||||||
- ansible_lsb is not defined or ansible_lsb.codename is not defined
|
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)"
|
- name: "Debian | Download Telegraf package (online)"
|
||||||
get_url:
|
get_url:
|
||||||
@ -80,33 +121,23 @@
|
|||||||
when:
|
when:
|
||||||
- telegraf_agent_package_method == "online"
|
- telegraf_agent_package_method == "online"
|
||||||
|
|
||||||
- name: "Debian | Install Telegraf package (repo)"
|
|
||||||
apt:
|
|
||||||
name: "{{ telegraf_agent_package }}"
|
|
||||||
state: "{{ telegraf_agent_package_state }}"
|
|
||||||
update_cache: yes
|
|
||||||
register: is_telegraf_package_installed
|
|
||||||
until: is_telegraf_package_installed is succeeded
|
|
||||||
notify: "Restart Telegraf"
|
|
||||||
become: yes
|
|
||||||
when:
|
|
||||||
- telegraf_agent_package_method == "repo"
|
|
||||||
|
|
||||||
- name: "Debian | Install Telegraf package (online)"
|
- name: "Debian | Install Telegraf package (online)"
|
||||||
apt:
|
apt:
|
||||||
deb: "{{ telegraf_agent_package_path }}/{{ telegraf_agent_package }}"
|
deb: "{{ telegraf_agent_package_path }}/{{ telegraf_agent_package }}"
|
||||||
state: "present"
|
state: "present"
|
||||||
|
allow_downgrade: true
|
||||||
register: is_telegraf_package_installed
|
register: is_telegraf_package_installed
|
||||||
until: is_telegraf_package_installed is succeeded
|
until: is_telegraf_package_installed is succeeded
|
||||||
notify: "Restart Telegraf"
|
notify: "Restart Telegraf"
|
||||||
become: yes
|
become: true
|
||||||
when:
|
when:
|
||||||
- telegraf_agent_package_method == "online" or telegraf_agent_package_method == "offline"
|
- telegraf_agent_package_method == "online" or telegraf_agent_package_method == "offline"
|
||||||
|
ignore_errors: "{{ ansible_check_mode }}"
|
||||||
|
|
||||||
- name: "Debian | Remove repository (online/offline install)"
|
- name: "Debian | Remove repository (online/offline install)"
|
||||||
file:
|
file:
|
||||||
path: "/etc/apt/sources.list.d/telegraf.list"
|
path: "/etc/apt/sources.list.d/telegraf.list"
|
||||||
state: absent
|
state: absent
|
||||||
become: yes
|
become: true
|
||||||
when:
|
when:
|
||||||
- telegraf_agent_package_method == "online" or telegraf_agent_package_method == "offline"
|
- telegraf_agent_package_method == "online" or telegraf_agent_package_method == "offline"
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
baseurl: "{{ telegraf_yum_baseurl[ansible_distribution|lower] | default(telegraf_yum_baseurl['default']) }}"
|
baseurl: "{{ telegraf_yum_baseurl[ansible_distribution|lower] | default(telegraf_yum_baseurl['default']) }}"
|
||||||
gpgcheck: "{{ telegraf_yum_gpgcheck | default('true') }}"
|
gpgcheck: "{{ telegraf_yum_gpgcheck | default('true') }}"
|
||||||
gpgkey: "{{ telegraf_yum_gpgkey }}"
|
gpgkey: "{{ telegraf_yum_gpgkey }}"
|
||||||
become: yes
|
become: true
|
||||||
when:
|
when:
|
||||||
- telegraf_agent_package_method == "repo"
|
- telegraf_agent_package_method == "repo"
|
||||||
|
|
||||||
@ -41,5 +41,6 @@
|
|||||||
state: "{{ telegraf_agent_package_state }}"
|
state: "{{ telegraf_agent_package_state }}"
|
||||||
register: is_telegraf_package_installed
|
register: is_telegraf_package_installed
|
||||||
until: is_telegraf_package_installed is succeeded
|
until: is_telegraf_package_installed is succeeded
|
||||||
become: yes
|
become: true
|
||||||
notify: "Restart Telegraf"
|
notify: "Restart Telegraf"
|
||||||
|
ignore_errors: "{{ ansible_check_mode }}"
|
||||||
|
@ -10,25 +10,50 @@
|
|||||||
name: telegraf
|
name: telegraf
|
||||||
group: telegraf
|
group: telegraf
|
||||||
state: present
|
state: present
|
||||||
become: yes
|
become: true
|
||||||
|
|
||||||
- name: "Suse | Install repo dependencies"
|
- name: "Suse | Install repo dependencies for Python 2"
|
||||||
zypper:
|
zypper:
|
||||||
name: ["python-libxml2", "python-xml"]
|
name:
|
||||||
|
- python-libxml2
|
||||||
|
- python-xml
|
||||||
update_cache: True
|
update_cache: True
|
||||||
state: present
|
state: present
|
||||||
register: are_telegraf_dependencies_packages_installed
|
register: are_telegraf_dependencies_packages_installed
|
||||||
until: are_telegraf_dependencies_packages_installed is succeeded
|
until: are_telegraf_dependencies_packages_installed is succeeded
|
||||||
become: yes
|
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:
|
zypper_repository:
|
||||||
repo: "http://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Factory/"
|
repo: "{{ telegraf_zypper_repos[ansible_distribution|lower] | default(telegraf_zypper_repos['default']) }}"
|
||||||
name: The Go Programming Language (openSUSE_Factory)
|
name: "telegraf"
|
||||||
state: present
|
state: present
|
||||||
runrefresh: True
|
runrefresh: True
|
||||||
auto_import_keys: 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"
|
- name: "Suse | Install Telegraf"
|
||||||
zypper:
|
zypper:
|
||||||
@ -36,7 +61,8 @@
|
|||||||
state: "{{ telegraf_agent_package_state }}"
|
state: "{{ telegraf_agent_package_state }}"
|
||||||
register: is_telegraf_package_installed
|
register: is_telegraf_package_installed
|
||||||
until: is_telegraf_package_installed is succeeded
|
until: is_telegraf_package_installed is succeeded
|
||||||
become: yes
|
become: true
|
||||||
|
ignore_errors: "{{ ansible_check_mode }}"
|
||||||
|
|
||||||
- name: "Suse | Create directories for telegraf"
|
- name: "Suse | Create directories for telegraf"
|
||||||
file:
|
file:
|
||||||
@ -49,9 +75,3 @@
|
|||||||
owner: root
|
owner: root
|
||||||
- path: /var/log/telegraf
|
- path: /var/log/telegraf
|
||||||
owner: telegraf
|
owner: telegraf
|
||||||
|
|
||||||
- name: "Suse | Install init file"
|
|
||||||
copy:
|
|
||||||
src: telegraf.init
|
|
||||||
dest: /etc/init.d/telegraf
|
|
||||||
mode: 0755
|
|
||||||
|
@ -13,10 +13,9 @@
|
|||||||
- ansible_os_family == "FreeBSD"
|
- ansible_os_family == "FreeBSD"
|
||||||
|
|
||||||
- name: Retrieve all ec2 tags on the instance
|
- name: Retrieve all ec2 tags on the instance
|
||||||
ec2_tag:
|
amazon.aws.ec2_tag_info:
|
||||||
region: '{{ ansible_ec2_placement_region }}'
|
region: '{{ ansible_ec2_placement_region }}'
|
||||||
resource: '{{ ansible_ec2_instance_id }}'
|
resource: '{{ ansible_ec2_instance_id }}'
|
||||||
state: list
|
|
||||||
when:
|
when:
|
||||||
- telegraf_agent_aws_tags
|
- telegraf_agent_aws_tags
|
||||||
register: ec2_tags
|
register: ec2_tags
|
||||||
@ -28,7 +27,7 @@
|
|||||||
owner: telegraf
|
owner: telegraf
|
||||||
group: telegraf
|
group: telegraf
|
||||||
mode: 0640
|
mode: 0640
|
||||||
become: yes
|
become: true
|
||||||
when:
|
when:
|
||||||
- telegraf_agent_version is version('0.10.0', '<')
|
- telegraf_agent_version is version('0.10.0', '<')
|
||||||
notify:
|
notify:
|
||||||
@ -42,7 +41,7 @@
|
|||||||
owner: telegraf
|
owner: telegraf
|
||||||
group: telegraf
|
group: telegraf
|
||||||
mode: 0640
|
mode: 0640
|
||||||
become: yes
|
become: true
|
||||||
when:
|
when:
|
||||||
- telegraf_agent_version is version('0.10.0', '>=')
|
- telegraf_agent_version is version('0.10.0', '>=')
|
||||||
notify:
|
notify:
|
||||||
@ -63,7 +62,7 @@
|
|||||||
when:
|
when:
|
||||||
- telegraf_plugins_extra_exclusive
|
- telegraf_plugins_extra_exclusive
|
||||||
- telegraf_directory.stat.exists
|
- telegraf_directory.stat.exists
|
||||||
become: yes
|
become: true
|
||||||
notify:
|
notify:
|
||||||
- Restart Telegraf
|
- Restart Telegraf
|
||||||
- Restart Telegraf container
|
- Restart Telegraf container
|
||||||
@ -78,7 +77,7 @@
|
|||||||
when:
|
when:
|
||||||
- telegraf_plugins_extra_exclusive
|
- telegraf_plugins_extra_exclusive
|
||||||
- telegraf_directory.stat.exists
|
- telegraf_directory.stat.exists
|
||||||
become: yes
|
become: true
|
||||||
notify:
|
notify:
|
||||||
- Restart Telegraf
|
- Restart Telegraf
|
||||||
- Restart Telegraf container
|
- Restart Telegraf container
|
||||||
@ -97,7 +96,7 @@
|
|||||||
- telegraf_plugins_extra is defined
|
- telegraf_plugins_extra is defined
|
||||||
- telegraf_plugins_extra is iterable
|
- telegraf_plugins_extra is iterable
|
||||||
- item.value.state|default('present') != 'absent'
|
- item.value.state|default('present') != 'absent'
|
||||||
become: yes
|
become: true
|
||||||
notify:
|
notify:
|
||||||
- Restart Telegraf
|
- Restart Telegraf
|
||||||
- Restart Telegraf container
|
- Restart Telegraf container
|
||||||
@ -113,7 +112,7 @@
|
|||||||
- telegraf_plugins_extra is defined
|
- telegraf_plugins_extra is defined
|
||||||
- telegraf_plugins_extra is iterable
|
- telegraf_plugins_extra is iterable
|
||||||
- item.value.state|default('present') == 'absent'
|
- item.value.state|default('present') == 'absent'
|
||||||
become: yes
|
become: true
|
||||||
notify:
|
notify:
|
||||||
- Restart Telegraf
|
- Restart Telegraf
|
||||||
- Restart Telegraf container
|
- Restart Telegraf container
|
||||||
@ -126,8 +125,9 @@
|
|||||||
name: telegraf
|
name: telegraf
|
||||||
state: "{{ telegraf_enabled | ternary('started', 'stopped') }}"
|
state: "{{ telegraf_enabled | ternary('started', 'stopped') }}"
|
||||||
enabled: "{{ telegraf_enabled }}"
|
enabled: "{{ telegraf_enabled }}"
|
||||||
become: yes
|
become: true
|
||||||
when: not telegraf_agent_docker
|
when: not telegraf_agent_docker
|
||||||
|
ignore_errors: "{{ ansible_check_mode }}"
|
||||||
|
|
||||||
- name: Configure system for for docker plugin
|
- name: Configure system for for docker plugin
|
||||||
block:
|
block:
|
||||||
|
@ -13,10 +13,9 @@
|
|||||||
- ansible_os_family in ["FreeBSD", "Darwin"]
|
- ansible_os_family in ["FreeBSD", "Darwin"]
|
||||||
|
|
||||||
- name: Retrieve all ec2 tags on the instance
|
- name: Retrieve all ec2 tags on the instance
|
||||||
ec2_tag:
|
amazon.aws.ec2_tag_info:
|
||||||
region: '{{ ansible_ec2_placement_region }}'
|
region: '{{ ansible_ec2_placement_region }}'
|
||||||
resource: '{{ ansible_ec2_instance_id }}'
|
resource: '{{ ansible_ec2_instance_id }}'
|
||||||
state: list
|
|
||||||
when:
|
when:
|
||||||
- telegraf_agent_aws_tags
|
- telegraf_agent_aws_tags
|
||||||
register: ec2_tags
|
register: ec2_tags
|
||||||
@ -28,7 +27,7 @@
|
|||||||
owner: "{{ telegraf_mac_user }}"
|
owner: "{{ telegraf_mac_user }}"
|
||||||
group: "{{ telegraf_mac_group }}"
|
group: "{{ telegraf_mac_group }}"
|
||||||
mode: 0640
|
mode: 0640
|
||||||
become: yes
|
become: true
|
||||||
when:
|
when:
|
||||||
- telegraf_agent_version is version('0.10.0', '<')
|
- telegraf_agent_version is version('0.10.0', '<')
|
||||||
notify:
|
notify:
|
||||||
@ -42,7 +41,7 @@
|
|||||||
owner: "{{ telegraf_mac_user }}"
|
owner: "{{ telegraf_mac_user }}"
|
||||||
group: "{{ telegraf_mac_group }}"
|
group: "{{ telegraf_mac_group }}"
|
||||||
mode: 0640
|
mode: 0640
|
||||||
become: yes
|
become: true
|
||||||
when:
|
when:
|
||||||
- telegraf_agent_version is version('0.10.0', '>=')
|
- telegraf_agent_version is version('0.10.0', '>=')
|
||||||
notify:
|
notify:
|
||||||
@ -63,7 +62,7 @@
|
|||||||
when:
|
when:
|
||||||
- telegraf_plugins_extra_exclusive
|
- telegraf_plugins_extra_exclusive
|
||||||
- telegraf_directory.stat.exists
|
- telegraf_directory.stat.exists
|
||||||
become: yes
|
become: true
|
||||||
notify:
|
notify:
|
||||||
- Restart MacOS Telegraf
|
- Restart MacOS Telegraf
|
||||||
- Restart Telegraf container
|
- Restart Telegraf container
|
||||||
@ -78,7 +77,7 @@
|
|||||||
when:
|
when:
|
||||||
- telegraf_plugins_extra_exclusive
|
- telegraf_plugins_extra_exclusive
|
||||||
- telegraf_directory.stat.exists
|
- telegraf_directory.stat.exists
|
||||||
become: yes
|
become: true
|
||||||
notify:
|
notify:
|
||||||
- Restart MacOS Telegraf
|
- Restart MacOS Telegraf
|
||||||
- Restart Telegraf container
|
- Restart Telegraf container
|
||||||
@ -97,7 +96,7 @@
|
|||||||
- telegraf_plugins_extra is defined
|
- telegraf_plugins_extra is defined
|
||||||
- telegraf_plugins_extra is iterable
|
- telegraf_plugins_extra is iterable
|
||||||
- item.value.state|default('present') != 'absent'
|
- item.value.state|default('present') != 'absent'
|
||||||
become: yes
|
become: true
|
||||||
notify:
|
notify:
|
||||||
- Restart MacOS Telegraf
|
- Restart MacOS Telegraf
|
||||||
- Restart Telegraf container
|
- Restart Telegraf container
|
||||||
@ -113,7 +112,7 @@
|
|||||||
- telegraf_plugins_extra is defined
|
- telegraf_plugins_extra is defined
|
||||||
- telegraf_plugins_extra is iterable
|
- telegraf_plugins_extra is iterable
|
||||||
- item.value.state|default('present') == 'absent'
|
- item.value.state|default('present') == 'absent'
|
||||||
become: yes
|
become: true
|
||||||
notify:
|
notify:
|
||||||
- Restart MacOS Telegraf
|
- Restart MacOS Telegraf
|
||||||
- Restart Telegraf container
|
- Restart Telegraf container
|
||||||
@ -126,3 +125,4 @@
|
|||||||
register: brew_services_start_telegraf
|
register: brew_services_start_telegraf
|
||||||
changed_when: '"Successfully started `telegraf`" in brew_services_start_telegraf.stdout'
|
changed_when: '"Successfully started `telegraf`" in brew_services_start_telegraf.stdout'
|
||||||
when: not telegraf_agent_docker
|
when: not telegraf_agent_docker
|
||||||
|
ignore_errors: "{{ ansible_check_mode }}"
|
||||||
|
@ -29,23 +29,30 @@
|
|||||||
|
|
||||||
- name: "Windows | Move extracted directory (newer than 1.15)"
|
- name: "Windows | Move extracted directory (newer than 1.15)"
|
||||||
win_copy:
|
win_copy:
|
||||||
src: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}\'
|
src: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}\telegraf.exe'
|
||||||
dest: '{{ telegraf_win_install_dir }}\telegraf'
|
dest: '{{ telegraf_win_install_dir }}\telegraf.exe'
|
||||||
remote_src: yes
|
remote_src: true
|
||||||
when: telegraf_agent_version is version('1.15', '>=')
|
when: telegraf_agent_version is version('1.15', '>=')
|
||||||
|
|
||||||
- name: "Windows | Unzip file"
|
- name: "Windows | Unzip file"
|
||||||
win_unzip:
|
win_unzip:
|
||||||
src: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}_windows_amd64.zip'
|
src: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}_windows_amd64.zip'
|
||||||
dest: '{{ telegraf_win_install_dir }}'
|
dest: '{{ telegraf_win_install_dir }}'
|
||||||
creates: '{{ telegraf_win_install_dir }}\telegraf\telegraf.exe'
|
creates: '{{ telegraf_win_install_dir }}\telegraf.exe'
|
||||||
delete_archive: yes
|
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', '<')
|
when: telegraf_agent_version is version('1.15', '<')
|
||||||
|
|
||||||
- name: "Windows | Configure Telegraf"
|
- name: "Windows | Configure Telegraf"
|
||||||
win_template:
|
win_template:
|
||||||
src: telegraf.conf.j2
|
src: telegraf.conf.j2
|
||||||
dest: '{{ telegraf_win_install_dir }}\telegraf\telegraf.conf'
|
dest: '{{ telegraf_win_install_dir }}\telegraf.conf'
|
||||||
notify: "Restart Windows Telegraf"
|
notify: "Restart Windows Telegraf"
|
||||||
|
|
||||||
- name: "Windows | Copy telegraf extra plugins"
|
- name: "Windows | Copy telegraf extra plugins"
|
||||||
@ -74,18 +81,31 @@
|
|||||||
- item.value.state|default('present') == 'absent'
|
- item.value.state|default('present') == 'absent'
|
||||||
notify: "Restart Windows Telegraf"
|
notify: "Restart Windows Telegraf"
|
||||||
|
|
||||||
- name: "Windows | Register Service"
|
- name: "Windows | Check if Telegraf service is already in place"
|
||||||
win_command: '{{ telegraf_win_install_dir }}\telegraf\telegraf.exe {{ telegraf_win_service_args | join(" ") }}'
|
win_service:
|
||||||
register: telegraf_windows_install
|
name: telegraf
|
||||||
args:
|
register: service_result
|
||||||
creates: '{{ telegraf_win_install_dir }}\.installed'
|
failed_when: service_result is not defined
|
||||||
|
|
||||||
- name: "Windows | Create done file so it won't register itself again"
|
- debug: msg={{ service_result }}
|
||||||
win_file:
|
|
||||||
path: '{{ telegraf_win_install_dir }}\.installed'
|
- name: "Windows | Set service startup mode to auto and ensure it is started"
|
||||||
state: touch
|
win_service:
|
||||||
|
name: Telegraf
|
||||||
|
start_mode: auto
|
||||||
|
state: stopped
|
||||||
when:
|
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"
|
- name: "Windows | Set service startup mode to auto and ensure it is started"
|
||||||
win_service:
|
win_service:
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
home: /etc/telegraf
|
home: /etc/telegraf
|
||||||
uid: "{{ telegraf_uid_docker }}"
|
uid: "{{ telegraf_uid_docker }}"
|
||||||
system: True
|
system: True
|
||||||
become: yes
|
become: true
|
||||||
|
|
||||||
- name: Create /etc/telegraf (home) directory
|
- name: Create /etc/telegraf (home) directory
|
||||||
file:
|
file:
|
||||||
@ -24,7 +24,7 @@
|
|||||||
group: telegraf
|
group: telegraf
|
||||||
mode: 0750
|
mode: 0750
|
||||||
state: directory
|
state: directory
|
||||||
become: yes
|
become: true
|
||||||
|
|
||||||
- name: Create /etc/telegraf.d directory
|
- name: Create /etc/telegraf.d directory
|
||||||
file:
|
file:
|
||||||
@ -33,7 +33,7 @@
|
|||||||
group: telegraf
|
group: telegraf
|
||||||
mode: 0750
|
mode: 0750
|
||||||
state: directory
|
state: directory
|
||||||
become: yes
|
become: true
|
||||||
|
|
||||||
- name: Ensure Telegraf Docker container is running
|
- name: Ensure Telegraf Docker container is running
|
||||||
docker_container:
|
docker_container:
|
||||||
|
@ -30,6 +30,9 @@
|
|||||||
{% if telegraf_agent_version is version_compare('1.1', '>=') %}
|
{% if telegraf_agent_version is version_compare('1.1', '>=') %}
|
||||||
{% if ansible_os_family == "Windows" %}
|
{% if ansible_os_family == "Windows" %}
|
||||||
logfile = "{{ telegraf_win_logfile }}"
|
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 %}
|
{% else %}
|
||||||
logfile = "{{ telegraf_agent_logfile }}"
|
logfile = "{{ telegraf_agent_logfile }}"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -126,5 +129,44 @@
|
|||||||
{{ items }}
|
{{ items }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% 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 %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
Reference in New Issue
Block a user