Giter VIP home page Giter VIP logo

puppet-baculaweb's Introduction

Continous Integration Puppet Forge Puppet Forge Downloads

puppet-baculaweb

Table of Contents

Overview

This module install and configures Bacula-Web, a web based reporting and monitoring tool for Bacula.

Requirements

  • Bacula-Web 8.6.0 or later (due to breaking changes in this release)
  • A webservice like Apache or Nginx, puppetlabs/apache is recommended.
  • A supported version of PHP (PHP-FPM is strongly recommended), puppet/php is recommended.

Beginning with baculaweb

All parameters for the baculaweb module are contained within the main baculaweb class, so for any function of the module, set the options you want. All configuration parameters can be assigned hiera. The default values are also lookuped up by hiera. See the common usages below for examples.

Usage

Install and enable baculaweb

include baculaweb

Default User and Password for fresh installs

After installation the default user is admin and the default password is password. You should change this after installation.

See: https://docs.bacula-web.org/en/latest/02_install/finalize.html#reset-user-password

The default application.db is only deployed once. Data is persisted between upgrades in baculaweb::data_dir.

Configure bacula catalog databases

To get baculaweb up and running configure at least one bacula catalog database with the paramter catalog_db.

See the following example for the different catalog database types:

class { 'baculaweb':
  catalog_db => [
    {
      'label'    => 'EXAMPLE: MySQL backup catalog',
      'host'     => 'localhost',
      'login'    => 'bacula',
      'password' => 'verystrongpassword',
      'db_name'  => 'bacula',
      'db_type'  => 'mysql',
      'db_port'  => 3306,
    },
    {
      'label'    => 'EXAMPLE: PostgreSQL backup catalog',
      'host'     => 'localhost',
      'login'    => 'bacula',
      'password' => 'verystrongpassword',
      'db_name'  => 'bacula',
      'db_type'  => 'mysql',
      'db_port'  => 3306,
    },
    {
      'label'   => 'EXAMPLE: SQLite backup catalog',
      'db_name' => '/path/to/database',
      'db_type' => 'sqlite',
    },
  ]
}

Using Hiera:

baculaweb::catalog_db:
  - label: 'EXAMPLE: MySQL backup catalog'
    host: 'localhost'
    login: 'bacula'
    password: 'verystrongpassword'
    db_name: 'bacula'
    db_type: 'mysql'
    db_port: 3306
  - label: 'EXAMPLE: PostgreSQL backup catalog'
    host: 'localhost'
    login: 'bacula'
    password: 'verystrongpassword'
    db_name: 'bacula'
    db_type: 'pgsql'
    db_port: 5432
  - label: 'EXAMPLE: SQLite backup catalog'
    db_name: '/path/to/database'
    db_type: 'sqlite'

Configure custom installation options

Configure custom directories, ownerships and version:

class { 'baculaweb':
  version           => '8.6.3'
  root_dir          => '/var/www/html/bacula-web',
  extract_base_dir  => '/opt/bacula-web',
  user              => 'apache',
  group             => 'apache'
}

Using Hiera:

baculaweb:
  version: '8.6.3'
  root_dir: '/var/www/html/bacula-web'
  extract_base_dir: '/opt/bacula-web'
  user: 'apache'
  group: 'apache'

Configure baculaweb

You find an overview of the baculaweb settings here: http://docs.bacula-web.org/en/latest/02_install/configure.html

See the following example to configure the settings:

class { 'baculaweb':
  language              => 'en_US',
  hide_empty_pools      => true,
  show_inactive_clients => true,
  datetime_format       => 'Y-m-d H:i:s',
  enable_users_auth     => false,
  debug                 => false,
  catalog_db            => [
    {
      'label'    => 'MySQL backup catalog',
      'host'     => 'localhost',
      'login'    => 'bacula',
      'password' => 'verystrongpassword',
      'db_name'  => 'bacula',
      'db_type'  => 'mysql',
      'db_port'  => 3306,
    },
  ]
}

Using Hiera:

baculaweb:
  language: 'en_US'
  hide_empty_pools: true
  show_inactive_clients: true
  datetime_format: 'Y-m-d H:i:s'
  enable_users_auth: false
  debug: false
  catalog_db:
    - label: 'MySQL backup catalog'
      host: 'localhost'
      login: 'bacula'
      password: 'verystrongpassword'
      db_name: 'bacula'
      db_type: 'mysql'
      db_port: 3306

Reference

See REFERENCE.md

Limitations

For a list of supported operating systems, see metadata.json

Development

This module uses puppet_litmus for running acceptance tests.

Running acceptance tests

Create test environment:

./scripts/create_test_env

Run the acceptance tests:

./scripts/acceptance_tests

(Optional) Access the baculaweb application (user/pw: admin/password):

http://127.0.0.1:8091/bacula-web

Remove the test environment:

./scripts/remove_test_env

Running unit tests

./scripts/unit_tests

Release module to Puppet Forge

Prepare

First prepare the release with:

./scripts/release_prep

This will set the version in metadata.json, create REFERENCE.md and CHANGELOG.md.

Commit and push

Then commit the changes and push them to the repository.

configure github actions secrets

https://github.com/markt-de/puppet-opnsense/settings/secrets/actions

Ensure that the following secrets are set in the github repository:

  • FORGE_API_KEY (your puppet forge api key)

Run github actions release workflow

Then run github actions pipeline "Publish module to puppet forge" from main branch to release the module to the forge:

https://github.com/markt-de/puppet-baculaweb/actions/workflows/release.yaml

Contributing

Please use the GitHub issues functionality to report any bugs or requests for new features. Feel free to fork and submit pull requests for potential contributions.

All contributions must pass all existing tests, new features should provide additional unit/acceptance tests.

puppet-baculaweb's People

Contributors

andreas-stuerz avatar fraenki avatar lightning- avatar

Forkers

gutierrezjeremy

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.