Tutorial: criar um pipeline com ações AWS CloudFormation StackSets de implantação - AWS CodePipeline

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Tutorial: criar um pipeline com ações AWS CloudFormation StackSets de implantação

Neste tutorial, você usa o AWS CodePipeline console para criar um pipeline com ações de implantação para criar um conjunto de pilhas e criar instâncias de pilha. Quando o pipeline é executado, o modelo cria um conjunto de pilhas e também cria e atualiza as instâncias em que o conjunto de pilhas é implantado.

Há duas maneiras de gerenciar permissões para um conjunto de pilhas: funções do IAM autogerenciadas e AWS gerenciadas. Este tutorial fornece exemplos de permissões autogerenciadas.

Para usar o Stacksets com mais eficiência CodePipeline, você deve ter uma compreensão clara dos conceitos por trás AWS CloudFormation StackSets e de como eles funcionam. Veja StackSets os conceitos no Guia AWS CloudFormation do usuário.

Pré-requisitos

Para operações de conjunto de pilhas, você vai usar duas contas diferentes: uma conta de administração e uma conta de destino. Você vai criar conjuntos de pilhas na conta de administrador. Na conta de destino, vai criar pilhas individuais pertencentes a um conjunto de pilhas.

Como criar um perfil de administrador com a conta de administrador
Como criar um perfil de serviço na conta de destino

Etapa 1: Fazer upload do modelo do AWS CloudFormation de exemplo e o arquivo de parâmetros

Crie um bucket de origem para os arquivos de parâmetros e modelos de conjunto de pilhas. Faça o download do arquivo AWS CloudFormation de modelo de amostra, configure um arquivo de parâmetros e, em seguida, compacte os arquivos antes de fazer o upload para o bucket de origem do S3.

nota

Compacte os arquivos de origem antes de fazer upload para o bucket de origem do S3, mesmo que o único arquivo de origem seja o modelo.

Como criar um bucket de origem do S3
  1. Faça login AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. Selecione Criar bucket.

  3. Em Nome do bucket, insira um nome para o bucket.

    Em Região, selecione a região onde você deseja criar o pipeline. Selecione Criar bucket.

  4. Depois que o bucket é criado, um banner de sucesso é exibido. Escolha Go to bucket details (Ir para detalhes do bucket).

  5. Na guia Properties (Propriedades) escolha Versioning (Versionamento). Escolha Enable versioning (Ativar versionamento) e escolha Save (Salvar).

Para criar o arquivo AWS CloudFormation de modelo
  1. Baixe o seguinte arquivo de modelo de amostra para gerar a CloudTrail configuração para conjuntos de pilhas:https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSCloudtrail.yml.

  2. Salve o arquivo como template.yml.

Como criar o arquivo parameters.txt
  1. Crie um arquivo com os parâmetros para a implantação. Os parâmetros são valores que você deseja atualizar na pilha em runtime. O arquivo de exemplo a seguir atualiza os parâmetros do modelo do conjunto de pilhas para permitir a validação do registro em log e eventos globais.

    [ { "ParameterKey": "EnableLogFileValidation", "ParameterValue": "true" }, { "ParameterKey": "IncludeGlobalEvents", "ParameterValue": "true" } ]
  2. Salve o arquivo como parameters.txt.

Como criar o arquivo accounts.txt
  1. Crie um arquivo com as contas nas quais você deseja criar instâncias, conforme mostrado no arquivo de exemplo a seguir.

    [ "111111222222","333333444444" ]
  2. Salve o arquivo como accounts.txt.

Como criar e fazer upload de arquivos de origem
  1. Combine os arquivos em um único arquivo ZIP. Os arquivos devem ter a aparência a seguir no arquivo ZIP.

    template.yml parameters.txt accounts.txt
  2. Faça upload do arquivo ZIP no bucket do S3. Esse arquivo é o artefato de origem criado pelo assistente Create Pipeline para sua ação de implantação em CodePipeline.

Etapa 2: Criar o pipeline

Nesta seção, você criará um pipeline com as seguintes ações:

  • Estágio de origem com uma ação de origem do S3 em que o artefato de origem é o arquivo de modelo e todos os arquivos de origem de apoio.

  • Um estágio de implantação com uma ação de implantação do conjunto de AWS CloudFormation pilhas que cria o conjunto de pilhas.

  • Um estágio de implantação com uma ação de implantação de instâncias de AWS CloudFormation pilha que cria as pilhas e instâncias nas contas de destino.

Para criar um pipeline com uma CloudFormationStackSet ação
  1. Faça login no AWS Management Console e abra o CodePipeline console em http://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Na página Welcome (Bem-vindo), Getting started (Conceitos básicos) ou Pipelines, selecione Create pipeline (Criar pipeline).

  3. Em Step 1: Choose pipeline settings (Etapa 1: selecionar as configurações do pipeline), em Pipeline name (Nome do pipeline), insira MyStackSetsPipeline.

  4. Em Tipo de pipeline, selecione V1 para os fins deste tutorial. Também é possível selecionar V2; no entanto, observe que os tipos de pipeline diferem em características e preços. Para ter mais informações, consulte Tipos de pipeline.

  5. Em Função de serviço, escolha Nova função de serviço para permitir CodePipeline a criação de uma função de serviço no IAM.

  6. No Armazenamento de artefatos, deixe os padrões.

    nota

    Este não é o bucket de origem para seu código-fonte. Este é o armazenamento de artefatos para o pipeline. Um armazenamento de artefatos separado, como um bucket do S3, é necessário para cada pipeline. Ao criar ou editar um pipeline, você deve ter um bucket de artefatos na região do pipeline e um bucket de artefatos por AWS região em que você está executando uma ação.

    Para obter mais informações, consulte Artefatos de entrada e saída e CodePipeline referência de estrutura de tubulação.

    Escolha Próximo.

  7. Na página Step 2: Add source stage (Etapa 2: adicionar estágio de origem), em Source provider (Fornecedor de origem), escolha Amazon S3.

  8. Em Bucket, insira o bucket de origem do S3 que você criou para este tutorial, como BucketName. Em Chave de objeto do S3, insira o caminho e o nome do arquivo ZIP, como MyFiles.zip.

  9. Escolha Próximo.

  10. Em Step 3: Add build stage (Etapa 3: Adicionar estágio de construção), selecione Skip build stage (Pular estágio de compilação) e aceite a mensagem de aviso ao clicar novamente em Skip (Pular).

    Escolha Próximo.

  11. Em Step 4: Add deploy stage (Etapa 4: Adicionar estágio de implantação):

    1. No Provedor de implantação, selecione Conjunto de pilhas do AWS CloudFormation .

    2. Em Nome do conjunto de pilhas, insira um nome para o conjunto de pilhas. Esse é o nome do conjunto de pilhas que será criado pelo modelo.

      nota

      Anote o nome do conjunto de pilhas. Você o usará ao adicionar a segunda ação StackSets de implantação ao seu pipeline.

    3. Em Caminho do modelo, insira o nome do artefato e o caminho do arquivo onde você fez upload do arquivo de modelo. Por exemplo, insira o comando a seguir usando o nome SourceArtifact do artefato de origem padrão.

      SourceArtifact::template.yml
    4. Em Destinos de implantação, insira o nome do artefato e o caminho do arquivo onde você fez upload do arquivo da conta. Por exemplo, insira o comando a seguir usando o nome SourceArtifact do artefato de origem padrão.

      SourceArtifact::accounts.txt
    5. Em Destino de implantação Regiões da AWS, insira uma região para implantação de sua instância de pilha inicial, comous-east-1.

    6. Expanda Opções de implantação. Em Parâmetros, insira o nome do artefato e o caminho do arquivo onde você fez upload do arquivo de parâmetros. Por exemplo, insira o comando a seguir usando o nome SourceArtifact do artefato de origem padrão.

      SourceArtifact::parameters.txt

      Para inserir os parâmetros como uma entrada literal em vez de um caminho de arquivo, digite o seguinte:

      ParameterKey=EnableLogFileValidation,ParameterValue=true ParameterKey=IncludeGlobalEvents,ParameterValue=true
    7. Em Recursos, escolha CAPABILITY_IAM e CAPABILITY_NAMED_IAM.

    8. Em Modelo de permissão, selecione SELF_MANAGED.

    9. Em Porcentagem de tolerância a falhas, insira 20.

    10. Em Porcentagem máxima simultânea, insira 25.

    11. Escolha Próximo.

    12. Selecione Criar pipeline. O pipeline é exibido.

    13. Deixe que o pipeline seja executado.

Etapa 3: Visualizar a implantação inicial

Visualize os recursos e o status da implantação inicial. Depois de verificar se a implantação criou com êxito o conjunto de pilhas, é possível adicionar a segunda ação ao estágio de implantação.

Como visualizar os recursos
  1. Abra o CodePipeline console em https://console.aws.amazon.com/codepipeline/.

  2. Em Pipelines, selecione o pipeline e clique em View (Visualizar). O diagrama mostra os estágios de implantação e a origem do pipeline.

  3. Escolha a AWS CloudFormation ação da CloudFormationStackSetação em seu funil. O modelo, os recursos e os eventos do seu conjunto de pilhas são mostrados no AWS CloudFormation console.

  4. No painel de navegação esquerdo, escolha StackSets. Na lista, selecione o novo conjunto de pilhas.

  5. Escolha a guia Instâncias de pilha. Verifique se foi criada uma instância da pilha para cada conta fornecida na região us-east-1. Verifique se o status de cada instância da pilha é CURRENT.

Etapa 4: adicionar uma CloudFormationStackInstances ação

Crie uma próxima ação em seu pipeline que permitirá AWS CloudFormation StackSets criar as instâncias restantes do stack.

Como criar uma próxima ação no pipeline
  1. Abra o CodePipeline console em https://console.aws.amazon.com/codepipeline/.

    Em Pipelines, selecione o pipeline e clique em View (Visualizar). O diagrama mostra os estágios de implantação e a origem do pipeline.

  2. Escolha editar o pipeline. O pipeline é exibido no modo de edição.

  3. No estágio de implantação, selecione Editar.

  4. Na ação de implantação do Conjunto de pilhas do AWS CloudFormation , selecione Adicionar grupo de ações.

  5. Na página Editar ação, adicione os detalhes da ação:

    1. Em Nome da ação, insira um nome para a ação.

    2. Em Provedor de ação, selecione Instâncias de pilhas do AWS CloudFormation .

    3. Em Artefatos de entrada, escolha SourceArtifact.

    4. Em Nome do conjunto de pilhas, insira o nome do conjunto de pilhas. Esse é o nome do conjunto de pilhas que você forneceu na primeira ação.

    5. Em Destinos de implantação, insira o nome do artefato e o caminho do arquivo onde você fez upload do arquivo da conta. Por exemplo, insira o comando a seguir usando o nome SourceArtifact do artefato de origem padrão.

      SourceArtifact::accounts.txt
    6. Em Destino de implantação Regiões da AWS, insira as regiões para implantação das instâncias de pilha restantes, da eu-central-1 seguinte forma: us-east-2

      us-east2, eu-central-1
    7. Em Porcentagem de tolerância a falhas, insira 20.

    8. Em Porcentagem máxima simultânea, insira 25.

    9. Escolha Salvar.

    10. Lance manualmente uma alteração. O pipeline atualizado é exibido com duas ações no estágio de implantação.

Etapa 5: Visualizar os recursos do conjunto de pilhas para a implantação

É possível visualizar os recursos e o status da implantação do conjunto de pilhas.

Como visualizar os recursos
  1. Abra o CodePipeline console em https://console.aws.amazon.com/codepipeline/.

  2. Em Pipelines, selecione o pipeline e, depois, Visualizar. O diagrama mostra os estágios de implantação e a origem do pipeline.

  3. Escolha a AWS CloudFormation ação da AWS CloudFormation Stack Instancesação em seu funil. O modelo, os recursos e os eventos do seu conjunto de pilhas são mostrados no AWS CloudFormation console.

  4. No painel de navegação esquerdo, escolha StackSets. Na lista, selecione o conjunto de pilhas.

  5. Escolha a guia Instâncias de pilha. Verifique se todas as instâncias de pilha restantes de cada conta que você forneceu foram criadas ou atualizadas nas regiões esperadas. Verifique se o status de cada instância da pilha é CURRENT.

Etapa 6: Fazer uma atualização no conjunto de pilhas

Faça uma atualização no conjunto de pilhas e implante a atualização nas instâncias. Neste exemplo, você também vai fazer uma alteração nos destinos de implantação que deseja designar para atualização. As instâncias que não fazem parte da atualização passam para um status desatualizado.

  1. Abra o CodePipeline console em https://console.aws.amazon.com/codepipeline/.

  2. Em Pipelines, selecione o pipeline e, em seguida, escolha Visualizar. No estágio de implantação, selecione Editar.

  3. Opte por editar a ação Conjunto de pilhas do AWS CloudFormation no pipeline. Em Descrição, substitua a descrição existente do conjunto de pilhas.

  4. Opte por editar a ação Instâncias de pilha do AWS CloudFormation no pipeline. Em Destino de implantação Regiões da AWS, exclua o us-east-2 valor que foi inserido quando a ação foi criada.

  5. Salve as alterações. Selecione Lançar alteração para executar o pipeline.

  6. Abra a ação no AWS CloudFormation. Escolha a guia de StackSet informações. Na StackSet descrição, verifique se a nova descrição é exibida.

  7. Escolha a guia Instâncias de pilha. Em Status, verifique se o status das instâncias de pilhas em us-east-2 é OUTDATED.