summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bootstrap.mdwn91
-rw-r--r--index.mdwn3
2 files changed, 93 insertions, 1 deletions
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 Saravá
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ção do Padrão Saravá ainda [está disponível](trac/).
* [Backup](backup).
* [Chaves](keys).
* [Auditoria](audit).
+* [Bootstrap](bootstrap).
# Licença