Obter valores de atributo com a pesquisa do Chef - 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á.

Obter valores de atributo com a pesquisa do Chef

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

Esta abordagem está disponível para pilhas do Windows e do Linux do Chef 11.10.

A obtenção de valores de atributo de implantação e configuração de pilha diretamente do objeto de nó pode ser complicada e não pode ser usada com pilhas do Windows. Uma abordagem alternativa é usar a pesquisa do Chef para consultar os atributos de interesse. Se você estiver familiarizado com o Chef Server, descobrirá que a pesquisa do Chef funciona de maneira um pouco diferente com o AWS OpsWorks Stacks. Como o AWS OpsWorks Stacks usa chef-client no modo local, a pesquisa do Chef depende de uma versão local do servidor Chef chamada chef-zero, para que a pesquisa opere nos dados armazenados localmente no objeto nó da instância, em vez de em um servidor remoto.

Na prática, restringir a pesquisa a dados armazenados localmente geralmente não importa porque o objeto de nó em uma instância do AWS OpsWorks Stacks inclui a configuração da pilha e os atributos de implantação. Eles contêm a maioria, senão todos, os dados que as receitas normalmente obteriam do servidor Chef e usam os mesmos nomes, então você geralmente pode usar o código de pesquisa escrito para o Chef Server em instâncias do AWS OpsWorks Stacks sem modificação. Para ter mais informações, consulte Utilização da pesquisa do Chef.

Veja a seguir a estrutura básica de uma consulta de pesquisa:

result = search(:search_index, "key:pattern")
  • O índice de pesquisa especifica quais atributos se aplicam à consulta e determina o tipo de objeto que será retornado.

  • A chave especifica o nome do atributo.

  • O padrão especifica quais valores do atributo você quer recuperar.

    É possível consultar valores de atributo específicos ou usar caracteres curinga para consultar um intervalo de valores.

  • O resultado é uma lista de objetos que satisfazem a consulta, sendo que cada um deles é uma tabela de hash contendo vários atributos relacionados.

    Por exemplo, se você usar o índice de pesquisa node, a consulta retornará uma lista de objetos de instância, um para cada instância que atende à consulta. Cada objeto é uma tabela de hash que contém um conjunto de atributos que definem a configuração da instância, como o nome de host e o endereço IP.

Por exemplo, a consulta a seguir usa o índice de pesquisa node, que é um índice do Chef padrão que se aplica às instâncias da pilha (ou nós, segundo a terminologia do Chef). Ele procura instâncias com o nome de host myhost.

result = search(:node, "hostname:myhost")

A pesquisa retorna uma lista de objetos de instância cujo nome de host é myhost. Se você quiser o sistema operacional da primeira instância, por exemplo, ele seria representado como result[0][:os]. Se a consulta retornar vários objetos, você poderá enumerá-los para recuperar as informações necessárias.

Os detalhes de como usar a pesquisa em uma receita são diferentes se você estiver usando uma pilha do Linux ou do Windows. Os tópicos a seguir fornecem exemplos para os dois tipos de pilha.