#!/usr/bin/ansible-playbook # vim:ft=ansible: --- - name: Install, configure, and start Grafana block: - name: Create and configure DB block: - name: Create DB mysql_db: name: grafana login_user: root login_password: "{{ mysql_root_password }}" state: present - name: Create user mysql_user: name: grafana host: localhost password: "{{ grafana_mysql_password }}" priv: "grafana.*:ALL,GRANT" login_user: root login_password: "{{ mysql_root_password }}" - name: Set up Apache block: - name: Enable modules command: cmd: a2enmod "{{ item }}" creates: "/etc/apache2/mods-enabled/{{ item }}.load" loop: - proxy - proxy_http notify: restart apache - name: Template out vhost template: src: "apache2-vhost-ssl.conf" dest: "/etc/apache2/sites-available/{{ grafana_url }}.conf" notify: restart apache - name: Create webroot file: state: directory path: "{{ grafana_webroot }}" - name: Enable site command: cmd: "a2ensite {{ grafana_url }}.conf" creates: "/etc/apache2/sites-enabled/{{ grafana_url }}.conf" notify: restart apache - name: Generate certificate include_role: name: https vars: website_url: "{{ grafana_url }}" - name: Add and configure packages block: - name: Add APT signing key apt_key: url: "https://packages.grafana.com/gpg.key" - name: Add APT repo apt_repository: repo: "deb https://packages.grafana.com/oss/deb stable main" - name: Install Grafana apt: name: - grafana - name: Configure Grafana template: src: "grafana.ini" dest: "/etc/grafana/grafana.ini" mode: "0640" - name: Enable Grafana systemd: daemon_reload: yes name: "grafana-server.service" enabled: yes state: "started" become: yes