Etapa 14: atualizar o livro de receitas para usar iteração - AWS OpsWorks

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á.

Etapa 14: atualizar o livro de receitas para usar iteração

Importante

A ferramenta AWS OpsWorks Stacks o serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com o AWS Support Equipe em AWS Re:post ou através de AWS Premium Support.

Atualize seu livro de receitas adicionando um código que usa iteração, uma técnica que repete um código de receita várias vezes. Essa receita exibe mensagens no registro para um item do data bag que contém muitos conteúdos.

Para atualizar o livro de receitas na instância e executar a nova receita
  1. Na sua estação de trabalho local, no subdiretório recipes, no diretório opsworks_cookbook_demo, crie um arquivo chamado iteration_demo.rb que contenha o seguinte código:

    stack = search("aws_opsworks_stack").first Chef::Log.info("********** Content of 'custom_cookbooks_source' **********") stack["custom_cookbooks_source"].each do |content| Chef::Log.info("********** '#{content}' **********") end
    nota

    Gravar o código de receita anterior é um procedimento mais curto, mais flexível e menos propenso a erros do que escrever o seguinte código de receita que não usa iteração:

    stack = search("aws_opsworks_stack").first Chef::Log.info("********** Content of 'custom_cookbooks_source' **********") Chef::Log::info("********** '[\"type\", \"#{stack['custom_cookbooks_source']['type']}\"]' **********") Chef::Log::info("********** '[\"url\", \"#{stack['custom_cookbooks_source']['url']}\"]' **********") Chef::Log::info("********** '[\"username\", \"#{stack['custom_cookbooks_source']['username']}\"]' **********") Chef::Log::info("********** '[\"password\", \"#{stack['custom_cookbooks_source']['password']}\"]' **********") Chef::Log::info("********** '[\"ssh_key\", \"#{stack['custom_cookbooks_source']['ssh_key']}\"]' **********") Chef::Log::info("********** '[\"revision\", \"#{stack['custom_cookbooks_source']['revision']}\"]' **********")
  2. No terminal ou no prompt de comando, use o comando tar para criar uma nova versão do arquivo opsworks_cookbook_demo.tar.gz, que contém o diretório opsworks_cookbook_demo e o conteúdo atualizado.

  3. Carregue o arquivo opsworks_cookbook_demo.tar.gz atualizado no bucket do S3.

  4. Para atualizar o livro de receitas na instância e para executar a nova receita, siga as instruções em Etapa 5: atualizar o livro de receitas na instância e executar a receita. No processo "Para executar a receita", para Recipes to execute (Receitas para executar), digite opsworks_cookbook_demo::iteration_demo.

Para testar a receita
  1. Com a página Running command execute_recipes sendo exibida a partir dos procedimentos anteriores, para cookbooks-demo1 e Log, escolha show. A página de log execute_recipes é exibida.

  2. Role para baixo no registro e encontre entradas semelhantes ao seguinte:

    [2015-11-16T19:56:56+00:00] INFO: ********** Content of 'custom_cookbooks_source' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["type", "s3"]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["url", "https://s3.amazonaws.com/amzn-s3-demo-bucket/opsworks_cookbook_demo.tar.gz"]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["username", "secret-key-value"]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["password", "secret-access-key-value"]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["ssh_key", nil]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["revision", nil]' **********

    Essa receita exibe mensagens no registro para um item do data bag que contém muitos conteúdos. O item do data bag está no data bag aws_opsworks_stack. O item do data bag tem conteúdo chamado custom_cookbooks_source. Dentro desse conteúdo existem seis conteúdos chamados type, url, username, password, ssh_key e revision, e seus valores também são exibidos.

Na próxima etapa, você atualizará o livro de receitas para executar um código de receita somente se determinadas condições forem atendidas.