aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrebs <drebs@riseup.net>2011-03-22 16:43:40 -0300
committerdrebs <drebs@riseup.net>2011-03-22 16:43:40 -0300
commitc19bd5ca6828703e01e62cead363cb3add0ff484 (patch)
treeffe87ede6f893a10ed9cd53c4cf69f867c21f0a8
parent18923188be96133aa80e03f74e7035f33a4c6771 (diff)
downloadpadrao-c19bd5ca6828703e01e62cead363cb3add0ff484.tar.gz
padrao-c19bd5ca6828703e01e62cead363cb3add0ff484.tar.bz2
processo quase terminado
-rw-r--r--bootstrap.mdwn83
1 files changed, 56 insertions, 27 deletions
diff --git a/bootstrap.mdwn b/bootstrap.mdwn
index b4ba9e8..7039c6c 100644
--- a/bootstrap.mdwn
+++ b/bootstrap.mdwn
@@ -27,20 +27,23 @@ Documentação [aqui](/install).
Configuração da máquina hospedeira
----------------------------------
-Preencha o hostname e domínio da máquina no arquivo `/etc/hosts`. A ordem dos hostnames é importante para os facts `hostname` e `domain`. Troque `servidor` pelo hostname da máquina e `projeto.org` pelo domínio:
-
- 127.0.0.1 localhost
- xxx.yyy.zzz.www servidor.projeto.org servidor
-
Configure algumas variáveis de ambiente:
- export puppet_bootstrap_dir=/tmp/puppet-bootstrap
+ export domain="projeto.org"
+ export hostname=`hostname | sed -e s/\\\\..*$//`
+ export puppet_bootstrap_dir=/var/tmp/puppet-bootstrap
export PUPPETLIB=${puppet_bootstrap_dir}/modules
- export hostname=`hostname | sed -e s/\\..*$//`
+
+Configure o arquivo `/etc/hosts` (a ordem dos hostnames influencia nos resultados do `facter`):
+
+ cat > /etc/hosts <<EOF
+ 127.0.0.1 localhost
+ xxx.yyy.zzz.www ${hostname}.${domain} ${hostname}
+ EOF
Instale o git e o puppet e clone o repositório `puppet-bootstrap`:
- apt-get -y install git-core puppet
+ apt-get -y install git-core puppet wipe
git clone git://git.sarava.org/puppet-bootstrap ${puppet_bootstrap_dir}
Altere o arquivo `${puppet_bootstrap_dir}/manifests/config.pp` de acordo com suas necessidades.
@@ -62,31 +65,47 @@ Configuração do nó administrativo
A partir deste momento, vamos trabalhar apenas no nó administrativo recém criado.
-Prepare o vserver para rodar o puppet:
+Copie o `puppet-bootstrap` e a configuração padrão para o vserver e limpe os rastros:
+
+ echo LANG=C > /var/vservers/${hostname}-master/etc/default/locale
+ cp -r ${puppet_bootstrap_dir} \
+ /var/vservers/${hostname}-master/${puppet_bootstrap_dir}
+ cp -r /usr/local/puppet \
+ /var/vservers/${hostname}-master/usr/local/puppet
+ wipe -rcfq -S r -R /dev/urandom ${puppet_bootstrap_dir} /usr/local/puppet
+
+Acesse o vserver e instale algumas ferramentas:
- vserver ${hostname}-master exec \
- apt-get -y install git puppet
- vserver ${hostname}-master exec \
- git clone git://git.sarava.org/puppet-bootstrap ${puppet_bootstrap_dir}
- cp ${puppet_bootstrap_dir}/manifests/config.pp \
- /var/vservers/${hostname}-master/${puppet_bootstrap_dir}/manifests/
vserver ${hostname}-master enter
- puppet apply -d -v ${puppet_bootstrap_dir}/manifests/stage0.pp
+ apt-get update
+ apt-get -y upgrade
+ apt-get -y install git puppet puppetmaster wipe
-Instale uma configuração padrão do puppet:
+Configure o hostname e domínio do nó administrativo:
- puppet apply -d -v ${puppet_bootstrap_dir}/manifests/admin-stage1.pp
+ cat > /etc/hosts <<EOF
+ 127.0.0.1 localhost
+ 192.168.0.2 ${hostname}-master.${domain} ${hostname}
+ EOF
+
+Prepare o vserver para a utilização do puppet.
+
+ puppet apply -d -v ${puppet_bootstrap_dir}/manifests/stage0.pp
Criação de repositórios padrão
------------------------------
Dê acesso ao repositório administrativo do gitosis a um usuário:
+ mkdir -p /var/git/repositories
+ usermod -d /var/git/ gitosis
+ rm -rf /srv/git
+ chown -R gitosis:gitosis git/
sudo -H -u gitosis gitosis-init < FILENAME.pub
Clone o repositório administrativo do gitosis remotamente:
- git clone ssh://gitosis@servidor.projeto.org:porta/gitosis-admin
+ git clone ssh://gitosis@servidor.${domain}:2202/gitosis-admin
Altere o arquivo `gitosis-admin/gitosis.conf` do repositório clonado e crie um repositório para a configuração do puppet e um repositório para suas chaves criptográficas:
@@ -109,19 +128,24 @@ Para adicionar um novo usuário ao gitosis, basta adicionar as chaves públicas ss
Configuração do repositório puppet
----------------------------------
-Altere as configurações padrão do puppet em `/var/local/puppet/default-conf` de acordo com suas necessidades, faça uma cópia das configurações para o `/etc/puppet`, crie um novo repositório git neste local e clone o repositório para o diretório do gitosis:
+Altere as configurações padrão do puppet em `/usr/local/puppet/default-conf` de acordo com suas necessidades e incialize os repositórios em `/etc/puppet` e `/var/git/repositories/puppet`):
+ /etc/init.d/puppetmaster stop
+ rm -rf /etc/puppet
+ mkdir /etc/puppet
cd /etc/puppet
- cp -r /var/local/puppet/default-conf/* .
+ cp -r /usr/local/puppet/default-conf/* .
+ wipe -rcfq -S r -R /usr/local/puppet
git init
git add *
+ puppet-bootstrap add-submodules /etc/puppet
git commit -m "Initial config."
git clone --bare /etc/puppet/ /var/git/repositories/puppet.git
chown -R gitosis:gitosis /var/git/repositories/puppet.git
Agora já podemos clonar o repositório de configurações do puppet remotamente:
- git clone ssh://gitosis@servidor.projeto.org:porta/puppet.git
+ git clone ssh://gitosis@${hotname}.${domain}:2202/puppet.git
Configuração da hydra
---------------------
@@ -135,19 +159,24 @@ Instale `hydra` e `keyringer`:
sudo git clone git://git.sarava.org/hydra /usr/local/hydra
sudo ln -sf /usr/local/hydra/hydra /usr/local/sbin/hydra
sudo ln -sf /usr/local/hydra/hydra /usr/local/sbin/hydractl
- sudo ln -sf /usr/local/hydra/hydra /usr/local/sbin/hydractl
# keyringer
sudo git clone git://git.sarava.org/keyringer /usr/local/keyringer
sudo ln -sf /usr/local/keyringer/keyringer /usr/local/bin/keyringer
Tenha certeza que possui em seu chaveiro gpg as chaves dos usuários que irão acessar o repositório de chaves. Crie um keyring para o projeto clonando o repositório configurado:
- keyringer projeto init ~/projeto/keyring ssh://gitosis@servidor.projeto.org:porta/keyring.git
+ keyringer projeto init ~/projeto/keyring
+ cd ~/projeto/keyring
+ git init
+ git remote add origin ssh://gitosis@servidor.${domain}:2202/keyring.git
+ git add *
+ git commit -m "initial commit"
+ git push origin master
Clone o repositório de configuração do puppet e registre uma nova hydra:
puppet_dir=~/projeto/puppet
- git clone git://gitosis@servidor.projeto.org:porta/puppet $puppet_dir
+ git clone git://gitosis@servidor.${domain}:2202/puppet $puppet_dir
hydra projeto register $puppet_dir
Gere novas chaves para os nós configurados e as envie para os nós:
@@ -208,7 +237,7 @@ Configurando referências remotas em massa
# Configuracao
origin="sarava.org"
- remotes="sarava.org:porta"
+ remotes="sarava.org:${port}"
repos="`lynx -dump http://git.$origin/?a=project_index | awk '{ print $1 }' | grep ^puppet-`"
# Adicionando referencias
@@ -251,7 +280,7 @@ Exemplo de criação em massa de módulos
# Configuracao
origin="sarava.org"
- remotes="sarava.org:porta"
+ remotes="sarava.org:${port}"
mkdir puppet-{ikiwiki,moin,mysql,trac}/manifests -p
touch puppet-{ikiwiki,moin,mysql,trac}/manifests/init.pp