Gerenciar CentOS Stream com Foreman
Este exemplo fornece uma visão geral das muitas opções que você tem para gerenciar e provisionar conteúdo do CentOS Stream no Foreman.
Em dezembro de 2021, o CentOS 8 chegará ao fim de sua vida útil e será substituído pelo CentOS Stream. Uma das principais mudanças entre as iterações anteriores do CentOS e do CentOS Stream é a falta de versões secundárias. Centos Stream adotou um ciclo de lançamento contínuo. Desde o início deste ano, os desenvolvedores da comunidade Foreman começaram a ver os benefícios da detecção e correção antecipada de bugs que o CentOS Stream oferece como resultado dos lançamentos contínuos. Não precisamos mais esperar pelo próximo lançamento para aproveitar as vantagens das últimas alterações e correções de bugs. Um veterano entusiasta da comunidade Linux observou que esta mudança também aproxima os desenvolvedores RHEL da comunidade FOSS mais do que nunca.
Entretanto, se você for administrador de centenas ou milhares de servidores, talvez queira exercer controle sobre quando novos pacotes são adicionados a servidores específicos. Se você está procurando uma ferramenta gratuita de código aberto que ajude a garantir a estabilidade dos servidores de produção e, ao mesmo tempo, permita que você obtenha com segurança as alterações mais recentes do Centos Stream para desenvolvimento e teste, é aqui que Foreman pode ajudar. Com o Foreman, você pode gerenciar o conteúdo do Centos Stream em todos os estágios do ambiente do ciclo de vida.
O que é capataz?
Foreman é uma ferramenta completa de gerenciamento de ciclo de vida para servidores físicos e virtuais. Com o Foreman, os administradores de sistema têm o poder de automatizar facilmente tarefas repetitivas, implantar aplicativos rapidamente e gerenciar proativamente servidores no local ou na nuvem. Foreman fornece soluções de nível empresarial para gerenciamento de provisionamento, gerenciamento de configuração e monitoramento. Graças à sua arquitetura de plugins, o Foreman pode ser estendido de inúmeras maneiras. Usando o plugin Katello, você pode usar o Foreman como uma ferramenta completa de gerenciamento de conteúdo para gerenciar o CentOS Stream, entre muitos outros tipos de conteúdo.
Com Foreman e Katello, você pode definir exatamente quais pacotes deseja que cada ambiente contenha. Por exemplo, um ambiente de produção pode usar pacotes que foram verificados como estáveis, enquanto um ambiente de desenvolvedor pode exigir as melhores e mais recentes versões de pacotes disponíveis. Você também pode promover as visualizações de conteúdo em ambientes de ciclo de vida. Vamos dar uma olhada em como Foreman faz isso.
Fazemos referência à IU da web neste artigo, mas o Foreman também possui uma CLI e uma API robustas. O plugin Katello fornece um fluxo de trabalho e uma interface web para o projeto Pulp, sobre o qual você pode ler mais neste artigo. Também fornecemos um fluxo de trabalho simples aqui, mas o Foreman e o projeto Katello oferecem muitas opções de configuração diferentes para atender às suas necessidades específicas.
Este artigo pressupõe que o Foreman e o Katello já estejam instalados. Para obter mais informações sobre como fazer isso, consulte o manual de instalação do Katello.
Crie um produto
O primeiro passo é criar um produto no Foreman. O produto funciona como um rótulo interno para armazenar os repositórios do CentOS Stream.
- Na IU da web do Foreman, navegue até Conteúdo >Produtos e clique em Criar produto.
- No campo Nome, insira um nome para o produto. O Foreman preenche automaticamente o campo Rótulo com base no que você digitou para Nome e isso não pode ser alterado posteriormente.
Adicione os repositórios CentOS Stream ao produto
Agora que você tem um produto, pode usar os URLs dos repositórios AppStream e BaseOS e adicioná-los ao seu novo produto.
- Na IU da web do Foreman, navegue até Conteúdo > Produtos, selecione o produto que deseja usar e clique em Novo repositório.
- No campo Nome digite um nome para o repositório; por exemplo, Centos8StreamBaseOS. O Foreman preenche automaticamente o campo Rótulo com base no que você digitou para Nome.
- Na lista Tipo, selecione o tipo de repositório e selecione Yum.
- No campo URL, insira a URL do repositório CentOS Stream Baseos para usar como fonte: http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/
- Selecione a lista Política de download. O padrão é On Demand - isso significa que Katello só fará download de metadados. Se você quiser baixar todos os pacotes, mude para Imediato, que baixa todos os pacotes, que podem ter de 20 a 30 GB.
- Certifique-se de que a caixa de seleção Mirror on Sync esteja marcada. Esta opção garante que o conteúdo que não faz mais parte do repositório upstream seja removido durante a sincronização.
- Clique em Salvar.
Repita essas etapas para adicionar os repositórios AppStream com URLs, por exemplo, http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/. Certifique-se de usar o espelho CentOS oficial mais próximo.
Para realizar uma sincronização imediata, na janela do seu produto, clique em Sincronizar agora. A sincronização inicial pode demorar algum tempo. Você pode observar o status da sincronização em Conteúdo > Status da sincronização.
Após a conclusão da sincronização, você poderá visualizar o novo sistema operacional CentOS Stream em Hosts > Sistema Operacional. Sinta-se à vontade para editar o nome e a descrição de acordo com suas necessidades.
Se você planeja usar software de gerenciamento de configuração como Ansible ou Puppet, o Foreman cria automaticamente um relatório do sistema operacional. Você pode desativar esta opção em Administrar > Configurações > Ignorar fatos do sistema operacional. É uma boa ideia renomear o sistema operacional para corresponder ao nome do software de gerenciamento de configuração. Por exemplo, para o Puppet, seria CentOS 8.
Defina o ambiente do ciclo de vida da sua infraestrutura
O ciclo de vida da aplicação é um conceito central para as funções de gerenciamento de conteúdo do Foreman. O ciclo de vida do aplicativo define a aparência de um determinado sistema e seu software em um estágio específico. Por exemplo, o ciclo de vida de um aplicativo pode ser simples; você pode ter apenas um estágio de desenvolvimento e um estágio de produção. Foreman fornece métodos para personalizar cada estágio do ciclo de vida do aplicativo de maneira controlada para atender às suas especificações.
Neste ponto, você deve criar os caminhos do ambiente de ciclo de vida:
- Na IU da web do Foreman, navegue até Conteúdo >Ambientes de ciclo de vida.
- Clique em Novo caminho de ambiente para iniciar um novo ciclo de vida do aplicativo.
- No campo Nome, insira um nome para seu ambiente.
- No campo Descrição, insira uma descrição para seu ambiente.
- Clique em Salvar.
- Adicione quantos caminhos de ambiente forem necessários. Por exemplo, você pode criar ambientes dev, teste, estágio e produção. Para adicionar esses ambientes, clique em Adicionar novo ambiente, preencha os campos Nome e Descrição e selecione o ambiente anterior em Ambiente anterior list para que você os encadeie na sequência que espera usar.
Criar e publicar uma visualização de conteúdo
No Foreman, uma Visualização de Conteúdo é um instantâneo de seus repositórios em um determinado momento. As Visualizações de Conteúdo fornecem o mecanismo para isolar versões de pacotes em um estado que você deseja preservar. As visualizações de conteúdo têm muitos recursos configuráveis que você pode usar para refinamento adicional. Para os propósitos deste tutorial, vamos manter as coisas simples.
- Na IU da web do Foreman, navegue até Conteúdo > Visualizações de conteúdo e clique em Criar nova visualização.
- No campo Nome, insira um nome para a visualização. O Foreman preenche automaticamente o campo Rótulo com o nome digitado.
- No campo Descrição, insira uma descrição da visualização.
- Clique em Salvar para criar a visualização de conteúdo.
- Na sua nova visualização de conteúdo, clique em Conteúdo Yum > Adicionar repositórios na área Seleção de repositório, clique em Adicionar. Para os repositórios BaseOS e Appstream, selecione os pacotes que deseja incluir e clique em Adicionar Repositórios.
- Clique em Publicar nova versão e no campo Descrição, insira informações sobre a versão para registrar as alterações.
- Clique em Salvar.
Ao clicar em Publicar nova versão, você cria um instantâneo de todo o conteúdo que sincronizou. Isso significa que cada servidor que você assinar nesta Visualização de Conteúdo terá acesso apenas às versões do pacote na Visualização de Conteúdo associada a este ambiente de ciclo de vida.
Cada nova Visualização de Conteúdo e versões subsequentes são publicadas primeiro no ambiente da Biblioteca, onde você pode então promover para ambientes adicionais.
Promova conteúdo em ambientes de ciclo de vida
Se você testou novos pacotes e está satisfeito com a estabilidade de tudo, poderá promover sua Visualização de Conteúdo para outro ambiente de ciclo de vida.
- Navegue até Conteúdo > Visualizações de conteúdo e selecione a visualização de conteúdo que você deseja promover.
- Clique na guia Versões da visualização de conteúdo.
- Selecione a versão que deseja promover e, na coluna Ações, clique em Promover.
- Selecione o ambiente onde deseja promover a Visualização de Conteúdo e clique em Promover Versão.
- Clique no botão Promover novamente. Desta vez, selecione o ambiente do ciclo de vida, por exemplo, Testar e clique em Promover versão.
- Por fim, clique novamente no botão Promover. Por exemplo, selecione o ambiente Produção e clique em Promover versão.
Os servidores atribuídos a esse ambiente específico agora podem extrair de um conjunto atualizado de pacotes.
Crie uma chave de ativação
Para registrar um servidor CentOS Stream no conteúdo definido em um ciclo de vida específico, você deve criar uma chave de ativação. A chave de ativação é um método seguro de compartilhamento de credenciais com um servidor. Isso usa uma ferramenta chamada subscription-manager para assinar o conteúdo do servidor CentOS Stream.
Depois de criar a chave de ativação, adicione a assinatura do CentOS Stream à chave de ativação.
- Na IU da web do Foreman, navegue até Conteúdo > Chaves de ativação e clique em Criar chave de ativação.
- No campo Nome, insira o nome da chave de ativação.
- No campo Descrição, insira uma descrição para a chave de ativação.
- Na lista Ambiente, selecione o ambiente a ser usado.
- Na lista Visualização de conteúdo, selecione a Visualização de conteúdo que você criou agora.
- Clique em Salvar.
Crie um CentOS Stream Host a partir de conteúdo gerenciado pelo Foreman
Agora tudo está configurado. Com o conteúdo que você criou contido em uma visualização de conteúdo e promovido em todos os ciclos de vida, agora você pode provisionar aos hosts exatamente o conteúdo que deseja usar e assinar as atualizações que deseja que eles recebam.
Para criar um host no Foreman, navegue até Hosts > Criar Host.
- No campo Nome, insira um nome para o host.
- Clique nas guias Organização e Local para garantir que o contexto de provisionamento seja definido automaticamente para o contexto atual.
- Na lista Implantar em, selecione Bare Metal.
- Clique na guia Sistema operacional.
- Na lista Arquiteturas, selecione x86_64.
- Na lista Sistema operacional, selecione CentOS_Stream 8.
- Marque a caixa Modo de construção.
- Para Seleção de mídia, selecione Conteúdo sincronizado para usar o conteúdo do CentOS Stream que você sincronizou anteriormente.
- Na lista Sincronizado Conteúdo, certifique-se de que CentOS Stream esteja selecionado.
- Na lista Tabela de partição, para esta demonstração, selecione Kickstart padrão, mas há muitas opções disponíveis.
- No campo Root Password, insira uma senha root para seu novo host.
- Clique na guia Interface e clique em Editar e adicione um endereço Mac.
- Clique na guia Parâmetros e verifique se existe um parâmetro que fornece uma chave de ativação. Caso contrário, adicione uma chave de ativação.
- Clique em Enviar para salvar a entrada do host.
Agora o novo host está no modo de construção, o que significa que quando você ligá-lo, ele começará a instalar o sistema operacional.
Se você navegar até Hosts > Hosts de conteúdo, poderá ver todos os detalhes das assinaturas, do ambiente do ciclo de vida e da visualização do conteúdo em que seu host está inscrito.
Este exemplo é apenas um pequeno vislumbre das muitas opções que você tem para gerenciar e provisionar conteúdo do CentOS Stream no Foreman. Se você quiser informações mais detalhadas sobre como gerenciar versões do CentOS Stream, controlar o conteúdo ao qual seus servidores têm acesso e controlar e proteger a estabilidade de sua infraestrutura, verifique a documentação do Foreman Content Management. Com todo o conteúdo do CentOS Stream sob seu controle, você pode criar e registrar Centos Streams que consomem apenas o conteúdo que você especificar. Para obter informações mais detalhadas sobre o provisionamento, consulte a documentação do Foreman Provisioning. Se você tiver dúvidas, comentários ou sugestões, você pode encontrar a comunidade Foreman em https://community.theforeman.org/