Linux na Web

Instalação automatizada do CentOS 7

Kickstart

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.

Anaconda ks

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á:

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), nfs.

Alternativas:

– 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 –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:

– 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:

centos-ks.cfg

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

inicio instalação

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:

inst.ks

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

inicio instalação

Você pode acompanhar os passos que o script segue:

processo instalação

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:

arquivos gerados pelo kickstart

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

Sobre: 
Graduado em Sistemas de Informação com mais de 15 anos de atuação na área de TI. Entusiasta de tecnologia e software livre principalmente Linux em servidores.

0 Comentários

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: