>_Debian Wheezy – Instalação automatizada pela rede

Configurado a instalação automatizada do Debian Wheezy pela rede (PXE). 

PXE_diagram

Cenário do ambiente:
Servidor CentOS 6 – PXE 192.168.1.4
Servidor Centos 6 – HTTPD http://192.168.1.4/installer/kickstarter.cfg – 192.168.1.4
Servidor Debian 7 – Apache e Repositório – 192.168.2.34

Passo 1 – No servidor PXE 192.168.1.4 dentro do diretório /tftpboot, foi criado a estrutura de diretórios do Debian 7 netboot.

# cd /tftpboot/
# mkdir debian_7_x86_64
# cd debian_7_x86_64/
# mkdir pxeboot
# cd pxeboot/

Passo 2 – Download direto do site do Debian: linux e initrd.gz.
Ambos deverão serem salvos dentro do diretório: /tftpboot/debian_7_x86_64/pxeboot.

debian-pxe

# wget http://ftp.debian.org/debian/dists/wheezy/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux
# wget http://ftp.debian.org/debian/dists/wheezy/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz

Passo 3 – Configuração do arquivo default

# cd /tftpboot/pxelinux.cfg/

Passo 4 – Arquivo de chamada da inicialização

# vim default
LABEL Debian 7.5 x86_64
        kernel debian_7_x86_64/pxeboot/linux
        append vga=788 initrd=debian_7_x86_64/pxeboot/initrd.gz priority=critical debian-installer/locale=pt_BR console-keymaps-at/keymap=br-abnt2 auto url=http://192.168.1.4/installer/kickstarter.cfg  -- 

Passo 6 – Diretório para armazenar o mirror do Debian7

# mkdir -p /var/spool/apt-mirror/mirror/ftp.us.debian.org/debian/

Passo 7 – Criação do VirtualHost do mirror do Debian 7.

<VirtualHost *:80>
ServerAdmin sysadmin@dominio.com.br
ServerName repo-debian.dominio.com.br
DocumentRoot /var/spool/apt-mirror/mirror/ftp.us.debian.org/
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/spool/apt-mirror/mirror/ftp.us.debian.org/>
Options +Indexes +SymlinksIfOwnerMatch
IndexOptions NameWidth=* +SuppressDescription
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>

Passo 8 – Script que fará o download do mirror via protocolo Rsync

# cd /opt
# vim mirror-debian.sh
#!/bin/bash
repo=ftp.br.debian.org
root=:debian
localdir=/var/spool/apt-mirror/mirror/ftp.us.debian.org/debian/
dists=stable
section=debian-installer,contrib,non-free,main,main/debian-installer,contrib/debian-installer,non-free/debian-installer
arch=amd64,debian-installer,i386
defopt="-v -p --arch=$arch --host=$repo --root=$root --section=$section --dist=$dists -e rsync --ignore-release-gpg --postcleanup --getcontents --nosource"
debmirror $defopt $localdir

Passo 9 – Iniciando o download do repositório do Debian 7 (Cerca de 100Gb).

# apt-get install screen -y
# cd /opt
# chmod +x mirror-debian.sh
# screen -S mirror ./mirror mirror-debian.sh

Passo 10 – Arquivo de instalação automática.
Antes de utilizar o arquivo que deixo como exemplo, recomendo a leitura do link abaixo:
https://www.debian.org/releases/jessie/i386/apbs04.html.en

OBS: O arquivo kickstarter.cfg deverá estar dentro de um diretório do /var/www/html/installer, para que seja possível o acesso dele via http

# vim  kickstarter.cfg

OBS: O exemplo abaixo fará uma instalação básica do Debian 7 sem ambiente gráfico.

# Debian Installer Automation File
# Instalação Picking

# Configuração da rede
#d-i netcfg/get_hostname					string hostname-do-srv
d-i netcfg/get_domain						string dominioda-da-rede-aqui
d-i netcfg/disable_dhcp						boolean false

# Seleção automatica de interface de rede
d-i netcfg/choose_interface					select auto

# Configuração do mirror
d-i mirror/protocol						string http
d-i mirror/country						string br
d-i mirror/http/hostname					string 192.168.2.34
d-i mirror/http/directory					string /debian
d-i mirror/http/proxy						string
d-i mirror/suite						string wheezy
d-i mirror/udeb/suite						string wheezy

# Usuário root
d-i passwd/root-password					password senha-root-aqui 
d-i passwd/root-password-again					password senha-root-aqui

# Usuário comum ( Não teremos nenhum usuário, somente o root).
d-i passwd/user-fullname					boolean false
d-i passwd/username						boolean false
d-i passwd/user-password					boolean false
d-i passwd/user-password-again					boolean false

# Configuração do APT
d-i apt-setup/uri_type						select d-i
d-i apt-setup/hostname						string 192.168.2.34
d-i apt-setup/directory						string /debian
d-i apt-setup/another						boolean false

d-i apt-setup/security-updates 					boolean false
d-i apt-setup/services-select					multiselect
d-i finish-install/reboot_in_progress				note
d-i prebaseconfig/reboot_in_progress				note

# Permite o uso de repositorios sem chave PGP
d-i debian-installer/allow_unauthenticated			boolean true

# Configuração NTP
d-i clock-setup/utc						boolean true
d-i clock-setup/ntp						boolean true
# servidor NTP no meu exemplo é 192.168.1.41
d-i clock-setup/ntp-server					192.168.1.41
d-i time/zone							string Brazil/East

# Tasksel
tasksel tasksel/first 						multiselect 

# Não participar da avaliação de popularidade de pacotes
popularity-contest popularity-contest/participate		boolean false

# Adiciona pacotes
d-i pkgsel/include						string vim build-essential rcconf openssh-server htop ifstat  

# Configuração do GRUB
d-i grub-installer/only_debian					boolean true

# Finaliza instalação
d-i finish-install/keep-consoler				boolean true
d-i finish-install/reboot_in_progress				note

# Configura servidor X automaticamente
xserver-xorg xserver-xorg/autodetect_mouse			boolean true
xserver-xorg xserver-xorg/autodetect_monitor			boolean true
xserver-xorg xserver-xorg/config/monitor/lcd			boolean true

Exemplo do kickstarter.cfg para uma instalação totalmente automatizada com gerenciador de janelas.

# Debian Installer Automation File
# Instalação Picking

# Configuração da rede
d-i netcfg/get_hostname						string picking
d-i netcfg/get_domain						string dtd.intranet
d-i netcfg/disable_dhcp						boolean false

# Seleção automatica de interface de rede
d-i netcfg/choose_interface					select auto

# Configuração do mirror
d-i mirror/protocol						string http
d-i mirror/country						string br
d-i mirror/http/hostname					string 192.168.2.34
d-i mirror/http/directory					string /debian
d-i mirror/http/proxy						string
d-i mirror/suite						string wheezy
d-i mirror/udeb/suite						string wheezy

# Cria senha de root
d-i passwd/root-password					password senha-root-aqui 
d-i passwd/root-password-again					password senha-root-aqui

# Cria senha do usuário picking
d-i passwd/user-fullname					string Picking
d-i passwd/username						string picking
d-i passwd/user-password					password senha-user-aqui
d-i passwd/user-password-again					password senha-user-aqui
d-i passwd/user-default-groups					string cdrom floppy dip video plugdev dialout lpadmin

# Particionamento de disco assistido
d-i partman-auto/method						string regular 
d-i partman-auto/choose_recipe					select atomic
d-i partman-partitioning/confirm_write_new_label		boolean true
d-i partman/choose_partition					select finish
d-i partman/confirm						boolean true 
d-i partman/confirm_nooverwrite					boolean true 
 
# Configuração do APT
d-i apt-setup/uri_type						select d-i
d-i apt-setup/hostname						string 192.168.2.34
d-i apt-setup/directory						string /debian
d-i apt-setup/another						boolean false

d-i apt-setup/security-updates 					boolean false
d-i apt-setup/services-select					multiselect
d-i finish-install/reboot_in_progress				note
d-i prebaseconfig/reboot_in_progress				note

# Permite o uso de repositorios sem chave PGP
d-i debian-installer/allow_unauthenticated			boolean true

# Configuração NTP
d-i clock-setup/utc						boolean true
d-i clock-setup/ntp						boolean true
d-i clock-setup/ntp-server					192.168.1.41
d-i time/zone							string Brazil/East

# Tasksel
tasksel tasksel/first 						multiselect 

# Não participar da avaliação de popularidade de pacotes
popularity-contest popularity-contest/participate		boolean false

# Adiciona pacotes
d-i pkgsel/include						string gdm3 gnome-core iceweasel xterm cups vim gcc make wireless-tools build-essential linux-kernel-hearders python-webkit rcconf openssh-server htop ifstat chromium-browser

# Configuração do GRUB
d-i grub-installer/only_debian					boolean true

# Finaliza instalação
d-i finish-install/keep-consoler				boolean true
d-i finish-install/reboot_in_progress				note

# Configura servidor X automaticamente
xserver-xorg xserver-xorg/autodetect_mouse			boolean true
xserver-xorg xserver-xorg/autodetect_monitor			boolean true
xserver-xorg xserver-xorg/config/monitor/lcd			boolean true
xserver-xorg xserver-xorg/config/monitor/selection-method 	select medium
xserver-xorg xserver-xorg/config/monitor/mode-list		select 1024x768 60Hz
xserver-xorg xserver-xorg/config/monitor/modes			multiselect 1024x768, 800x600

# Configura inicialização pelo GDM
gdm3 shared/default-x-display-manager				select gdm3

Realizado todos os passos acima, basta dar o boot pela rede

>_Debian Wheezy – Instalação automatizada pela rede
Tagged on:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: