diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2011-05-07 18:15:20 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2011-05-07 18:15:20 -0300 |
commit | b16903a585c430efeaa6e5fcee6065703713534d (patch) | |
tree | 04a170a8ccc780c28b9f5a6215525ec44abc6107 | |
parent | 0e1a99278a5d76b3aa7b1d5a9bc4db5db95be6e6 (diff) | |
parent | c7ad5bd848e46e8a43ffc306b1361ef3225b1ef5 (diff) | |
download | padrao-b16903a585c430efeaa6e5fcee6065703713534d.tar.gz padrao-b16903a585c430efeaa6e5fcee6065703713534d.tar.bz2 |
Merge branch 'master' of ssh://git.sarava.org:2204/padrao
-rw-r--r-- | bootstrap.mdwn | 77 |
1 files changed, 51 insertions, 26 deletions
diff --git a/bootstrap.mdwn b/bootstrap.mdwn index b4ba9e8..dcfb3e5 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 ${hostname}.${domain} ${hostname} + 127.0.0.1 localhost + 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,19 +65,32 @@ 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: + cat > /etc/hosts <<EOF + 127.0.0.1 ${hostname}-master.${domain} ${hostname} + 127.0.0.1 localhost + EOF + +Prepare o vserver para a utilização do puppet. + + puppet apply -d -v ${puppet_bootstrap_dir}/manifests/stage0.pp puppet apply -d -v ${puppet_bootstrap_dir}/manifests/admin-stage1.pp Criação de repositórios padrão @@ -86,7 +102,7 @@ Dê acesso ao repositório administrativo do gitosis a um usuário: 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 +125,23 @@ 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 +155,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 +233,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 +276,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 |