17 Commits

Author SHA1 Message Date
68af70ea86 Updated CHANGELOG.md on "2024-11-26 13:09:19" 2024-11-26 13:09:19 +00:00
7c9c047c67 fix: add missing tasks for RedHat distro (rpm install) (#189) 2024-11-26 14:08:46 +01:00
732dffa435 Updated CHANGELOG.md on "2024-11-25 13:51:52" 2024-11-25 13:51:52 +00:00
570f81a779 Updating the Python packages to make Molecule work (#190)
* Updating the Python packages to make Molecule work
* Triggering jobs with updating Telegraf version
* Changing Ansible version
* Changing github ci version
* Changing Python version version
* Removal of Debian9
2024-11-25 14:51:20 +01:00
29fb3ea5e0 Updated CHANGELOG.md on "2024-11-06 16:17:14" 2024-11-06 16:17:14 +00:00
c318de1e2e Bump ansible-core from 2.15.9 to 2.17.6 (#188)
Bumps [ansible-core](https://github.com/ansible/ansible) from 2.15.9 to 2.17.6.
- [Release notes](https://github.com/ansible/ansible/releases)
- [Commits](https://github.com/ansible/ansible/compare/v2.15.9...v2.17.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-06 17:16:39 +01:00
8a5a7187fa Updated CHANGELOG.md on "2024-10-08 07:02:11" 2024-10-08 07:02:11 +00:00
6f30799a7f fix: add almalinux analog to rockylinux in defaults/main.yml (#187)
Co-authored-by: Simon Couball <simon.couball@akquinet.de>
2024-10-08 09:01:37 +02:00
2b8cb8a9d8 Updated CHANGELOG.md on "2024-06-25 06:44:26" 2024-06-25 06:44:26 +00:00
108284cda1 Add Archlinux OS (#186)
Signed-off-by: Frank Villaro-Dixon <frank@villaro-dixon.eu>
2024-06-25 08:43:52 +02:00
51c2bb66f5 Updated CHANGELOG.md on "2024-02-28 19:01:19" 2024-02-28 19:01:19 +00:00
bfe52cd752 Support for sub_inputs in extra plugins (#184)
Co-authored-by: Michał Lisowski <mlisowski@sentient.ie>
2024-02-28 20:00:49 +01:00
b5179f4dfe Updated CHANGELOG.md on "2024-02-19 08:33:43" 2024-02-19 08:33:43 +00:00
c8a2209fe5 use redhat baseurl (#183) 2024-02-19 09:33:14 +01:00
bd5dfd18c1 Updated CHANGELOG.md on "2024-02-17 11:37:35" 2024-02-17 11:37:35 +00:00
870e56c5a7 Updating CHANGELOG.md file for release 0.14.1 2024-02-17 12:37:08 +01:00
5fb03da151 Updating CONTRIBUTORS file for release 0.14.1 2024-02-17 12:36:46 +01:00
10 changed files with 195 additions and 19 deletions

View File

@ -22,7 +22,7 @@ on:
- '.github/workflows/telegraf.yml' - '.github/workflows/telegraf.yml'
jobs: jobs:
molecule: molecule:
runs-on: ubuntu-22.04 runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@ -37,8 +37,6 @@ jobs:
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: debian9
image: geerlingguy/docker-debian9-ansible:latest
- container: debian10 - container: debian10
image: geerlingguy/docker-debian10-ansible:latest image: geerlingguy/docker-debian10-ansible:latest
- container: debian11 - container: debian11
@ -47,10 +45,10 @@ jobs:
- name: Check out code - name: Check out code
uses: actions/checkout@v1 uses: actions/checkout@v1
- name: Set up Python 3.9 - name: Set up Python 3.11
uses: actions/setup-python@v1 uses: actions/setup-python@v1
with: with:
python-version: 3.9 python-version: 3.11.10
- name: Install dependencies - name: Install dependencies
run: | run: |

View File

@ -2,7 +2,37 @@
## [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.14.0...HEAD) [Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.14.1...HEAD)
**Implemented enhancements:**
- Repo installation fails for Almalinux [\#172](https://github.com/dj-wasabi/ansible-telegraf/issues/172)
- Support for sub\_inputs in extra plugins [\#184](https://github.com/dj-wasabi/ansible-telegraf/pull/184) ([lisuml](https://github.com/lisuml))
**Fixed bugs:**
- Add default repository handling for SUSE releases [\#154](https://github.com/dj-wasabi/ansible-telegraf/issues/154)
- Fix Python package dependencies on SUSE releases [\#153](https://github.com/dj-wasabi/ansible-telegraf/issues/153)
**Closed issues:**
- amazon.aws.ec2\_tag\_info [\#177](https://github.com/dj-wasabi/ansible-telegraf/issues/177)
- Failing on Debian Bookwork, telegraf recomends stable main rather than specific release [\#175](https://github.com/dj-wasabi/ansible-telegraf/issues/175)
- Unable to run against linux machines \(redhat\) [\#159](https://github.com/dj-wasabi/ansible-telegraf/issues/159)
- How to add the sub inputs into the same config file using telegraf\_plugin\_extra [\#149](https://github.com/dj-wasabi/ansible-telegraf/issues/149)
**Merged pull requests:**
- Updating the Python packages to make Molecule work [\#190](https://github.com/dj-wasabi/ansible-telegraf/pull/190) ([dj-wasabi](https://github.com/dj-wasabi))
- fix: add missing tasks for RedHat distro \(rpm install\) [\#189](https://github.com/dj-wasabi/ansible-telegraf/pull/189) ([vfreitassentient](https://github.com/vfreitassentient))
- Bump ansible-core from 2.15.9 to 2.17.6 [\#188](https://github.com/dj-wasabi/ansible-telegraf/pull/188) ([dependabot[bot]](https://github.com/apps/dependabot))
- Use `rhel` within yum url for almalinux [\#187](https://github.com/dj-wasabi/ansible-telegraf/pull/187) ([kuhball](https://github.com/kuhball))
- Add Archlinux OS [\#186](https://github.com/dj-wasabi/ansible-telegraf/pull/186) ([Frankkkkk](https://github.com/Frankkkkk))
- Fixes Role for Almalinux 8.8, Closes \#172 [\#183](https://github.com/dj-wasabi/ansible-telegraf/pull/183) ([mira-miracoli](https://github.com/mira-miracoli))
## [0.14.1](https://github.com/dj-wasabi/ansible-telegraf/tree/0.14.1) (2024-02-17)
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.14.0...0.14.1)
**Implemented enhancements:** **Implemented enhancements:**
@ -22,7 +52,7 @@
- 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-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)) - 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)) - 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)) - replace depracted aws module [\#178](https://github.com/dj-wasabi/ansible-telegraf/pull/178) ([daparm](https://github.com/daparm))
- added yaml 1.2.2 compatibility [\#176](https://github.com/dj-wasabi/ansible-telegraf/pull/176) ([DEvil0000](https://github.com/DEvil0000)) - 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)) - Migrate from io to diskio to fix deprecation warning [\#173](https://github.com/dj-wasabi/ansible-telegraf/pull/173) ([mprasil](https://github.com/mprasil))

View File

@ -1,9 +1,11 @@
A. Binzxxxxxx
Alejandro Alejandro
Angristan Angristan
Anthony ARNAUD Anthony ARNAUD
Carl Bäckström Carl Bäckström
DEvil0000 DEvil0000
DJΞRFY DJΞRFY
Dan Clough
Daniel Werdermann Daniel Werdermann
Diego Nava Diego Nava
Emerson Knapp Emerson Knapp
@ -24,6 +26,7 @@
Markus Langer Markus Langer
Matt Matt
Max Nasonov Max Nasonov
Miro Prasil
Miroslav Prasil Miroslav Prasil
NotDead NotDead
Olivier Boukili Olivier Boukili
@ -42,10 +45,12 @@
Steven Wirges Steven Wirges
TheCodeAssassin TheCodeAssassin
Thomas Szymanski Thomas Szymanski
ThorstenHeck
Troy Jendra Troy Jendra
Werner Dijkerman Werner Dijkerman
Werner Dijkerman [GH bot] Werner Dijkerman [GH bot]
aroglian aroglian
dependabot[bot]
gaelL gaelL
kingphil kingphil
maxwondercorn maxwondercorn

View File

@ -55,6 +55,7 @@ This role supports the following systems:
* (Open)Suse * (Open)Suse
* Windows (Best effort) * Windows (Best effort)
* FreeBSD (Best effort) * FreeBSD (Best effort)
* Archlinux (only "online" mode)
So, you'll need one of those systems.. :-) So, you'll need one of those systems.. :-)
Please sent Pull Requests or suggestions when you want to use this role for other systems. Please sent Pull Requests or suggestions when you want to use this role for other systems.
@ -289,6 +290,7 @@ Telegraf plugin options:
* `interval`: How often to gather this metric. Normal plugins use a single global interval, but if one particular plugin should be run less or more often, you can configure that here. * `interval`: How often to gather this metric. Normal plugins use a single global interval, but if one particular plugin should be run less or more often, you can configure that here.
* `filter.name`: Like when there is an extra filter that needs to be configured, like `grok` for a `logparser` plugin. * `filter.name`: Like when there is an extra filter that needs to be configured, like `grok` for a `logparser` plugin.
* `filter.config`: The extra configuration for the - in the `filter.name` example - `grok` filter. (See example below) * `filter.config`: The extra configuration for the - in the `filter.name` example - `grok` filter. (See example below)
* `sub_inputs`: If the input requires other sub inputs, you can add them here (see example below).
An example might look like this: An example might look like this:
@ -325,6 +327,30 @@ When you want to make use of the `grok` filter for the logparser:
config: config:
- patterns = ["invoked oom-killer"] - patterns = ["invoked oom-killer"]
When you want to include a sub inputs with their own configuration:
```yaml
sqs:
plugin: cloudwatch
config:
- region = "eu-west-1"
- access_key = "foo"
- secret_key = "bar"
- period = "1m"
- delay = "2m"
- interval = "1m"
- namespace = "AWS/SQS"
- statistic_include = ["average"]
sub_inputs:
metrics:
- names = [
"ApproximateAgeOfOldestMessage",
"ApproximateNumberOfMessagesVisible",
]
metrics.dimensions:
- name = "QueueName"
- value = "*"
```
## Dependencies ## Dependencies
No dependencies No dependencies

View File

@ -2,7 +2,7 @@
telegraf_enabled: True telegraf_enabled: True
# defaults file for ansible-telegraf # defaults file for ansible-telegraf
telegraf_agent_version: 1.18.2 telegraf_agent_version: 1.32.3
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
@ -77,6 +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"
almalinux: "https://repos.influxdata.com/rhel/{{ telegraf_redhat_releasever }}/$basearch/stable"
telegraf_yum_gpgkey: "https://repos.influxdata.com/influxdata-archive_compat.key" telegraf_yum_gpgkey: "https://repos.influxdata.com/influxdata-archive_compat.key"
telegraf_zypper_repos: telegraf_zypper_repos:

View File

@ -1,10 +1,11 @@
ansible==8.5.0 ansible==9.7.0
ansible-compat==4.1.7 ansible-compat==24.10.0
ansible-core==2.15.9 ansible-core==2.16.8
docker==6.1.3 docker==7.1.0
molecule==6.0.1 molecule==6.0.3
molecule-docker==2.1.0 molecule-docker==2.1.0
netaddr==0.8.0 molecule-plugins==23.5.3
pytest==7.4.2 netaddr==1.3.0
pytest-testinfra==9.0.0 pytest==8.3.3
pytest-testinfra==10.1.1
testinfra==6.0.0 testinfra==6.0.0

86
tasks/Archlinux.yml Normal file
View File

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

View File

@ -17,7 +17,7 @@
yum_repository: yum_repository:
name: influxdb name: influxdb
description: InfluxDB Repository - RHEL $releasever description: InfluxDB Repository - RHEL $releasever
baseurl: "{{ telegraf_yum_baseurl[ansible_distribution|lower] | default(telegraf_yum_baseurl['default']) }}" baseurl: "{{ telegraf_yum_baseurl['redhat'] | 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: true become: true
@ -27,7 +27,7 @@
- name: "RedHat | Download Telegraf package (online)" - name: "RedHat | Download Telegraf package (online)"
get_url: get_url:
url: https://dl.influxdata.com/telegraf/releases/{{ telegraf_agent_package_file_rpm }} url: https://dl.influxdata.com/telegraf/releases/{{ telegraf_agent_package_file_rpm }}
dest: "{{ telegraf_agent_package }}" dest: "{{ telegraf_agent_package_path }}"
use_proxy: "{{ true if http_proxy is defined and http_proxy else false }}" use_proxy: "{{ true if http_proxy is defined and http_proxy else false }}"
environment: environment:
http_proxy: "{{ http_proxy | default(None) | default(omit) }}" http_proxy: "{{ http_proxy | default(None) | default(omit) }}"
@ -35,7 +35,7 @@
when: when:
- telegraf_agent_package_method == "online" - telegraf_agent_package_method == "online"
- name: "RedHat | Install Telegraf package" - name: "RedHat | Install Telegraf package (repo)"
package: package:
name: "{{ telegraf_agent_package }}" name: "{{ telegraf_agent_package }}"
state: "{{ telegraf_agent_package_state }}" state: "{{ telegraf_agent_package_state }}"
@ -44,3 +44,19 @@
become: true become: true
notify: "Restart Telegraf" notify: "Restart Telegraf"
ignore_errors: "{{ ansible_check_mode }}" ignore_errors: "{{ ansible_check_mode }}"
when:
- telegraf_agent_package_method == "repo"
- name: "RedHat | Install Telegraf package (online)"
dnf:
name: "{{ telegraf_agent_package_path }}/{{ telegraf_agent_package_file_rpm }}"
disable_gpg_check: true
state: "{{ telegraf_agent_package_state }}"
register: is_telegraf_package_installed
until: is_telegraf_package_installed is succeeded
become: true
notify: "Restart Telegraf"
ignore_errors: "{{ ansible_check_mode }}"
when:
- telegraf_agent_package_method == "online"

View File

@ -14,6 +14,11 @@
- telegraf - telegraf
- packages - packages
- name: "Install on Archlinux"
include_tasks: "Archlinux.yml"
when:
- ansible_os_family == "Archlinux" and not telegraf_agent_docker
- name: "Install on Suse" - name: "Install on Suse"
include_tasks: "Suse.yml" include_tasks: "Suse.yml"
when: ansible_os_family == "Suse" and not telegraf_agent_docker when: ansible_os_family == "Suse" and not telegraf_agent_docker

View File

@ -55,3 +55,11 @@
{% endfor %} {% endfor %}
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{% if item.value.sub_inputs is defined and item.value.sub_inputs is iterable %}
{% for sub_input, config in item.value.sub_inputs.items() %}
[[inputs.{{ item.value.plugin | default(item.key) }}.{{ sub_input }}]]
{% for items in config %}
{{ items }}
{% endfor %}
{% endfor %}
{% endif %}