Citrix DaaS™

Permissões, recomendações e requisitos

Provisionar máquinas dinamicamente

O Autoscale™ oferece a capacidade de criar e excluir máquinas dinamicamente. Você pode aproveitar essa capacidade usando um script PowerShell. O script ajuda a escalar dinamicamente o número de máquinas no grupo de entrega para cima ou para baixo, com base nas condições de carga atuais.

  • O script oferece os seguintes benefícios (e mais):

  • Redução de custos de armazenamento. Diferente do Autoscale, que ajuda a reduzir seus custos de computação, o script oferece uma solução mais econômica para provisionar máquinas.

  • Gerenciamento eficaz de alterações de carga. O script ajuda a lidar com as alterações de carga, escalando automaticamente o número de máquinas para cima ou para baixo com base na carga atual do grupo de entrega.

Baixe o script

O script PowerShell está disponível em https://github.com/citrix/Powershell-Scripts/tree/master/XAXD/AutoscaleMcs.

  • Como o script funciona

Importante:

  • Você não pode especificar um catálogo de máquinas em mais de um grupo de entrega a ser gerenciado pelo script. Em outras palavras, se vários grupos de entrega compartilharem o mesmo catálogo de máquinas, o script não funcionará com nenhum desses grupos de entrega.
  • Você não pode executar o script simultaneamente para o mesmo grupo de entrega a partir de vários locais.

O script funciona no nível do grupo de entrega. Ele mede a carga (em termos de índice de carga) e, em seguida, determina se deve criar ou excluir máquinas.

As máquinas criadas por meio deste script são marcadas de forma exclusiva (através do parâmetro ScriptTag) para que possam ser identificadas posteriormente. A criação ou exclusão de máquinas é baseada em:

  • Carga percentual máxima de um grupo de entrega. Especifica o nível máximo no qual as máquinas devem ser criadas para que o Autoscale lide com cargas extras. Quando esse limite é excedido, as máquinas são criadas em lotes para garantir que a carga atual diminua para ou abaixo do limite.

  • Carga percentual mínima de um grupo de entrega. Especifica o nível mínimo no qual as máquinas criadas por meio deste script que não têm sessões ativas devem ser excluídas. Quando esse limite é excedido, as máquinas criadas por meio deste script que não têm sessões ativas são excluídas.

Este script destina-se a monitorar um grupo de entrega e a criar ou excluir máquinas quando o critério de acionamento é atendido. Ele é executado por chamada. Isso significa que você precisa executar o script regularmente para que ele funcione conforme o esperado. Recomendamos que você execute o script em um intervalo mínimo de cinco minutos. Isso melhora a capacidade de resposta geral.

O script depende dos seguintes parâmetros para funcionar:

  • | Parameter | Type | Default value | Description | |——————–|———————————————-|–|–|
  • DeliveryGroupName String X Nome do grupo de entrega a ser monitorado para determinar a carga atual. Você pode fornecer uma lista de nomes separados por ponto e vírgula. Por exemplo: Invoke-AutoscaleMachineCreation.ps1 -DeliveryGroupName 'dg1;dg2;dg3' -XdProfileName profile.
    XdProfileName String X Nome do perfil a ser usado para autenticação em servidores remotos. Para obter detalhes sobre a autenticação em servidores remotos usando este parâmetro, consulte API de autenticação.
  • HighWatermark Integer 80 Carga percentual máxima (em termos de índice de carga) na qual as máquinas devem ser criadas para que o Autoscale lide com cargas extras.
    LowWatermark Integer 15 Carga percentual mínima (em termos de índice de carga) na qual as máquinas criadas por meio deste script que não têm sessões ativas devem ser excluídas.
    MachineCatalogName String X Nome do catálogo de máquinas onde as máquinas devem ser criadas.
  • MaximumCreatedMachines Integer -1 Número máximo de máquinas que podem ser criadas em um grupo de entrega especificado. Se o valor for igual ou inferior a 0, o script não processará este parâmetro.
    • ScriptTag String AutoscaledScripted Tag que se aplica às máquinas criadas por meio do script.
    • EventLogSource String X Nome da origem que aparece no Visualizador de Eventos do Windows.
    • Observação:

    • Um “X” indica que nenhum valor padrão é especificado para esse parâmetro.

Por padrão, o script exige todos os parâmetros (exceto o parâmetro ScriptTag) na primeira vez que é executado. Nas execuções subsequentes, apenas os parâmetros DeliveryGroupName e XdProfileName são necessários. Opcionalmente, você pode optar por atualizar as cargas percentuais mínima e máxima.

  • Observe que você deve especificar um único grupo de entrega na primeira vez que executar o script. Por exemplo, o script não funciona se você usar o seguinte comando PowerShell para especificar dois grupos de entrega na primeira vez que executar o script:

  • Invoke-AutoscaleMachineCreations.ps1 -DeliveryGroupName 'dg1;dg2' -XdProfileName profile -LowWatermark 20 -HighWatermark 70 -MachineCatalogName 'cat1'\

  • Em vez disso, primeiro especifique um único grupo de entrega (neste exemplo, dg1) usando o seguinte comando:

  • Invoke-AutoscaleMachineCreations.ps1 -DeliveryGroupName 'dg1' -XdProfileName profile -LowWatermark 20 -HighWatermark 70 -MachineCatalogName 'cat1'\

  • Em seguida, use o seguinte comando para executar o script para o segundo grupo de entrega (neste exemplo, dg2):

  • Invoke-AutoscaleMachineCreations.ps1 -DeliveryGroupName 'dg1;dg2' -XdProfileName profile

Pré-requisitos

Para executar o script, certifique-se de que estes pré-requisitos sejam atendidos:

  • A máquina reside no mesmo domínio onde as máquinas estão sendo criadas.
  • O SDK do PowerShell Remoto está instalado nessa máquina. Para obter mais informações sobre o SDK do PowerShell Remoto, consulte SDKs e APIs.
  • Outros pré-requisitos:
    • Um grupo de entrega para monitorar
    • Um catálogo de máquinas criado por meio do Machine Creation Servicesâ„¢ (MCS) que tenha um esquema de provisionamento (modelo) associado
    • Um pool de identidades associado ao esquema de provisionamento
    • Uma origem de log de eventos a ser criada para que o script possa gravar informações no Log de Eventos do Windows
    • Um cliente seguro que permite autenticar em servidores remotos

Permissões, recomendações e avisos

-  Ao executar o script, tenha o seguinte em mente:
  • Para autenticar em servidores remotos usando o parâmetro XdProfileName, você precisa definir um perfil de autenticação usando um cliente seguro de acesso à API, criado no console do Citrix Cloud. Para obter detalhes, consulte API de Autenticação.

    • Você deve ter permissões para criar e excluir contas de máquina no Active Directory.
  • Recomendamos que você automatize o script do PowerShell com o Agendador de Tarefas do Windows. Para obter detalhes, consulte Criar uma tarefa automatizada usando o Agendador de Tarefas do Windows.

  • Se você quiser que o script grave informações (por exemplo, falhas e ações) no Log de Eventos do Windows, primeiro você precisa especificar um nome de origem usando o cmdlet New-EventLog. Por exemplo, New-EventLog -LogName Application –Source <sourceName>. Em seguida, você pode visualizar os eventos no painel “Aplicativo” do Visualizador de Eventos do Windows.

  • Se ocorrerem erros durante a execução do script, execute o script manualmente e, em seguida, solucione os problemas realizando verificações de script.

API de Autenticação

Antes de executar o script, você precisa definir um perfil de autenticação usando um cliente seguro de acesso à API. Você deve criar um cliente seguro usando a mesma conta sob a qual o script será executado.

O cliente seguro deve ter as seguintes permissões:

  • Criar e excluir máquinas usando o MCS.
  • Editar catálogos de máquinas (para adicionar e remover máquinas).
  • Editar grupos de entrega (para adicionar e remover máquinas).

Ao criar um cliente seguro, certifique-se de que sua conta tenha as permissões acima, pois o cliente seguro herda automaticamente as permissões de sua conta atual.

Para criar um cliente seguro, conclua estas etapas:

  1. Entre no Citrix Cloudâ„¢ e, em seguida, navegue até “Gerenciamento de Identidade e Acesso > Acesso à API”.

  2. Digite o nome do seu cliente seguro e, em seguida, clique em “Criar Cliente”.

Para autenticar em servidores remotos, use o comando do PowerShell Set-XDCredentials. Por exemplo:

  • Set-XDCredentials -APIKey <key_id> -CustomerId <customer_id> -SecretKey <secret_key> -StoreAs <name specified by the XdProfileName parameter>

Criar uma tarefa automatizada usando o Agendador de Tarefas do Windows

Você pode automatizar o script do PowerShell com o Agendador de Tarefas do Windows. Isso permite que o script seja executado automaticamente em determinados intervalos ou quando certas condições são atendidas. Para executar este script com o Agendador de Tarefas do Windows, certifique-se de selecionar “Não iniciar uma nova instância” na guia “Criar Tarefa > Configurações”. Isso impede que o Agendador de Tarefas do Windows execute uma nova instância do script se o script já estiver em execução.

Exemplo de execução de script

Veja abaixo um exemplo de execução do script. Observe que o arquivo de script é invocado várias vezes. Neste exemplo, para simular a carga, uma sessão é iniciada e depois encerrada.

Exemplo de Execução de Script

Lista de verificação de solução de problemas para o script

O script grava informações (por exemplo, erros e ações) no Log de Eventos do Windows. As informações ajudam você a solucionar problemas que você encontra ao executar o script. Pode ser útil ter a seguinte lista de verificação de solução de problemas em mente:

  • Falha na comunicação com servidores remotos. Ações possíveis:
    • Verifique sua conexão com o servidor.
    • Verifique se a chave de API que você usa é válida.
  • Falha ao criar máquinas. Ações possíveis:
    • Verifique se a conta de usuário que executa o script tem permissões suficientes para criar contas de usuário no domínio.
    • Verifique se o usuário que criou a chave de API tem permissões suficientes para usar o MCS para provisionar máquinas.
    • Verifique a validade do catálogo de máquinas (ou seja, se sua imagem ainda existe e está em bom estado).
  • Falha ao adicionar máquinas a um catálogo de máquinas ou a um grupo de entrega. Ação possível:
    • Verifique se o usuário que criou a chave de API tem permissões suficientes para adicionar e remover máquinas de catálogos de máquinas e grupos de entrega.
Permissões, recomendações e requisitos