Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Simular os atributos de implantação e configuração de pilha no Vagrant - 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á.

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

Simular os atributos de implantação e configuração de pilha no Vagrant

Importante

O AWS OpsWorks Stacks 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 a AWS Support equipe no AWS re:POST ou por meio do Premium AWS Support.

nota

Este tópico aplica-se apenas às instâncias do Linux. O Test Kitchen ainda não oferece suporte ao Windows, então você executará todos os exemplos do Windows em instâncias do AWS OpsWorks Stacks.

AWS OpsWorks O Stacks adiciona atributos de configuração e implantação da pilha ao objeto de nó de cada instância em sua pilha para cada evento do ciclo de vida. Esses atributos fornecem um snapshot da configuração da pilha, incluindo a configuração de cada camada e de suas instâncias online, a configuração de cada aplicativo implantado etc. Como esses atributos estão no objeto node, eles podem ser acessados por qualquer receita; a maioria das receitas para instâncias do AWS OpsWorks Stacks usa um ou mais desses atributos.

Uma instância executada em uma caixa Vagrant não é gerenciada pelo AWS OpsWorks Stacks, portanto, seu objeto de nó não inclui nenhuma configuração de pilha e atributos de implantação por padrão. No entanto, você pode adicionar um conjunto de atributos adequados ao ambiente do Test Kitchen. Em seguida, o Test Kitchen adiciona os atributos ao objeto node da instância, e suas receitas podem acessar os atributos da mesma forma que acessariam em uma instância do AWS OpsWorks Stacks.

Este tópico mostra como obter uma cópia de atributos de implantação e configuração de pilha apropriados, instalar os atributos em uma instância e acessá-los.

nota

Se você estiver usando o Test Kitchen para executar testes em suas receitas, fauxhai fornece uma maneira alternativa para simular JSON de configuração e implantação da pilha.

Para configurar o livro de receitas
  1. Crie um subdiretório de opsworks_cookbooks chamado printjson e navegue até ele.

  2. Inicialize e configure o Test Kitchen, conforme descrito em Exemplo 1: Instalação de pacotes.

  3. Adicione dois subdiretórios a printjson: recipes e environments.

É possível simular atributos de implantação e configuração de pilha adicionando um arquivo de atributos ao seu livro de receitas com as definições apropriadas, mas uma abordagem melhor é usar o ambiente do Test Kitchen. Há duas abordagens básicas:

  • Adicione definições de atributos a .kitchen.yml.

    Essa abordagem é útil se você tiver apenas alguns atributos. Para obter mais informações, consulte kitchen.yml.

  • Definir os atributos em um arquivo de ambiente e fazer referência ao arquivo em .kitchen.yml.

    Essa abordagem normalmente é preferível para atributos de implantação e configuração de pilha, porque o arquivo de ambiente já está no formato JSON. Você pode obter uma cópia dos atributos no formato JSON de uma instância adequada do AWS OpsWorks Stacks e simplesmente colá-la. Todos os exemplos usam um arquivo de ambiente.

A maneira mais simples de criar atributos de implantação e configuração de pilhapara seu livro de receitas é criar uma pilha devidamente configurada e copiar os atributos resultantes de uma instância como JSON. Para manter seu arquivo de ambiente do Test Kitchen gerenciável, edite o JSON para ter apenas os atributos de que suas receitas precisam. Os exemplos neste capítulo são baseados na pilha de Conceitos básicos das pilhas Linux do Chef 11, que é uma pilha de servidor de aplicativo PHP simples com um load balancer, servidores de aplicativos PHP e um servidor de banco de dados MySQL.

Para criar um JSON de configuração e implantação de pilha
  1. Crie MyStack conforme descrito emConceitos básicos das pilhas Linux do Chef 11, incluindo a implantação do SimplePHPApp. Se preferir, omita a segunda instância PHP App Server solicitada em Etapa 4: Dimensionar MyStack; os exemplos não usam esses atributos.

  2. Se você ainda não tiver feito isso, inicie a instância php-app1 e faça login com SSH.

  3. Na janela do terminal, execute o seguinte comando agent cli:

    sudo opsworks-agent-cli get_json

    Esse comando imprime os atributos de implantação e configuração de pilha mais recentes da instância na janela do terminal no formato JSON.

  4. Copie o JSON em um arquivo .json e salve-o em um local conveniente na sua estação de trabalho. Os detalhes dependem de seu cliente SSH. Por exemplo, se você estiver usando PuTTY no Windows, execute o comando Copy All to Clipboard, que copia todo o texto na janela do terminal para a área de transferência do Windows. Em seguida, cole o conteúdo em um arquivo .json e edite o arquivo para remover texto adicional.

  5. Edite o MyStack JSON conforme necessário. Os atributos de implantação e configuração de pilha são numerosos, mas os livros de receitas normalmente usam apenas um pequeno subconjunto deles. Para manter seu arquivo de ambiente gerenciável, edite o JSON para que ele mantenha a estrutura original, mas contenha apenas os atributos que seus livros de receitas efetivamente usam.

    Este exemplo usa uma versão altamente editada do MyStack JSON que inclui apenas dois ['opsworks']['stack'] atributos, ['id] e. ['name'] Crie uma versão editada do MyStack JSON parecida com a seguinte:

    { "opsworks": { "stack": { "name": "MyStack", "id": "42dfd151-6766-4f1c-9940-ba79e5220b58", }, }, }

Para inserir esse JSON no objeto de nó da instância, é necessário adicioná-lo a um ambiente do Test Kitchen.

Para adicionar atributos de implantação e configuração de pilha ao ambiente do Test Kitchen
  1. Crie um arquivo de ambiente chamado test.json com o seguinte conteúdo e salve-o na pasta environments do livro de receitas.

    { "default_attributes": { "opsworks" : { "stack" : { "name" : "MyStack", "id" : "42dfd151-6766-4f1c-9940-ba79e5220b58" } } }, "chef_type" : "environment", "json_class" : "Chef::Environment" }

    O arquivo de ambiente tem os seguintes elementos:

    • default_attributes: os atributos padrão no formato JSON.

      Esses atributos são adicionados ao objeto de nó com o tipo de atributo default, que é o tipo usado por todos os atributos JSON de configuração e implantação de pilha. Este exemplo usa a versão editada do JSON de configuração e implantação da pilha mostrado anteriormente.

    • chef_type: defina esse elemento como environment.

    • json_class: defina esse elemento como Chef::Environment.

  2. Edite .kitchen.yml para definir o ambiente do Test Kitchen da seguinte maneira.

    --- driver: name: vagrant provisioner: name: chef_solo environments_path: ./environments platforms: - name: ubuntu-12.04 suites: - name: printjson provisioner: solo_rb: environment: test run_list: - recipe[printjson::default] attributes:

    Para definir o ambiente, adicione os seguintes elementos ao .kitchen.yml padrão criado por kitchen init.

    provisioner

    Adicione os seguintes elementos.

    • name: defina esse elemento como chef_solo.

      Para replicar o ambiente AWS OpsWorks Stacks mais de perto, você pode usar o modo local do cliente Chef em vez do Chef solo. O modo local é uma opção do cliente do Chef que usa uma versão leve do servidor do Chef (Chef Zero) que é executada localmente na instância e não em um servidor remoto. Ele permite que suas receitas usem os recursos de servidor do Chef, como pesquisa ou recipientes de dados, sem a conexão a um servidor remoto.

    • environments_path: o subdiretório do livro de receitas que contém o arquivo de ambiente, ./environments, neste exemplo.

    suites:provisioner

    Adicione um elemento solo_rb com um conjunto de elementos environment ao nome do arquivo de ambiente, menos a extensão .json. Este exemplo define environment como test.

  3. Crie um arquivo de receitas designado default.rb com o seguinte conteúdo e salve-o no diretório recipes do livro de receitas.

    log "Stack name: #{node['opsworks']['stack']['name']}" log "Stack id: #{node['opsworks']['stack']['id']}"

    Essa receita apenas registra os dois valores de configuração e implantação da pilha que você adicionou ao ambiente. Embora a receita esteja sendo executada localmente no Virtual Box, você faz referência a esses atributos usando a mesma sintaxe de nó que usaria se a receita estivesse sendo executada em uma instância do AWS OpsWorks Stacks.

  4. Executar kitchen converge. Você deve ver algo semelhante à seguinte saída de log.

    ... Converging 2 resources Recipe: printjson::default * log[Stack name: MyStack] action write[2014-07-01T23:14:09+00:00] INFO: Processing log[Stack name: MyStack] action write (printjson::default line 1) [2014-07-01T23:14:09+00:00] INFO: Stack name: MyStack * log[Stack id: 42dfd151-6766-4f1c-9940-ba79e5220b58] action write[2014-07-01T23:14:09+00:00] INFO: Processing log[Stack id: 42dfd151-6766-4f1c-9940-ba79e5220b58] action write (printjson::default line 2) [2014-07-01T23:14:09+00:00] INFO: Stack id: 42dfd151-6766-4f1c-9940-ba79e5220b58 ...
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.