|
|
||
|---|---|---|
| _automation_scripts | ||
| _deployment_logs | ||
| fail2ban | ||
| nginx | ||
| ssl | ||
| sudoers.d | ||
| ufw | ||
| zabbix | ||
| README.md | ||
| hosts | ||
| install-proxy-sinc.sh | ||
| nginx.service | ||
| nsswitch.conf | ||
| override.conf | ||
| resolv.conf | ||
| uninstall-proxy-sinc.sh | ||
README.md
Serviço de Sincronização de Configurações - Proxy-Sinc
Este repositório contém as configurações e os scripts de automação para o serviço proxy-sinc, desenhado para automatizar o controlo de versões de ficheiros de configuração de servidores Linux para um repositório Git (Gitea).
O objetivo é criar um sistema robusto, auto-documentado e fácil de gerir para o backup e o histórico de alterações de configurações críticas como as do Nginx e do Fail2ban.
Funcionalidades Principais Implementadas pelo Instalador
Gestão de Dependências
- Verifica e instala automaticamente as dependências necessárias (
git,rsync) usandoapt.
Configuração Interativa e Segura
-
Pede ao utilizador a URL do repositório, o nome de utilizador do Gitea e um Token de Acesso (que fica oculto durante a digitação) para a autenticação.
-
A URL do repositório é reconfigurada para incluir as credenciais, permitindo que as operações
gitfuturas (como ogit push) sejam executadas de forma não-interativa.
Identidade de Commit Automática
-
O nome do autor dos commits é automaticamente definido como o hostname completo do servidor (ex:
srvproxy001.itguys.com.br). -
O email do autor é gerado automaticamente a partir do hostname (ex:
srvproxy001@itguys.com.br).
Gestão Inteligente de SSL
- O script testa automaticamente a conexão com o Gitea. Se detetar um problema de certificado SSL (comum em ambientes internos), ele configura o repositório local para ignorar a verificação SSL, garantindo que a sincronização funcione.
Registo de Deploy
- Na primeira instalação num novo servidor, o script cria um ficheiro de registo (
_deployment_logs/hostname.md) no repositório, documentando quem (utilizador do Gitea) instalou o serviço e quando, criando uma trilha de auditoria.
Instalação como Serviço systemd
-
Gera e instala um serviço
systemd(proxy-sinc.service) e umtimer(proxy-sinc.timer). -
Esta abordagem é superior ao
cronpois integra-se perfeitamente com o sistema de logsjournald, permitindo uma gestão fácil comsystemctl status,start,stop, etc. -
O timer está configurado para executar o script de sincronização a cada minuto.
Sincronização Dinâmica de Ficheiros
-
O script principal de sincronização (
commit_configs.sh) agora lê os caminhos a serem versionados a partir de um ficheiro de configuração central (/etc/proxy-sinc/paths.conf). -
Isto permite que os administradores adicionem ou removam ficheiros e pastas para sincronização no futuro, simplesmente editando este ficheiro de texto, sem precisar de alterar o script.
Auto-Versionamento
- O script
commit_configs.shfoi desenhado para se incluir a si mesmo e a todos os seus ficheiros de configuração e de serviço (.service,.timer,man page,paths.conf) no repositório Git. Desta forma, qualquer alteração na própria automação também é versionada.
Funcionalidade de Auto-Atualização
-
Instala um novo comando no sistema,
proxy-sinc-update. -
Quando executado, este comando baixa a versão mais recente do
setup.sha partir de uma URL pré-definida no repositório Gitea e executa-a, permitindo uma atualização fácil e centralizada de toda a automação.
Documentação Integrada (man page)
-
Gera e instala uma página de manual (
man proxy-sinc) no sistema. -
O manual explica o que o serviço faz, como o gerir, como o atualizar e, o mais importante, como adicionar novos caminhos de ficheiros para serem sincronizados, tornando a ferramenta fácil de usar para qualquer membro da equipa no futuro.