Ansible Role to provision Zoneminder IP-CAM Servers
Go to file
AnsibleGuy 08ab44fd4e lint fixes 2023-01-05 21:38:08 +01:00
.github updated funding options 2022-08-06 12:34:40 +02:00
defaults/main fixed database password generation and meta, updated molecule-config 2022-08-12 16:58:13 +02:00
meta updated molecule, linting and meta 2022-08-12 18:58:06 +02:00
molecule/default molecule updates 2022-08-13 22:13:45 +02:00
tasks fixed edge-case 2022-08-16 22:22:20 +02:00
templates/etc fixed database password generation and meta, updated molecule-config 2022-08-12 16:58:13 +02:00
.ansible-lint.yml lint fixes 2023-01-05 21:38:08 +01:00
.yamllint updated molecule, linting and meta 2022-08-12 18:58:06 +02:00
LICENSE.txt init 2022-05-11 20:41:04 +02:00
README.md typo 2022-08-16 17:20:44 +02:00
playbook.yml added basic testing, fixes 2022-05-12 14:26:04 +02:00
requirements.yml updated molecule, linting and meta 2022-08-12 18:58:06 +02:00

README.md

ZoneMinder

Ansible Role - ZoneMinder

Ansible Role to deploy a ZoneMinder IP-CAM server.

Read into the official documentation on how to add ip-cams and so on.

Molecule Test Status YamlLint Test Status Ansible-Lint Test Status Ansible Galaxy Ansible Galaxy Downloads

Tested:

  • Debian 11

Functionality

  • Package installation

    • ZoneMinder Server
  • Configuration

    • Default opt-ins:

      • Database setup
      • Webserver setup
    • Default opt-outs:

      • Admin-tools
    • Default config:

      • Logging to syslog
      • Self-Signed certificate

Info

  • Note: this role currently only supports debian-based systems

  • Note: Most of the role's functionality can be opted in or out.

    For all available options - see the default-config located in the main defaults-file!

  • Warning: You should AT LEAST set a login password after the installation finished.

Setup

For this role to work - you must install its dependencies first:

ansible-galaxy install -r requirements.yml

Usage

Config

Define the zoneminder dictionary as needed.

Example for a zoneminder server:

zoneminder:
  timezone: 'Europe/Vienna'
  tools: true  # install useful admin-tools
  
  apache:
    domain: 'zoneminder.template.ansibleguy.net'
    aliases: ['zm.template.ansibleguy.net']

    ssl:
      mode: 'letsencrypt'  # or selfsigned/ca
      #  if you use 'selfsigned' or 'ca':
      #    cert:
      #      cn: 'ZoneMinder Server'
      #      org: 'AnsibleGuy'
      #      email: 'zoneminder@template.ansibleguy.net'
    letsencrypt:
      email: 'zoneminder@template.ansibleguy.net'
  
  

Bare minimum example:

zoneminder:
  apache:
    domain: 'zoneminder.template.ansibleguy.net' 

You might want to use 'ansible-vault' to encrypt your passwords:

ansible-vault encrypt_string

Execution

Run the playbook:

ansible-playbook -K -D -i inventory/hosts.yml playbook.yml --ask-vault-pass

There are also some useful tags available:

  • config