Gerencie seus repositórios de software com esta ferramenta de código aberto
Uma introdução ao Pulp, a solução de gerenciamento de repositórios de código aberto que está crescendo em escopo e funcionalidade.
Foreman é um produto robusto de gerenciamento e automação que fornece aos administradores de ambientes Linux soluções de nível empresarial para quatro cenários principais: gerenciamento de provisionamento, gerenciamento de configuração, gerenciamento de patches e gerenciamento de conteúdo. Um componente importante da funcionalidade de gerenciamento de conteúdo do Foreman é fornecido pelo projeto Pulp. Embora o Pulp seja parte integrante deste produto, ele também é um projeto independente, gratuito e de código aberto que está fazendo um enorme progresso por si só.
Vamos dar uma olhada no projeto Pulp, especialmente nos recursos da versão mais recente, Pulp 3.
O que é polpa?
Pulp é uma plataforma para gerenciar repositórios de pacotes de software e disponibilizá-los para um grande número de consumidores. Você pode usar o Pulp para espelhar, sincronizar, fazer upload e promover conteúdo como RPMs, pacotes Python, coleções Ansible, imagens de contêiner e muito mais em diferentes ambientes. Se você possui dezenas, centenas ou até milhares de pacotes de software e precisa de uma maneira melhor de gerenciá-los, o Pulp pode ajudar.
A versão principal mais recente é o Pulp 3, lançada em dezembro de 2019. O Pulp 3 é o culminar de anos de coleta de requisitos do usuário e de uma revisão técnica completa da arquitetura Pulp existente para aumentar a confiabilidade e a flexibilidade. Além disso, inclui uma vasta gama de novos recursos.
Quem usa Polpa?
Na maioria dos casos, os usuários do Pulp administram ambientes de software corporativo onde a estabilidade e a confiabilidade do conteúdo são fundamentais. Os usuários do Pulp desejam uma plataforma para desenvolver conteúdo sem se preocupar com o desaparecimento dos repositórios. Eles desejam promover conteúdo nos diferentes estágios do seu ambiente de ciclo de vida de uma maneira segura que otimize o espaço em disco e dimensione seu ambiente para atender às novas demandas. Eles também precisam de flexibilidade para trabalhar com uma ampla variedade de tipos de conteúdo. Pulp 3 oferece isso e muito mais.
Gerencie uma ampla variedade de conteúdo em um só lugar
Depois de instalar o Pulp, você pode adicionar plug-ins de conteúdo para os tipos de conteúdo que planeja gerenciar, espelhar o conteúdo localmente, adicionar conteúdo hospedado de forma privada e combinar conteúdo para atender às suas necessidades. Se você é um usuário do Ansible, por exemplo, e não deseja hospedar seu conteúdo privado no Ansible Galaxy, você pode adicionar o plugin Pulp Ansible, espelhar o conteúdo público do Ansible necessário e usar o Pulp como um recurso on- plataforma local para gerenciar e distribuir uma combinação escalonável de funções e coleções públicas e privadas do Ansible em toda a sua organização. Você pode fazer isso com qualquer tipo de conteúdo. Há uma grande variedade de plug-ins de conteúdo disponíveis, incluindo RPM, Debian, Python, Container e Ansible, para citar apenas alguns. Há também um plugin de arquivo, que você pode usar para gerenciar arquivos como imagens ISO.
Se você não encontrar um plug-in para o tipo de conteúdo necessário, o Pulp 3 introduziu uma nova API de plug-in e um modelo de plug-in para facilitar a criação de seu próprio plug-in Pulp. Você pode usar o guia de criação de plug-ins para gerar automaticamente um plug-in mínimo viável e começar a construir a partir daí.
Alta disponibilidade
Com o Pulp 3, a mudança do MongoDB para PostgreSQL facilitou grandes melhorias em termos de desempenho e integridade de dados. Os usuários do Pulp agora têm uma pilha de tecnologia totalmente de código aberto que oferece alta disponibilidade (HA) e melhor escalabilidade.
Controle de versão do repositório
Usando o Pulp 3, você pode experimentar sem riscos. Cada vez que você adiciona ou remove conteúdo, o Pulp cria uma versão de repositório imutável para que você possa reverter para versões anteriores e assim garantir a segurança e estabilidade de sua operação. Usando publicações e distribuições, você pode expor diversas versões de um repositório, que podem ser usadas como outro método de retrocesso para uma versão anterior. Para reverter, você pode simplesmente apontar sua distribuição para uma publicação mais antiga.
Otimização de disco
Um dos maiores desafios para qualquer ambiente de desenvolvimento de software é a otimização de disco. Se você estiver baixando um fluxo constante de pacotes — por exemplo, compilações noturnas de repositórios que você precisa hoje, mas não precisará mais amanhã — o espaço em disco rapidamente se tornará um problema. Pulp 3 foi projetado tendo em mente a otimização do disco. Embora a opção padrão baixe e salve todos os pacotes de software, você também pode ativar a opção “sob demanda” ou “streamed”. A opção "sob demanda" economiza espaço em disco baixando e salvando apenas o conteúdo solicitado pelos clientes. Com a opção “streamed”, você também baixa mediante solicitação do cliente, mas não salva o conteúdo no Pulp. Isso é ideal para sincronizar conteúdo, por exemplo, de um repositório noturno, e evita que você precise realizar uma limpeza de disco posteriormente.
Várias opções de armazenamento
Mesmo com a melhor otimização de disco, à medida que seu projeto cresce, você pode precisar de uma maneira de dimensionar sua implantação para atender aos seus requisitos. Além do armazenamento de arquivos locais, o Pulp oferece suporte a uma variedade de opções de armazenamento em nuvem, como Amazon S3 e Azure, para garantir que você possa escalar para atender às demandas de sua implantação.
Proteja seu conteúdo
O Pulp 3 tem a opção de adicionar o plug-in Certguard, que fornece um ContentGuard compatível com X.509 que exige que os clientes enviem um certificado comprovando seu direito ao conteúdo antes de receber conteúdo do Pulp.
Qualquer cliente que apresente um certificado X.509 ou baseado em Red Hat Subscription Management no momento da solicitação será autorizado, desde que a certificação do cliente não tenha expirado, seja assinada pela Autoridade de Certificação e tenha sido armazenada no Certguard quando foi criada. O cliente apresenta o certificado utilizando Transport Layer Security (TLS), o que comprova que o cliente possui não apenas o certificado, mas também sua chave. Você pode se desenvolver com a certeza de que seu conteúdo está sendo protegido.
A equipe do Pulp também está trabalhando ativamente em um sistema de controle de acesso baseado em funções para toda a implantação do Pulp, para que os administradores possam garantir que os usuários certos tenham acesso aos ambientes certos.
Experimente a polpa em um recipiente
Se estiver interessado em avaliar o Pulp 3 por si mesmo, você pode instalar facilmente o Pulp 3 em um contêiner usando Docker ou Podman. A equipe Pulp trabalha constantemente para simplificar o processo de instalação. Você também pode usar um manual do Ansible para automatizar a instalação e configuração completa do Pulp 3.