diff options
author | drebs <drebs@riseup.net> | 2011-03-22 16:43:40 -0300 |
---|---|---|
committer | drebs <drebs@riseup.net> | 2011-03-22 16:43:40 -0300 |
commit | c19bd5ca6828703e01e62cead363cb3add0ff484 (patch) | |
tree | ffe87ede6f893a10ed9cd53c4cf69f867c21f0a8 | |
parent | 18923188be96133aa80e03f74e7035f33a4c6771 (diff) | |
download | padrao-c19bd5ca6828703e01e62cead363cb3add0ff484.tar.gz padrao-c19bd5ca6828703e01e62cead363cb3add0ff484.tar.bz2 |
processo quase terminado
-rw-r--r-- | bootstrap.mdwn | 83 |
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 |