mirror of
https://github.com/dj-wasabi/ansible-telegraf.git
synced 2025-07-17 08:46:37 +00:00
Compare commits
20 Commits
Author | SHA1 | Date | |
---|---|---|---|
e13c62d918 | |||
f329d9e207 | |||
554434c7ad | |||
a89b6aff93 | |||
fd18c08145 | |||
3596c7b95e | |||
8e4b34d4bd | |||
632fe13972 | |||
4b7d9713e3 | |||
968b005f3a | |||
28cd5b8f6e | |||
eb55757a01 | |||
1c15756019 | |||
9a1c543906 | |||
805071d0d9 | |||
81246d67ea | |||
0ca3c1ddda | |||
ecce0edb9b | |||
d7863b10ef | |||
a9809890ee |
51
CHANGELOG.md
51
CHANGELOG.md
@ -1,5 +1,56 @@
|
||||
# Changelog
|
||||
|
||||
## [Unreleased](https://github.com/dj-wasabi/ansible-telegraf/tree/HEAD)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.13.2...HEAD)
|
||||
|
||||
**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)
|
||||
|
@ -3,10 +3,13 @@
|
||||
Anthony ARNAUD
|
||||
Carl Bäckström
|
||||
DEvil0000
|
||||
DJΞRFY
|
||||
Daniel Werdermann
|
||||
Diego Nava
|
||||
Emerson Knapp
|
||||
Farshad Nematdoust
|
||||
Greg
|
||||
Heckel, Robert J
|
||||
Ilkka Tengvall
|
||||
Ismael
|
||||
Jack Ivy
|
||||
@ -34,6 +37,7 @@
|
||||
Thomas Szymanski
|
||||
Troy Jendra
|
||||
Werner Dijkerman
|
||||
Werner Dijkerman [GH bot]
|
||||
aroglian
|
||||
gaelL
|
||||
or
|
||||
|
10
README.md
10
README.md
@ -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_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**
|
||||
@ -271,9 +275,9 @@ The 2nd parameter `telegraf_plugins_extra` can be used to add plugins specific t
|
||||
|
||||
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.
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
telegraf_enabled: True
|
||||
# defaults file for ansible-telegraf
|
||||
|
||||
telegraf_agent_version: 1.10.0
|
||||
telegraf_agent_version: 1.18.2
|
||||
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
|
||||
@ -19,6 +19,7 @@ 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
|
||||
@ -75,14 +76,21 @@ telegraf_yum_baseurl:
|
||||
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"
|
||||
telegraf_yum_gpgkey: "https://repos.influxdata.com/influxdb.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 {{ telegraf_win_install_dir }}\telegraf.conf
|
||||
- --config-directory {{ telegraf_win_include }}
|
||||
|
||||
telegraf_mac_user: user
|
||||
|
@ -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
|
@ -52,6 +52,13 @@ provisioner:
|
||||
name: grok
|
||||
config:
|
||||
- patterns = ["invoked oom-killer"]
|
||||
telegraf_aggregators:
|
||||
- aggregator: basicstats
|
||||
config:
|
||||
- drop_original = false
|
||||
- stats = ['mean']
|
||||
tagpass:
|
||||
- cpu = ["cpu-total"]
|
||||
|
||||
scenario:
|
||||
name: default
|
||||
|
@ -28,8 +28,6 @@
|
||||
- name: "Installing packages on Suse"
|
||||
zypper:
|
||||
name:
|
||||
- sysvinit-tools
|
||||
- insserv-compat
|
||||
- aaa_base
|
||||
state: present
|
||||
when:
|
||||
|
@ -24,6 +24,7 @@ def test_telegraf_dot_conf(host):
|
||||
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(host):
|
||||
|
@ -80,7 +80,7 @@
|
||||
when:
|
||||
- telegraf_agent_package_method == "online"
|
||||
|
||||
- name: "Debian | Install Telegraf package"
|
||||
- name: "Debian | Install Telegraf package (repo)"
|
||||
apt:
|
||||
name: "{{ telegraf_agent_package }}"
|
||||
state: "{{ telegraf_agent_package_state }}"
|
||||
@ -92,7 +92,7 @@
|
||||
when:
|
||||
- telegraf_agent_package_method == "repo"
|
||||
|
||||
- name: "Debian | Install Telegraf package"
|
||||
- name: "Debian | Install Telegraf package (online)"
|
||||
apt:
|
||||
deb: "{{ telegraf_agent_package_path }}/{{ telegraf_agent_package }}"
|
||||
state: "present"
|
||||
@ -102,3 +102,11 @@
|
||||
become: yes
|
||||
when:
|
||||
- telegraf_agent_package_method == "online" or telegraf_agent_package_method == "offline"
|
||||
|
||||
- name: "Debian | Remove repository (online/offline install)"
|
||||
file:
|
||||
path: "/etc/apt/sources.list.d/telegraf.list"
|
||||
state: absent
|
||||
become: yes
|
||||
when:
|
||||
- telegraf_agent_package_method == "online" or telegraf_agent_package_method == "offline"
|
||||
|
@ -12,23 +12,48 @@
|
||||
state: present
|
||||
become: yes
|
||||
|
||||
- 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
|
||||
register: are_telegraf_dependencies_packages_installed
|
||||
until: are_telegraf_dependencies_packages_installed is succeeded
|
||||
become: yes
|
||||
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: yes
|
||||
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
|
||||
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: yes
|
||||
when: telegraf_zypper_baseurl is defined
|
||||
|
||||
- name: "Suse | Install Telegraf"
|
||||
zypper:
|
||||
@ -49,9 +74,3 @@
|
||||
owner: root
|
||||
- path: /var/log/telegraf
|
||||
owner: telegraf
|
||||
|
||||
- name: "Suse | Install init file"
|
||||
copy:
|
||||
src: telegraf.init
|
||||
dest: /etc/init.d/telegraf
|
||||
mode: 0755
|
||||
|
@ -29,8 +29,8 @@
|
||||
|
||||
- name: "Windows | Move extracted directory (newer than 1.15)"
|
||||
win_copy:
|
||||
src: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}\'
|
||||
dest: '{{ telegraf_win_install_dir }}\telegraf'
|
||||
src: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}\telegraf.exe'
|
||||
dest: '{{ telegraf_win_install_dir }}\telegraf.exe'
|
||||
remote_src: yes
|
||||
when: telegraf_agent_version is version('1.15', '>=')
|
||||
|
||||
@ -38,14 +38,21 @@
|
||||
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.exe'
|
||||
delete_archive: yes
|
||||
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: yes
|
||||
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"
|
||||
@ -74,18 +81,31 @@
|
||||
- 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:
|
||||
@ -97,4 +117,4 @@
|
||||
win_file:
|
||||
path: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}'
|
||||
state: absent
|
||||
when: telegraf_agent_version is version('1.15', '>=')
|
||||
when: telegraf_agent_version is version('1.15', '>=')
|
||||
|
@ -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 %}
|
||||
@ -115,7 +118,7 @@
|
||||
{% endif %}
|
||||
|
||||
###############################################################################
|
||||
# PROCESSORS #
|
||||
# PROCESSORS #
|
||||
###############################################################################
|
||||
|
||||
{% if telegraf_processors is defined and telegraf_processors is iterable %}
|
||||
@ -126,5 +129,44 @@
|
||||
{{ 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 %}
|
||||
|
Reference in New Issue
Block a user