Linux Servidor linux

Instalação automatizada do CentOS 7

Instalação automatizada do CentOS 7

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.

Utilizando Kickstart

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.

Opções do Kickstart

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;

Processo de instalação pelo Kickstart

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;

Arquivo Kickstart no CentOS

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.

image

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

Detalhes do arquivo de kickstart

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.

Iniciando o processo de instalação automatizada do CentOs

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:

image

Iniciamos o DVD de instalação do CentOS e com as setas do teclados escolhemos a opção: Install CentOS 7:

image

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:

image

Após digitado o parâmetro, teclamos ENTER e pronto, todo o processo de instalação irá transcorrer sem precisar da sua intervenção:

image

Você pode acompanhar os passos que o script segue:

image

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:

image

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

comments powered by Disqus

Assine nossa Newsletter! 🐧

Se una com os assinantes de nossa Newsletter, sempre que tiver postagem nova você será notificado.