Exemplo 1: criação de runbooks pai-filho
O exemplo a seguir demonstra como criar dois runbooks que corrigem grupos marcados de instâncias do Amazon Elastic Compute Cloud (Amazon EC2) em estágios. Esses runbooks são usados em um relacionamento pai-filho com o runbook pai usado para iniciar uma automação de controle de taxa do runbook filho. Para obter mais informações sobre automações de controle de taxas, consulte Executar operações automatizadas em escala. Para obter mais informações sobre as ações de automação usadas neste exemplo, consulte a Referência de ações do Systems Manager Automation.
Crie o runbook filho
Este exemplo de runbook aborda o seguinte cenário. Emily é engenheira de sistemas na AnyCompany Consultants, LLC. Ela precisa configurar patches para grupos de instâncias do Amazon Elastic Compute Cloud (Amazon EC2) que hospedam bancos de dados primários e secundários. As aplicações acessam esses bancos de dados 24 horas por dia, portanto, uma das instâncias do banco de dados deve estar sempre disponível.
Ela decide que a aplicação de patches nas instâncias em etapas é a melhor abordagem. O grupo principal de instâncias de banco de dados receberão o patch primeiro, seguido pelo grupo secundário de instâncias de banco de dados. Além disso, para evitar custos adicionais, deixando instâncias em execução que foram interrompidas anteriormente, Emily quer que as instâncias corrigidas sejam retornadas ao seu estado original, antes da aplicação de patches.
Emily identifica os grupos primário e secundário de instâncias de banco de dados pelas tags associadas às instâncias. Ela decide criar um runbook pai que inicia uma automação de controle de taxa de um runbook filho. Ao fazer isso, ela pode direcionar as tags associadas aos grupos primário e secundário de instâncias do banco de dados e gerenciar a simultaneidade das automações filho. Depois de analisar os documentos do Systems Manager (SSM) disponíveis para aplicação de patches, ela escolhe o documento AWS-RunPatchBaseline
. Usando este documento do SSM, seus colegas podem revisar as informações de conformidade de patch associadas após a conclusão da operação de patch.
Para começar a criar o conteúdo do runbook, Emily analisa as ações de automação disponíveis e começa a criar o conteúdo para o runbook filho da seguinte maneira:
-
Primeiro, ela fornece valores para o esquema e a descrição do runbook e define os parâmetros de entrada para o runbook filho.
Utilizando o parâmetro
AutomationAssumeRole
, Emily e seus colegas podem usar uma função do IAM existente que permite que o Automation realize ações no runbook em seu nome. Emily usa o parâmetroInstanceId
para determinar a instância que deve ser corrigida. Opcionalmente, os parâmetrosOperation
,RebootOption
eSnapshotId
podem ser usados para fornecer valores para documentar os parâmetros paraAWS-RunPatchBaseline
. Para evitar que valores inválidos sejam fornecidos a esses parâmetros do documento, ela define a propriedadeallowedValues
conforme necessário. -
Com os elementos de nível superior definidos, Emily prossegue com a criação das ações que compõem as
mainSteps
do runbook. A primeira etapa gera o estado atual da instância de destino especificada no parâmetro de entradaInstanceId
usando a açãoaws:executeAwsApi
. A saída desta ação é usada em ações posteriores. -
Em vez de iniciar manualmente e manter o controle do estado original de cada instância que precisa ser corrigida, Emily usa a saída da ação anterior para ramificar a automação com base no estado da instância de destino. Isso permite que a automação execute etapas diferentes dependendo das condições definidas na ação
aws:branch
e melhora a eficiência geral da automação sem intervenção manual.Se o estado da instância já for
running
, a automação prossegue com o patch da instância com o documentoAWS-RunPatchBaseline
usando a açãoaws:runCommand
.Se o estado da instância for
stopping
, as pesquisas de automação sondam para a instância alcançar o estadostopped
, usando aaws:waitForAwsResourceProperty
, inicia a instância usando a açãoexecuteAwsApi
, e sonda a instância para alcançar um estadorunning
antes de aplicar os patches nela.Se o estado da instância for
stopped
, as pesquisas de automação iniciam a instância e a sonda para alcançar o estadorunning
, antes de aplicar os patches na instância, usando as mesmas ações. -
Após a conclusão da operação de patch, Emily deseja que a automação retorne a instância de destino ao mesmo estado em que estava antes da automação ser iniciada. Ela faz isso usando novamente a saída da primeira ação. As ramificações de automação com base no estado original da instância de destino usando a ação
aws:branch
. Se a instância estava anteriormente em outro estado diferente derunning
, ela será interrompida. Caso contrário, se o estado da instância forrunning
, a automação é encerrada. -
Emily analisa o conteúdo do runbook filho concluído e cria o runbook na mesma Conta da AWS e Região da AWS das instâncias de destino. Agora ela está pronta para continuar com a criação do conteúdo do runbook pai. Abaixo está o conteúdo do runbook filho concluído.
Para obter mais informações sobre as ações de automação usadas neste exemplo, consulte a Referência de ações do Systems Manager Automation.
Crie o runbook pai
Esse exemplo de runbook continua o cenário descrito na seção anterior. Agora que Emily criou o runbook filho, ela começa a criar o conteúdo para o runbook pai da seguinte maneira:
-
Primeiro, ela fornece valores para o esquema e a descrição do runbook e define os parâmetros de entrada para o runbook pai.
Utilizando o parâmetro
AutomationAssumeRole
, Emily e seus colegas podem usar uma função do IAM existente que permite que o Automation realize ações no runbook em seu nome. Emily usa os parâmetrosPatchGroupPrimaryKey
ePatchGroupPrimaryValue
para especificar a tag associada ao grupo primário de instâncias de banco de dados que será corrigido. Ela usa os parâmetrosPatchGroupSecondaryKey
ePatchGroupSecondaryValue
para especificar as tags associadas ao grupo secundário de instâncias de banco de dados nos quais os patches serão aplicados. -
Com os elementos de nível superior definidos, Emily prossegue com a criação das ações que compõem as
mainSteps
do runbook.A primeira ação inicia uma automação de controle de taxa usando o runbook filho recém-criado, direcionado a instâncias associadas à tag especificada no
PatchGroupPrimaryKey
e nos parâmetros de entradaPatchGroupPrimaryValue
. Ela usa os valores fornecidos aos parâmetros de entrada para especificar a chave e o valor da tag associada ao grupo primário de instâncias de banco de dados nos quais deseja aplicar o patch.Depois que a primeira automação for concluída, a segunda ação inicia outra automação de controle de taxa usando o runbook filho direcionado a instâncias associadas à tag especificada no
PatchGroupSecondaryKey
e no parâmetros de entrada doPatchGroupSecondaryValue
. Ela usa os valores fornecidos aos parâmetros de entrada para especificar a chave e o valor da tag associada ao grupo secundário de instâncias de banco de dados nos quais deseja aplicar o patch. -
Emily analisa o conteúdo do runbook pai concluído e cria o runbook na mesma Conta da AWS e Região da AWS das instâncias de destino. Agora ela está pronta para testar seus runbooks para garantir que a automação funcione conforme desejado antes de implementá-la em seu ambiente de produção. Abaixo está o conteúdo do runbook pai concluído.
Para obter mais informações sobre as ações de automação usadas neste exemplo, consulte a Referência de ações do Systems Manager Automation.