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 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 bootstrap.mdwn (limited to '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 -- cgit v1.2.3