cfn-init - AWS CloudFormation

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-init

Em um modelo do CloudFormation, você pode usar AWS::CloudFormation::Init na seção Metadata de um recurso do Amazon EC2 para definir tarefas de inicialização. Para obter mais informações, consulte AWS::CloudFormation::Init.

O script auxiliar cfn-init lê os metadados do modelo na chave AWS::CloudFormation::Init e atua de acordo para:

  • Obter e analisar metadados do CloudFormation

  • Instalar pacotes

  • Gravar arquivos no disco

  • Ativar/desativar e iniciar/interromper serviços

O script auxiliar cfn-init geralmente é executado a partir dos dados do usuário de uma instância do Amazon EC2 ou do modelo de execução.

Caso esteja começando a usar scripts auxiliares, recomendamos que primeiro conclua o tutorial Implantar aplicações no Amazon EC2 no Guia do usuário do AWS CloudFormation.

nota

Se você usar cfn-init para atualizar um arquivo existente, ele cria uma cópia de backup do arquivo original com uma extensão .bak no mesmo diretório. Por exemplo, se você atualizar /path/to/file_name, essa ação produzirá dois arquivos: /path/to/file_name.bak contém o conteúdo do arquivo original e /path/to/file_name contém o conteúdo atualizado.

Sintaxe

cfn-init --stack|-s stack.name.or.id \ --resource|-r logical.resource.id \ --region region \ --access-key access.key \ --secret-key secret.key \ --role rolename \ --credential-file|-f credential.file \ --configsets|-c config.sets \ --url|-u service.url \ --http-proxy HTTP.proxy \ --https-proxy HTTPS.proxy \ --verbose|-v
nota

cfn-init não exige credenciais; portanto, você não precisa usar as opções --access-key, --secret-key, --role ou --credential-file. No entanto, se nenhuma credencial for especificada, o CloudFormation verificará se há associação de pilha e limitará o escopo da chamada para a pilha à qual a instância pertence. Para obter mais informações, consulte Permissões para scripts auxiliares.

Opções

Nome Descrição Obrigatório

-s, --stack

Nome ou ID da pilha.

Tipo: string

Padrão: nenhum

Exemplo: --stack { "Ref" : "AWS::StackName" },

Sim

-r, --resource

O ID de recursos lógicos do recurso que contém os metadados.

Tipo: string

Exemplo: --resource WebServerHost

Sim

--region

O endpoint regional do CloudFormation a ser usado.

Tipo: string

Padrão: us-east-1

Exemplo:--region ", { "Ref" : "AWS::Region" },

Não

--access-key

A chave de acesso da AWS para uma conta com permissão para chamar DescribeStackResource no CloudFormation. O parâmetro do arquivo de credencial substitui este parâmetro.

Tipo: string

Não

--secret-key

A chave de acesso secreta da AWS que corresponde a uma chave de acesso específica da AWS.

Tipo: string

Não

--role

O nome de um perfil do IAM que está associado à instância.

Tipo: string

Condição: o parâmetro do arquivo de credencial substitui este parâmetro.

Não

-f, --credential-file

Um arquivo que contém uma chave de acesso secreta e uma chave de acesso. O parâmetro do arquivo de credencial substitui os parâmetros --role, --access-key e --secret-key.

Tipo: string

Não

-c, --configsets

Uma lista separada por vírgulas de configsets para executar (em ordem).

Tipo: string

Padrão: default

Não

-u, --url

O endpoint do CloudFormation a ser usado.

Tipo: string

Não

--http-proxy

Um proxy HTTP (não SSL). Use o seguinte formato: http://user:password@host:port.

Tipo: string

Não

--https-proxy

Um proxy HTTPS. Use o seguinte formato: https://user:password@host:port.

Tipo: string

Não

-v, --verbose

Saída detalhada. Isso é útil para os casos de depuração em que ocorre falha ao inicializar cfn-init.

nota

Para depurar eventos de inicialização, você deve ativar DisableRollback. Depois, você pode inserir o SSH no console e ler os logs em /var/log/cfn-init.log. Para obter mais informações, consulte Escolher como lidar com falhas ao provisionar recursos no Guia do usuário do AWS CloudFormation.

Não

-h, --help

Mostra a mensagem de ajuda e sai.

Não

Exemplos

Exemplos do Amazon Linux

Os exemplos a seguir mostram a propriedade UserData de uma instância do EC2, que executa o InstallAndRun associado ao recurso WebServerInstance.

Para incluir a versão mais recente, adicione yum install -y aws-cfn-bootstrap a UserData.

JSON

Propriedade UserData utilizando a função Fn::Join intrínseca.

{ "UserData": { "Fn::Base64": { "Fn::Join": [ "", [ "#!/bin/bash -xe\n", "", "yum install -y aws-cfn-bootstrap", "/opt/aws/bin/cfn-init -v ", " --stack ", { "Ref": "AWS::StackName" }, " --resource WebServerInstance ", " --configsets InstallAndRun ", " --region ", { "Ref": "AWS::Region" }, "\n" ] ] } } }

YAML

Propriedade UserData utilizando a função Fn::Sub intrínseca.

UserData: !Base64 Fn::Sub: |- #!/bin/bash -xe yum update -y aws-cfn-bootstrap # Install the files and packages from the metadata /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource WebServerInstance --configsets InstallAndRun --region ${AWS::Region}

Para um tutorial com um modelo de exemplo, consulte Implantar aplicações no Amazon EC2 no Guia do usuário do AWS CloudFormation.

Para um exemplo do Windows, consulte Fazer o bootstrap de pilhas do CloudFormation baseadas em Windows no Guia do usuário do AWS CloudFormation.

Você também pode visitar nosso repositório no GitHub para baixar exemplos de modelo que usam cfn-init, incluindo os que se seguem.

Para obter modelos de exemplo de pilha LAMP que usam cfn-init, consulte ec2-lamp-server no site do GitHub.