Automatizando a instalação do Debian Jessie 8.1 com preseed
Autor: Marcos | Publicado: 2015-07-16T14:39:00-03:00

Buenas,

Mudando um pouco, já que o Centos ainda não esta dando suporte a ARM, esta consumindo muito recurso quando preciso poupar os mesmos (Tem projeto nascendo) então como na vida muitas vezes temos pequenos desvios...

Neste caso vamos ver como automatizar a instalação do Debian Jessie, porém o usuário somente particiona o disco, o restante é feito automaticamente.

Para isso, vamos baixar a ISO original ~650mb
# cd ~
# wget&nbsp;http://cdimage.debian.org/debian-cd/8.1.0/amd64/iso-cd/debian-8.1.0-amd64-CD-1.iso

Montar a ISO para poder copiar os arquivos
# mount -o loop debian-8.1.0-amd64-CD-1.iso /mnt
# mkdir ~/iso
# rsync -a -H --exclude=TRANS.TBL /mnt/ ./isoAlterando o isolinux.cfg para iniciar a instalação automaticamente e carregar o arquivo preseed.cfg
# vim iso/isolinux/isolinux.cfg
O conteúdo do arquivo é este

default install
prompt 1
timeout 240
display message.txt
F1 message.txt

label install
&nbsp; &nbsp; menu label ^Instalacao Servidor
&nbsp; &nbsp; linux /install.amd/vmlinuz
&nbsp; &nbsp; initrd /install.amd/initrd.gz
&nbsp; &nbsp; append cdrom-detect/try-usb=true preseed/file=/cdrom/preseed.cfg locale=en_US keyboard-configuration/xkb-keymap=br-abnt2 languagechooser/language-name=English &nbsp;countrychooser/shortlist=US DEBCONF_DEBUG=5 video=vesa:ywrap,mtrr vga=788 --- quiet


No arquivo message.txt no diretório iso/isolinux/message.txt é o texto que sera mostrado quando o CD iniciar seu boot..


Criando o arquivo preseed.cfg com o seguinte conteudo, esta dividido em grupos de configuração, praticamente ele é auto descritivo.

### USO GERAL
debconf debconf/priority       string critical
unknown debconf/priority       string critical
d-i debconf/priority        string critical

### TECLADO E IDIOMA
d-i console-keymaps-at/keymap       select br-abnt2
d-i debconf/language       string en_US
d-i languagechooser/locale       string en_US

d-i debian-installer/keymap       select br-abnt2
d-i debian-installer/language       string en
d-i debian-installer/locale       string en_US

## OPERACOES COM O CD
d-i cdrom-checker/start       boolean false
d-i cdrom-detect/load_media       boolean false

### REDE
#d-i netcfg/link_wait_timeout       string 1
#d-i netcfg/dhcp_timeout       string 1
d-i netcfg/use_dhcp        false
d-i netcfg/disable_dhcp       boolean true
d-i netcfg/dhcp_failed        note
d-i netcfg/choose_interface       select eth0
d-i netcfg/hostname        string servidor1
d-i netcfg/get_ipaddress       string 10.10.10.1
d-i netcfg/get_netmask        string 255.255.255.0
d-i netcfg/get_gateway        string 10.10.10.1
d-i netcfg/get_nameservers       string 10.10.10.1
d-i netcfg/confirm_static       boolean true

### CONTA DO USUARIO
d-i passwd/root-login        boolean true
d-i passwd/make-user        boolean false
### Senha Padrao `printf "abc123!" | mkpasswd -s -m md5`
d-i passwd/root-password-crypted      password $1$Gy43AnD3$TkVbQupeEhkrDN4llbPvr0

### USUARIO COMUN (CONTA DESABILITADE SOMENTE USAR 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


### HORA
d-i clock-setup/utc        boolean true
d-i time/zone string        America/Sao_Paulo
d-i clock-setup/ntp        boolean true
d-i clock-setup/ntp-server       string pool.ntp.br


### PARTICIONAMENTO MANUAL SUPRIME CONFIRMACAO
d-i partman-auto/init_automatically_partition     select Manual
d-i partman/confirm       boolean true&nbsp;
d-i partman/confirm_nooverwrite      boolean true&nbsp;

## DESABILITA O MIROR DOWNLOAD DE PACOTES DURANTE A INSTALACAO
d-i mirror/country        string manual
d-i mirror/http/hostname       string http.us.debian.org
d-i mirror/http/directory       string /debian
d-i mirror/http/proxy        string

### CONFIGURACOES DO ATP-GET
d-i apt-setup/use_mirror       boolean false


### PACOTES EXTRAS QUE SERAM INSTALADOS
tasksel tasksel/first        multiselect standard, ssh-server
d-i pkgsel/include string      vim

### NAO ENVIA INFORMACOES REFERENTE A PACOTES UTILIZADOS
popularity-contest popularity-contest/participate    boolean false

### INSTALA O GRUB
d-i grub-installer/only_debian       boolean true
d-i grub-installer/bootdev       string default

### TERMINA A INSTALACAO E REINICIA
d-i finish-install/reboot_in_progress      note

## REMOVE O GATEWAY E O DNS PADRAO DA INSTALACAO
d-i preseed/late_command       string &nbsp;sed -i '/gateway/d' /target/etc/network/interfaces ; sed -i '/dns-nameservers/d' /target/etc/network/interfaces ; echo &gt; /target/etc/resolv.conf


Após fazer todas alterações, salve este conteúdo dentro do arquivo iso/preseed.cfg .

Agora atualize o MD5 dos arquivos
# cd ~/iso
# md5sum `find -follow -type f` &gt; md5sum.txt
# cd ..



Agora vamos criar a iso do nosso novo sistema

# genisoimage -o LinuxNovo.iso -r -J -no-emul-boot -boot-load-size 4  -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat ./iso



Feito, você criou uma ISO de instalação automática, ou quase automática...



Obs:. Na ultima linha&nbsp;d-i preseed/late_command&nbsp;eu posso rodar comandos de pós instalação, também pode ser criado um script para fazer estes ajustes, também pode fazer um chroot /target e rodar comandos na nova instalação,&nbsp;

Obs2:. /target é a pasta onde esta montada a nova instalação, então tudo que for alterado dentro desta estrutura afeta diretamente a nova instalação



Fonte: https://www.debian.org/releases/stable/i386/apb.html

Fonte2:&nbsp;https://www.debian.org/releases/jessie/example-preseed.txt



Forte abraço a todos,

Marcos Carraro