{"id":15022810,"url":"https://github.com/voxpupuli/puppet-bareos","last_synced_at":"2026-05-27T01:04:37.397Z","repository":{"id":23934660,"uuid":"100138772","full_name":"voxpupuli/puppet-bareos","owner":"voxpupuli","description":"Puppet Module to manage bareos","archived":false,"fork":false,"pushed_at":"2026-05-15T22:30:28.000Z","size":573,"stargazers_count":13,"open_issues_count":21,"forks_count":40,"subscribers_count":36,"default_branch":"master","last_synced_at":"2026-05-16T00:55:50.309Z","etag":null,"topics":["amazon-puppet-module","backup","bareos","centos-puppet-module","debian-puppet-module","hacktoberfest","linux-puppet-module","puppet","puppet-bareos","redhat-puppet-module","ubuntu-puppet-module"],"latest_commit_sha":null,"homepage":"https://forge.puppetlabs.com/project0/bareos","language":"Puppet","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voxpupuli.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"open_collective":"vox-pupuli","github":"voxpupuli"}},"created_at":"2017-08-12T21:31:47.000Z","updated_at":"2026-05-15T22:30:32.000Z","dependencies_parsed_at":"2023-10-16T14:20:53.430Z","dependency_job_id":"f4fae2b2-d0cc-43fe-afde-0dcafaeed205","html_url":"https://github.com/voxpupuli/puppet-bareos","commit_stats":{"total_commits":165,"total_committers":27,"mean_commits":6.111111111111111,"dds":0.7636363636363637,"last_synced_commit":"3684ee4f2baedf9bc36d8b41e57127dea49c506a"},"previous_names":["project0/puppet-bareos"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/voxpupuli/puppet-bareos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-bareos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-bareos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-bareos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-bareos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voxpupuli","download_url":"https://codeload.github.com/voxpupuli/puppet-bareos/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-bareos/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33545459,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"ssl_error","status_checked_at":"2026-05-26T15:22:15.568Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amazon-puppet-module","backup","bareos","centos-puppet-module","debian-puppet-module","hacktoberfest","linux-puppet-module","puppet","puppet-bareos","redhat-puppet-module","ubuntu-puppet-module"],"created_at":"2024-09-24T19:58:24.486Z","updated_at":"2026-05-27T01:04:37.378Z","avatar_url":"https://github.com/voxpupuli.png","language":"Puppet","funding_links":["https://opencollective.com/vox-pupuli","https://github.com/sponsors/voxpupuli"],"categories":[],"sub_categories":[],"readme":"# Bareos Puppet Module\n[![Puppet Forge](http://img.shields.io/puppetforge/v/voxpupuli/bareos.svg)](https://forge.puppetlabs.com/puppet/bareos)\n[![Puppet Forge score](https://img.shields.io/puppetforge/f/voxpupuli/bareos.svg)](https://forge.puppetlabs.com/puppet/bareos)\n![Build Status](https://github.com/voxpupuli/puppet-bareos/actions/workflows/ci.yml/badge.svg?branch=master)\n\n#### Table of Contents\n\n1. [Description](#description)\n1. [Setup requirements](#setup-requirements)\n1. [Reference](#reference)\n  1. [Bareos common](#class-bareos)\n  1. [Client/Filedaemon](#clientfiledaemon)\n  1. [Console (bconsole)](#console)\n  1. [Director](#director)\n  1. [Monitor (Tray)](#monitor)\n  1. [Storage](#storage)\n  1. [Web UI](#webui)\n  1. [Hiera](#hiera)\n1. [Limitations - OS compatibility, etc.](#limitations)\n\n## Description\n\n[Bareos](http://bareos.org/) is a 100% open source fork of the backup project from bacula.org.\n\nThis puppet module configures and manage all aspects of an complex bareos installation. Unfortunately backups cannot be handled on an standard way, so this module tends to be flexible as possible. It is recommend to make familiar with the [documentation](http://doc.bareos.org/master/html/bareos-manual-main-reference.html) of the configuration.\n\nThe bareos project is seperated into different parts which is reflected in this puppet module:\n * Director - Heart of Bareos. The director manages all aspects of where, when and how to backup your systems.\n * Client aka FileDaemon - Daemon which runs on the client to make backup of.\n * Storage - An storage daemon which stores the backups.\n * Console - Bconsole is an cli tool to work with the bareos director.\n * Monitor - Tray Monitor\n * WebUi - An Web Interface to work with the bareos director.\n\n## Setup Requirements\n\nThe module depends on the following puppet modules:\n\n* [Puppetlabs/stdlib](https://forge.puppet.com/puppetlabs/stdlib) - We use the following functions `delete_undef_values` and `downcase`.\n* [Puppetlabs/concat](https://forge.puppet.com/puppetlabs/concat) - Only used for the `webui` configuration.\n* [Puppetlabs/apt](https://forge.puppet.com/puppetlabs/apt) - Repository management for Debian based systems.\n* [Darin/zypprepo](https://forge.puppetlabs.com/darin/zypprepo) - Repository management for OpenSuSE/SLES\n\n## Usage with profiles\n\nA good starting point is too look into the profile classes `bareos::profile::director`,`bareos::profile::storage` and `bareos::profile::client`.\n\nPlease note, this is only the minimal subset of an bareos configuration. You may use only some of the default configurations such like the schedules, messages, filesets or profiles.\n\n*Note that Bareos \u003e= 21 only supports `postgresql` as a DB backend.*\n\n```puppet\n# Install and configure an Director Server\n$storage_password = 'Password of the storage instance',\nclass { 'bareos::profile::director':\n  password     =\u003e 'Password of the director instance itself',\n  catalog_conf =\u003e {\n    'db_name'     =\u003e 'bareos_catalog',\n    'db_address'  =\u003e '127.0.0.1',\n    'db_port'     =\u003e 5432,\n    'db_user'     =\u003e 'user',\n    'db_password' =\u003e 'password'\n  },\n  storage_address =\u003e 'localhost',\n  storage_password =\u003e $storage_password,\n}\n\n# add storage server to the same machine\nclass { 'bareos::profile::storage':\n  password        =\u003e $storage_password,\n  archive_device =\u003e '/var/lib/bareos/storage',\n}\n\n# add the client to the config\n::bareos::director::client { 'bareos-client':\n  description =\u003e 'Your fancy client to backup',\n  password    =\u003e 'MyClientPasswordPleaseChange',\n  address     =\u003e 'fqdn',\n}\n\n# Create an backup job by referencing to the jobDef template.\n::bareos::director::job { 'backup-bareos-client':\n  job_defs =\u003e 'LinuxAll',\n  client   =\u003e 'bareos-client', # which client to assign this job\n}\n```\n\n```puppet\n# Install and configure an Client to backup\nclass { 'bareos::profile::client':\n  name_client =\u003e 'bareos-client',\n  password    =\u003e 'MyClientPasswordPleaseChange',\n}\n```\n## Reference\n\nAll bareos configuration directives are reflected to an puppet define ressource. It has almost the following schema: bareos::**component**::**directive**.\nThere are only three exceptions were a class is used instead of an define: `bareos::client::client`, `bareos::director::director` and `bareos::storage::storage`. They are only allowed to exist once a time in the bareos configuration.\n\nWhile bareos has a lot of configuration settings, most of the documentation and available parameter are inside the puppet manifests. Please consult also the bareos [documentation](http://doc.bareos.org/master/html/bareos-manual-main-reference.html).\n\nThis puppet module tries to cover all aspects of (bareos) type validation on puppet catalog compilation through the puppet parser function `bareos_settings`.\n\n### Class bareos\nThis class manages the bareos common package, user/group, repo and the base configuration directory.\n\nThis class will be automatically included when a resource is defined.\n\nHere you can define various behaviours for your setup.\n```puppet\nclass { 'bareos':\n  repo_release =\u003e '16.2', # Highly recommend to fix your bareos release. Defaults to 'latest'\n  manage_repo =\u003e true, # use the internally shipped repo management\n  manage_user =\u003e true, # manage the bareos user and group (usually also created by the package)\n  manage_package =\u003e true, # setup the bareos-common packge\n  package_name =\u003e 'bareos-common', # change the common package name (can be an array as well),\n  package_ensure =\u003e present, # ensure all packages are present (affects all package components)\n  service_ensure =\u003e running, # ensure all services are running (affects all service components)\n}\n```\n### Client/FileDaemon\n`Class bareos::client`\n\nThis class manages the bareos client (file-daemon) service, packages and configuration directory.\nParameters should be configured in the upper class `::bareos`.\n\nThis class will be automatically included when a resource is defined.\nIt is not intended to be used directly by external resources like node definitions or other modules.\n\n#### Client - Class bareos::client::client\n\nThe Client Resource (or FileDaemon) resource defines the name of the Client (as used by the Director) as well as the port on which the Client listens for Director connections.\n\n#### Director - Define bareos::client::director\n\nThe Director resource defines the name and password of the Directors that are permitted to contact this Client.\n\n#### Messages - Define bareos::client::messages\n\nThe Messages resource defines how messages are to be handled and destinations to which they should be sent.\n\n### Console\n`Class bareos::console`\n\nThis class manages the bareos console (bconsole cli tool) package and configuration directory.\nParameters should be configured in the upper class `::bareos`.\n\nThis class will be automatically included when a resource is defined.\nIt is not intended to be used directly by external resources like node definitions or other modules.\n\n#### Console - Define bareos::console::Console\n\nUsually not required to define. The bareos documentation is almost the same like in the director, but its unclear what it affects regarding the bconsole.\n\nIf someone has more information, feel free to add this info ;-).\n\n#### Director - Define bareos::console::director\n\nThe Director resource defines the attributes of the Director running on the network.\nYou may have multiple Director resource specifications in a single Console configuration file.\nIf you have more than one, you will be prompted to choose one when you start the Console program.\n\n```puppet\n::bareos::console::director { 'bareos-dir':\n  description =\u003e 'Bareos console credentials for director connection',\n  address     =\u003e 'fqdn/ip to director',\n  password    =\u003e 'password',\n}\n```\n\n### Director\n`Class bareos::director`\n\nThis class manages the bareos director service, packages and configuration directory.\nParameters should be configured in the upper class `::bareos`.\n\nThis class will be automatically included when a resource is defined.\nIt is not intended to be used directly by external resources like node definitions or other modules.\n\n#### Director - Class bareos::director::director\n\nTo define the Director's name and its access password used for authenticating the Console program.\nOnly a single Director resource definition may appear in the Director's configuration file.\n\n#### Catalog - Define bareos::director::catalog\n\nTo define in what database to keep the list of files and the Volume names where they are backed up.\nMost people only use a single catalog.\nIt is possible, however not adviced and not supported to use multiple catalogs.\n\n#### Client - Define bareos::director::client\n\nTo define what Client is to be backed up.\nYou will generally have multiple Client definitions.\nEach Job will reference only a single client.\n\n#### Console - Define bareos::director::console\n\nConfigure an **Named Console** aka **Restricted Console**.\nBoth the names and the passwords in these two entries must match much as is the case for Client programs.\n\n#### Counter - Define bareos::director::counter\n\nThe Counter Resource defines a counter variable that can be accessed by variable expansion used for creating Volume labels with the Label Format Dir Pool directive.\n\n#### FileSet - Define bareos::director::fileset\n\nTo define the set of files to be backed up for each Client.\nYou may have any number of FileSets but each Job will reference only one.\n\nFileSets do use `Include Exclude Items`, which are represented by hash. Hash values are only allowed to have other hashes, string values or array of string values.\n\n```puppet\n::bareos::director::fileset {'name':\n  include     =\u003e {\n    'Options' =\u003e {\n      'Signature' =\u003e 'MD5',\n      'WildFile'  =\u003e '/data/db*'\n    },\n    'File'    =\u003e [\n      '/etc/',\n      '/var/lib'\n    ]\n  }\n}\n```\n\n#### Job - Define bareos::director::job\nTo define the backup/restore Jobs and to tie together the Client, FileSet and Schedule resources to be used for each Job.\nNormally, you will Jobs of different names corresponding to each client (i.e. one Job per client, but a different one with a different name for each client).\n\nJobs does have `Run Script`, which is represented by hash. Hash values are only allowed to have other hashes, string values or array of string values (like the Include Exclude Items in Fileset).\n\n```puppet\n::bareos::director::job { 'MyJob':\n  client                   =\u003e 'client resource name to backup'\n  file_set                 =\u003e 'fileset resource name',\n  schedule_res             =\u003e 'Schedule resource name'\n  storage                  =\u003e 'storage resource name' or ['first storage', 'second storage'],\n  pool                     =\u003e 'Incremental',\n  messages                 =\u003e 'Standard',\n  priority                 =\u003e 10,\n  write_bootstrap          =\u003e '/var/lib/bareos/%c.bsr',\n  full_backup_pool         =\u003e 'Full',\n  differential_backup_pool =\u003e 'Differential',\n  incremental_backup_pool  =\u003e 'Incremental',\n  run_script               =\u003e {\n    'console'         =\u003e '\"update jobid=%i jobtype=A\"'\n    'Runs When'       =\u003e 'After',\n    'Runs On Client'  =\u003e 'No',\n    'Runs on Failure' =\u003e 'No',\n  }\n}\n```\n#### JobDefs - Define bareos::director::jobdefs\nJobDefs are optional resources for providing defaults for Job resources.\n\nAlmost the same like `Job`.\n\n#### Messages - Define bareos::director::messages\n\nTo define where error and information messages are to be sent or logged.\nYou may define multiple different message resources and hence direct particular classes of messages to different users or locations (files, ...).\n\n#### Pool - Define bareos::director::pool\n\nTo define the pool of Volumes that can be used for a particular Job.\nMost people use a single default Pool.\nHowever, if you have a large number of clients or volumes, you may want to have multiple Pools.\nPools allow you to restrict a Job (or a Client) to use only a particular set of Volumes.\n\n#### Profile - Define bareos::director::profile\n\nThe Profile Resource defines a set of ACLs.\nConsole Resources can be tight to one or more profiles, making it easier to use a common set of ACLs.\n\n\n#### Schedule - Define bareos::director::schedule\n\nThe Schedule resource provides a means of automatically scheduling a Job\n as well as the ability to override the default Level, Pool, Storage and Messages resources.\nIf a Schedule resource is not referenced in a Job, the Job can only be run manually.\nIn general, you specify an action to be taken and when.\n\n#### Storage - Define bareos::director::storage\n\nTo define on what physical device the Volumes should be mounted.\nYou may have one or more Storage definitions.\n\n### Monitor\n`Class bareos::monitor`\n\nThis class manages the bareos (tray-) monitor package and configuration directory.\nParameters should be configured in the upper class `::bareos`.\n\nThis class will be automatically included when a resource is defined.\nIt is not intended to be used directly by external resources like node definitions or other modules.\n\n#### Client - Define bareos::monitor::client\nThe Client resource defines the attributes of the Clients that are monitored by this Monitor.\n\n#### Director - Define bareos::monitor::director\nThe Director resource defines the attributes of the Directors that are monitored by this Monitor.\n\n#### Monitor - Define bareos::monitor::monitor\nThe Monitor resource defines the attributes of the Monitor running on the network.\nThe parameters you define here must be configured as a Director resource\nin Clients and Storages configuration files, and as a Console resource in Directors configuration files.\n\n#### Storage - Define bareos::monitor::storage\nThe Storage resource defines the attributes of the Storages that are monitored by this Monitor.\n\n### Storage\n`Class bareos::storage`\n\nThis class manages the bareos storage service, packages and configuration directory.\nParameters should be configured in the upper class `::bareos`.\n\nThis class will be automatically included when a resource is defined.\nIt is not intended to be used directly by external resources like node definitions or other modules.\n\n#### Storage - Class bareos::storage::storage\n\nIn general, the properties specified under the Storage resource define global properties of the Storage daemon.\n\n#### Autochange - Define bareos::storage::autochanger\n\nThe Autochanger resource supports single or multiple drive autochangers\nby grouping one or more Device resources into one unit called an autochanger in Bareos\n(often referred to as a \"tape library\" by autochanger manufacturers).\n\n#### Device - Define bareos::storage::device\n\nThe Device Resource specifies the details of each device (normally a tape drive) that can be used by the Storage daemon.\nThere may be multiple Device resources for a single Storage daemon.\nIn general, the properties specified within the Device resource are specific to the Device.\n\n#### Director - Define bareos::storage::director\n\nThe Director resource specifies the Name of the Director which is permitted to use the services of the Storage daemon.\nThere may be multiple Director resources.\nThe Director Name and Password must match the corresponding values in the Director's configuration file.\n\n#### Messages - Define bareos::storage::messages\n\nThe Messages resource defines how messages are to be handled and destinations to which they should be sent.\n\n#### NDMP - Define bareos::storage::ndmp\n\nThe NDMP Resource specifies the authentication details of each NDMP client.\nThere may be multiple NDMP resources for a single Storage daemon.\nIn general, the properties specified within the NDMP resource are specific to one client.\n\n### WebUI\n`Class bareos::webui`\n\nThis class manages the bareos webui service, package and configuration.\n\nThis class will be automatically included when a resource is defined.\n\n#### Director - Define bareos::webui::director\n\nConfigures an director to use with the webui.\n\nAdditional configuration is required on the **Director** server.\n```puppet\n# Allow access from the webui to the director\n\n# Add user admin\n::bareos::director::console { 'admin':\n  password =\u003e 'admin',\n  profile  =\u003e 'webui-admin',\n}\n\n::bareos::director::profile {'webui-admin':\n  description        =\u003e 'bareos-webui webui-admin profile resource.',\n  command_acl        =\u003e [\n    '!.bvfs_clear_cache, !.exit, !.sql',\n    '!configure, !create, !delete, !purge, !sqlquery, !umount, !unmount',\n    '*all*',\n  ],\n  catalog_acl        =\u003e '*all*',\n  client_acl         =\u003e '*all*',\n  file_set_acl       =\u003e '*all*',\n  job_acl            =\u003e '*all*',\n  plugin_options_acl =\u003e '*all*',\n  pool_acl           =\u003e '*all*',\n  schedule_acl       =\u003e '*all*',\n  storage_acl        =\u003e '*all*',\n  where_acl          =\u003e '*all*',\n}\n```\n\n### Hiera\nSince define ressource are used in the module they can not be used directly via hiera. Execptions are ofcourse the three classes mentioned in [Reference](#reference).\nBut there exist hashes for the configuration directives in the `bareos::director` and the `bareos::webui` classes which can be used via hiera.\n\n```\nclasses:\n  - bareos::director\nbareos::director::director::name_director: 'example'\nbareos::director::director::password: 'foobar'\nbareos::director::catalogs:\n  'testing':\n    db_name: 'test'\nbareos::director::clients:\n  'alice':\n    address: foo.bar\n    password: foobar\nbareos::director::jobs:\n  'backup-alice':\n    messages: testing\n    pool: testing\n    type: backup\n    client: alice\n    file_set: testing\n```\n\n## Limitations\n\nThis module is built upon and tested against the versions of Puppet listed in the metadata.json file (i.e. the listed compatible versions on the Puppet Forge).\n\nOS Limitations hardly depends on the availability of the bareos packages in the bareos [repository](http://download.bareos.org/bareos/release/) and the available release. Currently it has been tested on Ubuntu 14.04 and 16.04 and RHEL/CentOS/Rocky/AlmaLinux 8.\n\n## Module Migration\n\nThis puppet module was originally hosted at https://github.com/Project0/puppet-bareos and has been migrated to Vox Pupuli.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-bareos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoxpupuli%2Fpuppet-bareos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-bareos/lists"}