36 Commits

Author SHA1 Message Date
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
19 changed files with 376 additions and 99 deletions

View File

@ -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 }}

View File

@ -2,7 +2,55 @@
## [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.2...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:** **Implemented enhancements:**

View File

@ -9,27 +9,34 @@
Emerson Knapp Emerson Knapp
Farshad Nematdoust Farshad Nematdoust
Greg 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
@ -40,5 +47,8 @@
Werner Dijkerman [GH bot] Werner Dijkerman [GH bot]
aroglian aroglian
gaelL gaelL
kingphil
maxwondercorn
or or
treanorjp
zend0 zend0

View File

@ -55,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
@ -77,7 +77,7 @@ telegraf_yum_baseurl:
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"
rocky: "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_yum_gpgkey: "https://repos.influxdata.com/influxdata-archive_compat.key"
telegraf_zypper_repos: telegraf_zypper_repos:
"opensuse tumbleweed": "http://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Factory/" "opensuse tumbleweed": "http://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Factory/"
@ -90,8 +90,7 @@ 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.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

View File

@ -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 }}"

View File

@ -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
@ -64,5 +66,3 @@ scenario:
name: default name: default
verifier: verifier:
name: testinfra name: testinfra
lint:
name: flake8

View File

@ -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,6 +35,7 @@
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:

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

10
requirements.txt Normal file
View 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

View File

@ -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"
apt_key:
url: "https://repos.influxdata.com/influxdb.key"
id: 2582E0C5
state: present
register: are_telegraf_dependencies_keys_installed
until: are_telegraf_dependencies_keys_installed is succeeded
become: yes
when: when:
- telegraf_agent_package_method == "repo" - 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 (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
when: mode: 0755
- telegraf_agent_package_method == "repo" when:
- ansible_lsb is defined - not usr_share_keyrings.stat.exists
- ansible_lsb.codename is defined become: true
- 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
become: yes until: are_telegraf_dependencies_keys_installed is succeeded
when: become: true
- telegraf_agent_package_method == "repo"
- ansible_lsb is not defined or ansible_lsb.codename is not defined - 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)" - 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"

View File

@ -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 }}"

View File

@ -10,7 +10,7 @@
name: telegraf name: telegraf
group: telegraf group: telegraf
state: present state: present
become: yes become: true
- name: "Suse | Install repo dependencies for Python 2" - name: "Suse | Install repo dependencies for Python 2"
zypper: zypper:
@ -21,7 +21,7 @@
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 when: ansible_python.version.major == 2
- name: "Suse | Install repo dependencies for Python >= 3" - name: "Suse | Install repo dependencies for Python >= 3"
@ -32,7 +32,7 @@
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 >= 3 when: ansible_python.version.major >= 3
- name: "Suse | Add default Open Build Service repository" - name: "Suse | Add default Open Build Service repository"
@ -42,7 +42,7 @@
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 when: telegraf_zypper_baseurl is not defined
- name: "Suse | Add specified package repository" - name: "Suse | Add specified package repository"
@ -52,7 +52,7 @@
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 defined when: telegraf_zypper_baseurl is defined
- name: "Suse | Install Telegraf" - name: "Suse | Install Telegraf"
@ -61,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:

View File

@ -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:

View File

@ -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 }}"

View File

@ -31,7 +31,7 @@
win_copy: win_copy:
src: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}\telegraf.exe' src: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}\telegraf.exe'
dest: '{{ telegraf_win_install_dir }}\telegraf.exe' 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"
@ -39,14 +39,14 @@
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.exe' creates: '{{ telegraf_win_install_dir }}\telegraf.exe'
delete_archive: yes delete_archive: true
when: telegraf_agent_version is version('1.15', '<') when: telegraf_agent_version is version('1.15', '<')
- name: "Windows | Move extracted executable" - name: "Windows | Move extracted executable"
win_copy: win_copy:
src: '{{ telegraf_win_install_dir }}\telegraf\telegraf.exe' src: '{{ telegraf_win_install_dir }}\telegraf\telegraf.exe'
dest: '{{ telegraf_win_install_dir }}\telegraf.exe' 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 | Configure Telegraf" - name: "Windows | Configure Telegraf"
@ -98,13 +98,13 @@
- service_result.exists - service_result.exists
- name: "Windows | Unregister Service" - name: "Windows | Unregister Service"
win_command: '{{ telegraf_win_install_dir }}\telegraf.exe --service uninstall' win_command: '"{{ telegraf_win_install_dir }}\telegraf.exe" --service uninstall'
register: telegraf_windows_uninstall register: telegraf_windows_uninstall
when: when:
- service_result.exists - service_result.exists
- name: "Windows | Register Service" - name: "Windows | Register Service"
win_command: '{{ telegraf_win_install_dir }}\telegraf.exe {{ telegraf_win_service_args | join(" ") }}' win_command: '"{{ telegraf_win_install_dir }}\telegraf.exe" {{ telegraf_win_service_args | join(" ") }}'
register: telegraf_windows_install 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"

View File

@ -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: