È possibile aggiornare Automation Config alla versione stabile più recente da una versione precedente.

Procedure consigliate durante l'aggiornamento

Durante la pianificazione dell'aggiornamento, seguire queste linee guida:

  • Non eseguire l'aggiornamento tramite il programma di installazione o le istruzioni di installazione manuale.Se si sta aggiornando l'installazione di Automation Config, fare riferimento alle seguenti istruzioni di aggiornamento.
  • Per risultati ottimali, passare da una versione principale a un'altra. È consigliabile eseguire sempre l'aggiornamento dalla versione principale più recente di Automation Config alla nuova versione. Se è installata una versione precedente, eseguire l'aggiornamento in modo incrementale da una versione a quella successiva.
  • Eseguire il backup dei dati. Per evitare la perdita dei dati, eseguirne il backup.
  • Eseguire gli aggiornamenti durante le ore in cui l'attività di rete è minore. Gli aggiornamenti del database richiedono la reindicizzazione dei dati. A seconda della complessità dei dati, un aggiornamento del database potrebbe richiedere diverse ore. Per evitare interruzioni del servizio, è consigliabile aggiornare il database durante le ore lavorative meno intense o eseguire il trimming del database prima di un aggiornamento.
  • Verificare se nel database sono presenti comandi esistenti da archiviare. In alcuni casi, il database PostgreSQL archivia i vecchi comandi che non sono stati eseguiti. Questi comandi potrebbero essere eseguiti durante il processo di aggiornamento, quando si riavvia il plug-in Master. Per evitare che ciò accada, controllare se nel database sono memorizzati vecchi comandi ed escludere i processi precedenti a una data definita.
  • Verificare l'aggiornamento prima della distribuzione. Se possibile, provare a eseguire una prova generale in un ambiente di test per avere un'idea del tempo necessario per l'aggiornamento.
  • Leggere innanzitutto tutta la guida. È inoltre consigliabile leggere una volta l'intera guida prima di implementare un aggiornamento in modo da avere un'idea delle attività necessarie e se richiedono una pianificazione da parte del team o se le parti interessate devono essere informate delle modifiche in sospeso.

Aggiornamento dalle versioni precedenti

È consigliabile eseguire sempre l'aggiornamento dalla versione principale più recente di Automation Config alla nuova versione. Se si esegue l'aggiornamento da una versione precedente alla versione più recente, è possibile ottenere risultati migliori eseguendo l'aggiornamento in modo incrementale da una versione principale a quella successiva.

Per istruzioni sull'aggiornamento dalle versioni precedenti di Automation Config, consultare le istruzioni di aggiornamento specifiche della versione da cui si esegue l'aggiornamento. Le istruzioni di aggiornamento per le versioni precedenti sono incluse nel PDF della guida all'installazione per la versione successiva. Ad esempio, se è necessario eseguire l'aggiornamento dalla versione 5.5 alla versione 6.0, consultare le istruzioni di aggiornamento nel PDF dell'installazione della versione 6.0.

Per Automation Config versione 8.4 e successive, utilizzare il selettore di versione nella parte superiore di questa pagina per selezionare la guida all'aggiornamento corretta per la versione del prodotto in uso. Per le versioni 8.3 e precedenti, utilizzare le guide PDF indicate nella tabella seguente:

Versione Guida all'installazione e all'aggiornamento (PDF)
8.3 Guida all'installazione e all'aggiornamento della versione 8.3
6.4 Guida all'installazione e all'aggiornamento della versione 6.4
6.3 Guida all'installazione e all'aggiornamento della versione 6.3
6.2 Guida all'installazione e all'aggiornamento della versione 6.2
6.1 Guida all'installazione e all'aggiornamento della versione 6.1
6.0.1 Guida all'installazione e all'aggiornamento della versione 6.0.1
6.0 Guida all'installazione e all'aggiornamento della versione 6.0

Come aggiornare Automation Config

Per aggiornare Automation Config, completare le seguenti attività in questo ordine:
  • Eseguire il backup dei dati, inclusi alcuni file e directory cruciali per l'installazione specifica di Automation Config
  • Aggiornare PostgreSQL (facoltativo, ma consigliato)
  • Aggiornare l'infrastruttura Salt (facoltativo, ma consigliato)
  • Scaricare i file dell'aggiornamento
  • Aggiornamento del nodo RaaS
  • Aggiornare tutti i Salt Master utilizzando il plug-in Master

Per ulteriori informazioni sull'aggiornamento di Config tramite Aria Suite Lifecycle, vedere Aggiornamento di Automation Config nella documentazione di LCM.

Backup dei file e delle directory di Automation Config

I file e le directory seguenti contengono le configurazioni di Automation Config personalizzate e devono essere sottoposti a backup prima dell'aggiornamento:

  1. Nel nodo RaaS, eseguire il backup di queste directory complete:
    • /etc/raas/raas
    • /etc/raas/raas.secconf
    • /var/log/raas
    • /etc/raas/pki/
    Nota:

    Poiché la directory pki contiene file nascosti, assicurarsi di eseguire il backup dell'intera directory. Il backup dei file di registro nella directory /var/log/raas è facoltativo. Durante il processo di aggiornamento, è possibile cancellare i file di registro per poter fornire un file di registro pulito se dovesse essere necessario risolvere problemi.

  2. In ogni Salt Master, eseguire il backup dei file /etc/salt/master.d/raas.conf e /etc/salt/master.d/eAPIMasterPaths.conf.
    Nota:

    In base alla modalità di installazione iniziale di Automation Config, i percorsi del Salt Master eAPI potrebbero invece trovarsi nel file /etc/salt/master.d/raas.conf.

Backup dello schema del database

Quando si aggiorna il nodo RaaS, lo schema del database viene aggiornato. Per tale motivo, assicurarsi di creare un backup del database prima dell'aggiornamento.

Per eseguire il backup del database, è innanzitutto necessario cercare il nome del database PostgreSQL e quindi copiare i contenuti:

  1. Nel server PostgreSQL, eseguire il backup di questi file:
    • postgresql.conf
    • pg_hba.conf
  2. Accedere come utente postgres utilizzando il comando seguente:
    sudo su - postgres
  3. Recuperare il nome del database utilizzando i comandi seguenti per accedere a PostgreSQL e quindi elencare i database:
    psql
    \l
  4. Per uscire da PostgreSQL ed effettuare la disconnessione come utente postgres, premere Ctrl+D ed eseguire il comando seguente:
    exit
  5. Copiare i contenuti del database in un file. Il comando seguente fornisce un esempio:
    pg_dump -U salteapi raas_db_name > postgres_raas_backup_$(date +%Y-%m-%d).sql

Aggiornamento del database PostgreSQL

Automation Config richiede un database PostgreSQL 9.6, ma è consigliabile utilizzare PostgreSQL 13.7. La versione di PostgreSQL consigliata è inclusa nel programma di installazione di Automation Config.

Non è necessario eseguire l'aggiornamento alla versione più recente di PostgreSQL. Tuttavia, l'aggiornamento di PostgreSQL può migliorare le prestazioni. Per istruzioni sull'aggiornamento alla versione più recente di PostgreSQL, vedere Aggiornamento di PostgreSQL.

Aggiornamento del database Redis

Automation Config richiede un database Redis 5.x, ma è consigliabile utilizzare Redis 6.2.7. La versione di Redis consigliata è inclusa nel programma di installazione di Automation Config.

Non è necessario eseguire l'aggiornamento alla versione più recente di Redis 5.x. Tuttavia, l'aggiornamento di Redis può migliorare le prestazioni. Per istruzioni sull'aggiornamento di Redis, vedere Amministrazione di Redis.

Aggiornamento di Salt

Quando si aggiorna Salt, è necessario aggiornare prima i Master. I minion in esecuzione con versioni di Salt più recenti rispetto ai rispettivi Master potrebbero non funzionare come previsto perché il minion può includere modifiche non ancora disponibili nel Master. Inoltre, quando possibile, la compatibilità con le versioni precedenti tra i nuovi Master e i minion precedenti viene mantenuta. In genere, la sola eccezione a questo criterio si ha nel caso di una vulnerabilità della sicurezza.

Per ottenere prestazioni ottimali, assicurarsi che tutti i componenti di Salt nell'infrastruttura siano in esecuzione nella versione principale più recente di Salt.

A partire dalla versione Salt 3006, il Progetto Salt utilizza il sistema di creazione di pacchetti onedir. Onedir, acronimo di "one directory", ossia "una sola directory", contiene tutti gli eseguibili di cui Salt ha bisogno, tra cui Python e altre dipendenze di Salt. Onedir permette di utilizzare Salt senza bisogno di configurazioni specifiche.
Importante: Il Progetto Salt consiglia vivamente di eseguire l'aggiornamento a onedir per continuare a ricevere aggiornamenti della versione di Salt. A partire dalla versione 3006 di Salt, saranno disponibili solo i pacchetti onedir per gli aggiornamenti. Per ulteriori informazioni sulle versioni di Salt e onedir, vedere l' articolo 89728 della Knowledge Base.
Nota: L'utilizzo del pacchetto del programma di installazione di Salt Crystal è stato ritirato. Per le installazioni future, è consigliabile utilizzare il pacchetto del programma di installazione onedir.

Obbligatorio: per le distribuzioni brownfield/aggiornamento, a partire da Salt 3006, Salt Master è configurato per l'esecuzione come utente "salt" anziché come "utente root" tradizionale. Di conseguenza, questa situazione può causare errori di autorizzazione con i workflow correlati a RaaS, ad esempio la distribuzione di minion e gli aggiornamenti del plug-in Master RaaS.

Per risolvere questa problematica, modificare il file /etc/salt/master.d/raas.conf al fine di modificare l'utente come root: user: root.

Per le nuove distribuzioni greenfield, il comando sseapi-config configura il plug-in Master e genera il file raas.conf con il valore di configurazione user: root corretto. Non è necessario eseguire alcuna operazione utente.

Aggiornamento del nodo RaaS

Dopo aver effettuato l'aggiornamento alla versione più recente di PostgreSQL, Redis e Salt, è possibile aggiornare il nodo RaaS dalla versione precedente alla versione più recente.

Nota: Gli aggiornamenti del database richiedono la reindicizzazione dei dati. Se i dati sono complessi, l'aggiornamento del database potrebbe richiedere diverse ore.
Importante:

Prima di aggiornare il nodo RaaS, è necessario eseguire il backup dei dati di sistema per evitare la perdita dei dati. Per preservare la configurazione, salvare le eventuali modifiche apportate al file system, ai dati del pillar e ai processi predefiniti come nuovi file o processi. È inoltre consigliabile registrare o creare una copia di tutte le assegnazioni di destinazione dei pillar esistenti, poiché vengono rimosse durante il processo di aggiornamento.

Per aggiornare il nodo RaaS:

  1. Scaricare i file dell'aggiornamento da Customer Connect.
  2. Arrestare il servizio RaaS con il comando seguente:
    sudo systemctl stop raas
  3. Rimuovere i file di registro nella directory /var/log/raas. Se si cancellano i dati dei file di registro, è possibile ottenere un file di registro pulito da utilizzare nel caso sia necessario risolvere problemi.
  4. Rimuovere la versione attualmente installata dell'API (RaaS) con il comando seguente:
    sudo yum remove raas
  5. Aggiornare il nodo RaaS installando l'RPM più recente. Utilizzare il seguente comando di esempio, specificando il nome di file esatto dell'RPM:
    sudo yum install raas-rpm-file-name.rpm
  6. IMPORTANTE: ripristinare il backup dei seguenti file:
    • /etc/raas/raas
    • /etc/raas/raas.secconf
    • /etc/raas/pki/
  7. Aggiornare le autorizzazioni per l'utente raas con il comando seguente:
    sudo chown -R raas:raas /etc/pki/raas/certs
  8. FACOLTATIVO: se si dispone di una licenza di Automation for Secure Hosts e si desidera aggiungere la libreria di conformità, aggiungere la nuova sezione seguente al file /etc/raas/raas:
    sec:
      ingest_override: true
      locke_dir: locke
      post_ingest_cleanup: true
      username: 'secops'
      content_url: 'https://enterprise.saltstack.com/secops_downloads'
      download_enabled: true
      download_frequency: 86400
      stats_snapshot_interval: 3600
      compile_stats_interval: 10
      ingest_on_boot: True
      content_lock_timeout: 60
      content_lock_block_timeout: 120
    Nota:

    Questo passaggio è facoltativo e si applica solo alle organizzazioni che dispongono di una licenza di Automation for Secure Hosts valida. Questo modulo del componente aggiuntivo è disponibile per Automation Config versione 6.0 e successive. Le opzioni di configurazione precedenti nel file di configurazione /etc/raas/raas sono specifiche di questi moduli del componente aggiuntivo.

  9. FACOLTATIVO: se si dispone di una licenza di Automation for Secure Hosts e si desidera aggiungere la libreria di vulnerabilità, aggiungere una nuova sezione al file /etc/raas/raas:
    vman:
      vman_dir: vman
      download_enabled: true
      download_frequency: 86400
      username: vman
      content_url: 'https://enterprise.saltstack.com/vman_downloads'
      ingest_on_boot: true
      compile_stats_interval: 60
      stats_snapshot_interval: 3600
      old_policy_file_lifespan: 2
      delete_old_policy_files_interval: 86400
      tenable_asset_import_enabled: True
      tenable_asset_import_grains: ['fqdn', 'ipv4', 'ipv6', 'hostname', 'mac_address', 'netbios_name',
                                    'bios_uuid', 'manufacturer_tpm_id', 'ssh_fingerprint',
                                    'mcafee_epo_guid', 'mcafee_epo_agent_guid', 'symantec_ep_hardware_key',
                                    'qualys_asset_id', 'qualys_host_id', 'servicenow_sys_id', 'gcp_project_id',
                                    'gcp_zone', 'gcp_instance_id', 'azure_vm_id', 'azure_resource_id',
                                    'aws_availability_zone', 'aws_ec2_instance_ami_id',
                                    'aws_ec2_instance_group_name', 'aws_ec2_instance_state_name',
                                    'aws_ec2_instance_type', 'aws_ec2_name', 'aws_ec2_product_code',
                                    'aws_owner_id', 'aws_region', 'aws_subnet_id', 'aws_vpc_id',
                                    'installed_software', 'bigfix_asset_id'
                                    ]
    Nota:

    Questo passaggio è facoltativo e si applica solo alle organizzazioni che dispongono di una licenza di Automation for Secure Hosts valida. Questo modulo del componente aggiuntivo è disponibile per Automation Config versione 6.0 e successive. Le opzioni di configurazione precedenti nel file di configurazione /etc/raas/raas sono specifiche di questi moduli del componente aggiuntivo.

  10. Al momento, RaaS include un problema noto relativo ai processi obsoleti. Quando eseguono l'aggiornamento, alcuni utenti potrebbero notare una coda di processi obsoleti bloccati nello stato In sospeso. L'aggiornamento del nodo RaaS può causare l'esecuzione di questi processi a meno che non vengano cancellati prima.

    Per evitare che ciò si verifichi, verificare innanzitutto se nel database sono archiviati comandi precedenti. Nel nodo PostgreSQL, verificare la presenza di eventuali processi in sospeso utilizzando il comando seguente:

    select count(1) from commands where state='new';

    Il risultato è il numero di processi in sospeso. Se il numero di processi è 0, continuare il processo di aggiornamento.

  11. Aggiornare il database del servizio RaaS utilizzando il comando seguente:
    sudo su - raas
    raas upgrade
    Nota:

    A seconda delle dimensioni del database, l'aggiornamento può richiedere da alcuni minuti a più di un'ora. Se si verificano errori, controllare il file di registro /var/log/raas/raas per maggiori informazioni.

  12. Dopo l'aggiornamento, uscire dalla sessione per l'utente raas con il comando seguente:
    exit
  13. Avviare il servizio RaaS con il comando seguente:
    sudo systemctl enable raas
    sudo systemctl start raas

Aggiornare il plug-in Master mediante l'interfaccia utente Automation Config

Nota: Questa funzionalità è supportata per Automation Config versione 8.11.2 o successiva. Per le versioni precedenti, è innanzitutto necessario aggiornare il plug-in Master alla versione 8.11.2 o successiva utilizzando la CLI.
Nota: Il Salt Master deve essere eseguito come root.

Automation Config aggiorna automaticamente il plug-in Master alla versione più recente senza alcuna azione richiesta dall'utente.

Tuttavia, è anche possibile aggiornare il plug-in Master dall'interfaccia utente di Automation Config. Per aggiornare il plug-in Master da Automation Config selezionare Amministrazione e quindi fare clic su Plug-in Master. La scheda Plug-in Master mostra la versione del plug-in e l'ambiente Automation Config in uso, assieme a un elenco degli ID dei plug-in Master. Nella scheda Plug-in Master, è possibile selezionare i plug-in Master che si desidera aggiornare e quindi fare clic su Aggiorna.

Aggiornare il plug-in Master mediante la CLI

Dopo aver completato l'aggiornamento del nodo RaaS, è possibile aggiornare tutti i Salt Master che utilizzano il plug-in Master per connettersi a Automation Config.

È consigliabile aggiornare la configurazione del plug-in Master generando un file di configurazione predefinito e applicando tutte le impostazioni da conservare dalla configurazione esistente. Ad esempio:
# sseapi-config --default >/tmp/raas.conf 
# cd /etc/salt/master.d 
# vim -d raas.conf /tmp/raas.conf
Importante: Se Salt è stato installato utilizzando onedir, il percorso di questo file eseguibile è /opt/salt/salt/extras-3.10/bin/sseapi-config.

A partire dalla versione 8.13.0, il plug-in Master include un motore tgtmatch che ora effettua l'offload del gruppo di destinazione corrispondente dal server RaaS ai Salt Master. È consigliabile abilitare e configurare tale motore tgtmatch per rendere il gruppo di destinazione corrispondente più reattivo, specialmente negli ambienti con:

  • Un numero elevato di gruppi di destinazione (100 o più)
  • Un numero elevato di minion (3000 o più)
  • Modifiche frequenti ai grain dei minion (giornaliere o più frequenti)
  • Creazione ed eliminazione frequenti di minion (giornaliere o più frequenti)
Per configurare il motore tgtmatch, assicurarsi che queste impostazioni siano presenti nel file di configurazione del plug-in Master (/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
Per configurare RaaS in modo che preveda che i dati corrispondenti della destinazione vengano forniti dai Salt Master, assicurarsi che nel file di configurazione di RaaS (/etc/raas/raas/raas) sia presente l'impostazione seguente:
target_groups_from_master_only: true
Nota:

Prima di aggiornare i Salt Master, assicurarsi che l'applicazione pip3 sia installata nei Salt Master. Se si esegue l'aggiornamento dalla versione più recente del plug-in Master, questa applicazione è già installata.

Per aggiornare il plug-in Master in un Salt Master:

  1. Arrestare il servizio salt-master con il comando seguente:
    sudo systemctl stop salt-master
  2. Controllare quale versione di Python è in esecuzione nel Salt Master. Se è Python 3.6 o versione successiva, non è necessaria alcuna modifica. In caso contrario, eliminare la versione precedente del modulo SSEAPE. (SSEAPE è il plug-in di Automation Config per il Salt Master). Ad esempio:

    RHEL/CentOS

    sudo rm -rf /usr/lib/python3.6/site-packages/SSEAPE*

    Ubuntu

    sudo rm /usr/lib/python3.6/dist-packages/SSEAPE*
  3. Aggiornare il plug-in Master disinstallando e reinstallando manualmente il file wheel di Python aggiornato. Utilizzare i seguenti comandi di esempio, specificando il nome esatto del file wheel:
    Nota: Per impedire più istanze di sseapi-config, è necessario disinstallare il plug-in esistente.
    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
  4. Aggiornare i percorsi del modulo API (RaaS) modificando il file /etc/salt/master.d/eAPIMasterPaths.conf per fare riferimento ai percorsi dei vari moduli. Ad esempio, potrebbe essere necessario sostituire tutti i riferimenti python2.7 in questo file con python3.6.
    Nota:

    In base alla modalità di installazione iniziale di Automation Config, i percorsi del Salt Master eAPI potrebbero invece trovarsi nel file /etc/salt/master.d/raas.conf.

  5. Controllare la sezione engines in /etc/salt/master.d/raas.conf per verificare che corrisponda a quanto segue:
    engines:
      - sseapi: {}
      - eventqueue: {}
      - rpcqueue: {}
      - jobcompletion: {}
    Nota:

    Se si verifica un problema, è possibile che sia necessario ripristinare i backup dei file /etc/salt/master.d/raas.conf e /etc/salt/master.d/eAPIMasterPaths.conf.

  6. Se si utilizza l'autenticazione con chiave salt-master (scelta consigliata), assicurarsi che sseapi_username e sseapi_password siano commentati in /etc/salt/master.d/raas.conf.
    #sseapi_username:
    #sseapi_password:
  7. Verificare che le voci master_job_cache e event_return selezionate siano impostate su sseapi. il returner pgjsonb non è più disponibile.
  8. Avviare il servizio salt-master con il comando seguente:
    sudo systemctl start salt-master
  9. Verificare che il Salt Master sia in esecuzione come utente "root" e non come utente "salt". In caso contrario, modificare il file /etc/salt/master.d/raas.conf al fine di modificare l'utente come root: user: root.

A questo punto, il processo di aggiornamento è stato completato. Se si verificano altri errori, fare riferimento alla sezione Risoluzione dei problemi.