Holodev
Introdução
editarHolodev é 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
editarHolodev 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:
- Extremamente fácil de usar;
- É um software livre;
- Utilização é feita apenas através de comandos via terminal (CLI).
- Desvantagens:
- Limitado apenas à containers Debian;
- Se faz necessário o download da distribuição Debian toda vez que se cria um container utilizando o Holodev;
- O programa está em versão instável, podendo apresentar comportamentos inesperados.
Distribuições GNU/Linux
editarHolodev possui suporte de instalação para as seguintes distribuições GNU/Linux:
- Debian (Jessie ou Stretch)
- Ubuntu (Trusty Tahr, Vivid Vervet, Wily Werewolf ou Xenial Xerus)
- Archlinux
- openSUSE (Tumbleweed, Leap, 13.2, 13.1)
- Fedora (24 ou 25)
Instalando Holodev no Debian ou Ubuntu
editarPasso 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
editarPasso 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
editarPasso 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
editarProjeto Modelo: Hello Holodev
editarOs 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:
$ 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
editarHolodev é 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!