Pesquise...

Postagens

Arquivo de Posts

2017 - 2016 - 2015 - 2014 - 2013 - 2012

Postagens Populares

Vem Comigo!

         
  •  
  •  
  •  
  •  
  • Tecnologia do Blogger.

    Boletim Informativo?

    * obrigatório

    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 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 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