A instalação, no momento, é feita através de um script que compila os serviços bacula-dir, bacula-fd e bacula-sd. O script também faz a instalação do Baculum, cliente web.
Vídeo demonstrando a instalação do servidor e do cliente: https://acloud.astian.org/index.php/s/5JwcXiBzH8tZ9bn
O script deve ser executado como root. O script tem algumas variáveis que precisam ser editadas antes da execução:
- job_email
- host
- IP ou hostname. O hostname deve ser "fqdn".
- Se algum hostname for usado, ele deve estar no /etc/hosts ou DNS.
- db_name
- db_user
- db_password
wget https://raw.githubusercontent.com/leandroramos/bacula-deploy/main/bacula-director-deploy.sh
chmod +x bacula-director-deploy.sh
./bacula-director-deploy.sh
Após a execução, os serviços deverão responder nas seguintes portas:
- bacula-dir: 9101
- bacula-fd: 9102
- bacula-sd: 9103
# A opção -t verifica se os arquivos de configuração estão funcionando corretamente
bacula-dir -t
bacula-fd -t
bacula-sd -t
# Se estiver tudo certo, o console do Bacula estará disponível usando o comando abaixo
bconsole
wget https://raw.githubusercontent.com/leandroramos/bacula-deploy/main/baculum-deploy.sh
chmod +x baculum-deploy.sh
./baculum-deploy.sh
A configuração da API pode ser feita na URL do servidor, na porta 9096.
Após a configuração da API, o cliente web pode ser configurado na URL do servidor, na porta 9095.
A instalação do cliente é feita da mesma forma. A diferença é que a compilação é feita com suporte apenas ao serviço client (bacula-fd).
wget https://raw.githubusercontent.com/leandroramos/bacula-deploy/main/bacula-client-deploy.sh
chmod +x bacula-client-deploy.sh
./bacula-client-deploy.sh
Vídeo demonstrando a criação e a conexão com um client: https://acloud.astian.org/index.php/s/RQ9HaHWCBbHHK62
Client é a máquina de onde faremos backups. Para criar o client, o serviço bacula-fd deve estar rodando na máquina cliente.
Com o bacula-fd instalado e rodando, precisamos configurar o director no arquivo /etc/bacula/bacula-fd.conf.
#
# List Directors who are permitted to contact this File daemon
#
Director {
# O nome do director deve ser o mesmo
# nome do director no servidor Bacula
Name = bacula-dir
# A senha abaixo deve ser a mesma
# na hora de criar o client no servidor
Password = "hTrzSwx3eNSVVTua75hxn/Ota7nluX/5QPd3u8GfTWKr"
}
No Baculum (servidor-bacula:9095, no navegador), crie um novo cliente.
Preencha os dados e cuide para que a senha do Client seja a mesma senha do /etc/bacula/bacula-fd.conf na máquina Client (tópico acima - configuração da máquina client).
Na página de detalhes do cliente, podemos ver seu status:
Vídeo demonstrando o primeiro backup/restore: https://acloud.astian.org/index.php/s/7YYjbtpHWJPR7QE
Device é um dispositivo onde podemos gravar backups. Pode ser um disco, drive de fita, diretório ou ponto de montagem qualquer, etc.
Um device em diretório no sistema de arquivos também pode servir de ponto de montagem para sistemas remotos, como NFS, Samba, s3fs, etc.
O diretório deve ser acessível para leitura e escrita ao usuário www-data e ao grupo bacula:
mkdir -p /backups/servidor-web
chown -R www-data:bacula /backups/servidor-web
No Baculum, acesse a página storages e adicione um device:
Configure o nome, localização e MediaType do novo device. Marque as opções RandomAccess, AutomaticMount, LabelMedia e AlwaysOpen.
Com o device criado, podemos criar o storage que usará o device. Na página de storages, crie um novo storage e mande "Copiar configuração de" File1:
Coloque o nome do device a ser usado, usando o mesmo nome para MediaType:
Veja o status do novo storage:
FileSet é um conjunto de arquivos para fazermos backups. São arquivos da máquina cliente que desejamos guardar backups.
Ao selecionar um cliente, podemos navegar pelos diretórios e incluir ao FileSet:
Agora que temos:
- Cliente
- Device
- Storage
- FileSet
Podemos criar um Job de backup. Ainda poderíamos criar Pools, mas a que já vem configurada é suficiente.
Na página de Jobs, crie um novo Job no assistente de criação de job de backup:
Podemos usar o JobDefs padrão (DefaultJob)
Configure o cliente e o FileSet:
Configure Storage e Pool para o job:
Selecione o nível de backup eu outras coisas, se necessário:
Selecione ou crie uma nova agenda:
Na página de detalhes do Job, mande executar o Job:
Veja a estimativa do Job:
Backup OK:
Lista de jobs no bconsole:
O Restore Wizard permite restaurarmos arquivos de acordo com os backups bem-sucedidos.
Seleção do cliente a ser restaurado:
Seleção do job a ser restaurado:
Selecionar arquivos a serem restaurados:
Seleção do diretório destino da restauração:
Definição da política de substituição de arquivos:
Restauração OK: