Imagens customizadas para o OpenStack Glance

/, Infrastructure as a Service/Imagens customizadas para o OpenStack Glance
  • openstack logo on cloud

Imagens customizadas para o OpenStack Glance

Novos administradores do OpenStack podem ter dificuldades para gerar imagens customizadas para suas instancias. Este tutorial pretende mostrar a criação do zero dessas imagens, utilizando como exemplo uma imagem com CentOS 7, MariaDB e Http Apache. A preparação da VM foi realizada em um desktop com Fedora 25.

Preparação do ambiente

  • Garanta que possui um ambiente de virtualização completo, instalando os pacotes "libvirt" e "virt-manager" no Fedora:

  • Verifique se o serviço do libvirt está em execução:

Criação da Máquina Virtual

  • Crie uma nova máquina virtual utilizado o “virt-manager” e defina o hardware dela. As características do hardware nesse momento só influenciarão a rapidez da instalação, o tamanho da instancia no OpenStack depende somente do flavor.

  • Configure o tamanho do disco que conterá o S.O. CentOS 7, no meu exemplo criei um disco de 9GB. O valor de 9GB é mais que o suficiente visto que queremos somente gerar uma imagem da instalação. Crie esse disco em arquivo, não em LVM ou iSCSI, trabalhar com arquivo simplificará nosso trabalho posterior
  • No particionamento básico para o CentOS configure uma partição única conforme mostrado abaixo:

  • Crie um usuário “centos” com permissões de sudo e NÃO configure uma senha de root:

Configurando a VM

  • Instale os pacotes que considera essenciais para sua instalação. No meu caso, instalei os pacotes httpd, mariadb, bash-completion e vim:
  • O pacote “cloud-init” tem se tornado padrão para ambientes em nuvem. Ele realiza configurações na instancia no momento do primeiro boot, através do serviço “cloud-init.service”. A configuração dele pode ser realizada com os seguintes comandos:
  • Atualize o SO:
  • Desligue a VM:

Sealing e Shrinking

Temos uma instalação pronta e já poderíamos fazer upload do disco da VM instalada. Porém ela ainda possui 2 problemas graves:

  • Ela possui informações que não deveriam existir em uma imagem: Mac Address de interfaces, chaves SSH do host e outros
  • Apesar de termos realizado a instalação “minimal” o tamanho do disco é de 9GB, o ideal seria termos uma imagem menor visto que será baixada a cada nova instancia criada pelo Nova
  • Utilizaremos algumas ferramentas do pacote “libguestfs-tools-c” para alcançar esses objetivos
  • Instale esse pacote em sua máquina física:
  • Para realizar o processo de “sealing” utilizaremos o comando “virt-sysprep” conforme o exemplo abaixo:

  • Para diminuir o tamanho do disco para que ele contenha somente o estritamente necessário, utilizaremos o comando “virt-sparsify”. Esse comando removerá os espaços vazios mantendo somente o espaço utilizado pelo S.O.:

  • Verifique a diferença nos tamanhos dos discos:

  • Utilizando o comando “glance” ou “openstack image”, dependendo da versão do OpenStack utilizada, é possível enviar a imagem para seu servidor. Com o comando “glance” a sintaxe ficaria parecida com o comando abaixo:

Mais Imagens e Ferramentas

Este tutorial é uma simples introdução ao assunto de criação de imagens para o OpenStack. Além das ferramentas informadas neste guia, há diversas outras que poderiam ser utilizadas para uma instalação mais ou menos automatizada, dependendo do gosto do sysadmin.

Este link possui tutoriais mais completos sobre a criação de imagens: http://docs.openstack.org/image-guide/create-images-manually.html

Este outro link possui informações sobre maneiras mais automatizadas para a criação de imagens: http://docs.openstack.org/image-guide/create-images-automatically.html

Por último, este link possui uma vasta lista de imagens oficiais, criadas pelas próprias distribuições: http://docs.openstack.org/image-guide/obtain-images.html

Dúvidas? Comentários? Sugestões de melhoria no tutorial? 🙂

Por |2017-12-21T18:31:42-03:0013 de junho de 2017|Categories: Infrastructure, Infrastructure as a Service|Tags: , |0 Comentários

Sobre o autor:

Eu ajudo empresas a utilizar containers e serem mais ágeis no seu desenvolvimento. Executar as aplicações com mais eficiência e fazer deploy em produção com mais confiança.

Deixar Um Comentário