Используйте Puppet, чтобы развернуть bareos (bacula-fork) в моих узлах
Я не уверен, что это правильное место, чтобы спросить, но я бы очень хотел использовать puppet
развернуть bareos
на моих серверах.
Bareos - это форк Bacula и используется для резервного копирования удаленных систем.
Для этого bareos использует экземпляр сервера и разные экземпляры клиента (на каждом сервере я хочу сделать резервную копию).
Экземпляр сервера подключается к каждому клиенту, который он может найти в файле конфигурации. Кроме того, Bareos запустит задания резервного копирования, когда найдет источник задания в файле конфигурации.
Набор конфигурационных файлов выглядит следующим образом:
├── bareos-dir.conf
├── bareos-dir.conf.dist
├── bareos-dir.d
│ ├── webui-consoles.conf
│ └── webui-profiles.conf
├── bareos-fd.conf
├── bareos-sd.conf
├── bareos-sd.conf.dist
├── bareos-sd.d
├── bconsole.conf
├── bconsole.conf.dist
├── clients.d
├── director.d
├── storage.d
│ └── device-device.conf
└── tray-monitor.conf
По умолчанию клиенты определены в bareos-dir.conf
но также возможно включить файлы конфигурации из других каталогов.
Определение клиента с Job и FileRessource выглядит следующим образом:
Client {
Name = test-fd
Address = test.example.com # the name has to be resolvable through DNS.
Password = "password which is defined in the file-daemon (client) of server test.example.com"
}
Кроме того, должен быть Job-Ressource, подобный этому:
Job {
Name="test"
JobDefs="DefaultJob"
Client="test-fd"
Pool = Incremental
FileSet="pleskbackup"
}
и FileSet-Ressource как это:
FileSet {
Name = "pleskbackup"
Include {
Options {
Signature = MD5 # calculate md5 checksum per file
}
File = /var/www
File = /var/backup
File = /var/qmail
}
# Things that usually have to be excluded
# You have to exclude /var/lib/bareos/storage
# on your bareos server
Exclude {
}
}
Теперь было бы здорово, если бы я мог справиться с бэкапом с помощью марионетки. Для этого я использую netmanagers / bareos. Было бы здорово, если бы я мог просто добавить profile::backup::client
к узлу XY, и он автоматически устанавливает bareos-fd (client file-daemon)
и связывает его с моим bareos-сервером.
Я использую этот профиль для установки bareos для моих клиентов:
class profile::backup::client {
## Install bareos client ##
class {
'bareos':
manage_client => 'true',
}
}
Этот профиль используется для установки bareos на мой bareos-сервер:
class profile::backup::server {
## Install bareos server ##
class {
'bareos':
manage_client => 'true',
manage_storage => 'true',
manage_director => 'true',
manage_console => 'true',
}
bareos::storage::device {
'device':
media_type => 'File',
archive_device => '/var/bareos/backup',
}
}
Хорошо - теперь я могу развернуть bareos-клиенты на своих клиентах и сервер на моем сервере - это уже работает (это волшебно;-)).
Что я хочу сделать дальше: я хотел бы настроить систему автоматически. Таким образом, сервер должен быть настроен для связи с клиентом (для этого серверу необходимо знать полное доменное имя и заданный пароль клиента. Клиент должен применять параметр server-dir в качестве разрешенного директора.
Как я могу это сделать?
1 ответ
Я подошел к этому по-другому. Я думаю, что заново изобретать директивы конфигурации Bareos в коде Puppet (что касается трех ленточных накопителей, робота, буферизации и т. Д.), Так что я просто поместил основную конфигурацию Bareos (bareos-dir.conf, bareos -sd.conf и т. д.) в отдельном репозитории Git, который отмечен как / etc / bareos. (Очевидно, я мог бы также использовать Puppet для дословного копирования файлов, но для доступа к фиксации для конфигурации Puppet vs. Bareos в то время были другие требования.)
Для настройки заданий и клиентов я использую свой собственный модуль Puppet, который может быть включен на всех клиентах, и все будет просто работать;)
Посмотри:
https://github.com/kjetilho/rl-bareos
У меня около тысячи клиентов, у меня это очень хорошо работает.