Ao instalar o SaltStack Config, você executa um highstate de orquestração fornecido no instalador do SaltStack Config. O highstate é executado no seu mestre Salt e configura um ambiente de vários nós. Ele instala a arquitetura do SaltStack Config de núcleo nos três outros nós que hospedarão o PostgreSQL, o Redis e o nó RaaS.
O objetivo final da instalação é ter quatro nós, cada um com uma função de host diferente. Cada nó também é um subordinado do mestre Salt:
- Um nó de mestre Salt
- Um nó de banco de dados PostgreSQL
- Um nó de banco de dados Redis
- Um nó RaaS, também conhecido como nó do SaltStack Config
É especialmente importante seguir todas as etapas listadas em Instalando o Salt em seus nós. Em particular, você deve instale as dependências necessárias para o instalador do SaltStack Config em todos os quatro nós da instalação. Caso contrário, a instalação de vários nós falhará.
As dependências necessárias são:
- OpenSSL
- Pacotes adicionais para o Enterprise Linux (EPEL)
- Criptografia Python
- Biblioteca OpenSSL do Python
Alta availablilidade
É possível configurar vários mestres Salt ou vários nós RaaS. Também é possível executar o serviço do mestre Salt em um único nó e combinar dois ou mais dos outros serviços em um nó separado. As etapas para configurar esse tipo de arquitetura de sistema não são totalmente explicadas neste guia.
Requisitos de arquitetura personalizada ou de alta disponibilidade podem exigir serviços de consultoria. No entanto, antes de configurar vários nós do mesmo tipo, você começa normalmente com o cenário de instalação em vários nós e, em seguida, configura a arquitetura adicional.
Para obter mais informações sobre alta disponibilidade, consulte Dependências necessárias do SaltStack Config.
Registre os dados principais para os quatro nós
Antes de iniciar a instalação padrão, registre os dados-chave sobre cada um dos quatro nós envolvidos na instalação. Você insere esses dados em vários pontos durante o processo de instalação.
Registre os seguintes dados-chave sobre cada um dos quatro nós envolvidos na instalação:
- Os endereços IP ou nomes DNS
- Os IDs de subordinados
Certifique-se de indicar claramente qual endereço IP e ID de subordinado pertence a qual host (o nó do mestre Salt, o nó RaaS, o nó do banco de dados PostgreSQL e o nó do banco de dados Redis).
Como prática recomendada, verifique se os seus endereços IP ou nomes DNS estão corretos, pois endereços IP ou nomes DNS incorretos podem causar falha na instalação em vários nós.
Mantenha esses dados em um registro acessível para sua própria referência. Ao configurar a orquestração, você precisa inserir esses dados em várias configurações e variáveis nos arquivos de configuração. Por esse motivo, é útil manter esse registro em mãos durante toda a instalação.
Se você estiver em um ambiente virtualizado, preste atenção para especificar o endereço interno, e não o público.
Os hosts Redis e PostgreSQL precisam de endereços IP estáticos ou nomes DNS aos quais os arquivos de configuração fazem referência. Dependendo de como o nó RaaS for implantado, talvez ele também precise de um endereço IP estático ou de um nome DNS. Depender de endereços IP dinâmicos em configurações pode modificar e interromper seu ambiente.
Definindo um ID de subordinado personalizado (opcional)Um ID de subordinado é um nome exclusivo dado a cada subordinado que é gerenciado por um mestre Salt. Por padrão, o subordinado se identifica ao mestre Salt pelo nome de host do sistema. No entanto, você pode atribuir IDs personalizados que descrevem suas funções ou localizações na rede.
Se você optar por personalizar seus IDs de subordinado, tente manter o ID breve, mas descritiva de sua função. Por exemplo, você pode usar apache-server-1
para definir o nome de um dos seus servidores Web ou pode usar datacenter-3-rack-2
após sua localização em um centro de dados. O objetivo é tornar os nomes descritivos e úteis para referência futura.
Para declarar um ID de subordinado:
- No terminal do subordinado, navegue até o diretório que contém o arquivo
id.conf
do subordinado. Por padrão, a localização do diretório éetc/salt/minion.d/id.conf
. - Abra o arquivo
id.conf
em um editor. Altere a configuraçãoid
para seu ID de subordinado preferencial. Por exemplo:id: postgres-database-1
- Após a alteração de um ID de subordinado, as chaves do subordinado precisam ser aceitas (ou novamente aceitas) pelo mestre Salt. Para obter instruções específicas sobre como configurar as chaves, consulte Aceitar as chaves de subordinados no(s) mestre(s).
Copiar e editar os arquivos de estado principais
Durante essa tarefa de instalação, você copia os arquivos de orquestração fornecidos com o instalador do SaltStack Config para o nó do mestre Salt. Em seguida, edita esses arquivos para fazer referência aos três nós do RaaS, ao banco de dados Redis e ao banco de dados PostgreSQL.
Para copiar e editar os arquivos de configuração de orquestração:
- No mestre Salt, navegue até o diretório
sse-installer
. - Copie os arquivos de pilar e estado do diretório
sse_installer
para os diretóriospillar_roots
efile_roots
do subordinado usando os seguintes comandos:sudo mkdir /srv/salt sudo cp -r salt/sse /srv/salt/ sudo mkdir /srv/pillar sudo cp -r pillar/sse /srv/pillar/ sudo cp -r pillar/top.sls /srv/pillar/ sudo cp -r salt/top.sls /srv/salt/
Importante:Estas instruções fazem algumas suposições que podem não ser aplicáveis à sua estrutura de diretórios, especialmente se você tiver uma instalação do Salt existente. As instruções assumem o seguinte:
- Que o seu mestre Salt está usando a estrutura de diretórios padrão. Se a sua estrutura de diretórios tiver sido modificada, talvez seja necessário modificar essas instruções para a sua estrutura de diretórios personalizada.
- Que você ainda não tem uma pasta denominada
sse
na raiz do seu estado de configuração ou pilar. Se essa pasta existir, talvez seja necessário mesclar as duas pastas manualmente. - Que você ainda não tem um arquivo denominado
top.sls
no seu diretório de salt ou pilar. Se esse arquivo existir, talvez seja necessário mesclá-lo manualmente com o arquivo existente.
- No diretório
/srv/pillar/
, você agora tem um arquivo denominadotop.sls
que foi copiado dos arquivos de instalação na etapa anterior. Abra esse arquivo em um editor. - Edite esse arquivo para definir a lista de IDs de subordinados (não os endereços IP ou nomes DNS) do PostgreSQL, do Redis, do RaaS e do mestre Salt. Use os IDs que você registrou anteriormente.
Por exemplo:
{# Pillar Top File #} {# Define SSE Servers #} {% load_yaml as sse_servers %} - postgres-database-1 - redis-database-1 - saltstack-enterprise-api-server-1 - saltmaster-1 {% endload %} base: {# Assign Pillar Data to SSE Servers #} {% for server in sse_servers %} '{{ server }}': - sse {% endfor %}
- No diretório
/srv/salt/
, você agora tem um arquivo denominadotop.sls
que foi copiado na etapa 2. Abra esse arquivo em um editor e verifique se ele corresponde ao seguinte:base: {# Target SSE Servers, according to Pillar data #} # SSE PostgreSQL Server 'I@sse_pg_server:{{ grains.id }}': - sse.eapi_database # SSE Redis Server 'I@sse_redis_server:{{ grains.id }}': - sse.eapi_cache # SSE eAPI Servers 'I@sse_eapi_servers:{{ grains.id }}': - sse.eapi_service # SSE Salt Masters 'I@sse_salt_masters:{{ grains.id }}': - sse.eapi_plugin
Aplicar os highstates aos nós
- No mestre Salt, sincronize seus grains para confirmar que o mestre Salt tem os dados de grains necessários para cada subordinado. Essa etapa garante que os dados de pilares sejam gerados corretamente para a funcionalidade do SaltStack Config.
No comando que sincroniza os grãos, você pode direcionar todos os subordinados ou transmitir uma lista dos IDs de subordinados específicos para os seus nós (incluindo o próprio mestre Salt) entre parênteses. Por exemplo:
Direcionar todos os subordinados
sudo salt \* saltutil.refresh_grains
Direcionar uma lista de subordinados
sudo salt -L 'salt-master-1,postgres-database-1,redis-database-1,saltstack-enterprise-api-server-1' saltutil.refresh_grains
- Atualize e confirme que cada um dos subordinados recebeu os dados de pilares definidos no arquivo
sse_settings.yaml
e que eles são exibidos conforme o esperado.No comando que atualiza os dados de pilares, você pode direcionar todos os subordinados ou transmitir uma lista dos IDs de subordinados específicos para os seus nós (incluindo o próprio mestre Salt) entre parênteses. Por exemplo:
Direcionar todos os subordinados
sudo salt \* saltutil.refresh_pillar
Direcionar uma lista de subordinados
sudo salt -L 'salt-master-1,postgres-database-1,redis-database-1,saltstack-enterprise-api-server-1' saltutil.refresh_pillar
- Confirme se os dados de retorno do seu pilar estão corretos:
sudo salt \* pillar.items
Verifique se você vê os dados de pilares relacionados ao SaltStack Config.
Observação:Você também pode direcionar os dados de pilares de um subordinado específico para verificar se eles foram atualizados.
- Execute o comando que aplica o highstate de orquestração ao servidor PostgreSQL. Use o ID de subordinado que você registrou anteriormente para o servidor PostgreSQL.
Por exemplo:
sudo salt postgres-database-1 state.highstate
- Repita a etapa anterior para cada um dos seguintes servidores, substituindo o ID de subordinado para cada servidor:
- O nó Redis
- O nó RaaS
- O nó do mestre Salt
Observação:Durante a aplicação inicial do highstate ao mestre Salt, você pode ver a seguinte mensagem de erro:
Authenticationerroroccurred
. Esse erro é exibido porque o mestre Salt ainda não se autenticou no nó RaaS. Porém, o estado da instalação do Master Plugin reiniciará o serviço do mestre Salt, e o problema será resolvido automaticamente.
Se você encontrar outros erros ao executar os highstates, consulte Solução de problemas.