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á.
Além de usar scripts prévios e posteriores para automatizar snapshots consistentes com a aplicação, você pode usar os scripts prévios e posteriores juntos ou individualmente para automatizar outras tarefas administrativas antes ou depois da criação do snapshot. Por exemplo:
-
Usar um script prévio para aplicar patches antes de criar os snapshots. Isso pode ajudar você a criar snapshots depois de aplicar as atualizações regulares de software semanais ou mensais.
nota
Se você escolher executar somente um script prévio, a opção Usar o padrão de snapshots consistentes em caso de falha será habilitada por padrão.
-
Usar um script posterior para aplicar patches após a criação de snapshots. Isso pode ajudar você a criar snapshots antes de aplicar suas atualizações regulares de software semanais ou mensais.
Introdução a outros casos de uso
Esta seção explica as etapas que você precisa realizar ao usar scripts prévios e/ou scripts posteriores para outros casos de uso que não sejam de snapshots consistentes com a aplicação.
Para preparar as instâncias-alvo para scripts prévios e/ou posteriores
-
Instale o SSM Agent nas instâncias-alvo, se ainda não estiver instalado. Se o SSM Agent já estiver instalado em suas instâncias-alvo, pule esta etapa.
-
(Instâncias Linux) Instalação manual do SSM Agent em EC2 instâncias para Linux
-
(Instâncias do Windows) Trabalhando com o SSM Agent em EC2 instâncias para Windows Server
-
-
Certifique-se de que o SSM Agent esteja em execução. Para obter mais informações, consulte Verificar o status do SSM Agent e iniciar o agente.
-
Configure o Systems Manager para EC2 instâncias da Amazon. Para obter mais informações, consulte Configurando o Systems Manager para EC2 instâncias da Amazon no Guia AWS Systems Manager do usuário.
Você deve criar um documento de comando do SSM que inclua os scripts prévios e/ou posteriores com os comandos que você deseja executar.
Você pode criar um documento do SSM usando o modelo de documento do SSM em branco abaixo e adicionar os comandos de script prévio e posterior nas seções apropriadas do documento.
Observe o seguinte:
-
É sua responsabilidade garantir que o documento do SSM realize as ações corretas e necessárias para a sua workload.
-
O documento do SSM deve incluir os campos obrigatórios para
allowedValues
, incluindopre-script
,post-script
edry-run
. O Amazon Data Lifecycle Manager executará os comandos na instância com base no conteúdo dessas seções. Se o documento do SSM não tiver essas seções, o Amazon Data Lifecycle Manager o tratará como uma execução que falhou.
###===============================================================================###
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
###===============================================================================###
schemaVersion: '2.2'
description: SSM Document Template for Amazon Data Lifecycle Manager Pre/Post script feature
parameters:
executionId:
type: String
default: None
description: (Required) Specifies the unique identifier associated with a pre and/or post execution
allowedPattern: ^(None|[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})$
command:
# Data Lifecycle Manager will trigger the pre-script and post-script actions during policy execution.
# 'dry-run' option is intended for validating the document execution without triggering any commands
# on the instance. The following allowedValues will allow Data Lifecycle Manager to successfully
# trigger pre and post script actions.
type: String
default: 'dry-run'
description: (Required) Specifies whether pre-script and/or post-script should be executed.
allowedValues:
- pre-script
- post-script
- dry-run
mainSteps:
- action: aws:runShellScript
description: Run Database freeze/thaw commands
name: run_pre_post_scripts
precondition:
StringEquals:
- platformType
- Linux
inputs:
runCommand:
- |
#!/bin/bash
###===============================================================================###
### Error Codes
###===============================================================================###
# The following Error codes will inform Data Lifecycle Manager of the type of error
# and help guide handling of the error.
# The Error code will also be emitted via AWS Eventbridge events in the 'cause' field.
# 1 Pre-script failed during execution - 201
# 2 Post-script failed during execution - 202
# 3 Auto thaw occurred before post-script was initiated - 203
# 4 Pre-script initiated while post-script was expected - 204
# 5 Post-script initiated while pre-script was expected - 205
# 6 Application not ready for pre or post-script initiation - 206
###===============================================================================###
### Global variables
###===============================================================================###
START=$(date +%s)
# For testing this script locally, replace the below with OPERATION=$1.
OPERATION={{ command }}
# Add all pre-script actions to be performed within the function below
execute_pre_script() {
echo "INFO: Start execution of pre-script"
}
# Add all post-script actions to be performed within the function below
execute_post_script() {
echo "INFO: Start execution of post-script"
}
# Debug logging for parameters passed to the SSM document
echo "INFO: ${OPERATION} starting at $(date) with executionId: ${EXECUTION_ID}"
# Based on the command parameter value execute the function that supports
# pre-script/post-script operation
case ${OPERATION} in
pre-script)
execute_pre_script
;;
post-script)
execute_post_script
;;
dry-run)
echo "INFO: dry-run option invoked - taking no action"
;;
*)
echo "ERROR: Invalid command parameter passed. Please use either pre-script, post-script, dry-run."
exit 1 # return failure
;;
esac
END=$(date +%s)
# Debug Log for profiling the script time
echo "INFO: ${OPERATION} completed at $(date). Total runtime: $((${END} - ${START})) seconds."
nota
Essa etapa é necessária se:
-
Você criar ou atualizar uma política de snapshot habilitada para script prévio/posterior que usa um perfil do IAM personalizado.
-
Você usar a linha de comando para criar ou atualizar uma política de snapshot habilitado para script prévio/posterior.
Se você usar o console para criar ou atualizar uma política de instantâneos ativada antes e depois do script que usa a função padrão para gerenciar snapshots () AWSDataLifecycleManagerDefaultRole, pule esta etapa. Nesse caso, anexamos automaticamente a política de AWSDataLifecycleManagerSSMFullacesso a essa função.
Você deve garantir que o perfil do IAM que você usa para a política conceda ao Amazon Data Lifecycle Manager permissão para realizar as ações do SSM necessárias para executar scripts prévios e posteriores nas instâncias-alvo da política.
O Amazon Data Lifecycle Manager fornece uma política gerenciada (AWSDataLifecycleManagerSSMFullAccess) que inclui as permissões necessárias. Você pode anexar essa política ao perfil do IAM para gerenciar snapshots e garantir que ela inclua as permissões.
Importante
A política gerenciada de AWSData LifecycleManager SSMFull acesso usa a chave de aws:ResourceTag
condição para restringir o acesso a documentos SSM específicos ao usar scripts anteriores e posteriores. Para permitir que o Amazon Data Lifecycle Manager acesse os documentos do SSM, você deve garantir que eles estejam marcados com DLMScriptsAccess:true
.
Ou então, você pode criar manualmente uma política personalizada ou atribuir as permissões necessárias diretamente ao perfil do IAM que você usa. Você pode usar as mesmas permissões definidas na política gerenciada do AWSData LifecycleManager SSMFull Access, no entanto, a chave de aws:ResourceTag
condição é opcional. Se você decidir não usar essa chave de condição, não precisará marcar os documentos do SSM com DLMScriptsAccess:true
.
Use um dos métodos a seguir para adicionar a política de AWSDataLifecycleManagerSSMFullacesso à sua função do IAM.