| @@ -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> | |||