Eu uso o LXD no macOS, pode ser útil para alguém se eu compartilhar minha configuração, que eu continuo documentando e atualizando em um Gist. Assim, acompanhe a postagem a seguir e saiba como usar o LXD no MacOS.
Configuração da VM
Baixe um ISO do Ubuntu Server (https://www.ubuntu.com/download/server).
Crie uma nova máquina virtual VMWare, selecione boot a partir do ISO com 2 NICs configuradas como “Share with My Mac” e “Private to my Mac”, respectivamente. Durante a criação do Ubuntu VM, haverá uma página para selecionar o software instalado. Selecione “servidor OpenSSH”.
Configuração de Rede
Então, entre na VM recém-criada e instale os bridge-utils:
apt install bridge-utils
Edite /etc/network/interfaces com uma ponte para cada uma das duas placas de rede, ambas DHCP (ip link show lhe dará os nomes corretos para essas interfaces).
## A interface de rede principal #auto ens33 #iface ens33 inet dhcp auto br0 iface br0 inet dhcp bridge_ports ens33 bridge_fd 0 bridge_maxwait 0 dns-search home auto br1 iface br1 inet dhcp bridge_ports ens38 bridge_fd 0 bridge_maxwait 0 dns-search local
Então, reinicie com sudo reboot. Agora você deve conseguir fazer ping fora da VM.
$ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56 (84) bytes of data. 64 bytes de 8.8.8.8: icmp_req = 1 ttl = 63 time = 340 ms …
Instale open-vm-tools:
apt install open-vm-tools
Configurando AVAHI
Em seguida, configure o Avahi para transmitir host-names para que não precisemos lembrar de endereços de IP atribuídos por DHCP. No host do Ubuntu, instale o avahi-daemon:
apt install avahi-daemon
No arquivo de configuração /etc/avahi/avahi-daemon.conf, altere estas linhas para esclarecer que nossos nomes de host precisam funcionar apenas no segundo adaptador de rede:
allow-interfaces=br1,ens38 deny-interfaces=br0,ens33,lxdbr0
Então, reinicie o Avahi:
sudo service avahi-daemon restart
Agora, você deve conseguir fazer ping e ssh para o $hostname na máquina virtual e na linha de comando do seu Mac.
Servidor LXD (Ubuntu VM)
sudo add-apt-repository ppa:ubuntu-lxc/lxd-stable sudo apt update sudo apt upgrade
Ver: https://linuxcontainers.org/lxd/getting-started-cli/
$ sudo apt install zfsutils-linux $ sudo lxd init
Gere um novo perfil LXD apartir do script:
https://gist.github.com/earnubs/7dffc5bb5fe613d02ef9fc924cc583ee
Teste o lxc:
$ lxc launch ubuntu:16.10 --ephemeral -p $USER $ lxc list +--------------+---------+--------------------------------+------+-----------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +--------------+---------+--------------------------------+------+-----------+-----------+ | enabling-ape | RUNNING | 192.168.234.179 (eth0) | | EPHEMERAL | 0 | | | | 172.16.183.150 (eth1) | | | | +--------------+---------+--------------------------------+------+-----------+-----------+
Pode levar alguns minutos para o cloud-init configurar e reiniciar a eth1.
Permitir operações remotas no servidor LXD (do macOS)
lxc config set core.https_address "[::]" lxc config set core.trust_password alguma senha
Cliente LXD (macOS)
Assim, com o ambiente Go configurado:
$ go get github.com/lxc/lxd $ cd $GOPATH/src/github.com/lxc/lxd $ go install -v ./lxc
$ lxc remote add <name> UBUNTU_VM_HOST.local
Finalmente no macOS
$ ssh enabling-ape.local -A