Introdução

editar

Holodev é uma ferramenta de criação automática de Containers GNU/Linux com a distribuição Debian, baseado na branch e/ou no diretório local. Criado em 2015 por Joenio Costa, a ferramenta está na versão 0.9 e possui suporte para as distribuições GNU/Linux mais populares.

O nome Holodev é uma referência ao Deck Holográfico (Holodeck) de Star Trek.

Holodev Containers

editar

Holodev cria uma virtualização de uma instância Debian no sistema operacional local utilizando de um framework LXC, na qual a instância virtualizada herda o diretório local da instalação. Desta forma, ambos os sistemas operacionais possuem acesso ao diretório compartilhado. Tal funcionalidade é realizada de forma semelhante ao Docker. Container é o nome dado para esta instância virtualizada.

Vantagens & Desvantagens

editar
  • Vantagens:
  1. Extremamente fácil de usar;
  2. É um software livre;
  3. Utilização é feita apenas através de comandos via terminal (CLI).
  • Desvantagens:
  1. Limitado apenas à containers Debian;
  2. Se faz necessário o download da distribuição Debian toda vez que se cria um container utilizando o Holodev;
  3. O programa está em versão instável, podendo apresentar comportamentos inesperados.


Distribuições GNU/Linux

editar

Holodev possui suporte de instalação para as seguintes distribuições GNU/Linux:

  1. Debian (Jessie ou Stretch)
  2. Ubuntu (Trusty Tahr, Vivid Vervet, Wily Werewolf ou Xenial Xerus)
  3. Archlinux
  4. openSUSE (Tumbleweed, Leap, 13.2, 13.1)
  5. Fedora (24 ou 25)

Instalando Holodev no Debian ou Ubuntu

editar

Passo 1 - Adicione o repositório do autor no arquivo sources.list (/etc/apt/sources.list):

deb http://debian.joenio.me unstable/

Passo 2 - Baixe a chave do repositório Debian:

# wget -O - http://debian.joenio.me/signing.asc | apt-key add -

Passo 3 - Instale Holodev:

# apt-get update
# apt-get install holodev

Instalando Holodev no openSUSE

editar

Passo 1 - Adicione o repositório OBS do projeto no sistema, de acordo com a versão do mesmo:

  • Tumbleweed
# zypper ar http://download.opensuse.org/repositories/home:/chocoelho/openSUSE_Tumbleweed/home:chocoelho.repo
  • Leap
# zypper ar http://download.opensuse.org/repositories/home:/chocoelho/openSUSE_Leap_42.1/home:chocoelho.repo
  • 13.2
# zypper ar http://download.opensuse.org/repositories/home:/chocoelho/openSUSE_13.2/home:chocoelho.repo
  • 13.1
# zypper ar http://download.opensuse.org/repositories/home:/chocoelho/openSUSE_13.1/home:chocoelho.repo

Passo 2 - Instale Holodev:

# zypper ref
# zypper in holodev

Instalando Holodev no Archlinux

editar

Passo Opcional - É necessário possuir acesso ao repositório AUR e possuir qualquer wrapper do pacman que observa AUR. É praticamente garantido assumir que o Archlinux já possui AUR e yaourt já configurado para uso. Caso não esteja, execute os seguintes passos:

  • Para observar AUR, adicione no arquivo pacman.conf (/etc/pacman.conf):
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch
  • Para instalar yaourt, execute os seguintes comandos:
git clone https://aur.archlinux.org/package-query.git
cd package-query
makepkg -si
cd ..
git clone https://aur.archlinux.org/yaourt.git
cd yaourt
makepkg -si
cd ..

Passo 1 - Instale Holodev:

yaourt -Syy
yaourt -S holodev

ou

yaourt -S holodev-git

Utilizando Holodev

editar

Projeto Modelo: Hello Holodev

editar

Os passos a seguir apresentam as principais funcionalidades do Holodev.

Passo 1 - Crie um diretório, inicie o git nele, crie um arquivo, dê commit no arquivo, e crie uma branch chamada gcs:

 
Este passo demonstra a criação do projeto inicial
$ mkdir hello_holodev
$ cd hello_holodev
$ git init
$ printf "Hello Holodev" > hello_holodev.dat
$ git add hello_holodev.dat
$ git commit -m "Hello GCS Example"
$ git checkout -b gcs

Holodev funciona em qualquer diretório do sistema operacional local, com ou sem o git. Caso o diretório onde Holodev criará o container possua o git inicializado, ele criará o container baseado na branch atual. Caso contrário, Holodev criará baseado no diretório atual.

Passo 2 - Crie o container com a versão Stretch do Debian:

$ holodev create --release stretch

Holodev pedirá o acesso de super-user para criar o container e em seguida fará o binding do mesmo na porta 3000. Por fim, irá baixar e instalar a versão minimal do Debian no container. O nome do container será hello_holodev-gcs e estará atrelado à branch gcs do sistema operacional local. Caso não queira atrelar o container à branch, utilize a flag --no-branch.

 

Passo 3 - Associe o terminal atual à instância do holodev:

$ holodev attach

Pronto! O terminal agora está dentro do container do Holodev. O diretório compartilhado entre os sistemas está no caminho /HOLODEV/<diretório> do container.

 

Passo 4 - Saia do container:

$ exit

Você retornará à instância anterior do terminal.

Passo 5 - Liste os containers no diretório do hello_holodev e remova o container criado:

$ holodev list
$ holodev destroy

 

Passo 6 - Destrua o projeto!

$ cd ..
# rm -r hello_holodev

Considerações Finais

editar

Holodev é um desenvolvimento apoiado pelo LAPPIS, laboratório com sede no Campus UnB Gama - FGA. Sua facilidade de uso é um diferencial entre tantas outras ferramentas semelhantes, tornando-o ideal para quaisquer contextos em que a instância do Debian satisfaça os requisitos de sistema do projeto. Utilize-o e contribua!