반응형
prometheus와 grafana 연동을 위해 grafana 설치에 대한 playbook 내용입니다.
별도의 vm을 생성해서 구성하려다 prometheus VM에 grafana를 설치하도록 하였습니다.
grafana 접속 및 대쉬보드 구성, prometheus 연동은 이전에 했던 것과 같이 직접 접속해서 구성하였습니다.
해당 playbook 파일은 ansible-grafana github에서 다운받을 수 있습니다.
https://github.com/hkjeon/ansible-grafana.git
## 환경 정보
node_exporter : xx.xx.xx.4 (RHEL 8.4 / kvmhost)
ansible-controller : xx.xx.xx.5 (RHEL 8.4)
prometheus (/w grafana) : xx.xx.xx.6 (RHEL 8.4)
1. main.yml 생성
[root@hk-controller ansible-grafana]#pwd
/root/ansible-playbook/ansible-grafana
[root@hk-controller ansible-grafana]#cat main.yaml
---
- hosts: grafana
become: false
gather_facts: false
roles:
- install
2. install roles 생성
[root@hk-controller ansible-grafana]#ansible-galaxy init roles/install
3. role에서 사용할 변수 내용 구성
[root@hk-controller defaults]#pwd
/root/ansible-playbook/ansible-grafana/roles/install/defaults
[root@hk-controller defaults]#cat main.yml
---
# defaults file for roles/install
grafana_ip: xx.xx.xx.6
4. templates 파일 구성 (grafana http port 파일과 grafana repo 템플릿)
[root@hk-controller templates]#pwd
/root/ansible-playbook/ansible-grafana/roles/install/templates
[root@hk-controller templates]#cat grafana.ini.j2
http_port = 3000
[root@hk-controller templates]#cat grafana.repo.j2
{{ ansible_managed | comment }}
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
5. task 작성
[root@hk-controller tasks]#pwd
/root/ansible-playbook/ansible-grafana/roles/install/tasks
[root@hk-controller tasks]#cat main.yml
---
- name: Install dependencies for grafana
yum:
name: "{{ item }}"
state: latest
with_items:
- initscripts
- net-tools
- vim
- tcpdump
- urw-fonts
- wget
- name: Add Grafana Repository
template:
src: grafana.repo.j2
dest: /etc/yum.repos.d/grafana.repo
owner: root
group: root
mode: 0644
- name: Configuration Grafana HTTP Port
template:
src: grafana.ini.j2
dest: /etc/grafana/grafana.ini
- name: Install the latest version of Grafana.
yum:
name: grafana
state: latest
notify:
- restart grafana-server
- name: enable for grafana
systemd:
name: grafana-server
enabled: true
state: started
- name: Check Port 3000 for Grafana Dashboard
shell:
cmd: "/usr/bin/curl --connect-timeout 10 --silent --show-error '{{ grafana_ip }}':3000"
warn: no
executable: /bin/bash
register: check_port
- name: Check port 3000 result
debug:
msg:
- "{{ check_port.stdout }}"
6. handler 작성
[root@hk-controller handlers]#pwd
/root/ansible-playbook/ansible-grafana/roles/install/handlers
[root@hk-controller handlers]#cat main.yml
---
- name: restart grafana-server service
become: true
systemd:
name: grafana-server
state: restarted
7. hosts 생성
[root@hk-controller ansible-grafana]#pwd
/root/ansible-playbook/ansible-grafana
[root@hk-controller ansible-grafana]#cat hosts
[grafana]
xx.xx.xx.6
8. 실행방법
[root@hk-controller ansible-grafana]#pwd
/root/ansible-playbook/ansible-grafana
[root@hk-controller ansible-grafana]#ansible-playbook main.yaml
9. grafana 접속 및 대쉬보드 구성, prometheus 연동방법 아래 글 참고
https://hkjeon2.tistory.com/83?category=949389
10. 연동 및 구성 결과
728x90
'IaC (Automation) > Ansible-Playbook' 카테고리의 다른 글
[playbook] kvm에 vm 생성하는 playbook (0) | 2021.10.13 |
---|---|
[playbook] kvm (virt-manager) 설치 playbook (0) | 2021.10.13 |
[playbook] node_exporter 설치 playbook (0) | 2021.10.08 |
[playbook] Prometheus 설치 playbook (0) | 2021.10.08 |
[Ansible] import vs include 차이점 (0) | 2021.07.29 |