Saudações,
Virtualizar é uma necessidade na minha e na vida de muitos no meio TI.
É teste de CMS aqui, teste de LOJA ali, um CRM acolá, e nesta "brincadeira"... haja recursos no sistema.
Mas ainda bem que temos projetos como o LinuxContainers!
LXD 2.0 com LXC 2.0 no Ubuntu Mate Desktop 16.04
Esta dica tem objetivo único e exclusivo a criação de um ambiente para testes e não visa um LXD de produção!
ONLY FOR TEST! It's not suitable for production environment.
SOMENTE PARA TESTE! Não é adequado para o ambiente de produção.
O time desenvolvedor do LXC mantem uma versão LTS (long term support) que pode ser instalada via PPA. Usaremos esta versão! Para instalar execute:
$sudo add-apt-repository ppa:ubuntu-lxc/lxc-lts
$sudo apt update
$sudo apt install lxc2 lxd-tools
Por padrão os usuários do grupo dos administradores e sudoers são associados automaticamente ao grupo do LXD.
Agora vamos dá um "pulo do gato" e ignorar a configuração inicial (sudo lxd init) do LXD, e adicionar nosso primeiro contêiner...
Você pode ver todas as images remotas disponíveis no images.linuxcontainers.org com o comando:
$lxc image alias list images:
...
+---------------------------------+--------------+-------------+
| debian/jessie/default/armhf | 8fd035a31064 | |
+---------------------------------+--------------+-------------+
| debian/jessie/default/i386 | 2998b7b972a7 | |
+---------------------------------+--------------+-------------+
| debian/jessie/default/powerpc | f97bc161a80f | |
+---------------------------------+--------------+-------------+
...
Para este poste, nós criaremos um contêiner do Debian 8 (Jessie) 32 bit. Iremos usar a imagem remota "debian/jessie/default/i386" para criar um contêiner local chamado debian8 com o comando:
$lxc launch images:debian/jessie/default/i386 debian8
Creating debian8
Retrieving image: 100%
Starting debian8
Depois que o contêiner for criado você pode conferir o estado do mesmo executando:
$lxc list debian8
+---------+---------+------+------+------------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+---------+---------+------+------+------------+-----------+
| debian8 | RUNNING | | | PERSISTENT | 0 |
+---------+---------+------+------+------------+-----------+
Caso você queira um pouco mais de informação sobre a imagem baixada para gerar o contêiner debian8, execute:
$lxc image list
+-------+--------------+--------+-------------------------------------+------+----------+------------------------------+
| ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCH | SIZE | UPLOAD DATE |
+-------+--------------+--------+-------------------------------------+------+----------+------------------------------+
| | 2998b7b972a7 | no | Debian jessie i386 (20161104_22:42) | i686 | 106.58MB | Nov 5, 2016 at 10:51pm (UTC) |
+-------+--------------+--------+-------------------------------------+------+----------+------------------------------+
EHEHE... Não, você não viu errado, a imagem que deu origem a nossa maquina virtual Debian ocupa apenas 106.58 MB!
Precisamos agora tornar o LXD e nosso contêiner acessível ao DHCP da nossa rede local.
Lembre-se que esta dica é para o Ubuntu Mate Desktop, e o mesmo usa o NetworkManager como gerenciador das conexões de rede! Então, vamos usa-lo...
Adicionar uma interface de ponte acarretará a perda do seu endereço IP. Se você estiver conectado remotamente através da interface que você pretende adicionar à ponte, você perderá sua conexão.
Clique e no menu System -> Preferences -> Internet and Network -> Network Connections:
Clique no botão adicionar, e adicione uma nova conecxão do tipo Bridge:
Na tela seguinte, clique no botão adicionar, e adicione uma conexão do tipo Ethernet:
Nesta ultima tela, selecione o MAC da placa de rede que está conectada à internet para criamos uma Bridge Slave:
Salve as alterações, e ative a Bridge Slave recém criada usando o cliente do NetworkManager na linha de comando. Para tal, liste os UUIDs das conexões...
$sudo nmcli connection
NAME UUID TYPE DEVICE
Bridge connection 1 6e83abe5-ad7b-4992-91c7-a8a3cfe4c831 bridge bridge0
Wired connection 1 193639e8-bba5-386e-8c8e-1fd6ca9e40d2 802-3-ethernet enp8s8
bridge0 slave 1 42184946-c834-40da-820e-31ad469ef4ca 802-3-ethernet --
Ative a "bridge0 slave 1" usando o seu UUID, no meu caso...
$sudo nmcli con up 42184946-c834-40da-820e-31ad469ef4ca
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
Agora precisamos obter um IP para nossa conexão de ponte; execute:
$sudo ifconfig bridge0 up
$sudo vim /etc/default/lxd-bridge
DE:
USE_LXD_BRIDGE="true"
LXD_BRIDGE="lxdbr0"
PARA:
USE_LXD_BRIDGE="false"
LXD_BRIDGE=""
Remova o proxy do perfil padrão do LXD:
$lxc profile unset default environment.http_proxy
Associe a eth0 do perfil padrão do LXD à bridge0 criada recentemente:
$lxc profile device set default eth0 parent bridge0
Desative o seu contêiner...
$lxc stop debian8 --force
Reative novamente...
$lxc start debian8
Se tudo correu como planejado, assim como aconteceu comigo, seu contêiner está em processo de boot, e, dentro de alguns segundos, vai obter um endereço de IP da sua rede local.
Acesse o shell do seu contêiner com o comando:
$lxc exec debian8 /bin/bash
Confira o IP! No meu caso, minha rede está na faixa de IP 10.0.0.xx...
root@debian8:~#ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:16:3e:3e:2e:0f
inet addr:10.0.0.120 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::216:3eff:fe3e:2e0f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:13718 errors:0 dropped:0 overruns:0 frame:0
TX packets:9562 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:19885100 (18.9 MiB) TX bytes:527410 (515.0 KiB)
Vamos ver se funcionou mesmo?
root@debian8:~#apt update
Get:1 http://security.debian.org jessie/updates InRelease [63.1 kB]
Get:2 http://security.debian.org jessie/updates/main amd64 Packages [313 kB]
Get:3 http://security.debian.org jessie/updates/main i386 Packages [314 kB]
Ign http://httpredir.debian.org jessie InRelease
Get:4 http://security.debian.org jessie/updates/main Translation-en [169 kB]
Hit http://httpredir.debian.org jessie Release.gpg
Hit http://httpredir.debian.org jessie Release
Get:5 http://httpredir.debian.org jessie/main amd64 Packages [6787 kB]
Get:6 http://httpredir.debian.org jessie/main i386 Packages [6789 kB]
Get:7 http://httpredir.debian.org jessie/main Translation-en [4583 kB]
Fetched 19.0 MB in 25s (733 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
6 packages can be upgraded. Run 'apt list --upgradable' to see them.
Pronto, agora você pode aproveitar todo o poder do LXD e criar os seus ambientes de testes!
Como ponto de partida você pode instalar um editor e o servidor ssh...
root@debian8:~#apt install nano openssh-server
Edite o /etc/ssh/sshd_config do seu contêiner ativando o acesso root, depois defina uma senha para o root.
Agora de qualquer maquina da rede você pode fazer...
$ssh root@ip-do-seu-container
Paz a todos!
0 comentários:
Postar um comentário