Quando si installa SaltStack Config, viene eseguito un highstate dell'orchestrazione specificato nel programma di installazione di SaltStack Config. L'highstate viene eseguito nel Salt Master e configura un ambiente con più nodi. Installa l'architettura principale di SaltStack Config negli altri tre nodi che ospiteranno i nodi PostgreSQL, Redis e RaaS.

L'obiettivo finale dell'installazione è disporre di quattro nodi, ciascuno con una funzione host diversa. Ogni nodo è anche un minion per il Salt Master:

  • Un nodo Salt Master
  • Un nodo di database PostgreSQL
  • Un nodo di database Redis
  • Un nodo RaaS, noto anche come nodo SaltStack Config
Attenzione:

È particolarmente importante seguire tutti i passaggi elencati in Installazione di Salt nei nodi di rete. In particolare, è necessario installare le dipendenze richieste per il programma di installazione di SaltStack Config in tutti e quattro i nodi dell'installazione. In caso contrario, l'installazione con più nodi non riesce.

Le dipendenze necessarie sono:

  • OpenSSL
  • Pacchetti aggiuntivi per Enterprise Linux (EPEL)
  • Crittografia Python
  • Libreria Python OpenSSL

Alta disponibilità

È possibile configurare più Salt Master o più nodi RaaS. È inoltre possibile eseguire il servizio Salt Master in un nodo e combinare due o più degli altri servizi in un nodo separato. I passaggi per configurare questo tipo di architettura di sistema non sono spiegati completamente in questa guida.

Per l'alta disponibilità o i requisiti dell'architettura personalizzata, potrebbero essere necessari servizi di consulenza. Tuttavia, prima di configurare più nodi dello stesso tipo, si inizia in genere con lo scenario di installazione con più nodi e quindi si configura l'architettura aggiuntiva in un secondo momento.

Per ulteriori informazioni sull'alta disponibilità, consultare Dipendenze di SaltStack Config richieste.

Registrare i dati della chiave per i quattro nodi

Prima di avviare l'installazione standard, registrare i dati delle chiavi relativi a ciascuno dei quattro nodi coinvolti nell'installazione. Questi dati vengono immessi in diversi punti durante il processo di installazione.

Registrare i seguenti dati delle chiavi relativi a ciascuno dei quattro nodi coinvolti nell'installazione:

  • Gli indirizzi IP o i nomi DNS
  • Gli ID minion

Assicurarsi di indicare chiaramente l'indirizzo IP e l'ID minion che appartengono a ciascun host (il nodo Salt Master, il nodo RaaS, il nodo del database PostgreSQL e il nodo del database Redis).

È consigliabile verificare che gli indirizzi IP o i nomi DNS siano corretti perché indirizzi IP o nomi DNS errati possono causare errori durante un'installazione con più nodi.

Conservare questi dati in una posizione facilmente accessibile come riferimento. Quando si configura l'orchestrazione, è necessario immettere questi dati in diverse impostazioni e variabili nei file di configurazione. Per tale motivo, è utile tenere questi dati a portata di mano durante l'installazione.

Nota:

Se si è in un ambiente virtualizzato, assicurarsi di specificare l'indirizzo interno anziché l'indirizzo pubblico.

Indirizzi IP statici e dinamici

Gli host Redis e PostgreSQL richiedono indirizzi IP statici o nomi DNS a cui fanno riferimento i file di configurazione. In base a come viene distribuito, anche il nodo RaaS potrebbe richiedere un indirizzo IP statico o un nome DNS. Se si utilizzano indirizzi IP dinamici nelle configurazioni, è possibile che l'ambiente venga modificato o interrotto.

Impostazione di un ID minion personalizzato (facoltativo)

Un ID minion è un nome univoco fornito a ciascun minion che viene gestito da un Salt Master. Per impostazione predefinita, il minion si identifica nel Salt Master in base al nome host del sistema. Tuttavia, è possibile assegnare ID personalizzati che descrivano la loro funzione o posizione all'interno della rete.

Se si decide di personalizzare gli ID minion, cercare di mantenere l'ID breve facendo in modo che descriva comunque il suo ruolo. Ad esempio, è possibile utilizzare apache-server-1 per assegnare un nome a uno dei server Web oppure datacenter-3-rack-2 in base alla sua posizione in un data center. L'obiettivo è rendere i nomi descrittivi e utili per riferimento futuro.

Per dichiarare un ID minion:

  1. Nel terminale del minion, passare alla directory che contiene il file id.conf del minion. Per impostazione predefinita, la posizione della directory è etc/salt/minion.d/id.conf.
  2. Aprire il file id.conf in un editor. Sostituire l'impostazione id con l'ID minion preferito. Ad esempio:
    id: postgres-database-1
  3. Dopo aver modificato un ID minion, le chiavi del minion devono essere accettate (o accettate nuovamente) dal Salt Master. Per istruzioni specifiche sulla configurazione delle chiavi, vedere Accettazione delle chiavi dei minion nei Master.

Copia e modifica dei file di stato top

Durante questa attività di installazione si copiano nel nodo Salt Master i file di orchestrazione forniti con il programma di installazione di SaltStack Config. Successivamente, si modificano i file in modo che facciano riferimento ai tre nodi per RaaS, il database Redis e il database PostgreSQL.

Per copiare e modificare i file di configurazione dell'orchestrazione:

  1. Nel Salt Master, passare alla directory sse-installer.
  2. Copiare i file del pillar e di stato dalla directory sse_installer in pillar_roots e file_roots del minion utilizzando i comandi seguenti:
    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:

    Queste istruzioni si basano su alcuni presupposti che potrebbero non essere veri nella struttura della directory effettiva, specialmente se è già presente un'installazione di Salt. Le istruzioni presuppongono:

    • Che il Salt Master utilizzi la struttura di directory predefinita. Se la struttura della directory è stata modificata, potrebbe essere necessario modificare queste istruzioni per la struttura della directory personalizzata.
    • Che non si disponga già di una cartella denominata sse nella root di stato del pillar o della configurazione. Se questa cartella esiste, potrebbe essere necessario unirle manualmente.
    • Che non si disponga già di un file denominato top.sls nella directory del pillar o Salt. Se questo file esiste, potrebbe essere necessario unirlo manualmente al file esistente.
  3. A questo punto, nella directory /srv/pillar/ è presente un file denominato top.sls copiato dai file di installazione nel passaggio precedente. Aprire questo file in un editor.
  4. Modificare il file per definire l'elenco di ID minion (non gli indirizzi IP o i nomi DNS) per PostgreSQL, Redis, RaaS e Salt Master. Utilizzare gli ID registrati in precedenza.

    Ad esempio:

    {# 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 %}
  5. Nella directory /srv/salt/, è ora presente un file denominato top.sls copiato nel passaggio 2. Aprire questo file in un editor e verificare che corrisponda al seguente:
    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
    

Applicazione degli highstate ai nodi

  1. Nel Salt Master, sincronizzare i grain per verificare che il Salt Master disponga dei dati dei grain necessari per ciascun minion. Questo passaggio garantisce che i dati del pillar vengano generati correttamente per la funzionalità SaltStack Config.

    Nel comando che sincronizza i grani, è possibile specificare come destinazione tutti i minion oppure passare un elenco di ID minion specifici per i nodi (incluso il Salt Master stesso) tra parentesi. Ad esempio:

    Specificare come destinazione tutti i minion

    sudo salt \* saltutil.refresh_grains

    Specificare un elenco di minion

    sudo salt -L 'salt-master-1,postgres-database-1,redis-database-1,saltstack-enterprise-api-server-1' saltutil.refresh_grains
  2. Aggiornare e verificare che ciascuno dei minion abbia ricevuto i dati del pillar definiti nel file sse_settings.yaml e che venga visualizzato come previsto.

    Nel comando che aggiorna i dati del pillar, è possibile specificare come destinazione tutti i minion oppure passare un elenco di ID minion specifici per i nodi (incluso il Salt Master stesso) tra parentesi. Ad esempio:

    Specificare come destinazione tutti i minion

    sudo salt \* saltutil.refresh_pillar

    Specificare un elenco di minion

    sudo salt -L 'salt-master-1,postgres-database-1,redis-database-1,saltstack-enterprise-api-server-1' saltutil.refresh_pillar
  3. Verificare che i dati restituiti per il pillar siano corretti:
    sudo salt \* pillar.items

    Verificare che vengano visualizzati i dati del pillar relativi a SaltStack Config.

    Nota:

    È inoltre possibile specificare come destinazione i dati del pillar di un minion specifico per verificare che i dati del pillar siano stati aggiornati.

  4. Eseguire il comando che applica l'highstate di orchestrazione al server PostgreSQL. Utilizzare l'ID minion registrato in precedenza per il server PostgreSQL.

    Ad esempio:

    sudo salt postgres-database-1 state.highstate
  5. Ripetere il passaggio precedente per ciascuno dei seguenti server, sostituendo l'ID minion per ogni server:
    • Nodo Redis
    • Nodo RaaS
    • Nodo Salt Master
    Nota:

    Durante l'applicazione iniziale dell'highstate al Salt Master, è possibile che venga visualizzato il seguente messaggio di errore: Authenticationerroroccurred. Questo messaggio di errore viene visualizzato perché il Salt Master non ha ancora eseguito l'autenticazione nel nodo RaaS, ma lo stato di installazione del plug-in Master riavvierà il servizio Salt Master e il problema verrà risolto automaticamente.

Se si verificano altri errori durante l'esecuzione degli highstate, consultare Risoluzione dei problemi.