BEM VINDO AO BLOG DO MARCOS CARRARO CRIADOR DO "CARRARO DASHBOARD". MUITO MAIS QUE UM SIMPLES BLOG.

quinta-feira, 16 de julho de 2015

Automatizando a instalação do Debian Jessie 8.1 com preseed

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 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/ ./iso

Alterando 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
    menu label ^Instalacao Servidor
    linux /install.amd/vmlinuz
    initrd /install.amd/initrd.gz
    append cdrom-detect/try-usb=true preseed/file=/cdrom/preseed.cfg locale=en_US keyboard-configuration/xkb-keymap=br-abnt2 languagechooser/language-name=English  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 
d-i partman/confirm_nooverwrite boolean true 

## 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  sed -i '/gateway/d' /target/etc/network/interfaces ; sed -i '/dns-nameservers/d' /target/etc/network/interfaces ; echo > /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` > 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 d-i preseed/late_command 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, 
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: https://www.debian.org/releases/jessie/example-preseed.txt

Forte abraço a todos,
Marcos Carraro



Nenhum comentário:

Postar um comentário

Posts que a turma mais esta lendo...

Posts que a turma mais esta lendo...

Marcos Carraro