From ff107b55eb66bc1a80c670c82dbd6ef82fe51416 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Thu, 18 Feb 2010 13:15:06 -0200 Subject: Bootstrap de uma configuracao completa --- bootstrap.mdwn | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ index.mdwn | 3 +- 2 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 bootstrap.mdwn diff --git a/bootstrap.mdwn b/bootstrap.mdwn new file mode 100644 index 0000000..7154ec2 --- /dev/null +++ b/bootstrap.mdwn @@ -0,0 +1,91 @@ +[[!toc levels=4]] + +Bootstrap de uma configuração completa +====================================== + +Configuração do puppet +---------------------- + + apt-get install puppetmaster puppet git-core openssh-server + cd /etc/puppet + mkdir modules + git init + git add . + + repos="`lynx -dump http://git.sarava.org/?a=project_index | awk '{ print $1 }' | grep ^puppet-`" + for repo in $repos; do + module="`basename $repo .git | cut -d - -f 2`" + if [ ! -d "modules/$module" ]; then + git submodule add git://git.sarava.org/puppet-$module.git modules/$module + fi + done + +No caso de bootstrap para um novo projeto, substitua as referências de git.sarava.org para git.dominio. + +Configurando referências remotas em massa +----------------------------------------- + + # Configuracao + origin="sarava.org" + remotes="sarava.org:porta" + repos="`lynx -dump http://git.$origin/?a=project_index | awk '{ print $1 }' | grep ^puppet-`" + + # Adicionando referencias + for repo in $repos; do + module="`basename $repo .git | cut -d - -f 2`" + if [ -d "puppet-$module" ]; then + cd puppet-$module + for remote in $remotes; do + ref="`echo $remote | cut -d . -f 1`" + domain="`echo remote | cut -d : -f 1`" + port="`echo remote | cut -d : -f 2`" + git remote add $ref ssh://gitosis@git.$domain:$port/puppet-$module.git + git push $ref master + done + cd .. + fi + done + +Mudando referências em submódulos +--------------------------------- + + # Configuracao + origin="sarava.org" + dest="exemplo.org" + + cd puppet + sed -i -e "s/git.$origin/git.$dest/" .gitmodules + cd modules + for module in `ls`; do + cd $module + git remote rm origin + git remote add origin git://git.$dest/puppet-$module.git + git config branch.master.remote origin + git config branch.master.merge refs/heads/master + cd .. + done + +Exemplo de criação em massa de módulos +-------------------------------------- + + # Configuracao + origin="sarava.org" + remotes="sarava.org:porta" + + mkdir puppet-{ikiwiki,moin,mysql,trac}/manifests -p + touch puppet-{ikiwiki,moin,mysql,trac}/manifests/init.pp + for module in ikiwiki moin mysql trac; do + cd puppet-$module + cp ../puppet-git/LICENSE . + git init + git add . + git commit -a -m "Initial import" + for remote in $remotes; do + ref="`echo $remote | cut -d . -f 1`" + domain="`echo remote | cut -d : f 1`" + port="`echo remote | cut -d : f 2`" + git remote add $ref ssh://gitosis@git.$domain:$port/puppet-$module.git + git push $ref master + done + cd .. + done diff --git a/index.mdwn b/index.mdwn index 45afb63..c8d0653 100644 --- a/index.mdwn +++ b/index.mdwn @@ -3,7 +3,7 @@ Padr O Padrão Saravá é uma sistematização de configuração de servidores, gerenciadores de conteúdo e aplicações diversas usados pelo Grupo Saravá. O padrão foi desenvolvido para: -* Ter o controle total dos pacotes utilizados e arquivos de configuração. +* Ter controle dos pacotes utilizados, arquivos de configuração e serviços em uso. * Uniformidade de administração. * Sistema de gerenciamento de backups comum para que as máquinas de um projeto possam trocar dados. * Que um servidor seja configurado apenas uma vez e que suas configurações possam ser aproveitados para outras máquinas. @@ -24,6 +24,7 @@ A antiga documenta * [Backup](backup). * [Chaves](keys). * [Auditoria](audit). +* [Bootstrap](bootstrap). # Licença -- cgit v1.2.3