Escolha seu idioma / Elija su idioma: Português | Español
Versão 0.5.0 Codename: "Maracatu" - Maio de 2025
GIRUS é uma plataforma open-source de laboratórios interativos que permite a criação, gerenciamento e execução de ambientes de aprendizado prático para tecnologias como Linux, Docker, Kubernetes, Terraform e outras ferramentas essenciais para profissionais de DevOps, SRE, Dev e Platform Engineering.
Desenvolvida pela LINUXtips, a plataforma GIRUS se diferencia por ser executada localmente na máquina do usuário, eliminando a necessidade de infraestrutura na nuvem ou configurações complexas. Através de um CLI intuitivo, os usuários podem criar rapidamente ambientes isolados e seguros onde podem praticar e aperfeiçoar suas habilidades técnicas.
update integrado que verifica, baixa e instala novas versões automaticamenteO GIRUS implementa um sistema robusto de gerenciamento de repositórios e laboratórios, similar ao Helm para Kubernetes. Este sistema permite:
curl -sSL girus.linuxtips.io | bashVocê precisa ter o Docker instalado em seu computador para poder instalar o Girus.
girus update
Adicionar Repositórios:
girus repo add linuxtips https://github.com/linuxtips/labs/raw/main
Listar Repositórios:
girus repo list
Remover Repositórios:
girus repo remove linuxtips
Atualizar Repositórios:
girus repo update linuxtips https://github.com/linuxtips/labs/raw/main
O GIRUS agora suporta repositórios locais usando o prefixo file://. Isso é útil para testar laboratórios ou desenvolver repositórios sem precisar publicar em um servidor remoto.
# Adicionando um repositório local ./girus repo add meu-local file:///caminho/absoluto/para/seu-repo # Exemplo prático: ./girus repo add test-repo file:///home/jeferson/REPOS/teste/girus-cli/test-repo
Nota: O caminho após
file://deve ser absoluto e apontar para o diretório onde está oindex.yamldo repositório.
Você pode listar, buscar e instalar laboratórios normalmente a partir de repositórios locais, assim como faria com repositórios remotos.
Listar Laboratórios Disponíveis:
girus lab list
Instalar Laboratório:
girus lab install linuxtips linux-basics
Buscar Laboratórios:
girus lab search docker
Os repositórios seguem uma estrutura padronizada:
repositorio/
├── index.yaml # Índice do repositório
└── labs/ # Diretório contendo os laboratórios
├── lab1/
│ ├── lab.yaml # Definição do laboratório
│ └── assets/ # Recursos do laboratório (opcional)
└── lab2/
├── lab.yaml
└── assets/
apiVersion: v1 generated: "2024-03-20T10:00:00Z" entries: lab-name: - name: lab-name version: "1.0.0" description: "Descrição do laboratório" keywords: - keyword1 - keyword2 maintainers: - "Nome <email@exemplo.com>" url: "https://github.com/seu-repo/raw/main/labs/lab-name/lab.yaml" created: "2024-03-20T10:00:00Z" digest: "sha256:hash-do-arquivo"
apiVersion: girus.linuxtips.io/v1 kind: Lab metadata: name: lab-name version: "1.0.0" description: "Descrição do laboratório" author: "Nome do Autor" created: "2024-03-20T10:00:00Z" spec: environment: image: ubuntu:22.04 resources: cpu: "1" memory: "1Gi" volumes: - name: workspace mountPath: /workspace size: "1Gi" tasks: - name: "Nome da Tarefa" description: "Descrição da tarefa" steps: - description: "Descrição do passo" command: "comando" expectedOutput: "saída esperada" hint: "Dica para o usuário" validation: - name: "Nome da Validação" description: "Descrição da validação" checks: - command: "comando" expectedOutput: "saída esperada" errorMessage: "Mensagem de erro"
O projeto GIRUS é composto por quatro componentes principais:
┌─────────────┐ ┌──────────────┐ ┌──────────────┐
│ GIRUS CLI │────▶│ Kind Cluster │────▶│ Kubernetes │
└─────────────┘ └──────────────┘ └──────────────┘
│
▼
┌─────────────┐ ┌──────────────┐ ┌──────────────┐
│ Terminal │◀───▶│ Frontend │◀───▶│ Backend │
│ Interativo │ │ (React) │ │ (Go) │
└─────────────┘ └──────────────┘ └──────────────┘
│
▼
┌──────────────┐
│ Templates │
│ Labs │
└──────────────┘
GIRUS (GIRUS Is Really Useful System) é uma ferramenta CLI desenvolvida pela LINUXtips para criar e gerenciar ambientes de laboratório práticos.
curl -sSL girus.linuxtips.io | bashClone o repositório e execute make <comando>.
Aqui estão os comandos disponíveis:
make build (ou simplesmente make): Compila o binário girus para o seu sistema operacional atual e o coloca no diretório dist/. Este é o comando padrão se você executar make sem argumentos.make install: Compila o binário (se ainda não estiver compilado) e o move para /usr/local/bin/girus, tornando-o acessível globalmente no seu sistema. Requer permissões de superusuário (sudo).make clean: Remove o diretório dist/ e todos os arquivos de build gerados.make release: Compila o binário girus para múltiplas plataformas (Linux, macOS, Windows - amd64 e arm64) e os coloca no diretório dist/.O GIRUS CLI utiliza um sistema de versionamento dinâmico baseado em git tags. O processo de build detecta automaticamente a versão com base nos seguintes critérios:
v0.3.0), essa versão será utilizada removendo o prefixo v (resultado: 0.3.0)0.3.0go build -o girus -ldflags="-X 'github.com/badtuxx/girus-cli/internal/common.Version=0.5.0'" ./main.goPara verificar a versão atual do binário, execute:
./girus version
Os workflows CI/CD do projeto também utilizam este mecanismo de versionamento dinâmico para as builds do Docker e artefatos de release, garantindo consistência em todo o processo de build.
make check-updates: Verifica se há atualizações disponíveis para as dependências Go do projeto.make upgrade-all: Atualiza todas as dependências Go para suas versões mais recentes e executa go mod tidy.make upgrade MODULE=<nome/do/modulo>: Atualiza uma dependência Go específica para a versão mais recente. Substitua <nome/do/modulo> pelo caminho do módulo (ex: make upgrade MODULE=github.com/spf13/cobra).make tidy: Executa go mod tidy para remover dependências não utilizadas e limpar os arquivos go.mod e go.sum.make deps: Exibe o gráfico de dependências do projeto.Após instalar o GIRUS, o primeiro passo é criar um cluster Kubernetes local usando Kind:
girus create cluster
Nota: O processo pode levar alguns minutos na primeira execução, pois precisa baixar as imagens Docker necessárias.
# Verificar clusters Kind disponíveis kind get clusters # Verificar pods do GIRUS kubectl get pods -n girus # Verificar serviços do GIRUS kubectl get services -n girus
Gerenciando o Cluster: Para verificar o status:
# Listar clusters disponíveis kind get clusters # Verificar se o cluster está saudável kubectl cluster-info
Deletar o Cluster:
# Remover o cluster quando não precisar mais
kind delete cluster --name girusRecriar o Cluster:
# Se precisar recriar o cluster
kind delete cluster --name girus
girus create clusterEste repositório contém uma coleção de labs práticos para diferentes tecnologias, organizados nas seguintes categorias:
# Adicionar o repositório oficial girus repo add girus-cli https://raw.githubusercontent.com/badtuxx/girus-cli/main/index.yaml # Ou adicionar localmente para desenvolvimento girus repo add girus-cli file:///caminho/para/girus-cli
girus lab list
girus lab start <nome-do-lab>
Por exemplo:
girus lab start aws_localstack_terraform
Para contribuir com novos labs, siga estas etapas:
labs/<nome-do-lab>lab.yaml com a estrutura do labindex.yaml com as informações do novo labname: nome-do-lab title: "Título do Lab" description: "Descrição detalhada do lab" duration: 45m image: "ubuntu:20.04" tasks: - name: "Nome da Tarefa" description: "Descrição da tarefa" steps: - "Passo 1: Faça isso" - "Passo 2: Execute aquilo" validation: - command: "comando para verificar" expectedOutput: "saída esperada" errorMessage: "Mensagem de erro personalizada"
Este projeto é distribuído sob a licença GPL-3.0. Veja o arquivo LICENSE para mais detalhes.
O GIRUS é possível graças à contribuição de muitas pessoas e projetos:
Q: O GIRUS funciona offline?
A: Sim, após a instalação inicial e download das imagens, o GIRUS pode funcionar completamente offline.
Q: Quanto consome de recursos da minha máquina?
A: O GIRUS é otimizado para ser leve. Um cluster básico consome aproximadamente 1-2GB de RAM e requer cerca de 5GB de espaço em disco.
Q: Posso criar laboratórios personalizados para minha equipe/empresa?
A: Absolutamente! O sistema de templates é flexível e permite a criação de laboratórios específicos para suas necessidades.
Q: Como faço para atualizar o GIRUS para a versão mais recente?
A: Execute o comando girus update. O comando verificará se há uma versão mais recente disponível e, se houver, executará a atualização automaticamente. Após a atualização, você terá a opção de recriar o cluster para garantir a compatibilidade com as novas funcionalidades.
Q: O GIRUS funciona em ambientes corporativos com restrições de rede?
A: Sim, após o download inicial das imagens, o GIRUS opera localmente sem necessidade de conexão externa.
Q: Posso contribuir com novos laboratórios para o projeto?
A: Definitivamente! Contribuições são bem-vindas e valorizadas. Consulte a seção "Contribuição e Comunidade" para detalhes.