Adicione nós automaticamente em AWS OpsWorks for Chef Automate - 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á.

Adicione nós automaticamente em AWS OpsWorks for Chef Automate

Importante

AWS OpsWorks O Chef Automate chegou ao fim da vida útil em 5 de maio de 2024 e foi desativado para clientes novos e existentes. Recomendamos que os clientes existentes migrem para o Chef SaaS ou uma solução alternativa. Se você tiver dúvidas, pode entrar em contato com a AWS Support equipe no AWS re:POST ou por meio do Premium AWS Support.

Este tópico mostra como adicionar automaticamente nós Amazon Elastic Compute Cloud (Amazon EC2) para o servidor do Chef. O código no Starter Kit mostra como adicionar nós automaticamente usando o método desassistido. O método recomendado de associação desassistida ou automática de novos nós é configurar o Livro de receitas do Chef Client. Você pode usar o script userdata no Starter Kit e alterar a seção run_list do script userdata ou seu Policyfile.rb com os livros de receitas que deseja aplicar aos nós. Antes de executar o agente chef-client, instale o livro de receitas do Chef Client no servidor do Chef e o agente chef-client em modo de serviço com, por exemplo, uma função HTTPD, conforme mostrado no comando de exemplo a seguir.

chef-client -r "chef-client,role[httpd]"

Para se comunicar com o software de servidor do Chef, o agente chef-client deve ter acesso à chave pública do nó do cliente. Você pode gerar um par de chaves pública-privada no Amazon EC2 e, em seguida, passar a chave pública para a chamada de API com AWS OpsWorks associate-node o nome do nó. O script mostrado incluído no Starter Kit reúne o nome da organização, nome do servidor e endpoint do servidor. Isso garante que o nó esteja associado ao servidor do Chef, e o software do agente chef-client que é executado no nó possa se comunicar com o servidor depois de vincular a chave privada.

A versão mínima compatível do chef-client em nós associados a um servidor AWS OpsWorks for Chef Automate é 13.x. Recomendamos executar a chef-client versão mais atual e estável.

Para obter informações sobre como desassociar um nó, consulte Desassociar um nó de um servidor AWS OpsWorks for Chef Automate este guia e disassociate-nodea documentação da AWS OpsWorks for Chef Automate API.

Sistemas operacionais compatíveis

Para consultar a lista de sistemas operacionais compatíveis para nós, acesse Website do Chef

Etapa 1: criar um perfil do IAM para usar como o perfil de instância

Crie uma função AWS Identity and Access Management (IAM) para usar como seu perfil de instância do EC2 e anexe a política a seguir à função do IAM. Essa política permite que a API do AWS OpsWorks for Chef Automate (opsworks-cm) se comunique com a instância do EC2 durante o registro de nó. Para obter mais informações sobre perfis de instâncias, consulte Uso de perfis de instância na documentação do Amazon EC2. Para informações sobre como criar um perfil do IAM, consulte Criação de um perfil do IAM no console na documentação do Amazon EC2.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "opsworks-cm:AssociateNode", "opsworks-cm:DescribeNodeAssociationStatus", ], "Resource": "*", "Effect": "Allow" } ] }

AWS OpsWorks fornece um AWS CloudFormation modelo que você pode usar para criar a função do IAM com a declaração de política anterior. O AWS CLI comando a seguir cria a função de perfil da instância para você usando esse modelo. Você pode omitir o --region parâmetro se quiser criar a nova AWS CloudFormation pilha na sua região padrão.

aws cloudformation --region region ID create-stack --stack-name myChefAutomateinstanceprofile --template-url https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-nodes-roles.yaml --capabilities CAPABILITY_IAM

Etapa 2: instalar o livro de receitas Chef Client

Se ainda não tiver feito isso, siga as etapas em (Alternativa) Usar o Berkshelf para obter livros de receitas de uma fonte remota para garantir que o Berksfile ou o arquivo Policyfile.rb faça referência ao livro de receitas do Chef Client e instale o livro de receitas.

Etapa 3: Criar instâncias com um script de associação autônoma

  1. Para criar instâncias do EC2, você pode copiar o userdata script do Starter Kit para a userdata seção de instruções de instância do EC2, configurações de lançamento em grupo do Amazon EC2 Auto Scaling ou um modelo. AWS CloudFormation Para obter mais informações sobre a adição de scripts aos dados do usuário, consulte Execução de comandos na instância do Linux na inicialização na documentação do Amazon EC2.

    Este script executa o comando da opsworks-cmAPI associate-node para associar um novo nó com o servidor do Chef.

    Por padrão, o nome do novo nó registrado é o ID da instância, mas é possível alterar o nome modificando o valor da variável NODE_NAME no script userdata. Atualmente, não é possível alterar o nome da organização na interface do console do Chef, por isso, defina CHEF_AUTOMATE_ORGANIZATION como default.

  2. Siga o procedimento em Iniciar uma Instância na documentação do EC2, com modificações aqui. No assistente Iniciar instância do EC2, escolha um Amazon Linux AMI.

  3. Na página Configure Instance Details (Configurar detalhes da instância), selecione a função que você criou em Etapa 1: criar um perfil do IAM para usar como o perfil de instância, como sua função do IAM.

  4. Na área Advanced Details (Detalhes avançados), carregue o script userdata.sh que você criou anteriormente nesse procedimento.

  5. Nenhuma alteração é necessária na página Add Storage. Vá para Add Tags.

  6. Na página Configure Security Group (Configurar security group), selecione Add Rule (Adicionar regra) e selecione o tipo HTTP para abrir os números de porta 443 e 80 para o servidor web Apache neste exemplo.

  7. Escolha Review and Launch e, em seguida, selecione Launch. Quando o novo nó é iniciado, ele aplica as configurações especificadas pelas receitas que você especificou no parâmetro RUN_LIST.

  8. Opcional: se você tiver adicionado o livro de receitas nginx à sua lista de execuções, quando você abrir a página da web vinculada ao DNS público do novo nó, você deve ver um site hospedado pelo servidor web nginx.

Outros métodos de automatizar execuções de chef-client repetidas

Embora seja mais difícil de realizar e não recomendado, você pode executar o script neste tópico somente como parte dos dados do usuário da instância autônoma, usar um AWS CloudFormation modelo para adicioná-lo aos dados do usuário da nova instância, configurar um cron trabalho para executar o script regularmente ou executar chef-client dentro de um serviço. No entanto, recomendamos o método Chef Client Cookbook por causa de algumas desvantagens de outras técnicas de automação.

Para uma lista completa de parâmetros que você pode fornecer para chef-client, consulte a documentação do Chef.

As postagens de AWS blog a seguir oferecem mais informações sobre a associação automática de nós ao seu servidor Chef Automate, usando grupos de Auto Scaling ou em várias contas.