@@ -1,3 +1,35 @@ | |||
# librenms | |||
# Ansible role to deploy librenms on debian | |||
ansible role to deploy librenms on debian | |||
## Requirement | |||
You need a debian OS (tested on debian 10). You will also need apache installed | |||
on the same host and a mysql database. | |||
## Variables (in defaults) | |||
* **librenms_user** - default value: librenms | |||
* **librenms_group** - default value: "{{librenms_user}}" | |||
* **librenms_home** - default value: /opt/librenms | |||
* **librenms_db_host** - default value: 127.0.0.1:3306 | |||
* **librenms_db_name** - default value: librenms | |||
* **librenms_db_user** - default value: librenms | |||
* **librenms_db_pass** - default value: xai6oa8va7mai7ChaeTu | |||
* **librenms_fqdn** - default value: localhost | |||
* **librenms_apache_template** - default value: librenms.conf.j2 | |||
* **librenms_cert_file** - default value: "/etc/ssl/certs/ssl-cert-snakeoil.pem" | |||
* **librenms_key_file** - default value: "/etc/ssl/private/ssl-cert-snakeoil.key" | |||
* **librenms_tls** - default value: yes | |||
* **librenms_http_port** - default value: 443 | |||
* **librenms_version** - default value: master | |||
* **librenms_deb_packages** - list of packages, go check defaults/main.yml | |||
## Example playbook | |||
Go an check the playbook directory | |||
## Role philosophy | |||
* KISS: Keep it simple Smart-Guy | |||
* Only support what you need. No magic | |||
* If you need to fix/troubleshoot or manual install, just go an check the task | |||
and defaults directories. It should be easy to follow the steps |
@@ -0,0 +1,43 @@ | |||
--- | |||
librenms_user: librenms | |||
librenms_group: "{{librenms_user}}" | |||
librenms_home: /opt/librenms | |||
librenms_db_host: 127.0.0.1:3306 | |||
librenms_db_name: librenms | |||
librenms_db_user: librenms | |||
librenms_db_pass: xai6oa8va7mai7ChaeTu | |||
librenms_fqdn: localhost | |||
librenms_apache_template: librenms.conf.j2 | |||
librenms_cert_file: "/etc/ssl/certs/ssl-cert-snakeoil.pem" | |||
librenms_key_file: "/etc/ssl/private/ssl-cert-snakeoil.key" | |||
librenms_tls: yes | |||
librenms_http_port: 443 | |||
librenms_version: master | |||
librenms_deb_packages: | |||
- curl | |||
- composer | |||
- fping | |||
- git | |||
- graphviz | |||
- imagemagick | |||
- libapache2-mod-php7.3 | |||
- mtr-tiny | |||
- nmap | |||
- php7.3-cli | |||
- php7.3-curl | |||
- php7.3-gd | |||
- php7.3-json | |||
- php7.3-mbstring | |||
- php7.3-mysql | |||
- php7.3-snmp | |||
- php7.3-xml | |||
- php7.3-zip | |||
- python-memcache | |||
- python-mysqldb | |||
- rrdtool | |||
- snmp | |||
- snmpd | |||
- whois | |||
- ssl-cert |
@@ -0,0 +1,58 @@ | |||
--- | |||
- name: install debian packages | |||
apt: | |||
name: "{{librenms_deb_packages}}" | |||
state: present | |||
- name: create librenms user | |||
user: | |||
name: "{{librenms_user}}" | |||
comment: "LibreNMS system user" | |||
shell: /bin/bash | |||
password_lock: yes | |||
home: "{{librenms_home}}" | |||
group: www-data | |||
system: yes | |||
- name: clone git repo | |||
git: | |||
repo: https://github.com/librenms/librenms.git | |||
dest: "{{librenms_home}}" | |||
version: "{{librenms_version}}" | |||
become: yes | |||
become_user: "{{librenms_user}}" | |||
- name: enable apache modules | |||
apache2_module: | |||
state: present | |||
name: "{{item}}" | |||
loop: | |||
- rewrite | |||
notify: | |||
- restart apache | |||
- name: deploy apache template | |||
template: | |||
src: "{{librenms_apache_template}}" | |||
dest: /etc/apache2/sites-available/librenms.conf | |||
notify: | |||
- restart apache | |||
- name: enablre librenms site | |||
file: | |||
src: /etc/apache2/sites-available/librenms.conf | |||
dest: /etc/apache2/sites-enabled/librenms.conf | |||
state: link | |||
notify: | |||
- restart apache | |||
- name: configure snmpd | |||
debug: msg="TBD" | |||
- name: configure cron | |||
debug: msg="TBD" | |||
- name: configure logrotate | |||
debug: msg="TBD" |
@@ -0,0 +1,17 @@ | |||
<VirtualHost *:{{librenms_http_port> | |||
DocumentRoot "{{librenms_home}}/html/" | |||
ServerName "{{librenms_fqdn}}" | |||
{% if librenms_tls %} | |||
SSLEngine on | |||
SSLCertificateFile "{{nextcloud_cert_file}}" | |||
SSLCertificateKeyFile "{{nextcloud_key_file}}" | |||
{% endif %} | |||
AllowEncodedSlashes NoDecode | |||
<Directory "{{librenms_home}}/html/"> | |||
Require all granted | |||
AllowOverride All | |||
Options FollowSymLinks MultiViews | |||
</Directory> | |||
</VirtualHost> |