Pesquise...

Últimos Posts

Arquivo de Posts

2024 - 2023 - 2022 - 2021 - 2020 - 2019 - 2018 - 2017 - 2016 - 2015 - 2014 - 2013 - 2012

Postagens Populares

Vem Comigo

     
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Tecnologia do Blogger.

Total de Acessos



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
 

Feito isto, precisamos "falar" para o LXD usar a nossa ponte. Editando o arquivo /etc/default/lxd-bridge, e altere-o conforme indicado abaixo:


$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