90 lines
3.2 KiB
YAML
90 lines
3.2 KiB
YAML
|
---
|
||
|
- name: "Remove conflicting grafana packages"
|
||
|
ansible.builtin.package:
|
||
|
name: grafana-data
|
||
|
state: absent
|
||
|
|
||
|
- name: "Install dependencies"
|
||
|
ansible.builtin.package:
|
||
|
name: "{{ _grafana_dependencies }}"
|
||
|
state: present
|
||
|
update_cache: true
|
||
|
when: "(_grafana_dependencies | default())"
|
||
|
|
||
|
- name: "Prepare yum/dnf"
|
||
|
when:
|
||
|
- "ansible_pkg_mgr in ['yum', 'dnf']"
|
||
|
- "(grafana_manage_repo)"
|
||
|
environment: "{{ grafana_environment }}"
|
||
|
block:
|
||
|
- name: "Add Grafana yum/dnf repository"
|
||
|
ansible.builtin.yum_repository:
|
||
|
name: grafana
|
||
|
description: grafana
|
||
|
baseurl: "{{ grafana_yum_repo }}"
|
||
|
enabled: true
|
||
|
gpgkey: "{{ grafana_yum_key | default(omit) }}"
|
||
|
repo_gpgcheck: "{{ true if (grafana_yum_key) else omit }}"
|
||
|
gpgcheck: "{{ true if (grafana_yum_key) else omit }}"
|
||
|
when: "(not grafana_rhsm_repo)"
|
||
|
|
||
|
- name: "Attach RHSM subscription"
|
||
|
when: "(grafana_rhsm_subscription)"
|
||
|
block:
|
||
|
- name: "Check if Grafana RHSM subscription is enabled"
|
||
|
ansible.builtin.command:
|
||
|
cmd: "subscription-manager list --consumed --matches={{ grafana_rhsm_subscription | quote }} --pool-only"
|
||
|
register: __subscription_manager_consumed
|
||
|
changed_when: false
|
||
|
when: (grafana_rhsm_subscription)
|
||
|
|
||
|
- name: "Find RHSM repo subscription pool id"
|
||
|
ansible.builtin.command:
|
||
|
cmd: "subscription-manager list --available --matches={{ grafana_rhsm_subscription | quote }} --pool-only"
|
||
|
register: __subscription_manager_available
|
||
|
changed_when: false
|
||
|
when:
|
||
|
- "(grafana_rhsm_subscription)"
|
||
|
- "__subscription_manager_consumed.stdout | length <= 0"
|
||
|
|
||
|
- name: "Attach RHSM subscription"
|
||
|
ansible.builtin.command:
|
||
|
cmd: "subscription-manager attach --pool={{ __subscription_manager_available.stdout }}"
|
||
|
register: __subscription_manager_attach
|
||
|
changed_when: "__subscription_manager_attach.stdout is search('Successfully attached a subscription')"
|
||
|
failed_when: "__subscription_manager_attach.stdout is search('could not be found')"
|
||
|
when:
|
||
|
- "(grafana_rhsm_subscription)"
|
||
|
- "__subscription_manager_consumed.stdout | default() | length <= 0"
|
||
|
- "__subscription_manager_available.stdout | default() | length > 0"
|
||
|
|
||
|
- name: "Enable RHSM repository"
|
||
|
community.general.rhsm_repository:
|
||
|
name: "{{ grafana_rhsm_repo }}"
|
||
|
state: enabled
|
||
|
when: (grafana_rhsm_repo)
|
||
|
|
||
|
- name: "Prepare apt"
|
||
|
when:
|
||
|
- "ansible_pkg_mgr == 'apt'"
|
||
|
- "(grafana_manage_repo)"
|
||
|
environment: "{{ grafana_environment }}"
|
||
|
block:
|
||
|
- name: "Import Grafana apt gpg key"
|
||
|
ansible.builtin.apt_key:
|
||
|
url: "{{ grafana_apt_key }}"
|
||
|
state: present
|
||
|
validate_certs: false
|
||
|
|
||
|
- name: "Add Grafana apt repository"
|
||
|
ansible.builtin.apt_repository:
|
||
|
repo: "{{ grafana_apt_repo }}"
|
||
|
state: present
|
||
|
update_cache: true
|
||
|
|
||
|
- name: "Install Grafana"
|
||
|
ansible.builtin.package:
|
||
|
name: "{{ grafana_package }}"
|
||
|
state: "{{ (grafana_version == 'latest') | ternary('latest', 'present') }}"
|
||
|
notify: restart_grafana
|