Ferramentas de gerenciamento de configuração, como fantoches. chef, ansible etc são as ferramentas de escolha para o administrador moderno.
Eu regularmente instalo um produto (Atlassian Confluence, que é Tomcat + alguns arquivos) no meu servidor. Para cada atualização, após descompactar o tar.gz, preciso alterar os seguintes arquivos:
Existe uma maneira canônica de realizar essa configuração?
Obrigado
Crie um playbook Ansible para instalar o tar e a personalização subsequente. Em seguida, execute o manual contra o host de destino.
O Ansible fornece módulos fáceis de usar para modificar o conteúdo de arquivos, copiar arquivos, criar novos arquivos a partir de modelos, gerenciar serviços, etc.
Pessoalmente, usei-o para modificar, e. Arquivos de configuração do Tomcat.
Veja o link .
Eu coloquei meus arquivos de configuração em um repositório do Mercurial (o Git também faria) e substituo os arquivos de configuração originais por links simbólicos para esses arquivos. Dessa forma eu não tenho que movê-los. Eu uso um script de shell pequeno para manter os links simbólicos, para que, após uma atualização, eu tenha que executar novamente esse script.
Deixe-me dar um exemplo. Digamos que eu queira fazer alterações no server.xml
do Tomcat.
Configuração única
Primeiro, copio o server.xml
original para o meu repositório de configuração do Mercurial. Em seguida, no meu script de shell, adiciono esses comandos para excluir o original server.xml
e substituí-lo por um link simbólico para o arquivo dentro do repositório, por exemplo:
# The location of my Mercurial config repository
CONFIG=/home/admin/config
rm -f /etc/tomcat7/server.xml
ln -s $CONFIG/tomcat/server.xml /etc/tomcat7/server.xml
Em seguida, executo o script pela primeira vez, para testá-lo e criar os links simbólicos. Eu chamo o script setupLinks.sh
e ele vive na raiz do meu repositório Mercurial.
sudo /home/admin/config/setupLinks.sh
Após uma atualização
Após uma atualização, preciso executar novamente o setupLinks.sh
para substituir qualquer link simbólico que foi sobrescrito. É isso.
Acho muito útil ter meus arquivos de configuração dentro de um repositório de código-fonte. Dessa forma, posso rastrear alterações e extrair novas configurações de um repositório upstream. Eu uso ramificações nomeadas para configurações específicas do ambiente, por exemplo Eu tenho uma ramificação dev
e uma ramificação prod
.
Eu não disse nada sobre a movimentação de arquivos jar, mas isso pode ser feito facilmente adicionando algumas linhas ao shell script. Você também pode criar links simbólicos para arquivos jar.
Use o dist-trick
Para evitar a sobrescrita dos seus arquivos de configuração, você pode usar o "dist-trick": Use arquivos * .dist (por exemplo, config.xml.dist) como arquivos de configuração padrão em sua distribuição. "dist" significa arquivo de distribuição. Em seguida, copie esse arquivo .dist para um arquivo não dist (config.xml) que não faz parte da distribuição. E voilà, seu arquivo de configuração nunca é sobrescrito novamente. Isso funciona muito bem, por ex. ao usar git, ftp, scp ou qualquer outro mecanismo para trazer arquivos para uma máquina de produção.
O dist-trick ajuda a evitar a configuração ou restauração de coisas após a implantação de arquivos.
Tags tomcat web-server