Este é o novo Guia de referência de modelos do AWS CloudFormation. Atualize seus favoritos e links. Para obter ajuda para começar a usar o CloudFormation, consulte o Guia do usuário do AWS CloudFormation.
cfn-hup
O auxiliar cfn-hup é um daemon que detecta alterações em metadados de recursos e executa ações especificadas pelo usuário quando uma alteração é detectada. Isso permite que você faça as atualizações de configuração em suas instâncias do Amazon EC2 em execução pela ação do API UpdateStack.
Tópicos
Sintaxe
cfn-hup --config|-c config.dir \ --no-daemon \ --verbose|-v
Opções
| Nome | Descrição | Obrigatório |
|---|---|---|
|
|
Especifica o caminho em que o script |
Não |
|
|
Especifique essa opção para executar o script |
Não |
|
|
Especifique esta opção para usar o modo detalhado. |
Não |
Arquivo de configuração cfn-hup.conf
O arquivo cfn-hup.conf armazena o nome da pilha e as credenciais da AWS que o daemon cfn-hup tem como alvo.
O arquivo cfn-hup.conf usa o seguinte formato:
[main] stack=<stack-name-or-id>
| Nome | Descrição | Obrigatório |
|---|---|---|
|
|
Um nome ou ID da pilha. Tipo: string |
Sim |
|
|
Um arquivo de credenciais somente de proprietário, no mesmo formato usado para as ferramentas de linha de comando. Tipo: string Condição: o parâmetro |
Não |
|
|
O nome de um perfil do IAM que está associado à instância. Tipo: string |
Não |
|
|
O nome da Região da AWS que contém a pilha. Exemplo: us-east-2 |
Não |
|
|
O Esse valor pode ser especificado com ou sem um 0 à esquerda. Em ambos os casos, ele é interpretado como um número octal (semelhante ao comando Tipo: inteiro octal entre Padrão: |
Não |
|
|
O intervalo usado para verificar a existência de alterações nos metadados do recurso em minutos. Tipo: inteiro Padrão: |
Não |
|
|
Especifica se deve usar o registro detalhado. Tipo: booliano Padrão: |
Não |
Arquivo de configuração da hooks.conf
As ações do usuário que o daemon cfn-hup chama periodicamente são definidas no arquivo de configuração hooks.conf. O arquivo hooks.conf usa o seguinte formato:
[hookname] triggers=post.addorpost.updateorpost.remove path=Resources.<logicalResourceId>(.Metadataor.PhysicalResourceId)(.<optionalMetadatapath>) action=<arbitrary shell command>runas=<runas user>
A operação é executada em uma cópia do ambiente atual (onde o cfn-hup está), com CFN_OLD_METADATA definido com o valor de metadados anterior especificado pelo caminho e com CFN_NEW_METADATA definido com o valor atual.
O arquivo de configuração de hooks é carregado apenas na inicialização do daemon cfn-hup portanto, novos hooks exigirão que o daemon seja reiniciado. Um cache dos valores de metadados anteriores é armazenado em /var/lib/cfn-hup/data/metadata_db, e você pode excluir esse cache para forçar cfn-hup a executar todas as ações post.add novamente.
| Nome | Descrição | Obrigatório |
|---|---|---|
|
|
Um nome exclusivo para este hook. Tipo: string |
Sim |
|
|
Uma lista delimitada por vírgulas das condições a serem detectadas. Valores válidos: Exemplo: |
Sim |
|
|
O caminho para o objeto de metadados. Oferece suporte a um caminho arbitrariamente profundo dentro do bloco de metadados. Opções de formato de caminhos
|
Sim |
|
|
Um comando shell arbitrário que é executado conforme dado. |
Sim |
|
|
Um usuário executar os comandos as. O |
Sim |
Diretório hooks.d
Para ser compatível com a composição de várias aplicações que implantam hooks de notificação de alteração, o cfn-hup é compatível com um diretório denominado hooks.d que fica no diretório de configuração de hooks. Você pode colocar um ou mais arquivos adicionais de configuração de hooks no diretório hooks.d. Os arquivos de hooks adicionais devem usar o mesmo layout que o arquivo hooks.conf.
O daemon cfn-hup analisa e carrega todo arquivo nesse diretório. Se algum hook no diretório hooks.d tiver o mesmo nome que um hook em hooks.conf, os hooks serão mesclados (o que significa que hooks.d substituirá hooks.conf pelos valores que ambos os arquivos especificarem).
Exemplos
Nos exemplos a seguir, o CloudFormation aciona o arquivo de hooks cfn-auto-reloader.conf quando você altera o recurso AWS::CloudFormation::Init associado ao recurso LaunchConfig.
JSON
... "LaunchConfig": { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Metadata" : { "QBVersion": {"Ref": "paramQBVersion"}, "AWS::CloudFormation::Init" : { ... "/etc/cfn/hooks.d/cfn-auto-reloader.conf": { "content": { "Fn::Join": [ "", [ "[cfn-auto-reloader-hook]\n", "triggers=post.update\n", "path=Resources.LaunchConfig.Metadata.AWS::CloudFormation::Init\n", "action=/opt/aws/bin/cfn-init -v ", " --stack ", { "Ref" : "AWS::StackName" }, " --resource LaunchConfig ", " --configsets wordpress_install ", " --region ", { "Ref" : "AWS::Region" }, "\n", "runas=root\n" ]]}, "mode" : "000400", "owner" : "root", "group" : "root" } ...
YAML
... LaunchConfig: Type: "AWS::AutoScaling::LaunchConfiguration" Metadata: QBVersion: !Ref paramQBVersion AWS::CloudFormation::Init: ... /etc/cfn/hooks.d/cfn-auto-reloader.conf: content: !Sub | [cfn-auto-reloader-hook] triggers=post.update path=Resources.LaunchConfig.Metadata.AWS::CloudFormation::Init action=/opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource LaunchConfig --configsets wordpress_install --region ${AWS::Region} runas=root mode: "000400" owner: "root" group: "root" ...
Recursos relacionados
Você também pode visitar nosso repositório no GitHub para baixar exemplos de modelo que usam cfn-hup, incluindo os que se seguem.