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á.
Centralização da distribuição de pacotes de software no AWS Organizations usando o Terraform
Pradip Kumar Pandey, Chintamani Aphale, T.V.R.L.Phani Kumar Dadi, Pratap Kumar Nanda, Aarti Rajput e Mayuri Shinde, Amazon Web Services
Resumo
As empresas geralmente mantêm várias Contas da AWS que estão espalhadas por várias Regiões da AWS para criar uma forte barreira de isolamento entre as cargas de trabalho. Para se manterem seguras e em conformidade, suas equipes de administração instalam ferramentas baseadas em agentes CrowdStrike
O Distributor, uma funcionalidade do AWS Systems Manager, automatiza o processo de empacotamento e de publicação de software em instâncias gerenciadas do Microsoft Windows e do Linux, tanto na nuvem quanto em servidores on-premises, por meio de uma interface única e simplificada. Esse padrão demonstra como você pode usar o Terraform para simplificar ainda mais o processo de gerenciamento da instalação do software e executar scripts em um grande número de instâncias e contas de membros AWS Organizations com o mínimo esforço.
Esta solução é aplicável a instâncias da Amazon, do Linux e do Windows que são gerenciadas pelo Systems Manager.
Pré-requisitos e limitações
Um pacote do Distributor com o software que será instalado
Terraform
versão 0.15.0 ou versões posteriores Instâncias do Amazon Elastic Compute Cloud (Amazon EC2) que são gerenciadas pelo Systems Manager e têm permissões básicas para acessar o Amazon Simple Storage Service (Amazon
S3) na conta de destino Uma zona de pouso para sua organização que é configurada usando o AWS Control Tower
(Opcional) O Account Factory for Terraform (AFT)
Arquitetura
Detalhes do recurso
Esse padrão usa o Account Factory for Terraform (AFT)
A personalização global contém código do Terraform que será executado em todas as contas registradas no AFT.
As personalizações da conta contêm código do Terraform que será executado na conta de implantação.
É possível implantar esta solução sem usar o AFT, executando os comandos do Terraform
O código do Terraform implanta os seguintes recursos:
AWS Identity and Access Management Papel e políticas (IAM)
SystemsManager- AutomationExecutionRole concede ao usuário permissões para executar automações nas contas de destino.
SystemsManager- AutomationAdministrationRole concede ao usuário permissões para executar automações em várias contas e unidades organizacionais (OUs).
Arquivos compactados e manifest.json para o pacote
No Systems Manager, um pacote contém, pelo menos, um arquivo .zip de software ou de ativos instaláveis.
O manifesto JSON inclui referências aos arquivos de código do seu pacote.
Bucket do S3
O pacote distribuído, compartilhado por toda a organização, é armazenado de forma segura em um bucket do Amazon S3.
AWS Systems Manager documentos (documentos SSM)
O
DistributeSoftwarePackagecontém a lógica para distribuir o pacote de software para todas as instâncias de destino nas contas de membros.AddSoftwarePackageToDistributorcontém a lógica para empacotar os ativos de software instaláveis e adicioná-los à automação, um recurso de AWS Systems Manager.
Systems Manager (Gerenciador de sistemas)Associação
Uma associação do AWS Systems Manager é usada para implantar a solução.
Arquitetura e fluxo de trabalho

O diagrama ilustra as seguintes etapas:
Para executar a solução de uma conta centralizada, você faz o upload dos seus pacotes ou do software junto com as etapas de implantação para um bucket do S3.
Seu pacote personalizado ficará disponível na seção Documentos
da console do Systems Manager, na guia De minha propriedade. O Gerenciador de Estados, uma funcionalidade do Systems Manager, cria, agenda e executa uma associação para o pacote em toda a organização. A associação especifica que o pacote de software deve ser instalado e estar em execução em um nó gerenciado antes de ser instalado no nó de destino.
A associação orienta o Systems Manager a instalar o pacote no nó de destino.
Para qualquer instalação ou alteração subsequente, os usuários podem executar a mesma associação periódica ou manualmente de um único local para realizar implantações entre as contas.
Nas contas de membros, o Automation envia comandos de implantação ao Distributor.
O Distributor distribui pacotes de software entre as instâncias.
Essa solução usa a conta de gerenciamento interna AWS Organizations, mas você também pode designar uma conta (administrador delegado) para gerenciá-la em nome da organização.
Ferramentas
Serviços da AWS
O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados. Esse padrão usa o Amazon S3 para centralizar e armazenar com segurança o pacote distribuído.
O AWS Systems Manager ajuda você a gerenciar suas aplicações e infraestrutura em execução na Nuvem AWS. Ele simplifica o gerenciamento de aplicativos e recursos, reduz o tempo para detectar e resolver problemas operacionais e ajuda você a gerenciar seus AWS recursos com segurança em grande escala. Este padrão usa as seguintes funcionalidades do Systems Manager:
O Distributor auxilia no empacotamento e na publicação de software em instâncias gerenciadas pelo Systems Manager.
A automação simplifica as tarefas comuns de manutenção, implantação e remediação de muitos AWS serviços.
Os Documentos realizam ações nas instâncias gerenciadas pelo Systems Manager em toda a organização e nas contas.
AWS Organizationsé um serviço de gerenciamento de contas que ajuda você a consolidar várias AWS contas em uma organização que você cria e gerencia centralmente.
Outras ferramentas
O Terraform
é uma ferramenta de infraestrutura como código (IaC) HashiCorp que ajuda você a criar e gerenciar recursos na nuvem e no local.
Repositório de código
As instruções e o código desse padrão estão disponíveis no repositório GitHub centralizado de distribuição de pacotes
Práticas recomendadas
Para atribuir etiquetas a uma associação, use a AWS Command Line Interface (AWS CLI) ou as Ferramentas da AWS para PowerShell. Não há suporte à adição de tags a uma associação usando o console do Systems Manager. Para obter mais informações, consulte Marcação de recursos do Systems Manager na documentação do Systems Manager.
Para executar uma associação usando uma nova versão de um documento compartilhado de outra conta, defina a versão do documento como
default.Para marcar apenas o nó de destino, use uma chave de etiqueta. Se desejar segmentar os nós com várias chaves de etiqueta, use a opção de grupo de recursos.
Épicos
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Clonar o repositório. |
| DevOps engenheiro |
Atualize as variáveis globais. | Atualize os parâmetros de entrada apresentados a seguir no arquivo
| DevOps engenheiro |
Atualize as variáveis da conta. | Atualize os parâmetros de entrada apresentados a seguir no arquivo
| DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Atualize os parâmetros de entrada para a associação do Gerenciador de Estados. | Atualize os parâmetros de entrada apresentados a seguir no arquivo
| DevOps engenheiro |
Prepare os arquivos compactados e o arquivo | Esse padrão fornece exemplos de arquivos PowerShell instaláveis (.msi para Windows e .rpm para Linux) com scripts de instalação e desinstalação na pasta.
| DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Inicialize a configuração do Terraform. | Para implantar a solução automaticamente com o AFT, envie o código para o AWS CodeCommit:
É possível implantar esta solução sem usar o AFT, executando o comando do Terraform a partir da pasta
| DevOps engenheiro |
Pré-visualize as alterações. | Para visualizar previamente as alterações que o Terraform fará na infraestrutura, execute o comando:
Este comando avalia a configuração do Terraform para determinar o estado desejado dos recursos que foram declarados. O comando também compara o estado desejado com a infraestrutura real a ser provisionada no espaço de trabalho. | DevOps engenheiro |
Aplique as alterações. | Execute o seguinte comando para aplicar as alterações que você fez nos arquivos
| DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Valide a criação dos documentos do SSM. |
Você deverá ver os pacotes | DevOps engenheiro |
Valide a implantação com êxito das automações. |
| DevOps engenheiro |
Valide se o pacote foi implantado nas instâncias de destino da conta de membro. |
| DevOps engenheiro |
Solução de problemas
| Problema | Solução |
|---|---|
A associação do Gerenciador de Estados falhou ou está travada no status “pendente”. | Consulte as informações de solução de problemas |
Uma associação agendada falhou ao ser executada. | A especificação do seu agendamento pode ser inválida. No momento, o Gerenciador de Estados não fornece suporte à especificação de meses em expressões cron para associações. Use expressões rate ou cron para confirmar o agendamento. |
Recursos relacionados
Distribuição centralizada de pacotes
(GitHub repositório) Casos de uso e melhores práticas (AWS Systems Manager documentação)