Como administrador de sistemas, as vezes temos muitas tarefas para realizar e precisamos organizar melhor nossas atividades para que dê tempo de fazer tudo e com qualidade. Mas mesmo assim temos aquelas tarefas que consomem nosso tempo, por exemplo, fazer aquela instalação do CentOS 7 num servidor novo ou subir uma máquina virtual zerada para testes. :/
Mas mesmo assim temos aquelas tarefas que consomem nosso tempo, por exemplo, fazer aquela instalação do CentOS 7 num servidor novo ou subir uma máquina virtual zerada para testes. :/
E lá vamos nós, iniciar uma nova instalação do CentOS, e ficar respondendo as perguntas do instalador, particionar o disco, escolher os pacotes que queremos, enfim, vamos perder um tempinho. Que tal automatizar esse processo!?
Vamos utilizar o Kickstart para agilizar isso, criando um script para automatizar a instalação do CentOS.
O Kickstart é uma forma utilizada para automatizar a instalação de sistemas com Red Hat e CentOS. Criamos um arquivo Kickstart contendo respostas para perguntas que são solicitadas pelo instalador quando fazemos uma instalação manual.
No momento de iniciar a instalação, informamos o arquivo que criamos e o instalador irá se encarregar de executar a instalação automaticamente, sem precisar da nossa intervenção.
Entre as respostas e configurações que podemos acrescentar no arquivo Kickstart estão:
➡ Definir o local dos pacotes de instalação;
➡ Layout de teclado e linguagem;
➡ Fuso horário;
➡ Configuração da placa de rede;
➡ Habilitar e desabilitar serviços;
➡ Definir esquema de particionamento do disco;
➡ Escolher pacotes que devem ser instalados;
➡ Executar scripts de pós instalação;
Podemos realizar instalações pelo Kickstart utilizando DVDs, HDs, Pendrives ou da nossa rede local (FTP, HTTP). Para iniciar o uso do script precisamos seguir alguns passos:
➡ Criar um arquivo de Kickstart com nossas configurações;
➡ Disponibilizar o arquivo criado numa mídia ou pela rede;
➡ Iniciar a instalação passando o arquivo como parâmetro;
Para este artigo vou utilizar o CentOS 7, mas também funciona em versões anteriores com algumas modificações.
Quando fazemos uma instalação do CentOS, ele sempre cria um arquivo na pasta /root chamada anaconda-ks.cfg. Esse arquivo contém todas as suas escolhas feitas durante o processo de instalação manual, se você quiser pode iniciar seu script a partir desse arquivo.
Para este artigo, vamos criar um arquivo simples para demonstrar a utilização do Kickstart. Vamos chamar nosso arquivo de centos-ks.cfg, e o conteúdo será:
# Descrição: Arquivo Kickstart - centos-ks.cfg
# Autor: Cesar A. Gaspar
auth --enableshadow --passalgo=sha512
cdrom
text
keyboard --vckeymap=br --xlayouts='br'
lang pt_BR.UTF-8
network --bootproto=dhcp --device=eth0 --activate
network --hostname=centos
timezone America/Sao_Paulo
rootpw --iscrypted $6$$.Q5TOqNNyRzKTE5ZY02dsLIOQwkwN0bWooBHB4loBoSN7E68SH7dHJ6SZRyzHvdF0/ybpEO82nrjBd5oI1f3g0
ignoredisk --only-use=sda
bootloader --location=mbr --boot-drive=sda
zerombr
clearpart --all --drives=sda
part /boot --fstype="xfs" --ondisk=sda --size=512
part / --fstype="ext4" --ondisk=sda --size=100 --grow
part swap --fstype="swap" --ondisk=sda --size=1024
reboot --eject
%packages
@core
vim
%end
%post --log=/root/post.log
yum update -y
%end
Dentro do arquivo tudo que for precedido por cerquilha (#) será considerado como comentário.
auth --enableshadow --passalgo=sha512
Configura as opções de autenticação do sistemas. O parâmetro –enableshadow indica que vamos utilizar senhas shadow (senhas criptografadas). Já a opção –passalgo=sha512, indica qual tipo de algoritmo hash iremos utilizar.
-- cdrom
Origem da instalação, ou seja, onde serão buscados os pacotes para a instalar o CentOS. No nosso caso informamos: cdrom. Outras opções são harddrive, url(pode apontar para seu [repositório interno][1]), nfs.
Alternativas:
url --url="https://linuxnaweb.com/base"
harddrive --partition=sda1 --dir=/centos/
-- text
Executa a instalação em modo texto, por padrão a instalação kickstart é de forma gráfica (graphical)
--keyboard --vckeymap=br --xlayouts='br'
Define o layout do teclado para o sistema, no caso, escolhemos a opção br para teclados abnt. Poderíamos escolher us para teclados americanos.
--lang pt_BR.UTF-8
Define idioma do sistema e a codificação.
--network --bootproto=dhcp --device=eth0 --activate
Definimos como a placa de rede irá receber o IP. O parâmetro –bootproto define o tipo para definição do IP. O parâmetro –device define o nome da interface que irá receber o IP e o parâmetro –activate habilita a interface no boot.
Para definir IP estática usaríamos:
-- network --bootproto=static --device=eth0 --ip=172.16.0.150 --netmask=255.255.0.0 --activate
-- network --hostname=centos
Definimos o nome do host que estamos instalando.
--timezone America/Sao_Paulo
Define o fuso horário do sistema.
--rootpw --iscrypted $6$$...
Define a senha do usuário root na instalação. O parâmetro –iscrypted indica que a senha será criptografada. Para gerar a senha no hash sha512 use o comando abaixo:
# python -c 'import crypt; print(crypt.crypt("123456", "$6$"))'
--ignoredisk --only-use=sda
Caso você tenha diversos discos no servidor e queira usar somente 1, você pode ignorar todos os discos na instalação, exceto os que forem especificados em –only.
--bootloader --location=mbr --boot-drive=sda
Definimos onde o gerenciador de boot (grub) será instalado. Definimos a instalação para mbr do disco /dev/sda.
--zerombr
Esse parâmetro permite que façamos o particionamento de disco que já foi particionado anteriormente. Caso não coloque esse comando, o instalador só irá fazer se o disco estiver zerado (não usado anteriormente).
-- clearpart --all --drives=sda
Remove todas as partições do drive especificado, antes de fazer o particionamento.
–part /boot –fstype="xfs” –ondisk=sda –size=512**
Cria a partição /boot, com o tipo de sistemas de arquivo como xfs, no disco /dev/sda com o tamanho de 512MB.
--part / --fstype="ext4" --ondisk=sda --size=100 --grow**
Cria a partição / (raiz), com o tipo de sistemas de arquivo como ext4, no disco /dev/sda com o tamanho iniciando com 100MB até completar todo disco. O parâmetro –grow faz com que ocupe todo o espaço de disco restante.
--part swap --fstype="swap" --ondisk=sda --size=1024
Cria a partição swap no disco /dev/sda de tamanho de 1GB.
--reboot --eject
Reinicia o servidor após a instalação do CentOS. O parâmetro –eject irá tentar ejetar o DVD de instalação.
--%packages... %end
Define a seção onde escolhemos os pacotes ou grupo de pacotes para serem instalados no nosso sistema. Você pode digitar o nome do pacote ou um grupo que inicia com o caracter @. Alguns exemplos são:
@core: Grupo de pacotes que representam os pacotes de uma instalação básica.
@Desktop: Grupo de pacotes para instalação da interface gráfica.
--%post --log=/root/post.log ... %end
Podemos adicionar comandos para serem executados após a instalação do CentOS. No caso do script acima, fazemos a atualização dos pacotes do CentOS. O parâmetro –log define um arquivo de log com a saída de todos os comando executados dentro do seção de pós instalação.
Podemos usar como mídia para dar boot no instalador tanto DVD como pendrives, neste artigo vou utilizar um DVD.
O script centos-ks.cfg poderia estar dentro de um DVD, de um HD, de um pendrive, mas para nosso exemplo, vou deixar numa pasta dentro de um servidor web:
Iniciamos o DVD de instalação do CentOS e com as setas do teclados escolhemos a opção: Install CentOS 7:
Com a opção selecionada, teclamos TAB e será habilitado para edição a linha que define os parâmetros para o boot de instalação. Ao final da linha adicionamos o parâmetro inst.ks e o caminho do nosso script:
Após digitado o parâmetro, teclamos ENTER e pronto, todo o processo de instalação irá transcorrer sem precisar da sua intervenção:
Você pode acompanhar os passos que o script segue:
Ao termino da instalação o sistema irá reiniciar sozinho. Ao logar como root, podemos verificar que na pasta do root foram criados alguns arquivos. Entre eles o arquivo com os logs do pós instalação:
Pronto! Nada mais de perder tempo com instalações do CentOS, você pode criar diversos scripts personalizados para cada situação.
Caso queira se aprofundar mais sobre a instalação personalizada, abaixo deixo um link para a documentação do Red Hat: Red Hat – Instalações pelo kickstart
Se una com os assinantes de nossa Newsletter, sempre que tiver postagem nova você será notificado.