aboutsummaryrefslogtreecommitdiff
path: root/install.mdwn
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2010-11-18 19:56:29 -0200
committerSilvio Rhatto <rhatto@riseup.net>2010-11-18 19:56:29 -0200
commit61b2a0511def9be8f5141257c4bf4e637ec8e2b3 (patch)
tree6158c4f46f70193866dabe567e37e418c3730bc7 /install.mdwn
parentc7a62c38d1b6b05ef32d424d84579159ac1211d9 (diff)
downloadpadrao-61b2a0511def9be8f5141257c4bf4e637ec8e2b3.tar.gz
padrao-61b2a0511def9be8f5141257c4bf4e637ec8e2b3.tar.bz2
Nova rotina de provisionamento usando a hydra suite
Diffstat (limited to 'install.mdwn')
-rw-r--r--install.mdwn173
1 files changed, 19 insertions, 154 deletions
diff --git a/install.mdwn b/install.mdwn
index 54d9441..e9da52f 100644
--- a/install.mdwn
+++ b/install.mdwn
@@ -8,16 +8,7 @@ A seguir, o procedimento de instalação de um sistema com disco criptografado e g
Instalação
----------
-Antes de tudo, determine qual o dispositivo no qual o sistema será instalado, a arquitetura, a versão do sistema e o domínio principal:
-
- export vg="install"
- export device=/dev/nome_do_dispositivo
- export arch=amd64
- export version=lenny
- export hostname=nome_da_maquina
- export domain=projeto.org
-
-A primeira etapa é o particionamento do disco. Neste exemplo, assumiremos o seguinte layout, ajuste-o conforme as suas necessidades e gostos:
+A primeira etapa é o particionamento do disco. Neste exemplo, assumiremos o seguinte layout (ajuste-o conforme as suas necessidades e gostos):
# fdisk -l $device
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
@@ -30,146 +21,27 @@ A primeira etapa é o particionamento do disco. Neste exemplo, assumiremos o segu
/dev/sdb2 * 250 273 192780 83 Linux
/dev/sdb3 274 121601 974567160 8e Linux LVM
-Em seguida vem a criação do LVM:
-
- pvcreate "$device"3
- vgcreate $vg "$device"3
- lvcreate -L20G -n root $vg
- vgchange -a y $vg
-
-Em seguida, preencher o dispositivo com sujeira:
-
- dd if=/dev/urandom of=/dev/$vg/root
-
-A saída do comando acima deve ser algo como
-
- dd: escrevendo em `/dev/install/root': Não há espaço disponível no dispositivo
- 41943041+0 registos dentro
- 41943040+0 registos fora
- 21474836480 bytes (21 GB) copiados, 8544 s, 2,5 MB/s
-
-Proceder igualmente com a partição swap:
-
- dd if=/dev/urandom of="$device"1
-
- dd: escrevendo em `/dev/sdb1': Não há espaço disponível no dispositivo
- 4000123+0 registos dentro
- 4000122+0 registos fora
- 2048062464 bytes (2,0 GB) copiados, 972,049 s, 2,1 MB/s
-
-Com isso, já é possível passar para a criação do volume criptografado:
-
- cryptsetup -h sha256 -c aes-cbc-essiv:sha256 -s 256 luksFormat /dev/$vg/root
- cryptsetup luksOpen /dev/$vg/root debootstrap
- mkfs.ext3 /dev/mapper/debootstrap
-
-Montando esse dispositivo num local temporário e instalar o sistema básico:
-
- mkdir /tmp/debootstrap
- mount /dev/mapper/debootstrap /tmp/debootstrap/
- debootstrap --arch=$arch $version /tmp/debootstrap/
-
-Configuração inicial
---------------------
-
- mount none -t proc /tmp/debootstrap/proc/
- mount -o bind /dev/ /tmp/debootstrap/dev
- cp -L /etc/resolv.conf /tmp/debootstrap/etc
- echo $hostname.$domain > /tmp/debootstrap/etc/hostname
- echo "127.0.0.1 localhost $hostname $hostname.$domain" >> /tmp/debootstrap/etc/hosts
- echo LANG=C > /tmp/debootstrap/etc/default/locale
-
- chroot /tmp/debootstrap/
- export PS1="chroot $PS1"
- apt-get update ; apt-get upgrade
- apt-get install locales cryptsetup lvm2 initramfs-tools grub
-
-O `/etc/crypttab` deve conter (substitua `/dev/sda1` pelo seu valor correspondente para `$device`):
-
- cat > /etc/crypttab <<-EOF
- # <target name> <source device> <key file> <options>
- root /dev/mapper/vg-root none luks,cipher=aes-cbc-essiv:sha256
- cswap /dev/sda1 /dev/random swap,cipher=aes-cbc-essiv:sha256
- EOF
-
-E o `/etc/fstab` deve conter:
-
- cat > /etc/fstab <<-EOF
- /dev/mapper/cswap none swap sw 0 0
- /dev/mapper/root / ext3 defaults,errors=remount-ro 0 1
- EOF
-
-Partida
--------
-
-Agora é a hora de configurar o gerenciador de partida:
-
- mkfs.ext3 "$device"2
- mount "$device"2 /boot
- grub-install --no-floppy "$device"
-
-Opcionalmente, adicione ao `/etc/fstab` (substituindo `sda1` pelo valor correspondente para `$device`):
-
- /dev/sda2 /boot ext3 defaults,errors=remount-ro 0 2
+Os tamanhos das partições podem variar, porém as partições e seus tipos devem existir tal como no modelo acima.
-Conteúdo do `/boot/grub/menu.lst` (substitua de acordo com os valores de `$arch` e da versão do kernel instalado):
-
- title Servidor (hd0)
- root (hd0,1)
- kernel /vmlinuz-2.6.26-2-vserver-amd64 root=/dev/mapper/root ro quiet rootdelay=10
- initrd /initrd.img-2.6.26-2-vserver-amd64
-
- title Servidor (hd0) (single)
- root (hd0,1)
- kernel /vmlinuz-2.6.26-2-vserver-amd64 root=/dev/mapper/root ro single rootdelay=10
- initrd /initrd.img-2.6.26-2-vserver-amd64
-
-Note que a opção rootdelay é importante no caso de sistemas contidos dentro de volumes USB, já que o kernel demora alguns instantes para detectar tais volumes. Detalhes a respeito em
-
-* [Installing Linux on USB - Part 5: Installing Debian Linux on USB flash memory drives](http://blogs.koolwal.net/2009/02/03/installing-linux-on-usb-part-5-installing-debian-linux-on-usb-flash-memory-drives/).
-* [initramfs-tools: lvm is not initialized on USB disks](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=366175#37).
-* [When root on USB: add rootdelay=xx to kernel command line](https://blueprints.launchpad.net/ubuntu/+spec/kernel-boot-usb-roodelay).
-
-Kernel
-------
-
-Adicione a lista dos módulos criptográficos necessários ao arquivo `/etc/initramfs-tools/modules`:
-
- cat > /etc/initramfs-tools/modules <<-EOF
- dm-mod
- dm-crypt
- aes
- twofish
- sha256
- EOF
-
-Tenha certeza de que o kernel irá utilizar uma imagem de inicialização adicionando a seguinte linha ao arquivo `/etc/kernel-img.conf`:
+Hydra Suite
+-----------
- cat > /etc/kernel-img.conf <<-EOF
- do_initrd = Yes
- EOF
+Atualmente o Padrão Saravá utiliza a Hydra Suite para fazer o provisionamento. Versões anteriores deste documento não o utilizam, são mais descritivas e talvez até mais interessantes ao público interessado nos pormenores do procedimento de instalação.
-Proceda [desabilitando o firewire do sistema](../firewire) e, em seguida, instale o kernel:
+A Hydra Suite pode ser obtida diretamente do seu repositório:
- if [ "$arch" == "i386" ]; then
- kernel_arch="686"
- else
- kernel_arch="$arch"
- fi
-
- apt-get install linux-image-2.6-vserver-$kernel_arch
+ git clone git://git.sarava.org/hydra.git
-Imagem de partida
------------------
+Opcionalmente coloque os scripts `hydra` e `hydract` em seu `$PATH` (ou execute os programas a partir da pasta da suíte, por exemplo via `./hydractl`). Após a instalação, basta iniciar o procedimento com os devidos privilégios administrativos (como `root` ou usando o `sudo`):
-Para que o sistema consiga inicializar, atualize a imagem de partida:
+ hydractl provision
- update-initramfs -v -u
+Antes de começar a instalar, você deverá informar ao programa qual o dispositivo no qual o sistema será instalado, a arquitetura, a versão do sistema e o domínio principal. Depois disso a suíte se encarregará da maior parte dos detalhes de instalação.
Renomeando o volume group
-------------------------
-Num sistema GNU/Linux, não pode haver dois volume groups com o mesmo nome. Assim, para evitar conflitos de `LVM`, utilizamos um nome temporário (`$vg`) na instalação do sistema. No entanto, o sistema apenas funcionará com o volume group `vg`. Assim, é preciso renomear o volume group.
+Num sistema GNU/Linux, não pode haver dois volume groups com o mesmo nome. Assim, para evitar conflitos de `LVM`, o provisionamento usa um nome temporário (`$vg`) na instalação do sistema. No entanto, o sistema apenas funcionará com o volume group `vg`. Assim, é preciso renomear o volume group.
Para isso, **certifique-se de estar num sistema e computador que não possua nenhum volume group com o nome** `vg` (caso contrário vá para um que satisfaça tal condição) e proceda com a mudança:
@@ -179,20 +51,6 @@ Para isso, **certifique-se de estar num sistema e computador que não possua nenh
Continuando remotamente
-----------------------
-Para que seja possível continuar remotamente com a configuração, é preciso instalar um servidor SSH:
-
- apt-get install openssh-server
- ssh-keygen -l -f /etc/ssh/ssh_host_dsa_key.pub
- ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
-
-Aproveite para instalar aplicativos básicos:
-
- apt-get install screen cron lsb-release openssl
-
-Por fim,
-
- passwd root
-
Agora a máquina já está quase a ponto de poder ser administrada remotamente. Antes disso, configure a rede, instale o sudo e adicione as contas de usuário/a iniciais:
vi /etc/network/interfaces # configuracao de rede
@@ -200,7 +58,7 @@ Agora a máquina já está quase a ponto de poder ser administrada remotamente. Ant
vi /etc/resolv.conf # para usar o dns disponivel no data center
apt-get install sudo && adduser nome-de-usuario
-Antes de largar a máquina no data center, lembre-se de anotar os fingerprints do ssh que você listou anteriormente.
+Antes de largar a máquina no data center, lembre-se de anotar os fingerprints do ssh exibidos anteriormente.
Expansão de espaço em disco
---------------------------
@@ -217,3 +75,10 @@ Algumas referências para instalação:
* [Encrypted Root LVM](http://www.howtoforge.com/encrypted-root-lvm).
* [Encrypted filesystem - rigacci.org](http://www.rigacci.org/wiki/doku.php/doc/appunti/linux/sa/cryptfs).
* [EncryptedFilesystems - Ubuntu Documentation](https://help.ubuntu.com/community/EncryptedFilesystems).
+
+A opção de partida `rootdelay` é importante no caso de sistemas contidos dentro de volumes USB, já que o kernel demora alguns instantes para detectar tais volumes. Detalhes a respeito em
+
+* [Installing Linux on USB - Part 5: Installing Debian Linux on USB flash memory drives](http://blogs.koolwal.net/2009/02/03/installing-linux-on-usb-part-5-installing-debian-linux-on-usb-flash-memory-drives/).
+* [initramfs-tools: lvm is not initialized on USB disks](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=366175#37).
+* [When root on USB: add rootdelay=xx to kernel command line](https://blueprints.launchpad.net/ubuntu/+spec/kernel-boot-usb-roodelay).
+