ansible-role-bareos/README.md

160 lines
4.6 KiB
Markdown
Raw Permalink Normal View History

2021-09-12 09:55:41 +00:00
# Ansible role: Bareos
2021-09-12 09:57:38 +00:00
[![Version](https://img.shields.io/badge/latest_version-1.0.0-green.svg)](https://git.yaegashi.fr/nishiki/ansible-role-bareos/releases)
2021-09-12 09:55:41 +00:00
[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](https://git.yaegashi.fr/nishiki/ansible-role-bareos/src/branch/master/LICENSE)
Install and configure the bareos client, server and storage
## Requirements
* Ansible >= 2.9
* Debian Buster
## Role variables
## General
- `bareos_version` - the bareos version to install (default: `19.2`)
- `bareos_distribution_major_version` - (default: `{{ ansible_distribution_major_version }}`)
- `bareos_server_name` - the bareos server name (default: `bareos`)
- `bareos_server_password` - the bareos server password
## Client
- `bareos_client` - install bareos client (default: `true`)
- `bareos_client_name` - set the client name (default: `{{ inventory_hostname_short }}`)
- `bareos_client_max_concurrent_jobs` - set the number max concurrent job (default: `2`)
### Server
- `bareos_server` - install bareos directory (default: `false`)
- `bareos_server_max_concurrent_jobs` - set the number max concurrent jobs (default: `10`)
- `bareos_server_heartbeat_interval` - set the heartbeat interval (default: `1 min`)
- `bareos_server_console_password` - set the console password
- `bareos_server_database_type` - set the database type: sqlite3 or postgresql (default: `postgresql`)
- `bareos_server_database_name` - set the database name (default: `bareos`)
- `bareos_server_database_user` - set the database user (default: `bareos`)
- `bareos_server_database_host` - set the database host
- `bareos_server_database_password` - set the database password
- `bareos_server_filesets` - hash with the filesets definitions (see all fileset options in [bareos documentation](https://docs.bareos.org/Configuration/Director.html#fileset-options-ressource)
```
root:
path: /
options:
compression: GZIP
excludes:
- /proc
- /sys
```
- `bareos_server_clients` - hash with the client definitions
```
localhost:
address: localhost
password: secret
retention: '14 days'
jobs:
restore:
name: Restore
type: Restore
storage: local_storage
fileset: root
full:
level: Full
schedule: full_and_incr
storage: local_storage
fileset: root
maximum_bandwidth: 5Mb/s
incremental:
level: Incremental
schedule: full_and_incr
storage: local_storage
fileset: root
```
- `bareos_server_storages` - hash with the storage definitions
```
local_storage:
address: 127.0.0.1
password: secret
device: file_storage
```
- `bareos_server_schedules` - hash with the schedules definitions
```
full_and_incr:
- Level=Full sun at 0:05
- Level=Incremental mon-sat at 3:05
```
- `bareos_server_profiles` - hash with the ACL user's profiles
```
sysadmin:
Command: all
Job: all
Schedule: all
Catalog: all
Pool: all
Storage: all
Client: all
FileSet: all
Where: all
```
- `bareos_server_users` - hash with the users to connect bareos
```
admin:
password: secret
profile: sysadmin
```
### Storage
- `bareos_storage` - install bareos storage (default: `false`)
- `bareos_storage_name` - set the storage name (default: `{{ inventory_hostname_short }}`)
- `bareos_storage_max_concurrent_jobs` - set the number max concurrent jobs (default: `10`)
- `bareos_storage_devices` - hash with the storage devices (see all options in [bareos documentation](https://docs.bareos.org/Configuration/StorageDaemon.html#device-resource)
```
file_storage:
MediaType: File
ArchiveDevice: /var/lib/bareos/storage
AutomaticMount: 'yes'
RandomAccess: 'yes'
AlwaysOpen: 'yes'
LabelMedia: 'yes'
```
## Development
### Test with molecule and docker
* install [docker](https://docs.docker.com/engine/installation/)
* install `python3` and `python3-pip`
* install molecule and dependencies `pip3 install molecule molecule-docker docker ansible-lint pytest-testinfra yamllint`
* run `molecule test`
## License
```
Copyright (c) 2021 Adrien Waksberg
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```