diff --git a/defaults/main.yml b/defaults/main.yml index 82378f5..b1776ff 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,7 +1,12 @@ --- -grafana_repo_key: https://apt.grafana.com/gpg.key -grafana_repo: "deb [signed-by=/etc/apt/trusted.gpg.d/grafana.gpg] https://apt.grafana.com stable main" -grafana_pkg_state: latest +grafana_repo_key_url: https://apt.grafana.com/gpg.key +grafana_repo_key_file: /etc/apt/keyrings/grafana.gpg +grafana_repo_url: "https://apt.grafana.com" +grafana_repo_components: + - main +grafana_repo_suites: + - stable +grafana_pkg_state: present grafana_packages: - grafana diff --git a/tasks/main.yml b/tasks/main.yml index 205b523..8bdeab9 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -4,46 +4,55 @@ tags: [grafana] block: - name: Ensure that grafana is stopped and disabled - service: name=grafana-server state=stopped enabled=no + ansible.builtin.service: + name: grafana-server + state: stopped + enabled: false - name: Remove the grafana deb packages - apt: name={{ grafana_packages }} state=absent + ansible.builtin.apt: + name: "{{ grafana_packages }}" + state: absent - name: Install the grafana deb repository - apt_repository: repo='{{ grafana_repo }}' state=absent update_cache=yes + ansible.builtin.apt_repository: + repo: '{{ grafana_repo }}' + state: absent + update_cache: true - name: Install grafana when: grafana_enabled tags: [grafana] block: - - name: Create a directory to store the repo keys + - name: Ensure that the directory were the GPG key is stored exists ansible.builtin.file: - dest: /etc/apt/trusted.gpg.d + dest: /etc/apt/keyrings state: directory mode: "0755" owner: root group: root - name: Install the grafana repo key - get_url: - url: "{{ grafana_repo_key }}" - dest: /etc/apt/trusted.gpg.d/grafana.gpg - state: present + ansible.builtin.get_url: + url: "{{ grafana_repo_key_url }}" + dest: "{{ grafana_repo_key_file }}" owner: root group: root - mode: 0644 + mode: "0644" tags: [grafana, grafana_repo_key] - - name: Install the grafana deb repository - apt_repository: - repo: "{{ grafana_repo }}" + - name: Install the grafana repository for Ubuntu + ansible.builtin.deb822_repository: + name: grafana-com + types: [deb] + uris: "{{ grafana_repo_url }}" + components: "{{ grafana_repo_components }}" + suites: "{{ grafana_repo_suites }}" + signed_by: "{{ grafana_repo_key_file }}" state: present - update_cache: true + enabled: true - - name: Install the grafana deb packages - apt: name={{ grafana_packages }} state={{ grafana_pkg_state }} update_cache=yes cache_valid_time=1800 - - - name: Install the grafana configuration - ansible.builtin.ini_file: + - name: Basic grafana configuration + community.general.ini_file: path: /etc/grafana/grafana.ini section: "{{ item.section }}" option: "{{ item.option }}" @@ -56,7 +65,7 @@ notify: Restart grafana tags: [grafana, grafana_conf] - name: Add additional grafana configurations - ansible.builtin.ini_file: + community.general.ini_file: path: /etc/grafana/grafana.ini section: "{{ item.section }}" option: "{{ item.option }}" @@ -72,7 +81,7 @@ ansible.builtin.template: src: "{{ item }}.j2" dest: /etc/grafana/{{ item }} - mode: 0440 + mode: "0440" owner: root group: grafana loop: "{{ grafana_ldap_conf_file }}" @@ -80,14 +89,22 @@ when: grafana_ldap_auth tags: [grafana, grafana_conf, grafana_ldap] - name: Create the local dashboards directory - file: dest=/var/lib/grafana/dashboards state=directory mode=0755 owner=grafana group=grafana + ansible.builtin.file: + dest: /var/lib/grafana/dashboards + state: directory + mode: "0755" + owner: grafana + group: grafana - name: Install additional plugins, if any - grafana_plugin: + community.grafana.grafana_plugin: name: "{{ item.name }}" state: "{{ item.state | default('present') }}" grafana_repo: "{{ item.repo | default('https://grafana.com/api/plugins') }}" loop: "{{ grafana_additional_plugins }}" tags: [grafana, grafana_plugins] - name: Ensure that grafana is enabled and running - service: name=grafana-server state=started enabled=yes + ansible.builtin.service: + name: grafana-server + state: started + enabled: true