grafana: First version of role
This commit is contained in:
parent
613beb7ddf
commit
81a68720ea
6 changed files with 129 additions and 0 deletions
5
roles/grafana/handlers/main.yml
Normal file
5
roles/grafana/handlers/main.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
- name: restart grafana
|
||||
ansible.builtin.service:
|
||||
name: grafana-container
|
||||
state: restarted
|
3
roles/grafana/meta/main.yml
Normal file
3
roles/grafana/meta/main.yml
Normal file
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
dependencies:
|
||||
- {role: podman}
|
67
roles/grafana/tasks/main.yml
Normal file
67
roles/grafana/tasks/main.yml
Normal file
|
@ -0,0 +1,67 @@
|
|||
---
|
||||
- name: create group
|
||||
ansible.builtin.group:
|
||||
name: grafana
|
||||
|
||||
- name: create user
|
||||
ansible.builtin.user:
|
||||
name: grafana
|
||||
comment: Podman Grafana
|
||||
group: grafana
|
||||
shell: /sbin/nologin
|
||||
|
||||
- name: copy host key
|
||||
ansible.builtin.copy:
|
||||
dest: "{{ tls_private }}/grafana.key"
|
||||
src: "{{ tls_private }}/{{ inventory_hostname }}.key"
|
||||
mode: 0640
|
||||
owner: root
|
||||
group: grafana
|
||||
remote_src: true
|
||||
|
||||
- name: create service config
|
||||
ansible.builtin.template:
|
||||
dest: /etc/sysconfig/grafana-container
|
||||
src: grafana-container.sysconfig.j2
|
||||
mode: 0600
|
||||
owner: root
|
||||
group: "{{ ansible_wheel }}"
|
||||
notify: restart grafana
|
||||
|
||||
- name: create service file
|
||||
ansible.builtin.template:
|
||||
dest: /etc/systemd/system/grafana-container.service
|
||||
src: grafana-container.service.j2
|
||||
mode: 0644
|
||||
owner: root
|
||||
group: "{{ ansible_wheel }}"
|
||||
notify: restart grafana
|
||||
|
||||
- name: create ldap config
|
||||
ansible.builtin.template:
|
||||
dest: /etc/grafana-ldap.toml
|
||||
src: grafana-ldap.toml.j2
|
||||
mode: 0640
|
||||
owner: root
|
||||
group: grafana
|
||||
notify: restart grafana
|
||||
|
||||
- name: enable service
|
||||
ansible.builtin.service:
|
||||
name: grafana-container
|
||||
state: started
|
||||
enabled: true
|
||||
|
||||
- name: copy nginx config
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/nginx/conf.d/{{ inventory_hostname }}/grafana-container.conf
|
||||
content: |
|
||||
location /grafana/ {
|
||||
proxy_set_header Host noc.foo.sh;
|
||||
proxy_pass http://localhost:8002/;
|
||||
}
|
||||
mode: 0644
|
||||
owner: root
|
||||
group: "{{ ansible_wheel }}"
|
||||
notify: restart nginx
|
||||
|
17
roles/grafana/templates/grafana-container.service.j2
Normal file
17
roles/grafana/templates/grafana-container.service.j2
Normal file
|
@ -0,0 +1,17 @@
|
|||
[Unit]
|
||||
Description=Grafana Container
|
||||
|
||||
[Service]
|
||||
User=grafana
|
||||
EnvironmentFile=/etc/sysconfig/grafana-container
|
||||
ExecStart=/usr/bin/podman run --rm -p 127.0.0.1:8002:3000 --name grafana \
|
||||
--volume={{ tls_certs }}/ca.crt:/etc/ssl/certs/ca.crt:ro \
|
||||
--volume={{ tls_certs }}/{{ inventory_hostname }}.crt:/etc/ssl/certs/{{ inventory_hostname }}.crt:ro \
|
||||
--volume={{ tls_private }}/grafana.key:/etc/ssl/private/{{ inventory_hostname }}.key:ro \
|
||||
--volume=/etc/grafana-ldap.toml:/etc/grafana/ldap.toml:ro \
|
||||
--env=GF_* docker.io/grafana/grafana:9.0.2
|
||||
ExecStop=/usr/bin/podman stop grafana
|
||||
KillMode=none
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
13
roles/grafana/templates/grafana-container.sysconfig.j2
Normal file
13
roles/grafana/templates/grafana-container.sysconfig.j2
Normal file
|
@ -0,0 +1,13 @@
|
|||
GF_DATABASE_TYPE=mysql
|
||||
GF_DATABASE_HOST=sqldb02.home.foo.sh
|
||||
GF_DATABASE_NAME=grafana
|
||||
GF_DATABASE_USER=grafana
|
||||
GF_DATABASE_PASSWORD={{ grafana_mysql_pass }}
|
||||
GF_DATABASE_SSL_MODE=true
|
||||
GF_DATABASE_SERVER_CERT_NAME=sqldb02.home.foo.sh
|
||||
GF_DATABASE_CA_CERT_PATH=/etc/ssl/certs/ca.crt
|
||||
GF_DATABASE_CLIENT_KEY_PATH=/etc/ssl/private/{{ inventory_hostname }}.key
|
||||
GF_DATABASE_CLIENT_CERT_PATH=/etc/ssl/certs/{{ inventory_hostname }}.crt
|
||||
|
||||
GF_AUTH_LDAP_ENABLED=true
|
||||
GF_AUTH_LDAP_ALLOW_SIGN_UP=true
|
24
roles/grafana/templates/grafana-ldap.toml.j2
Normal file
24
roles/grafana/templates/grafana-ldap.toml.j2
Normal file
|
@ -0,0 +1,24 @@
|
|||
[[servers]]
|
||||
host = "ldap.foo.sh"
|
||||
port = 636
|
||||
use_ssl = true
|
||||
ssl_skip_verify = false
|
||||
client_cert = "/etc/ssl/certs/{{ inventory_hostname }}.crt"
|
||||
client_key = "/etc/ssl/private/{{ inventory_hostname }}.key"
|
||||
search_filter = "(uid=%s)"
|
||||
search_base_dns = ["{{ ldap_basedn }}"]
|
||||
bind_dn = "uid=%s,ou=People,{{ ldap_basedn }}"
|
||||
|
||||
group_search_filter = "(&(objectClass=groupOfUniqueNames)(uniqueMember=%s))"
|
||||
group_search_base_dns = ["ou=Groups,{{ ldap_basedn }}"]
|
||||
group_search_filter_user_attribute = "dn"
|
||||
|
||||
[[servers.group_mappings]]
|
||||
group_dn = "cn=sysadm,ou=Groups,{{ ldap_basedn }}"
|
||||
org_role = "Admin"
|
||||
|
||||
[servers.attributes]
|
||||
name = "givenName"
|
||||
surname = "sn"
|
||||
username = "uid"
|
||||
email = "mail"
|
Loading…
Add table
Reference in a new issue