Configuração de uma cadeia de ferramentas de CI usando o Terraform
Com este tutorial, você pode usar o modelo de cadeia de ferramentas para integração contínua (CI) em DevSecOps para Infraestrutura como Código ( IaC ) Terraform. Ele é pré-configurado para implantação contínua (CD) com integração de inventário, gerenciamento de mudanças com Git Repos and Issue Tracking, coleta de evidências e implantação da infraestrutura em IBM Cloud.
Antes de Iniciar
Conclua as etapas a seguir antes de iniciar este tutorial.
- Conclua a Configuração dos pré-requisitos. Para obter mais informações, consulte a importância do CI para o IaC.
- Assista ao vídeo a seguir:
Inicie a configuração da cadeia de ferramentas de CI
O serviço Continuous Delivery fornece modelos que o orientam na configuração da cadeia de ferramentas e criam processos em uma ordem lógica. Um indicador de progresso mostra as etapas para concluir a configuração. Siga as etapas para acessar o modelo da cadeia de ferramentas de CI.
- No console IBM Cloud, clique no ícone Menu
do menu > Automação da plataforma > Cadeias de ferramentas.
- Na página Cadeias de ferramentas, clique em Criar cadeia de ferramentas.
- Verifique a infraestrutura como código.
- Clique no bloco CI - Desenvolva infraestrutura segura como código com práticas de DevSecOps.
Definir as configurações da cadeia de ferramentas de CI
A página Bem-vindos resume a finalidade da cadeia de ferramentas, juntamente com indicadores para a documentação e materiais relacionados.
-
Clique em Iniciar.
-
Insira um Nome da cadeia de ferramentas em sua cadeia de ferramentas para a mesma região e grupo de recursos no IBM Cloud.
-
Selecione uma região na lista suspensa.
-
Selecione um grupo de recursos na lista suspensa.
-
Clique em Continuar.
Será possível avançar para a próxima etapa apenas quando a configuração para a etapa atual for completa e válida. Você sempre pode clicar em Voltar para visualizar as etapas anteriores do instalador guiado. O instalador da cadeia de ferramentas retém todas as definições de configuração das etapas sucessivas.
Algumas etapas incluem um botão de alternância Alternar para configuração avançada. Por padrão, essas etapas apresentam a configuração mínima. No entanto, os usuários avançados que precisam de um controle mais refinado podem clicar no botão Alternar para configuração avançada para revelar as opções da integração subjacente.
Configurar integrações de ferramentas de CI
Revise as configurações padrão e forneça as configurações definidas pelo usuário sempre que necessário para configurar a integração da ferramenta de CI. Configure vários repositórios durante a instalação. É possível clonar os repositórios de amostra ou é possível usar os seus próprios, mas a cadeia de ferramentas suporta apenas os repositórios do Git Repos and Issue Tracking
Código de infraestrutura
O repositório de código de infraestrutura é o projeto ou módulo que a cadeia de ferramentas e o pipeline de CI criam, testam e entregam o artefato de destino. O repositório de código da infraestrutura está hospedado em GitHub Enterprise. Para consistência, este tutorial refere-se a Git Repos and Issue Tracking.
Revise as informações padrão do código de infraestrutura:
- Aceitar Usar amostra padrão. Se você quiser vincular um repositório IaC existente para a cadeia de ferramentas, selecione Bring your own infrastructure code (Traga seu próprio código de infraestrutura ) e forneça como entrada o campo Repository URL (Repositório ). No momento, a cadeia de ferramentas suporta a vinculação apenas aos repositórios Git Repos and Issue Tracking existentes. Para obter mais informações, consulte Trazendo seu próprio código de infraestrutura para DevSecOps.
- Digite um nome para Novo nome do repositório.
- Clique em Continuar.
Inventário
O repositório de inventário registra os detalhes dos artefatos que são criados pelas cadeias de ferramentas de CI.
- Você pode aceitar a configuração padrão fornecida no modelo.
- Clique em Continuar.
Problemas
O repositório de questões registra problemas que são encontrados enquanto o pipeline de IC está em execução.
- Você pode aceitar a configuração padrão fornecida no modelo.
- Clique em Continuar
Segredos
Especifique as integrações do cofre secreto a serem adicionadas à sua cadeia de ferramentas usando os botões de alternância, conforme explicado em Gerenciando IBM Cloud segredos.
- Este tutorial usa IBM Cloud® Secrets Manager como o cofre para segredos. Os campos Região, Grupo de recurso e Nome do serviço são preenchidos automaticamente com base em escolhas disponíveis. Clique nos indicadores suspensos para ver as outras escolhas.
- Digite seu Secrets Manager nome da instância.
- Selecione o tipo de autorização na lista suspensa.
- Clique em Continuar.
Armazenamento de evidência
O armário de evidências armazena todas as evidências e artefatos gerados pelo pipeline de CI do DevSecOps.
- Alterne o controle deslizante do compartimento IBM Cloud Object Storage para armazenar todas as evidências no compartimento IBM Cloud Object Storage que pode ser configurado na próxima página.
- Aceitar as configurações padrão.
- Clique em Continuar.
Nuvem Object Storage balde
Você deve ter uma instância do IBM Cloud Object Storage e um bucket para servir como um armário de evidências de conformidade.
- Os campos Cloud Object Storage instance, Bucket name e Cloud Object Storage endpoint são preenchidos automaticamente.
- Digite sua chave da API de ID do serviço.
- Preferencialmente: Uma chave existente pode ser importada de um cofre de segredos clicando no ícone da chave.
- Uma chave existente pode ser copiada e colada.
- Clique em Continuar.
O campo endpoint não é obrigatório. Você pode selecionar ou fornecer o ponto final durante a configuração da cadeia de ferramentas ou durante a execução do pipeline.
Implementar
Configure o espaço de trabalho de destino Schematics onde os estados do Terraform são mantidos. Se o nome do espaço de trabalho não for fornecido, a cadeia de ferramentas criará um espaço de trabalho padrão Schematics com o ToolchainName-ToolchainId-PipelineID.
-
Digite sua chave de API IBM Cloud. Se a chave da API tiver acesso suficiente. O espaço de trabalho Schematics, os repositórios Git e os detalhes do Grupo de recursos são preenchidos automaticamente. Você pode alterar qualquer um desses campos para que correspondam à sua configuração.
- Preferencialmente: Uma chave existente pode ser importada de um cofre de segredos clicando no ícone da chave.
- Uma chave existente pode ser copiada e colada.
- Uma nova chave pode ser criada a partir daqui, clicando em New +.
A chave de API recém-gerada pode ser salva imediatamente em um cofre de segredos.
-
Digite o Nome do espaço de trabalho esquemático.
-
Clique em Continuar.
Assinatura
Os artefatos criados pela cadeia de ferramentas e registrados no inventário devem ser assinados antes de serem implantados na produção.
- Digite a GnuPG chave privada. Como alternativa, você pode criar uma nova chave GPG clicando em NEW. Para obter mais informações, consulte Geração de uma chave GPG.
- Clique em Continuar.
Ferramentas opcionais
Slack
Configure o Slack para receber notificações sobre suas solicitações pull ou eventos de pipeline de CI. Você também pode adicionar a ferramenta Slack após a criação da cadeia de ferramentas.
- Digite seu webhook do Slack. Para obter mais informações, consulte Slack webhook.
- Insira seu canal de folga para postar a mensagem.
- Digite o nome da equipe de reserva. Por exemplo, se a sua equipe URL for
https://team.slack.com, o nome da equipe seráteam. - Escolha Notificações automatizadas do Slack para os eventos que você deseja receber notificações.
- Clique em Continuar.
Opcionalmente, você pode alternar o envio de notificações com a propriedade de ambiente slack-notifications em seu pipeline de CD usando 0 = off, and 1 = on.
Crie a cadeia de ferramentas de CI
-
Na página de resumo, clique em Criar cadeia de ferramentas.
-
Aguarde a criação da cadeia de ferramentas.
Outras integrações de cadeia de ferramentas podem ser configuradas depois que o pipeline for criado.
Explore a cadeia de ferramentas de CI
A cadeia de ferramentas de CI contém pr-pipeline e ci-pipeline. Esses pipelines são acionados quando uma nova solicitação de mesclagem é enviada ou mesclada à ramificação principal no repositório de código da infraestrutura.
Siga as etapas para acessar sua cadeia de ferramentas:
-
No console IBM Cloud, clique no ícone Menu
do menu > Automação da plataforma > Cadeias de ferramentas.
-
Na página Cadeias de ferramentas, clique em Criar cadeia de ferramentas.
-
Clique no seu conjunto de ferramentas para visualizar a saída, conforme mostrado na captura de tela.
A amostra utilizada neste tutorial espera um
resource_grouppara criar a instância Key Protect. O nome padrãoresource_groupéDefault. Se o padrão não for apropriado para sua conta, substitua a variável padrãoresource_groupno arquivovariables.tf. Caso contrário, especifique a variávelresource_groupdefinindo a propriedade de ambienteTF_VAR_resource_groupno pipeline PR e no pipeline CI para o nome do grupo de recursos apropriado.cadeia de ferramentas de CIDevSecOps IaC
Cadeia de ferramentas de CI DevSecOps
Executar o pipeline pr
Para iniciar o pr-pipeline, crie uma solicitação de mesclagem em seu repositório de aplicativos:
-
Na página da cadeia de ferramentas de CI, clique no bloco do repositório de aplicativos. Por padrão, ele é criado com um nome
compliance-app-<timestamp>. -
Crie um ramo a partir de ramificação principal.
-
Atualize alguns códigos no aplicativo ou adicione um arquivo leia-me e salve as alterações.
-
Enviar solicitação de mesclagem.
-
Na página da cadeia de ferramentas de CI, clique no bloco pr-pipeline. Verifique se o pipeline de PR é acionado pela criação da solicitação de mesclagem.
-
Aguarde a conclusão da execução do
pr-pipeline. A solicitação de mesclagem correspondente que está no repositório do aplicativo está no estadoPendingaté que todos os estágios do pipeline de PR sejam concluídos com êxito. -
Depois que a execução do pipeline de PR for bem-sucedida, clique no pipeline para explorar várias etapas que foram concluídas e para visualizar a página, conforme mostrado na captura de tela.
Pipeline de PR de DevSecOps bem-sucedido -
Navegue de volta para a solicitação de mesclagem.
-
Faça a fusão da solicitação para que suas alterações sejam copiadas para o branch principal do repositório do aplicativo. Verifique se o pipeline de CI é acionado automaticamente.
Execute o pipeline de CI
Inicie o pipeline de IC de uma das seguintes formas:
- Automaticamente: após um pipeline de PR bem-sucedido, aprovando e mesclando o PR à ramificação principal.
- Manualmente: para acionar o pipeline de CI manualmente, selecione o cartão Delivery Pipeline, clique em Run Pipeline e selecione Manual Trigger.
Neste tutorial, o pipeline de CI foi acionado depois que você fez o merge das alterações de código na ramificação principal do repositório do aplicativo.
-
Na página da cadeia de ferramentas de CI, clique no bloco ci-pipeline.
-
Clique em Run no nome do seu pipeline. Observe que um pipeline está sendo executado. Aguarde a conclusão da execução do pipeline.
-
Depois que a execução do pipeline de CI for bem-sucedida, clique no pipeline para explorar as etapas concluídas e visualizar a página, conforme mostrado na captura de tela.
Pipeline de CI DevSecOps
As evidências de todas as verificações de conformidade no pipeline de CI são carregadas no repositório do armário de evidências, mas também no IBM Cloud Object Storage bucket.
Para avaliar se há alguma falha na execução do pipeline, verifique a etapa final do pipeline.
Customizando o pipeline
Para obter mais informações sobre a personalização do pipeline, consulte Como um usuário personaliza o pipeline?
Próximas etapas
Você criou com êxito uma cadeia de ferramentas de CI DevSecOps para o Terraform, editou o código no repositório de código de infraestrutura, executou ci-pipeline para criar, testar e implantar suas alterações no ambiente de desenvolvimento.
Agora, explore a Configuração de uma cadeia de ferramentas de CD para o Terraform.