From 16cf93fba7514f3332d6c75054aa0f18430a516d Mon Sep 17 00:00:00 2001 From: Frank Villaro-Dixon Date: Fri, 21 Jun 2024 22:14:36 +0200 Subject: [PATCH] Add Archlinux OS Signed-off-by: Frank Villaro-Dixon --- README.md | 1 + tasks/Archlinux.yml | 86 +++++++++++++++++++++++++++++++++++++++++++++ tasks/main.yml | 5 +++ 3 files changed, 92 insertions(+) create mode 100644 tasks/Archlinux.yml diff --git a/README.md b/README.md index 4d7940e..e3ad453 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,7 @@ This role supports the following systems: * (Open)Suse * Windows (Best effort) * FreeBSD (Best effort) + * Archlinux (only "online" mode) So, you'll need one of those systems.. :-) Please sent Pull Requests or suggestions when you want to use this role for other systems. diff --git a/tasks/Archlinux.yml b/tasks/Archlinux.yml new file mode 100644 index 0000000..9ae8cd1 --- /dev/null +++ b/tasks/Archlinux.yml @@ -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 diff --git a/tasks/main.yml b/tasks/main.yml index f0f8eb0..6ed854b 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -14,6 +14,11 @@ - telegraf - packages +- name: "Install on Archlinux" + include_tasks: "Archlinux.yml" + when: + - ansible_os_family == "Archlinux" and not telegraf_agent_docker + - name: "Install on Suse" include_tasks: "Suse.yml" when: ansible_os_family == "Suse" and not telegraf_agent_docker