Crie um AWS OpsWorks for Chef Automate servidor usando AWS CloudFormation - 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á.

Crie um AWS OpsWorks for Chef Automate servidor usando AWS CloudFormation

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.

AWS OpsWorks for Chef Automate permite que você execute um servidor Chef Automate em AWS. Você pode provisionar um servidor Chef Automate em cerca de 15 minutos.

A partir de 3 de maio de 2021, AWS OpsWorks for Chef Automate armazena alguns atributos do servidor Chef Automate em AWS Secrets Manager. Para ter mais informações, consulte Integração com AWS Secrets Manager.

O passo a passo a seguir ajuda você a criar um servidor em AWS OpsWorks for Chef Automate criando uma pilha em. AWS CloudFormation

Pré-requisitos

Antes de criar um servidor Chef Automate, crie fora do AWS OpsWorks for Chef Automate os recursos que serão necessários para acessar e gerenciar o servidor Chef. Para obter mais informações, consulte Pré-requisitos na seção de Conceitos básicos deste guia.

Consulte a seção OpsWorks -CM da Referência do Modelo AWS CloudFormation do Guia do Usuário para saber mais sobre os valores suportados e necessários no AWS CloudFormation modelo que você usa para criar seu servidor.

Se você estiver criando um servidor que use um domínio personalizado, precisará de um domínio, um certificado e uma chave privada personalizados. Você deve especificar valores para todos esses três parâmetros em seu AWS CloudFormation modelo. Para obter mais informações sobre os requisitos dos CustomPrivateKey parâmetros CustomDomainCustomCertificate,, e, consulte CreateServera Referência da API AWS OpsWorks CM.

Crie um valor de senha para o atributo do mecanismo CHEF_AUTOMATE_ADMIN_PASSWORD. O comprimento da senha deve ter um mínimo de 8 e um máximo de 32 caracteres. A senha só pode conter letras, números e caracteres especiais (!/@#$%^+=_). Ela deve conter pelo menos uma letra minúscula, uma letra maiúscula, um número e um caractere especial. Você especifica essa senha em seu AWS CloudFormation modelo ou como o valor do CHEF_AUTOMATE_ADMIN_PASSWORD parâmetro ao criar sua pilha.

Gere um par de chaves RSA codificado em base64 antes de começar a criar um servidor Chef Automate em. AWS CloudFormation A chave pública do par é o valor deCHEF_AUTOMATE_PIVOTAL_KEY, o Chef específico EngineAttributesda CreateServerAPI. Essa chave é fornecida como o valor de Parâmetros no AWS CloudFormation console ou no create-stack comando no AWS CLI. Para gerar essa chave, sugerimos os métodos a seguir.

  • Em computadores baseados em Linux, você pode gerar essa chave executando o comando OpenSSL a seguir.

    openssl genrsa -out pivotal_key_file_name.pem 2048

    Em seguida, exporte a parte da chave pública RSA do par para um arquivo. A chave pública se torna o valor de CHEF_AUTOMATE_PIVOTAL_KEY.

    openssl rsa -in pivotal_key_file_name.pem -pubout -out public.pem -outform PEM
  • Em computadores baseados em Windows, você pode usar o utilitário PuTTYgen para gerar um par de chaves RSA codificado em base64. Para obter mais informações, consulte PuTTYgen – Gerador de chaves para PuTTY em Windows em SSH.com.

Criar um servidor Chef Automate no AWS CloudFormation

Esta seção descreve como usar um AWS CloudFormation modelo para criar uma pilha que cria um AWS OpsWorks for Chef Automate servidor. Você pode fazer isso usando o AWS CloudFormation console ou AWS CLI o. Um AWS CloudFormation modelo de exemplo está disponível para você usar para criar uma pilha de AWS OpsWorks for Chef Automate servidores. Certifique-se de atualizar o modelo de exemplo com suas próprias informações de nome do servidor, perfis do IAM, perfil de instância, descrição do servidor, contagem de retenção de backup, opções de manutenção e tags opcionais. Se seu servidor usar um domínio personalizado, você deverá especificar valores para os CustomPrivateKey parâmetros CustomDomainCustomCertificate, e em seu AWS CloudFormation modelo. Você pode especificar os atributos CHEF_AUTOMATE_ADMIN_PASSWORD e o CHEF_AUTOMATE_PIVOTAL_KEY mecanismo e seus valores no AWS CloudFormation modelo, ou fornecer apenas os atributos e, em seguida, especificar valores para os atributos no assistente ou create-stack comando AWS CloudFormation Create Stack. Para obter mais informações sobre esses atributos, consulte Crie um servidor Chef Automate no AWS Management Console na seção de Conceitos básicos deste guia.

Criar um servidor Chef Automate usando o AWS CloudFormation (console)

  1. Faça login no AWS Management Console e abra o AWS CloudFormation console em https://console.aws.amazon.com/cloudformation.

  2. Na página AWS CloudFormation inicial, escolha Criar pilha.

  3. Em Pré-requisito - Preparar modelo, se você estiver usando o AWS CloudFormation modelo de exemplo, escolha O modelo está pronto.

  4. Em Specify template (Especificar modelo), escolha a origem do seu modelo. Para este passo a passo, escolha Carregar um arquivo de modelo e carregue um AWS CloudFormation modelo que crie um servidor Chef Automate. Procure seu arquivo de modelo e escolha Next (Próximo).

    Um AWS CloudFormation modelo pode estar no formato YAML ou JSON. Um AWS CloudFormation modelo de exemplo está disponível para você usar; certifique-se de substituir os valores de exemplo pelos seus. Você pode usar o designer AWS CloudFormation de modelos para criar um novo modelo ou validar um existente. Para obter mais informações sobre como fazer isso, consulte Visão geral da interface do AWS CloudFormation Designer no Guia do usuário do AWS CloudFormation .

    CloudFormation Criar página de pilha
  5. Na página Specify stack details (Especificar detalhes da pilha), insira um nome para a pilha. Ele não será o mesmo que o nome do servidor, apenas o nome de uma pilha. Na área Parameters (Parâmetros), cole os valores criados em Pré-requisitos. Insira a senha em Password (Senha).

    Cole o conteúdo do arquivo de chave RSA em PivotalKey. No AWS CloudFormation console, você deve adicionar caracteres newline (\n) no final de cada linha do valor da chave principal, conforme mostrado na captura de tela a seguir. Escolha Próximo.

    Especifique a página de detalhes da pilha em CloudFormation
  6. Na página Configurar opções da pilha, você poderá adicionar tags ao servidor que está criando com a pilha e escolher um perfil do IAM para a criação de recursos, caso ainda não tenha especificado um perfil do IAM a ser usada no modelo. Quando terminar de especificar as opções, selecione Next (Próximo). Para obter mais informações sobre opções avançadas, como acionadores de reversão, consulte Configurando opções de AWS CloudFormation pilha no Guia do usuário.AWS CloudFormation

  7. Na página Analisar, examine suas escolhas. Quando estiver pronto para criar a pilha do servidor, selecione Create (Criar).

    Enquanto você espera para criar AWS CloudFormation a pilha, veja o status de criação da pilha. Se a criação da pilha falhar, analise as mensagens de erro mostradas no console para ajudá-lo a resolver os problemas. Para obter mais informações sobre como solucionar problemas de erros em pilhas do AWS CloudFormation , consulte Solução de problemas de erros no Guia do usuário do AWS CloudFormation .

    Quando a criação for concluída, o servidor Chef Automate estará disponível na página inicial do AWS OpsWorks for Chef Automate , com um status online. Gere um novo Starter Kit e novas credenciais do painel do Chef Automate na página Properties (Propriedades) do servidor. Depois que o servidor estiver online, o painel do Chef Automate estará disponível no domínio do servidor, em um URL no seguinte formato: https://your_server_name-randomID.region.opsworks-cm.io.

    nota

    Se você especificou um domínio, certificado e chave privada personalizados para seu servidor, crie uma entrada CNAME na ferramenta de gerenciamento de DNS da sua empresa que mapeie seu domínio personalizado para o endpoint gerado AWS OpsWorks for Chef Automate automaticamente para o servidor. Não é possível gerenciar o servidor nem se conectar ao painel do Chef Automate para o servidor até que o endpoint gerado seja mapeado para o valor de domínio personalizado.

    Para obter o valor do endpoint gerado, execute o seguinte AWS CLI comando depois que seu servidor estiver on-line:

    aws opsworks describe-servers --server-name server_name

Criar um servidor Chef Automate usando o AWS CloudFormation (CLI)

Se seu computador local ainda não estiver executando o AWS CLI, faça o download e instale-o AWS CLI seguindo as instruções de instalação no Guia do usuário da interface de linha de comando da AWS. Esta seção não descreve todos os parâmetros que você pode usar com o comando create-stack. Para obter mais informações sobre os parâmetros do create-stack, consulte create-stack na Referência da AWS CLI .

  1. Certifique-se de concluir o Pré-requisitos para criar um servidor AWS OpsWorks for Chef Automate .

  2. Crie uma função de serviço e um perfil de instância. AWS OpsWorks fornece um AWS CloudFormation modelo que você pode usar para criar ambos. Execute o AWS CLI comando a seguir para criar uma AWS CloudFormation pilha que crie a função de serviço e o perfil da instância para você.

    aws cloudformation create-stack --stack-name OpsWorksCMRoles --template-url https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml --capabilities CAPABILITY_NAMED_IAM

    Depois de AWS CloudFormation terminar de criar a pilha, encontre e copie os ARNs das funções de serviço em sua conta.

    aws iam list-roles --path-prefix "/service-role/" --no-paginate

    Nos resultados do comando list-roles, procure pelas entradas da função de serviço e do perfil de instância que sejam semelhantes aos seguintes. Anote os ARNs da função de serviço e do perfil da instância e adicione-os ao AWS CloudFormation modelo que você está usando para criar sua pilha de servidores.

    { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" } } ] }, "RoleId": "AROZZZZZZZZZZQG6R22HC", "CreateDate": "2018-01-05T20:42:20Z", "RoleName": "aws-opsworks-cm-ec2-role", "Path": "/service-role/", "Arn": "arn:aws:iam::000000000000:role/service-role/aws-opsworks-cm-ec2-role" }, { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "opsworks-cm.amazonaws.com" } } ] }, "RoleId": "AROZZZZZZZZZZZZZZZ6QE", "CreateDate": "2018-01-05T20:42:20Z", "RoleName": "aws-opsworks-cm-service-role", "Path": "/service-role/", "Arn": "arn:aws:iam::000000000000:role/service-role/aws-opsworks-cm-service-role" }
  3. Crie o AWS OpsWorks for Chef Automate servidor executando o create-stack comando novamente.

    • Substitua stack_name pelo nome da pilha. Este é o nome da AWS CloudFormation pilha, não do seu servidor Chef Automate. O nome do servidor Chef Automate é o valor de ServerName em seu AWS CloudFormation modelo.

    • Substitua template pelo caminho do arquivo do modelo, e a extensão yaml or json por .yaml ou .json conforme apropriado.

    • Os valores de --parameters correspondem aos EngineAttributesda CreateServerAPI. Para o Chef, os atributos do mecanismo fornecido pelo usuário para criar um servidor são CHEF_AUTOMATE_PIVOTAL_KEY, uma chave pública RSA codificada em base64 gerada usando utilitários descritos em Pré-requisitos e CHEF_AUTOMATE_ADMIN_PASSWORD, uma senha criada por você que tem entre oito e 32 caracteres. Para obter mais informações sobre o CHEF_AUTOMATE_ADMIN_PASSWORD, consulte Crie um servidor Chef Automate usando o AWS CLI. Você pode fornecer um ponteiro para o arquivo PEM que contém a chave principal como o valor do parâmetro PivotalKey, conforme mostrado no exemplo. Se os valores para CHEF_AUTOMATE_ADMIN_PASSWORD e não CHEF_AUTOMATE_PIVOTAL_KEY estiverem especificados em seu modelo, você deverá fornecer os valores em seu AWS CLI comando.

    aws cloudformation create-stack --stack-name stack_name --template-body file://template.yaml or json --parameters ParameterKey=PivotalKey,ParameterValue="base64_encoded_RSA_public_key_value"

    Veja a seguir um exemplo que inclui amostras de valores para os atributos CHEF_AUTOMATE_ADMIN_PASSWORD e CHEF_AUTOMATE_PIVOTAL_KEY. Execute um comando semelhante se você não especificou valores para esses atributos em seu AWS CloudFormation modelo.

    aws cloudformation create-stack --stack-name "OpsWorksCMChefServerStack" --template-body file://opsworkscm-server.yaml --parameters ParameterKey=PivotalKey,ParameterValue="$(openssl rsa -in "pivotalKey.pem" -pubout)" ParameterKey=Password,ParameterValue="SuPer\$ecret890"
  4. Quando a criação da pilha estiver concluída, abra a página Propriedades do novo servidor no AWS OpsWorks for Chef Automate console e baixe um kit inicial. Ao fazer download de um novo starter kit, a senha de administrador do painel do Chef Automate é redefinida.

  5. Se o servidor usar um domínio personalizado, um certificado e uma chave privada, siga as etapas para configurar knife.rb no (Opcional) Configurar knife para trabalhar com um domínio personalizado e, depois, vá para a etapa 7.

    Se você não estiver usando um domínio personalizado, faça download do certificado da autoridade de certificação (CA) raiz no seguinte local do bucket do Amazon S3: https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-ca-2020-root.pem. Salve o arquivo do certificado em um local seguro, mas conveniente. Esse certificado é necessário para configurar knife.rb na próxima etapa.

  6. Para usar comandos knife no novo servidor, atualize as configurações do arquivo de configuração knife.rb do Chef. Um exemplo do arquivo knife.rb está incluso no starter kit. O exemplo a seguir mostra como configurar knife.rb em um servidor que não usa um domínio personalizado. Se você estiver usando um domínio personalizado, consulte (Opcional) Configurar knife para trabalhar com um domínio personalizado para obter instruções de configuração para knife.

    • Substitua ENDPOINT pelo valor do endpoint do servidor. Isso faz parte da saída da operação de criação da pilha. É possível obter o endpoint executando o comando a seguir.

      aws cloudformation describe-stacks --stack-name stack_name
    • Substitua key_pair_file.pem na configuração client_key pelo nome do arquivo PEM que contém o CHEF_AUTOMATE_PIVOTAL_KEY usado para criar o servidor.

      base_dir = File.join(File.dirname(File.expand_path(__FILE__)), '..') log_level :info log_location STDOUT node_name 'pivotal' client_key File.join(base_dir, '.chef', 'key_pair_file.pem') syntax_check_cache_path File.join(base_dir, '.chef', 'syntax_check_cache') cookbook_path [File.join(base_dir, 'cookbooks')] chef_server_url 'ENDPOINT/organizations/default' ssl_ca_file File.join(base_dir, '.chef', 'ca_certs', 'opsworks-cm-ca-2020-root.pem') trusted_certs_dir File.join(base_dir, '.chef', 'ca_certs')
  7. Quando o processo de criação do servidor for concluído, vá para Configurar o servidor do Chef usando o Starter Kit. Se a criação da pilha falhar, analise as mensagens de erro mostradas no console para ajudá-lo a resolver os problemas. Para obter mais informações sobre como solucionar erros em AWS CloudFormation pilhas, consulte Solução de problemas no Guia do AWS CloudFormation usuário.