Eseguire cfservd nel server master utilizzando le opzioni --no-fork (-F) e --verbose (-v). Ciò fornirà delle informazioni utili per l’eventuale risoluzione dei problemi
Potrebbero essere visibili degli errori di autenticazione. Quando si esegue l’operazione "cfagent -K", saranno visualizzati i messaggi seguenti:
cfengine:: BAD: key could not be accepted on trust
cfengine:: Authentication dialogue with server_master.
abc.xyz.com failed
cfengine:client:/var/opt/dsau/cfengine/inputs/update.conf:194: Warning:
actionsequence is empty
cfengine:client:/var/opt/dsau/cfengine/inputs/update.conf:194: Warning: perhaps
cfagent.conf/update.conf have not yet been set up? |
Questo problema è molto probabilmente dovuto alla configurazione di protezione di cfengine. Per risolvere il problema, sarà necessario scambiare le chiavi pubbliche per cfengine tra il client amministrato ed il server master. La procedura csync_wizard (vedere csync_wizard(8)) automatizza questa operazione al momento dell’aggiunta del client. Per le istruzioni su come distribuire manualmente le chiavi nei client amministrati, vedere la sezione “Configurazione di un client amministrato di sincronizzazione”.
Errori “Warning: actionsequence is empty”
Utilizzare l’opzione cfagent -v per ottenere maggiori informazioni. Una causa possibile di questo messaggio è che update.conf non è stato aggiunto alla directory /var/opt/dsau/cfengine/inputs del client.
Errori di sintassi dovuti a spazi mancanti o superflui
#cfagent -K
cfengine::/var/opt/dsau/cfengine/inputs/update.conf:39: syntax error
cfengine::/var/opt/dsau/cfengine/inputs/update.conf:
Execution terminated after parsing due to errors in program |
Nella prima riga dell' esempio precedente, cfengine segnala un errore di sintassi alla riga 39 del file update.conf. L'errore segnalato può essere dovuto ad uno spazio nella riga 38, la riga precedente del file update.conf.
Controllare gli spazi in eccesso nei file di configurazione. Come regola generale, l’uso degli spazi può migliorare la leggibilità. Un errore comune è l’omissione di spazi all’interno delle parentesi. Ad esempio, le funzioni non dovrebbero contenere spazi tra il nome della funzione e la parentesi aperta, ma la funzione stessa richiede uno spazio iniziale ed uno finale all’interno delle parentesi. L’esempio seguente mostra l’utilizzo degli spazi iniziale e finale necessari per la funzione ExecResult.
control:
nome_variabile = ( ExecResult(/bin/ls -l) ) |
Connessione impossibile a cfengine client o master.
cfrun(0): .......... [ Hailing host1 ] ..........
cfrun(0): .......... [ Hailing host2 ] ..........
cfrun:host2: Couldn’t open a socket
cfrun:host2: socket: Connection refused |
Controllare che il daemon cfservd nell’host2 sia configurato ed in esecuzione.
Nel caso che non sia in esecuzione, utilizzare /sbin/init.d/cfservd start per avviare cfservd.
Messaggi “Can’t stat”
Quando si esegue cfrun oppure cfagent è possibile ottenere degli errori “can't stat”. Ad esempio,
host1: Can’t stat
/var/opt/dsau/cfengine_master/master_files/etc/test in copy |
Controllare l'archivio dei file del server master ed accertarsi che il file in questione sia disponibile ed abbia le autorizzazioni adeguate.
Errori “Couldn’t open a socket” oppure “unable to establish connection:”
cfagent e cfrun possono visualizzare errori come:
cfengine:: Couldn't open a socket
cfengine:: Unable to establish connection with host1 (failover)
host2: Couldn’t open a socket |
Nel caso che cfservd sia in esecuzione nel server master, questo errore può segnalare un problema con il firewall oppure una porta, che fa sì che il client non riesca a raggiungere la porta TCP 5308 nel server master. Quando si utilizza cfrun, anche il server master deve essere in grado di raggiungere la porta TCP 5308 del client remoto. Controllare che le regole del firewall consentano l’accesso a tali porte.
Gli argomenti nella riga dei comandi per cfengine distinguono le maiuscole dalle minuscole. Ad esempio, cfagent supporta le opzioni -k e -K, che hanno differente significato:
-k indica a cfagent di ignorare la sequenza di azioni per la copia
-K indica a cfagent di ignorare i blocchi durante la sua esecuzione
Come ottenere maggiori dettagli da cfengine
La maggior parte degli strumenti e daemon di cfengine accettano l’opzione (-v) per l’output dettagliato e varie opzioni (-d) di debug. Ad esempio:
cfagent -d, -d1, -d2, or -d3
cfservd -v
cfrun -v |