Ansible Role to provision Zoneminder IP-CAM Servers
Go to file
anon8675309 a6ed26d4cf
Merge 4ab695e8d0 into fa385ffe78
2025-05-05 13:10:38 +00:00
.github update ci 2025-02-15 13:32:07 +01:00
defaults/main added option to override the version of PHP 2025-02-06 10:35:14 -06:00
filter_plugins fixed filter plugins that are used by submodules but not available 2025-02-06 09:44:14 -06:00
meta changed namespace to import to ansible galaxy 2025-02-06 08:55:21 -06:00
molecule/default update default cert-type to snakeoil 2024-08-05 21:51:52 +02:00
tasks merged up upstream changes 2025-02-06 08:47:13 -06: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
.pylintrc update pylint config 2024-10-06 13:40:26 +02:00
.yamllint update ci 2025-02-15 13:32:07 +01:00
LICENSE.txt update role license 2024-07-21 07:14:37 +02:00
README.md update ci 2025-02-15 09:25:38 +01:00
playbook.yml added github workflow for linting 2023-07-14 18:17:17 +02:00
requirements.yml feat: allow specifying filename of your apache config file 2023-03-10 15:12:26 -06:00
requirements_lint.txt added github workflow for linting 2023-07-14 18:17:17 +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.

Lint Ansible Galaxy

Molecule Integration-Tests:

Internal CI: Tester Role | Jobs API

Tested:

  • Debian 11
  • Debian 12

Install

# latest
ansible-galaxy role install git+https://github.com/ansibleguy/sw_zoneminder

# from galaxy
ansible-galaxy install ansibleguy.sw_zoneminder

# or to custom role-path
ansible-galaxy install ansibleguy.sw_zoneminder --roles-path ./roles

# install dependencies
ansible-galaxy install -r requirements.yml

Advertisement


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/snakeoil
      #  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

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