Criei um app simples de gerenciamento remoto para o Incus (antigo LXD)!
(github.com/gg582)Olá! Sou um universitário de Ciência da Computação/Software que está começando a aprender programação.
Este projeto é um cliente para o Incus, que facilita a criação de contêineres de sistema, incluindo init. Ainda tem poucos recursos e é um protótipo, mas ficarei feliz se vocês se interessarem!
Uma breve descrição está abaixo.
- Gerenciamento de contêineres com um app simples em Python
- Fornece uma porta SSH para disponibilizar um ambiente de desenvolvimento em CLI
- As portas 30001 e 30002 são fornecidas para testes
- Consulta e alteração remota de estado (incluindo freeze), além de push de arquivos
- É possível usar usuários como se fossem namespaces: quando o usuário é removido, todos os contêineres também são apagados
- Suporta tags duplicadas: no nome real, é atribuída uma string única separada
As vantagens que consegui obter ao usar este app foram as seguintes.
- Configuração simples de contêineres em deslocamento
- Criação de vários contêineres de sistema com init virtualizado em um clique
- Facilidade para trocar documentos e imagens ao servir HTML simples com NGINX
- Teste do script de build de um projeto em ambiente virtual
Principais resultados alcançados
- Testar o build do Incuspeed com o próprio Incuspeed: teste de build usando a si mesmo
- Alteração remota da imagem de exemplo exibida pelo Nginx
- Experimentação de várias distribuições
Distribuições suportadas
- AlmaLinux 9
- RockyLinux 9
- Debian 10,11,12
- Devuan Beowulf, Chimaera, Daedalus (basicamente Debian com o init substituído por sysv)
- Slackware current, 15.0 (configuração do slackpkg+ não vem incluída por padrão)
- Centos 9 Stream
Entre as imagens oficiais do Incus, concluí a configuração de SSH em todas as distribuições que usei.
Recursos que estou considerando para o futuro
- Criação/gerenciamento remoto de snapshots
- Salvar o contêiner atual como imagem
Ainda sou amador, mas quero causar uma boa impressão!
1 comentários
Para referência, as portas internas 30001 e 30002 são mapeadas externamente como porta SSH +1 e porta SSH +2.