Configuração
Apesar de por defeito ser criada uma placa de rede em bridge com a primeira placa de rede, o endereçamento de rede dos ambientes virtuais ficam noutra rede que não a onde estamos.
Se quisermos ter os diversos ambientes na rede onde está a máquina física, temos que nós criar uma “bridge”.
Para tal, corro o comando:
nano /etc/network/interfaces
Na definição dos interfaces, altera-se para ficar algo como:
auto eth0 iface eth0 inet manual auto br0 iface br0 inet dhcp bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0
Em seguida, é preciso reinicializar o serviço de rede, com o comando:
service networking restart
LXC tem um comando que verifica se todos os parâmetros, que são precisos para o bom funcionamento do LXC do Kernel estão activados.
Esse comando é:
lxc-checkconfig
Como podemos ver na imagem, o Kernel do Ubuntu 12.04 tem tudo o que é preciso, activado.
Na criação dos diversos ambientes, se não passarmos um ficheiro de configuração, ele vai usar o ficheiro que se encontra em “/etc/lxc/lxc.conf”.
Podemos aceder ao conteúdo desse ficheiro com o comando:
nano /etc/lxc/lxc.conf
Como podem verificar, só tenho três linhas neste ficheiro e só uma delas alterei para colocar como placa de rede a “br0”, que tinha criado anteriormente.
Outro ficheiro muito importante é o que é usado pelo serviço lxc, que se encontra em “/etc/default/lxc”.
Para aceder a ele pode-se usar o “nano”, com o comando:
nano /etc/default/lxc
Não é preciso alterar quase nada no ficheiro. Apenas a parte de rede para ficar com os parâmetros da rede em que me encontro.
Algo como:
LXC_BRIDGE="br0" LXC_ADDR="192.168.1.138" LXC_NETMASK="255.255.255.0" LXC_NETOWRK="192.168.1.0"
Em seguida é preciso efectuar um restart ao serviço lxc, com o comando:
service lxc restart
Nesta imagem pretendo mostrar o sistema de ficheiros cgroup, que é o que permite colocar restrições aos ambientes virtuais. Este sistema de ficheiros é montado automaticamente pelo serviço “cgroup-lite”.
Em “/usr/lib/lxc/templates” temos alguns scripts preparados para a criação de ambientes virtuais com algumas das distribuições. Outros templates servem para ter apenas programas isolados, como sshd.
De referir que em vez de se usar estes templates, é perfeitamente possível usar uma imagem pre-preparada para OpenVZ e correr dentro de LXC.
Se abrirem um destes scripts com templates, podem verificar o que ele vai fazer e podem duplicar ou alterar o script.