A distribuição foi projetada para atender às necessidades de profissionais e estudantes de DevOps e Networking, oferecendo uma seleção abrangente e atualizada das melhores ferramentas disponíveis no mercado. Ao reunir todas essas ferramentas em um único local, a distribuição visa agilizar o processo de configuração e implantação de ambientes DevOps. Isso elimina a necessidade de procurar e instalar cada ferramenta individualmente, proporcionando conveniência e economizando tempo. Com uma variedade de ferramentas essenciais já integradas e prontas para uso, os usuários podem começar a trabalhar rapidamente em seus projetos DevOps, aumentando sua produtividade e eficiência.
-
Kubernetes
- Kubectl: Uma ferramenta de linha de comando para interagir com clusters Kubernetes.
- K9S: Uma interface de terminal para Kubernetes.
- Kubebox: Uma ferramenta de linha de comando para visualizar e interagir com clusters Kubernetes.
- Kubespy: Uma ferramenta para monitorar eventos de recursos Kubernetes em tempo real.
- Helm: Um gerenciador de pacotes para Kubernetes.
- Eksctl: Utilitário cli para criação e gerẽncia de cluster EKS na AWS.
-
Hashicorp
-
Ansible
-
OpenTofu
- OpenTofu: Uma ferramenta de automação para instalação e configuração de ferramentas.
-
Providers
- AWS Cli: Uma interface de linha de comando para AWS.
- Digital Ocean Cli: Uma interface de linha de comando para DigitalOcean.
- Azure: Ferramenta para acesso aos serviços da Microsoft Azure!
-
Utilitários
-
Programas diversos
- iputils-ping
- net-tools
- iproute2
- traceroute
- telnet
- whois
- ipcalc: Ferramenta para calculo de redes.
- tmux: Terminal Multiplexer
- mtr: Ferramenta para diagnóstico de rede.
- pwgen: Gerador de senhas.
- jq: Json Parser para linha de comando.
- curl
- wget
- rsync
- aria2: Ferramenta de Download, suporte a HTTP, HTTPS, FTP, SFTP, BitTorrent e Metalink
- git
- unzip
- file
- vim
- mysql-client
- postgresql-client
Para a rápida execução basta que seja executado o seguinte comando.
curl -LO https://raw.githubusercontent.com/marioaugustorama/devops-tools/main/run.sh && chmod +x run.sh
Será feito o download e dado permissão de execução ao script.
É requerido que já tenha o docker instalado em sua máquina.
Será criado um diretório nomeado como home, onde todo seu histórico do shell, tal como arquivos de configuração criados pelos programas serão armazenados.
Portanto o máximo de cuidado com esse diretório, recomendo até que seja um volume criptografado com o Luks, nas futuras versão já virá com o software que prepara esse ambiente automaticamente.
Scripts adicionados a imagem para tarefas corriqueiras.
- Backup
Scripts para backup do profile:
Execução:
A partir do Host:
./run.sh backup
Vai gerar um backup com data e hora da execução, permitindo assim salvar seus dados e configurações gerados a partir do container.
- Listar catálogo:
pkg_add list - Listar apenas instalados (persistidos):
pkg_add list --installed - Ver status (instalado/pendente):
pkg_add status - Detalhar um pacote:
pkg_add info <nome> - Instalar tudo:
pkg_add install --all - Instalar pacotes específicos:
pkg_add install kubectl helm doctl(use--forcepara reinstalar) - Desabilitar marcação de instalado (não desinstala):
pkg_add disable eksctl
Os pacotes são definidos em scripts/packages.tsv (nome + descrição) e cada instalador mora em scripts/<nome>.sh.
- Arquivos persistentes (montados em
/var/lib/devops-pkg, diretóriopkg_state/no host):pkg_state/auto-install.list(pkg_add) epkg_state/apt-packages.list(apt). Linhas em branco ou começando com#são ignoradas. - Edite esses arquivos no host para listar apenas o que quer auto-instalar. Exemplos:
pkg_state/auto-install.list:kubectl,helm,k9spkg_state/apt-packages.list:traceroute,nmap
- Suba o container com
PKG_AUTO_RESTORE=1 ./run.sh ...para aplicar essas listas automaticamente. Combine comPKG_LAZY_INSTALL=0se não quiser instalação sob demanda viacommand_not_found.
- Criar o instalador em
scripts/<nome>.sh(bash,set -euo pipefail, idempotente). - Adicionar o pacote ao manifesto
scripts/packages.tsvcom uma descrição curta. - Opcional: testar no container com
pkg_add install <nome>e confirmar que roda repetidamente sem falhar. - Atualizar a imagem ou rodar
run_all.shpara incluir no build.
#!/bin/bash
set -euo pipefail
source /usr/local/bin/utils.sh
APP_VERSION="1.2.3"
URL="https://exemplo.com/app-${APP_VERSION}-linux-amd64.tar.gz"
TMP="app.tar.gz"
echo "Baixando app ${APP_VERSION}..."
curl -fLs "$URL" -o "$TMP" || error_exit "download falhou"
echo "Extraindo..."
tar xzf "$TMP"
echo "Instalando..."
install -o root -g root -m 0755 app /usr/local/bin/app || error_exit "install falhou"
echo "Limpando..."
rm -rf "$TMP" app- Evite falhar se já instalado (detectar binário/versão e sair cedo quando apropriado).
- Use
set -euo pipefaileerror_exitpara mensagens claras. - Limpe artefatos temporários mesmo em reexecuções (remova antes de extrair).
- Prefira URLs versionadas e validação (checksum) quando possível.
Use o helper pkg_apt (estado em pkg_state/apt-packages.list, montado em /var/lib/devops-pkg):
- Adicionar pacote(s):
pkg_apt add traceroute nmap - Ver lista:
pkg_apt list - Remover:
pkg_apt remove nmap - Aplicar/instalar todos os listados:
pkg_apt apply(automático no start do container)
Os pacotes listados serão reinstalados automaticamente quando o container subir novamente, sem rebuild da imagem.
- Rode
sudo enable-docspara remover a exclusão de documentação e instalarman-db+manpages. - Depois teste com
man lsouman vim.
- Adicionar entrada:
sudo hosts-editor add 127.0.0.1 meu.servico.local api.local - Remover host(s):
sudo hosts-editor remove meu.servico.local api.local - Listar atual:
hosts-editor list - Variáveis úteis:
HOSTS_FILEpara usar outro arquivo (ex.:HOSTS_FILE=./home/hosts hosts-editor add ...); use--no-backuppara pular backup automático. - Por padrão cria um
.bakcom timestamp ao lado do arquivo alterado; alterar/etc/hostspede permissão (sudo).
- Pacote:
wireguard-toolsno catálogo (pkg_add install wireguard-toolsoupkg_apt add wireguard-tools). - Configs e chave: monte
./vpn-configsem/etc/wireguarde use./wireguard-keyspara guardar a chave fornecida pelo servidor (montado em/etc/wireguard/keys). - Execução:
./run.shjá adicionaNET_ADMIN,/dev/net/tune monta os volumes acima. Se precisar rotear tráfego (NAT/forwarding), suba comENABLE_WG_FORWARDING=1 ./run.sh ...para aplicar os sysctls. - Uso dentro do container:
wg-quick up wg0/wg-quick down wg0(conf comPrivateKey = /etc/wireguard/keys/<arquivo>).