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 SaltStack 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 SaltStack 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.
pip3 install pyjwt==2.3.0
Quando você precisa instalar o Master Plug-in?
Você precisa instalar o Master Plugin em todos os mestres Salt após uma nova instalação do SaltStack Config. O Master Plugin não é necessário em mestres Salt que não precisam se comunicar com o SaltStack 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 SaltStack 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 SaltStack 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)
Instalar o Master Plugin usando o espaço de trabalho Master Plugins
Você pode baixar e instalar a versão mais recente do plug-in mestre na interface de usuário do SaltStack Config navegando até . 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:
- Faça login no mestre Salt.
- 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
. - Instale o Master Plugin instalando manualmente o wheel do Python atualizado. Use os seguintes comandos de exemplo, substituindo o nome exato do arquivo wheel:
RHEL/CentOS
sudo pip3 install SSEAPE-file-name.whl --prefix /usr
Ubuntu
sudo pip3 install SSEAPE-file-name.whl
Observação: Alguns usuários talvez precisem alterar a sintaxe parapip3.6
oupip36
em seus sistemas operacionais.
Configurar o Master Plugin
Para configurar o mestre Salt após a instalação do Master Plugin:
- Faça login no mestre Salt e verifique se o diretório
/etc/salt/master.d
existe. Crie-o se ele não existir. - 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
Se a execução desse comando causar um erro, talvez ele esteja relacionado ao método usado durante a instalação inicial do Salt. Se você instalou o Salt por meio do instalador do SaltStack Config, sua instalação provavelmente inclui um pacote offline, chamado Salt Crystal, que requer instruções de upgrade especiais. Para obter mais informações, consulte a página de Solução de problemas.
- Edite o arquivo
raas.conf
gerado e atualize os valores da seguinte maneira para validar o certificado usado pela API (RaaS) e definir seu endereço IP.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çõessseapi_ssl_ca
,sseapi_ssl_cert
esseapi_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
, ouhttps://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 SaltStack 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
Define o período de tempo em que determinados dados são armazenados em cache localmente em cada mestre salt. O valor padrão é 300 segundos (5 minutos). - 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. - 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 SaltStack Config ajustando as seguintes configurações.
- Ative o enfileiramento de eventos (disponível no salt 2019.2.2 e posterior). Eventos podem ser enfileirados no mestre Salt e enviados ao retornador de eventos em lotes usando uma única transação para vários eventos. Por padrão, esse mecanismo de enfileiramento está desativado. Para ativar o enfileiramento de eventos, defina o seguinte no arquivo de configuração do Salt Master Plugin:
event_return_queue:2500 event_return_queue_max_seconds:5
O tamanho máximo sugerido da fila de eventos é 2500, conforme indicado. Quando estiver cheia, a fila será descarregada, encaminhando eventos ao retornador de eventos. Um valor mais baixo pode ser uma opção melhor para ambientes menores ou menos movimentados.
Em alguns casos, o barramento de eventos Salt pode não se ocupar o suficiente para fazer com que a fila atinja regularmente seu tamanho máximo. A configuração
event_return_queue_max_seconds
fará com que a fila seja descarregada quando seu evento mais antigo for mais antigo do que o valor configurado, independentemente de quantos eventos estejam na fila. - Ativar e configurar os mecanismos
eventqueue
erpcqueue
:Esses mecanismos descarregam certas comunicações com o SaltStack Config em caminhos de código essenciais ao desempenho para processos dedicados. Enquanto os mecanismos estão esperando para se comunicar com o SaltStack 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.
Para ativar os mecanismos, remova as marcas de comentário das seguintes configurações no arquivo de configuração do Salt Master Plugin (
raas.conf
):engines: - sseapi: {} - eventqueue: {} - rpcqueue: {} - jobcompletion: {} - keyauth: {}
Para configurar o mecanismo
eventqueue
, remova as marcas de comentário e atualize as seguintes configurações: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 forward: []
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
, remova as marcas de comentário e atualize as seguintes configurações: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
- Ativar cache de carregamento:
sseapi_local_cache: load:3600
Observação: Se o mecanismorpcqueue
estiver ativado, o cache de carregamento também deverá ser ativado para que o mestre Salt manipule os trabalhos corretamente. - 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 como0
, esse recurso será desativado:sseapi_command_age_limit:0
Observação:Isso é útil durante um upgrade, 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, o cache de carregamento, o limite de tamanho da payload de grãos e o limite de idade de comandos no Salt Master Plugin aumentam o rendimento e reduzem a latência das comunicações entre o mestre Salt e o SaltStack Config nos caminhos de código mais sensíveis ao desempenho.
- Ative o enfileiramento de eventos (disponível no salt 2019.2.2 e posterior). Eventos podem ser enfileirados no mestre Salt e enviados ao retornador de eventos em lotes usando uma única transação para vários eventos. Por padrão, esse mecanismo de enfileiramento está desativado. Para ativar o enfileiramento de eventos, defina o seguinte no arquivo de configuração do Salt Master Plugin:
- Reinicie o serviço do mestre.
sudo systemctl restart salt-master
- 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
.
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 ativar. Recomendados: sseapi , eventqueue , rpcqueue , jobcompletion e keyauth . |
master_job_cache |
sseapi para usar o cache de trabalhos mestre do SaltStack Config |
event_return |
Retornador de eventos Salt. Recomendado: sseapi para usar o retornador de eventos do SaltStack 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 SaltStack 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_pubkey_path |
Caminho para o arquivo de chave pública para autenticar o mestre Salt no SaltStack Config |
sseapi_key_rotation |
Intervalo de alternância de chaves de autenticação do SaltStack 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 SaltStack Config (True ou False, padrão: False) |
sseapi_cluster_id |
(opcional) Nome do cluster de mestres Salt para agrupar mestres Salt em clusters no SaltStack 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 SaltStack 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 SaltStack Config (segundos, padrão: 5) |
batch_limit |
Número máximo de eventos a serem enviados ao SaltStack 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) |
forward |
Retornadores Salt adicionais aos quais enviar eventos ao descarregar a fila (padrão: nenhum) O item de configuração sseapi_event_queue: # ...other queue settings... forward: - rawfile_json # rawfile_json returner configuration rawfile_json.filename: /var/log/salt/events.json |
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 SaltStack Config (segundos, padrão: 5) |
batch_limit |
Número máximo de chamadas a serem enviadas ao SaltStack 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 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.