Como parte do processo pós-instalação, você precisa instalar, configurar e atualizar o Master Plugin. O Master Plugin permite que os seus mestres Salt se comuniquem com o Automation Config. O Master Plugin inclui uma variedade de configurações que você pode ajustar para melhorar o desempenho e que são particularmente úteis para ambientes grandes ou movimentados.

Normalmente, você instala o Master Plugin em cada mestre Salt no seu ambiente que se comunica com o Automation Config. Por exemplo, se você estiver usando uma configuração com mais de um mestre Salt (às vezes chamada de configuração de vários mestres), você deverá instalar o Master Plugin em cada mestre Salt.

Antes de começar

A instalação e a configuração do Master Plugin é uma etapa pós-instalação em uma série de várias etapas que devem ser seguidas em uma ordem específica. Primeiro, conclua um dos cenários de instalação e depois leia a página pós-instalação Instalar a chave de licença.

Se você estiver em um ambiente não isolado, as dependências serão instaladas automaticamente com o Master Plug-in. Para ambientes isolados, consulte o artigo da base de conhecimento Instalar o Salt Master Plugin em sistemas isolados.

Quando você precisa instalar o Master Plugin?

Você precisa instalar o Master Plugin em todos os mestres Salt após uma nova instalação do Automation Config. O Master Plugin não é necessário em mestres Salt que não precisam se comunicar com o Automation Config.

Se você usou o cenário de instalação Instalação do SaltStack Config em menos de 1000 nós, não precisa instalar o Master Plugin no nó em que instalou o Automation Config e sua arquitetura relacionada. O instalador instala automaticamente o Master Plugin no nó do mestre Salt. No entanto, o Master Plugin é instalado apenas no mestre Salt em que você executou o instalador. Se houver vários mestres, ainda precisará instalar o Master Plugin nesses outros mestres.

Se estiver instalando o Automation Config manualmente (não recomendado), você deverá concluir o seguinte antes de instalar o Master Plugin:

  • Instalar e configurar o banco de dados PostgreSQL
  • Instalar e configurar o banco de dados Redis
  • Ativar o SSL (opcional)
Importante: Com qualquer versão, é recomendável atualizar a configuração do Master Plugin gerando um arquivo de configuração padrão e depois aplicando todas as configurações que você deseja preservar da configuração existente. Por exemplo:
# sseapi-config --default >/tmp/raas.conf 
# cd /etc/salt/master.d 
# vim -d raas.conf /tmp/raas.conf 
...

Se você tiver instalado o Salt usando o onedir, o caminho para esse executável será /opt/saltstack/salt/extras-3.10/bin/sseapi-config.

Instalar o Master Plugin usando o espaço de trabalho Master Plugins

Observação: Este recurso oferece suporte ao Automation Config versões 8.11.2 ou posterior.
Observação: O mestre Salt deve ser executado como root.

Você pode baixar e instalar a versão mais recente do plug-in mestre na interface de usuário do Automation Config navegando até Administração > Master Plugins. Na guia Master Plugins, você pode baixar o plug-in ou baixar o cliente.

Depois de baixar o plug-in mestre, você deve Configurar o Master Plugin.

Instalar o Master Plugin usando a CLI

Para instalar o Master Plugin no mestre Salt:

A partir da versão 8.13.0, o Master Plugin inclui um mecanismo tgtmatch que agora descarrega o grupo de destino correspondente do servidor RaaS para os Mestres Salt. Recomenda-se ativar e configurar esse mecanismo de tgtmatch para tornar o grupo de destino correspondente mais responsivo, especialmente em ambientes com:

  • Um grande número de grupos de destino (100 ou mais)
  • Um grande número de subordinados (3000 ou mais)
  • Alterações frequentes em grãos de subordinados (diariamente ou mais frequentes)
  • Criação e exclusão frequentes de subordinados (diariamente ou mais frequentes)
Para configurar o RaaS para esperar que os dados correspondentes de destino sejam fornecidos pelos Mestres Salt, certifique-se de que a seguinte configuração esteja presente no arquivo de Configuração do RaaS (/etc/raas/raas):
target_groups_from_master_only: true
  1. Faça login no mestre Salt.
  2. Se necessário, baixe o wheel do Master Plugin no Customer Connect.

    O Master Plugin está incluído no arquivo .tar.gz do Instalador Automatizado. Depois de baixar e extrair o arquivo .tar.gz, você poderá encontrar o Master Plugin no diretório sse-installer/salt/sse/eapi_plugin/files.

  3. Faça upgrade do Master Plugin desinstalando e reinstalando manualmente o wheel do Python atualizado. Use os seguintes comandos de exemplo, substituindo o nome exato do arquivo wheel:
    Observação: O plug-in existente deve ser desinstalado para evitar várias instâncias de sseapi-config.
    pip3 uninstall SSEAPE-8.12.1.3-py3-none-any.whl
    mv /etc/salt/master.d/raas.conf /tmp
    salt-call pip.install SSEAPE-8.12.1.3-py3-none-any.whl
    cp /tmp/raas.conf /etc/salt/master.d/raas.conf
    systemctl restart salt-master

Configurar o Master Plugin

Para configurar o mestre Salt após a instalação do Master Plugin:

  1. Faça login no mestre Salt e verifique se o diretório /etc/salt/master.d existe. Crie-o se ele não existir.
  2. Gere as definições de configuração do mestre.
    Cuidado: Se quiser preservar as configurações ao atualizar sua instalação, faça um backup do arquivo de configuração do Master Plugin existente antes de executar essa etapa. Em seguida, copie as configurações relevantes da sua configuração existente para o arquivo recém-gerado.
    sudo sseapi-config --all > /etc/salt/master.d/raas.conf
    Importante: Se você tiver instalado o Salt usando o onedir, o caminho para esse executável será /opt/saltstack/salt/extras-3.10/bin/sseapi-config.
  3. Edite o arquivo raas.conf gerado e atualize os valores da seguinte maneira:
    Valor Descrição

    sseapi_ssl_validate_cert

    Valida o certificado usado pela API (RaaS). O padrão é True.

    Se estiver usando seus próprios certificados emitidos por uma CA, definir esse valor como True e defina as configurações sseapi_ssl_ca, sseapi_ssl_cert e sseapi_ssl_cert:.

    Caso contrário, defina como False para não validar o certificado.

    sseapi_ssl_validate_cert:False

    sseapi_server

    Endereço IP HTTP do seu nó RaaS, por exemplo, http://example.com, ou https://example.com, se o SSL estiver ativado.

    sseapi_command_age_limit

    Define a idade (em segundos) após a qual trabalhos antigos e potencialmente obsoletos são ignorados. Por exemplo, para ignorar trabalhos com mais de um dia, defina o valor como:

    sseapi_command_age_limit:86400

    Trabalhos ignorados continuam a existir no banco de dados e são exibidos com um status de Completed na interface de usuário do Automation Config.

    Alguns ambientes podem exigir que o mestre Salt fique offline por longos períodos e, quando ele voltar a ficar online, execute todos os trabalhos que foram enfileirados. Se isso se aplicar ao seu ambiente, defina o limite de idade como 0.

    sseapi_windows_minion_deploy_delay Define um atraso para permitir que todos os serviços do Windows necessários se tornem ativos. O valor predefinido é 180 segundos.
    sseapi_linux_minion_deploy_delay Define um atraso para permitir a ativação de todos os serviços do Linux necessários. O valor predefinido é 90 segundos.
    sseapi_local_cache
         load: 3600
         tgt: 86400
         pillar: 3600
         exprmatch: 86400
         tgtmatch: 86400

    Define o período de tempo em que determinados dados são armazenados em cache localmente em cada mestre salt. Os valores são em segundos. Os valores de exemplo são valores recomendados.

    • Payloads load- salt save_load()

    • Grupos de destino tgt- SSE

    • Dados de pilar pillar- SSE (criptografados)

    • Dados correspondentes à expressão de destino exprmatch- SSE

    • Dados correspondentes ao grupo de destino tgtmatch- SSE

  4. OPCIONAL: Essa etapa é necessária apenas para instalações manuais. Para verificar se você pode se conectar ao SSL antes de conectar o Master Plugin, edite o arquivo raas.conf gerado para atualizar os seguintes valores. Se você não atualizar esses valores, o Master Plugin usará o certificado gerado padrão.
    Valor Descrição
    sseapi_ssl_ca O caminho para um arquivo CA.
    sseapi_ssl_cert O caminho para o certificado. O valor padrão é /etc/pki/raas/certs/localhost.crt.
    sseapi_ssl_key O caminho para a chave privada do certificado. O valor padrão é /etc/pki/raas/certs/localhost.key.
    id Assinale essa linha como comentário adicionando # no início. Ela não é necessária.
  5. OPCIONAL: Atualize as configurações relacionadas ao desempenho. Para ambientes grandes ou movimentados, você pode melhorar o desempenho das comunicações entre o mestre Salt e o Automation Config ajustando as seguintes configurações.
    • Configure os mecanismos de plug-in mestre:

      Os mecanismos de plug-in mestre eventqueue e rpcqueue descarregam certas comunicações com o Automation Config de caminhos de código essenciais ao desempenho para processos dedicados. Enquanto os mecanismos estão esperando para se comunicar com o Automation Config, as payloads são armazenadas no sistema de arquivos local do mestre Salt para que os dados possam persistir entre as reinicializações do mestre Salt. O mecanismo tgtmatch move o cálculo de correspondências do grupo de destino de subordinados do servidor RaaS para os mestres salt.

      Para ativar os mecanismos, certifique-se de que as seguintes configurações estejam presentes no arquivo de configuração do Salt Master Plugin (raas.conf):

      engines: 
           - sseapi: {} 
           - eventqueue: {} 
           - rpcqueue: {} 
           - jobcompletion: {}      
           - tgtmatch: {}

      Para configurar o mecanismo eventqueue, verifique se as seguintes configurações estão presentes:

      sseapi_event_queue: 
        name: sseapi-events 
        strategy: always 
        push_interval: 5 
        batch_limit: 2000 
        age_limit: 86400 
        size_limit: 35000000 
        vacuum_interval: 86400 
        vacuum_limit: 350000 

      Os parâmetros da fila podem ser ajustados levando em consideração como eles funcionam juntos. Por exemplo, assumindo uma média de 400 eventos por segundo no barramento de eventos Salt, as configurações mostradas acima permitem a coleta de cerca de 24 horas de tráfego de eventos em fila no mestre Salt antes que os eventos mais antigos sejam descartados devido a limites de tamanho ou idade.

      Para configurar o mecanismo rpcqueue, verifique as seguintes configurações em raas.conf:

      sseapi_rpc_queue: 
        name: sseapi-rpc 
        strategy: always 
        push_interval: 5 
        batch_limit: 500 
        age_limit: 3600 
        size_limit: 360000 
        vacuum_interval: 86400 
        vacuum_limit: 100000 
      Para configurar o mecanismo tgtmatch, certifique-se de que essas configurações estejam presentes no arquivo de configuração do Master Plugin (/etc/salt/master.d/raas.conf)
      engines: 
          - sseapi: {} 
          - eventqueue: {} 
          - rpcqueue: {} 
          - jobcompletion: {}    
          - tgtmatch: {} 
      
      sseapi_local_cache:     
          load: 3600 
          tgt: 86400 
          pillar: 3600 
          exprmatch: 86400 
          tgtmatch: 86400 
      
      sseapi_tgt_match: 
          poll_interval: 60     
          workers: 0 
          nice: 19
      Observação: Para usar a correspondência de destinos nos mestres salt, a seguinte configuração config também deve estar presente na configuração do RaaS: target_groups_from_master_only: true.
    • Limitar tamanhos de payload de grãos de subordinados:
      sseapi_max_minion_grains_payload: 2000
    • Ative a opção para ignorar trabalhos anteriores a um horário definido (em segundos). Por exemplo, use 86400 para configurá-lo de forma a ignorar trabalhos com mais de um dia. Quando definido como 0, esse recurso será desativado:
      sseapi_command_age_limit:0
      Observação:

      Durante atualizações do sistema, ativar essa configuração é útil para evitar que comandos antigos armazenados no banco de dados sejam executados inesperadamente.

    Juntos, o enfileiramento de eventos no Salt e os mecanismos de enfileiramento, a correspondência de destinos do mestre salt, o limite de tamanho da payload de grãos e o limite de idade de comandos no Salt Master Plugin aumentam o throughput e reduzem a latência das comunicações entre o mestre Salt e o Automation Config nos caminhos de código mais sensíveis ao desempenho.

  6. Reinicie o serviço do mestre.
    sudo systemctl restart salt-master
  7. OPCIONAL: Talvez você queira executar um trabalho de teste para garantir que o Master Plugin está agora permitindo a comunicação entre o mestre e o nó RaaS.
    salt -v '*' test.ping

Mesmo que nenhuma atividade seja exibido, por exemplo, se nenhum subordinado estiver conectado, isso é provavelmente um sinal de uma configuração correta.

Referência de definições de configuração

Essas configurações no arquivo de configuração permitem que cada mestre Salt se conecte à API (RaaS). Você pode encontrar essas configurações no arquivo de configuração /etc/salt/master.d/raas.conf.

Importante:

As configurações do mestre Salt no arquivo raas.conf têm precedência sobre as configurações existentes em /etc/salt/master. Se você tiver personalizado as configurações fileserver_backend ou ext_pillar em /etc/salt/master, deverá mesclar manualmente essas configurações para que elas apareçam em apenas um arquivo. Opcionalmente, é possível reordenar os back-ends para modificar a precedência.

A tabela a seguir explica as definições de configuração gerais:

Opção Descrição
id ID mestre Salt, gerado automaticamente se não estiver definido
sseapi_server URL do servidor SSEAPI, por exemplo https://sse.example.com:443
engines Mecanismos Salt para serem ativados. Recomendados sseapi, eventqueue, rpcqueue e jobcompletion.
master_job_cache sseapi para usar o cache de trabalhos mestre do Automation Config
event_return Retornador de eventos Salt. Recomendado: sseapi para usar o retornador de eventos do Automation Config
ext_pillar Origens de pilar externas. Recomendada: sseapi
fileserver_backend Back-ends do servidor de arquivos. Recomendados: sseapi e roots
sseapi_update_interval Com que frequência atualizar a partir do servidor de arquivos (segundos, padrão: 60)
sseapi_poll_interval Com que frequência sondar o Automation Config em busca de novos dados (segundos, padrão: 30)
sseapi_jce_poll_interval adiciona um atraso entre i iterações no mecanismo jobcompletion, para que no máximo 5760 comandos find_job sejam enviados por dia pelo mestre Salt (segundos, padrão 15)
sseapi_timeout Tempo limite para chamadas de API (RaaS) (segundos, padrão: 200)
sseapi_key_rotation Intervalo de alternância de chaves de autenticação do Automation Config para o mestre Salt (segundos, padrão: 86.400)
sseapi_cache_pillar Se dados de pilares devem ou não ser armazenados em cache no Automation Config (True ou False, padrão: False)
sseapi_cluster_id (opcional) Nome do cluster de mestres Salt para agrupar mestres Salt em clusters no Automation Config
sseapi_failover_master Se este mestre Salt é um mestre Salt de failover (True ou False, padrão: False)
sseapi_command_age_limit Se os comandos de API (RaaS) mais antigos que um tempo definido devem ou não ser ignorados (segundos, 0 para desativar, padrão: 0)

A tabela a seguir explica as configurações de SSL:

Opção Descrição
sseapi_ssl_key Caminho para a chave privada do certificado
sseapi_ssl_cert Caminho para o certificado
sseapi_ssl_validate_cert Se o certificado SSL do Automation Config deve ou não ser validado (True ou False, padrão: True)

A tabela a seguir explica as configurações do Mecanismo de Fila de Eventos que aparecem sob o cabeçalho sseapi_event_queue:

Opção Descrição
name Nome da fila de eventos (padrão sseapi-events, não há necessidade de alterar isso)
strategy Quando enfileirar eventos (always, on_failure ou never, padrão: never)
push_interval Com que frequência enviar eventos ao Automation Config (segundos, padrão: 5)
batch_limit Número máximo de eventos a serem enviados ao Automation Config por intervalo (padrão: 2.000)
age_limit Idade máxima dos eventos em fila, descartar os eventos mais antigos (segundos, padrão: 86.400)
size_limit Tamanho máximo da fila, descartar os eventos mais antigos (eventos, padrão: 35.000.000)
vacuum_interval Com que frequência aspirar o banco de dados da fila (segundos, padrão: 86.400)
vacuum_limit Tamanho máximo da fila ao aspirar o banco de dados da fila (eventos, padrão: 350.000)

A tabela a seguir explica as configurações do Mecanismo de Fila de RPC que aparecem sob o cabeçalho sseapi_rpc_queue:

Opção Descrição
name Nome da fila de eventos (padrão sseapi-rpc, não há necessidade de alterar isso)
strategy Quando enfileirar eventos (always, on_failure ou never, padrão: never)
push_interval Com que frequência enviar chamadas ao Automation Config (segundos, padrão: 5)
batch_limit Número máximo de chamadas a serem enviadas ao Automation Config por intervalo (padrão: 500)
age_limit Idade máxima das chamadas em fila, descartar as entradas mais antigas (segundos, padrão: 3.600)
size_limit Tamanho máximo da fila, descartar as entradas mais antigas (eventos, padrão: 360.000)
vacuum_interval Com que frequência aspirar o banco de dados da fila (segundos, padrão: 86.400)
vacuum_limit Tamanho máximo da fila ao aspirar o banco de dados da fila (entradas, padrão: 100.000)
A seguinte tabela explica as configurações do mecanismo de correspondência de destino, que aparecem sob o título sseapi_tgt_match:
Opção Descrição
poll_interval Com que frequência, em segundos, o mecanismo deve solicitar informações atualizadas do grupo de destino do RaaS (padrão 60)
trabalhadores Quantos processos de trabalhador devem ser criados para fazer cálculos de correspondência de grupos de destino. O valor padrão (0) cria um processo por núcleo de CPU até um limite de 8.
bom A gentileza de prioridade dos trabalhadores correspondentes ao grupo de destino. O padrão (19) dá aos trabalhadores a prioridade de agendamento mais baixa para evitar interferências em outros processos em execução no salt-master.

A tabela a seguir explica as configurações de Caminho. Após a geração da configuração inicial, tenha cuidado ao alternar essas configurações. Os módulos serão copiados para esses diretórios do processo de instalação. No entanto, adicionar caminhos extras não terá efeitos adversos.

Opção Descrição
beacons_dirs Caminho(s) de Módulos Externos para beacons
engines_dirs Caminho(s) de Módulos Externos para engines
fileserver_dirs Caminho(s) de Módulos Externos para fileserver
pillar_dirs Caminho(s) de Módulos Externos para pillar
returner_dirs Caminho(s) de Módulos Externos para returner
roster_dirs Caminho(s) de Módulos Externos para roster
runner_dirs Caminho(s) de Módulos Externos para runner
module_dirs Caminho(s) de Módulos Externos para Salt
proxy_dirs Caminho(s) de Módulos Externos para proxy
metaproxy_dirs Caminho(s) de Módulos Externos para metaproxy
states_dirs Caminho(s) de Módulos Externos para states

O que fazer em seguida

Depois de instalar e configurar o Master Plugin, você deve concluir etapas adicionais pós-instalação. A próxima etapa é configurar o nó RaaS. Para continuar o processo pós-instalação, consulte Verificar o arquivo de configuração do RaaS.