Execute scripts como administrador para configurar trabalhadores - Nuvem de prazos

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

Execute scripts como administrador para configurar trabalhadores

Os scripts personalizados de configuração do host de frota permitem que você execute tarefas administrativas, como instalação de software, em seus funcionários de frota gerenciados por serviços. Esses scripts são executados com privilégios elevados, oferecendo a flexibilidade de configurar seus trabalhadores para o seu sistema.

O Deadline Cloud executa o script depois que o trabalhador entra no STARTING estado e antes de executar qualquer tarefa.

Importante

O script é executado com permissões elevadas sudo nos Linux sistemas e “Administrador” nos Windows sistemas. É sua responsabilidade garantir que o script não apresente nenhum problema de segurança.

Ao usar um script de administração, você é responsável por monitorar a integridade da sua frota.

Os usos comuns do script incluem:

  • Instalação de software que requer acesso de administrador

  • Instalação de Docker contêineres

Você pode criar e atualizar um script de configuração do host usando o console ou usando AWS CLI o.

Console
  1. Na página de detalhes da frota, escolha a guia Configurações.

  2. No campo Script, insira o script a ser executado com permissões elevadas. Você pode escolher Importar para carregar um script da sua estação de trabalho.

  3. Defina um período de tempo limite em segundos para executar o script. O padrão é 300 segundos (5 minutos).

  4. Escolha Salvar alterações para salvar o script.

Create with CLI

Use o AWS CLI comando a seguir para criar uma frota com um script de configuração do host. Substitua o placeholder texto por suas informações.

aws deadline-internal create-fleet \ --farm-id farm-12345 \ --display-name "fleet-name" \ --max-worker-count 1 \ --configuration '{ "serviceManagedEc2": { "instanceCapabilities": { "vCpuCount": {"min": 2}, "memoryMiB": {"min": 4096}, "osFamily": "linux", "cpuArchitectureType": "x86_64" }, "instanceMarketOptions": {"type":"spot"} } }' \ --role-arn arn:aws:iam::111122223333:role/role-name \ --host-configuration '{ "scriptBody": "script body", "scriptTimeoutSeconds": timeout value}'
Update with CLI

Use o AWS CLI comando a seguir para atualizar o script de configuração do host de uma frota. Substitua o placeholder texto por suas informações.

aws deadline update-fleet \ --farm-id farm-12345 \ --fleet-id fleet-455678 \ --host-configuration '{ "scriptBody": "script body", "scriptTimeoutSeconds": timeout value}'

Os scripts a seguir demonstram:

  • As variáveis de ambiente disponíveis para o script

  • Essas AWS credenciais estão funcionando no shell

  • Que o script está sendo executado em um shell elevado

Linux

Use o script a seguir para mostrar que um script está sendo executado com root privilégios:

# Print environment variables set # Check AWS Credentials aws sts get-caller-identity
Windows

Use o PowerShell script a seguir para mostrar que um script está sendo executado com privilégios de administrador:

Get-ChildItem env: | ForEach-Object { "$($_.Name)=$($_.Value)" } aws sts get-caller-identity function Test-AdminPrivileges { $currentUser = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent()) $isAdmin = $currentUser.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) return $isAdmin } if (Test-AdminPrivileges) { Write-Host "The current PowerShell session is elevated (running as Administrator)." } else { Write-Host "The current PowerShell session is not elevated (not running as Administrator)." } exit 0

Solução de problemas de scripts de configuração do host

Quando você executa o script de configuração do host:

  • Sobre o sucesso: o trabalhador executa o trabalho

  • Em caso de falha (código de saída diferente de zero ou falha):

    • O trabalhador fecha

    A frota lança automaticamente um novo trabalhador usando o script de configuração de host mais recente

Para monitorar o script:

  1. Abra a página da frota no console do Deadline Cloud.

  2. Escolha Exibir trabalhadores para abrir o monitor do Deadline Cloud.

  3. Visualize o status do trabalhador na página do monitor.

Notas importantes:

  • Os trabalhadores que foram desligados devido a um erro não estão disponíveis na lista de trabalhadores no monitor. Use CloudWatch Registros para visualizar os registros do trabalhador no seguinte grupo de registros:

    /aws/deadline/farm-XXXXX/fleet-YYYYY

    Dentro desse grupo de registros há um fluxo de

    worker-ZZZZZ
  • CloudWatch O Logs retém os registros do trabalhador de acordo com o período de retenção configurado.

Monitorando a execução do script de configuração do host

Com scripts administrativos para configurar trabalhadores, você pode assumir o controle total de um funcionário do Deadline Cloud. Você pode instalar qualquer pacote de software, reconfigurar os parâmetros do sistema operacional ou montar sistemas de arquivos compartilhados. Com esse recurso avançado e a capacidade do Deadline Cloud de escalar para milhares de trabalhadores, agora você pode monitorar quando os scripts de configuração são executados com sucesso ou falham. As causas da falha podem incluir erros de script, comportamento instável ou outras situações desconhecidas.

Recomendamos as seguintes soluções para monitorar a execução do script de configuração do host.

CloudWatch Monitoramento de registros

Todos os registros de configuração do host da frota são transmitidos para o grupo de CloudWatch registros da frota e, especificamente, para o fluxo de CloudWatch registros de um trabalhador. Por exemplo, /aws/deadline/farm-123456789012/fleet-777788889999 é o grupo de registros para fazenda123456789012, frota777788889999.

Cada trabalhador provisiona um fluxo de registros dedicado, por exemploworker-123456789012. Os registros de configuração do host incluem banners de registro, como Running Host Configuration Script e Finished running Host Configuration Script, código de saída: 0. O código de saída do script está incluído no banner finalizado e pode ser consultado usando CloudWatch ferramentas.

CloudWatch Informações sobre registros

CloudWatch O Logs Insights oferece recursos avançados para analisar informações de registro. Por exemplo, a seguinte consulta do Log Insights analisa o código de saída da configuração do host, classificado por hora:

fields @timestamp, @message, @logStream, @log | filter @message like /Finished running Host Configuration Script/ | parse @message /exit code: (?<exit_code>\d+)/ | display @timestamp, exit_code | sort @timestamp desc

Para obter mais informações sobre o CloudWatch Logs Insights, consulte Análise de dados de log com o CloudWatch Logs Insights no Guia do usuário do Amazon CloudWatch Logs.

Registro estruturado do agente de trabalho

O agente de trabalho do Deadline Cloud publica registros JSON estruturados no. CloudWatch O agente do trabalhador oferece uma ampla variedade de registros estruturados para analisar a saúde do trabalhador. Para obter mais informações, consulte o login do agente Deadline Cloud Worker GitHub.

Os atributos dos registros estruturados são descompactados em campos no Log Insights. Você pode usar esse CloudWatch recurso para contar e analisar as falhas de inicialização da configuração do host. Por exemplo, uma consulta de contagem e compartimento pode ser usada para determinar com que frequência as falhas ocorrem:

fields @timestamp, @message, @logStream, @log | sort @timestamp desc | filter message like /Worker Agent host configuration failed with exit code/ | stats count(*) by exit_code, bin(1h)

CloudWatch filtros métricos para métricas e alarmes

Você pode configurar filtros de CloudWatch métricas para gerar CloudWatch métricas a partir de registros. Isso permite criar alarmes e painéis para monitorar a execução do script de configuração do host.

Para criar um filtro de métricas
  1. Abra o CloudWatch console.

  2. No painel de navegação, escolha Registros e, em seguida, Grupos de registros.

  3. Selecione o grupo de registros da sua frota.

  4. Escolha Criar filtro de métrica.

  5. Defina seu padrão de filtro usando uma das seguintes opções:

    • Para métricas de sucesso:

      {$.message = "*Worker Agent host configuration succeeded.*"}
    • Para métricas de falha:

      {$.exit_code != 0 && $.message = "*Worker Agent host configuration failed with exit code*"}
  6. Escolha Avançar para criar uma métrica com os seguintes valores:

    • Namespace métrico: Seu namespace métrico (por exemplo,) MyDeadlineFarm

    • Nome da métrica: o nome da métrica solicitada (por exemplo,host_config_failure)

    • Valor métrico: 1 (cada instância é uma contagem de 1)

    • Valor padrão: Deixe em branco

    • Unidade: Count

Depois de criar filtros de métricas, você pode configurar CloudWatch alarmes padrão para agir em taxas elevadas de falha na configuração do host ou adicionar as métricas a um CloudWatch painel para day-to-day operações e monitoramento.

Para obter mais detalhes, consulte Sintaxe de filtros e padrões no Guia do usuário do Amazon CloudWatch Logs.