Neste artigo, as etapas para a criação e a configuração de máquinas virtuais (VMs) do CEFALA sào descritas. O processo não é complicado, mas exige a realização de uma sequência de ações manuais, dificilmente automatizáveis. Como vocês verão abaixo, eu tentei automatizar ao máximo a configuração dos clientes NSS, LDAP e NFS. Vamos então ao que interessa.
Preliminares
Antes de se criar uma nova VM, é necessário que um IP seja reservado para
ela no servidor DNS do CEFALA. Digamos que a VM a ser criada é a xyz
.
Assim que seu IP estiver atribuído, podemos conhecê-lo através do seguinte
comando:
$ host xyz.cefala.org
O arquivo de configuração KVM da VM deverá também ser criada. Não entrarei
em detalhes deste processo no presente artigo. Normalmente, após a sua
criação, o arquivo de configuração aparecerá como
/etc/libvirt/qemu/CEFALA-XYZ.xml
ou algo do gênero.
Algo importante para o bom funcionamento da VM é a criação da interface de
rede br3
. Se ela ainda não existir, é possível fazê-lo no
virt-manager
. Para tanto, clique no ícone "Show virtual hardware
details" e em seguida no botão "Add Hardware". Crie uma interface de rede
com esta configuração:
Network source: Specify shared device name
Bridge name: br3
Device model: rtl8139
Instalação do sistema operacional
Antes de iniciar a instalação do sistema operacional, é necessário indicar
o arquivo ISO contendo o netinst da Debian. Se isto não tiver ainda sido
feito, lance o virt-manager
e configure o "IDE CDROM 1", apontando o seu
"Source path" para o arquivo ISO
/var/lib/libvirt/images/debian-testing-amd64-netinst.iso
ou aquele que
for apropriado. É também importante colocar "IDE CDROM 1" no topo da lista
"Boot Options". Em seguida, basta ligar a VM e o instalador da Debian será
lançado.
Dizem por aí que até uma galinha é capaz de instalar um sistema Debian, pois basta ficar bicando na tecla "Enter". No nosso caso, teremos que ter um cérebro ligeiramente superior ao de uma galinha, pois teclas diferentes da "Enter" terão que ser usadas. Em particular, a etapa "Configuring the network with DHCP" não funcionará (pois não existe servidor DHCP para as VMs) e teremos que escolher a opção "Configure network manually" e fornecer os dados abaixo, manualmente:
address: 150.164.32.XX
netmask: 255.255.255.0
gateway: 150.164.32.254
nameserver: 150.164.32.32
O XX do address IP é aquele que o DNS do CEFALA nos fornece. Na sequência
da configuração rede, escolhemos o nome da máquina adequado (xyz
no nosso
exemplo) e usamos o "domain name" cefala.org
.
O programa de instalação da Debian exige a criação de um usuário além do root. Escolha um nome de login qualquer para ele. Este usuário deverá ser suprimido mais tarde, pois as contas dos usuário serão compartilhadas via LDAP.
Configuração da VM
Como descrito por Arlindo em um outro
artigo, as VMs do CEFALA compartilham o
diretório /home
através do NFS, cujo servidor é a VM nfs.cefala.org
. O
protocolo NFS passa pela bridge br3
, definida no hospedeiro
kvm.cefala.org
. Deste modo, será necessário criar na nova VM uma nova
interface de rede (a eth1
) com o IP apropriado.
Além disto, a administração das contas dos usuários é centralizada na VM
nfs.cefala.org
, via LDAP. É necessário, assim, instalar e configurar os
pacotes Debian com os clientes NSS e LDAP.
No intuito de automatizar ao máximo as ações descritas acima, eu criei um Makefile e alguns arquivos de configuração que estão atualmente sob w controle Git. Aqueles que têm acesso aos repositórios cefala-admin (via par de chaves SSH) poderão obter os arquivos desta maneira:
$ git clone cefala-admin@git.cefala.org:cefala-vm-conf.git
O comando acima não funcionará na VM que acabou de ser criada, pois a
partição /home
ainda não está disponível. Ora, é para isto mesmo que
precisamos dos arquivos! Podemos contornar este problema do ovo e da
galinha com os seguintes comandos (utilize a console do virt-manager
,
fazendo o login como root):
# scp -r rlaboiss@git.cefala.org:/var/git/cefala-admin/cefala-vm-conf.git .
# aptitude install git
# git clone cefala-vm-conf.git
# aptitude remove git
Obviamente, você terá que substituir o rlaboiss
acima pelo seu nome de
login na base LDAP. Em seguida, instale os pacotes libnss-ldapd
e
nfs-common
:
# aptitude install libnss-ldapd nfs-common
Aceite todos os valores propostos como default no debconf. Eles serão modificados no passo seguinte, que é este abaixo:
# cd cefala-vm-conf
# aptitude install make
# make IP=85 HOSTNAME=xyz
# aptitude remove make
A especificação das variáveis IP
e HOSTNAME
é obrigatória. A variável
IP
corresponde ao último número do IP na bridge br3
. Atualmente, nós
temos as seguintes definições:
172.16.10.1 nfs.cefala.org
172.16.10.2 git.cefala.org
172.16.10.3 www.cefala.org
172.16.10.4 dev.cefala.org
172.16.10.5 sci.cefala.org
Et voilà! A nova VM está pronta para utilização. Para ter certeza que tudo está funcionando, faça um teste de conexão à partir de uma outra máquina, com o comando:
$ ssh xyz.cefala.org
Nota: os comandos para remover os pacotes git
e make
não são
obrigatórios, mas garantem que as VMs permaneçam limpas.
Update: Desde o commit 528e67f
, não é mais necessário especificar as
variáveis IP e HOSTNAME no lançamento do commando make
.