Criar runbooks do Automation
Cada runbook no Automation, um recurso do AWS Systems Manager, define uma automação. Os runbooks do Automation definem as ações que são executadas durante uma automação. No conteúdo do runbook, você define os parâmetros de entrada, saídas e ações que o Systems Manager realiza nas suas instâncias gerenciadas e os recursos da AWS.
A Automação inclui vários runbooks predefinidos que você pode usar para executar tarefas comuns, como reiniciar uma ou mais instâncias do Amazon Elastic Compute Cloud (Amazon EC2) ou criar uma Amazon Machine Image (AMI). No entanto, seus casos de uso podem se estender além dos recursos dos runbooks predefinidos. Se esse for o caso, você pode criar seus próprios runbooks e modificá-los de acordo com suas necessidades.
Um runbook consiste em ações de automação, parâmetros para essas ações e parâmetros de entrada especificados. O conteúdo de um runbook é escrito em YAML ou JSON. Se você não estiver familiarizado com YAML ou JSON, recomendamos usar o designer visual ou aprender mais sobre qualquer linguagem de marcação antes de tentar criar seu próprio runbook. Para obter mais informações sobre o designer visual, consulte Experiência de design visual para runbooks de automação.
As seções a seguir ajudarão você a criar seu primeiro runbook.
Identifique seu caso de uso
A primeira etapa na criação de um runbook é identificar o caso de uso. Por exemplo, você agendou o runbook AWS-CreateImage
para ser executado diariamente em todas as instâncias do Amazon EC2 de produção. No final do mês, você percebe que tem mais imagens do que são necessárias para obter pontos de recuperação. No futuro, você precisará excluir automaticamente a AMI mais antiga de uma instância do Amazon EC2, quando uma nova AMI for criada. Para fazer isso, você cria um novo runbook que faz o seguinte:
-
Executa a ação
aws:createImage
e especifica o ID da instância na descrição da imagem. -
Executa a ação
aws:waitForAwsResourceProperty
para sondar o estado da imagem até que ela estejaavailable
. -
Depois que o estado da imagem estiver
available
, oaws:executeScript
executa um script Python personalizado que reúne os IDs de todas as imagens associadas à sua instância do Amazon EC2. O script faz isso filtrando, usando o ID da instância na descrição da imagem que você especificou na criação. Em seguida, o script classifica a lista de IDs de imagem com base nocreationDate
da imagem e emite o ID da AMI mais antiga. -
Por último, a ação
aws:deleteImage
é executada para excluir a AMI mais antiga, usando o ID do resultado da etapa anterior.
Nesse cenário, você já estava usando o runbook AWS-CreateImage
, mas descobriu que seu caso de uso exigia maior flexibilidade. Esta é uma situação comum porque pode haver sobreposição entre runbooks e ações de automação. Como resultado, talvez seja necessário ajustar quais runbooks ou ações você deve usar para resolver seu caso de uso.
Por exemplo, as ações aws:executeScript
e aws:invokeLambdaFunction
permitem que você execute scripts personalizados como parte de sua automação. Para escolher entre eles, você pode preferir o aws:invokeLambdaFunction
devido às linguagens do runtime adicionais suportadas. No entanto, você pode preferir o aws:executeScript
, porque permite criar conteúdo de script diretamente em runbooks YAML e fornecer conteúdo de script como anexos para runbooks JSON. Você também pode considerar o aws:executeScript
para ser mais simples em termos de configuração do AWS Identity and Access Management (IAM). Como ele usa as permissões fornecidas no AutomationAssumeRole
, o aws:executeScript
não requer uma função do AWS Lambda de execução da função.
Em qualquer cenário específico, uma ação pode fornecer mais flexibilidade, ou funcionalidade adicional, sobre outra. Portanto, recomendamos que você revise os parâmetros de entrada disponíveis para o runbook ou ação que quiser usar, para determinar qual melhor se adapta ao seu caso de uso e preferências.
Configuração do ambiente de desenvolvimento
Depois de identificar seu caso de uso e os runbooks predefinidos ou ações de automação que deseja usar no runbook, é hora de configurar seu ambiente de desenvolvimento para o conteúdo do runbook. Para desenvolver o conteúdo do runbook, recomendamos usar o AWS Toolkit for Visual Studio Code em vez do console de documentos do Systems Manager.
O Toolkit for VS Code é uma extensão de código aberto para o Visual Studio Code (VS Code) que oferece mais recursos do que o console Systems Manager Documents. Os recursos úteis incluem validação de esquema para YAML e JSON, trechos para tipos de ação de automação e suporte de preenchimento automático para várias opções em YAML e JSON.
Para obter mais informações sobre como instalar o Toolkit for VS Code, consulte Instalar o AWS Toolkit for Visual Studio Code. Para obter mais informações sobre como usar o Toolkit for VS Code para desenvolver runbooks, consulte Trabalhar com documentos do Systems Manager Automation no Manual do usuário do AWS Toolkit for Visual Studio Code.
Desenvolva conteúdo do runbook
Com o caso de uso identificado e o ambiente configurado, você está pronto para desenvolver o conteúdo do runbook. Seu caso de uso e suas preferências ditarão em grande parte as ações de automação ou os runbooks que você usa no conteúdo do runbook. Algumas ações suportam apenas um subconjunto de parâmetros de entrada quando comparadas a outra ação que permite realizar uma tarefa semelhante. Outras ações têm resultados específicos, como aws:createImage
, onde algumas ações permitem que você defina suas próprias saídas, como aws:executeAwsApi
.
Se você não tiver certeza de como usar uma ação específica em seu runbook, recomendamos analisar a entrada correspondente para a ação na seção Referência de ações do Systems Manager Automation. Recomendamos também examinar o conteúdo de runbooks predefinidos para ver exemplos reais de como essas ações são usadas. Para obter mais exemplos de aplicações reais de runbooks, consulte Exemplos adicionais de runbook.
Para demonstrar as diferenças de simplicidade e flexibilidade que o conteúdo do runbook fornece, os tutoriais a seguir fornecem um exemplo de como aplicar patches a grupos de instâncias do Amazon EC2 em etapas:
-
Exemplo 1: criação de runbooks pai-filho: neste exemplo, dois runbooks são usados em um relacionamento pai-filho. O runbook pai inicia uma automação de controle de taxa do runbook filho.
-
Exemplo 2: Runbook com script: este exemplo demonstra como você pode realizar as mesmas tarefas do Exemplo 1 condensando o conteúdo em um único runbook e usando scripts em seu runbook.