Risoluzione dei problemi
1. Il runner mostra l'errore 404
Come risolvere
Getting 401 error code from Runner
2. Problema di Gathering Facts per localhost
Il problema può verificarsi su Semaphore UI installato tramite Snap o Docker.
4:10:16 PM
TASK [Gathering Facts] *********************************************************
4:10:17 PM
fatal: [localhost]: FAILED! => changed=false
Perché succede
Per maggiori informazioni sull'uso di localhost in Ansible, leggere questo articolo: Implicit 'localhost'.
Ansible tenta di raccogliere i fact in locale, ma Ansible si trova in un container isolato e limitato che non lo consente.
Come risolvere
Esistono due modi:
- Disabilitare la raccolta dei fact:
- hosts: localhost
gather_facts: False
roles:
- ...
- Impostare esplicitamente il tipo di connessione su ssh:
[localhost]
127.0.0.1 ansible_connection=ssh ansible_ssh_user=your_localhost_user
3. panic: pq: SSL is not enabled on the server
Significa che il proprio Postgres non funziona tramite SSL.
Come risolvere
Aggiungere l'opzione sslmode=disable al file di configurazione:
"postgres": {
"host": "localhost",
"user": "postgres",
"pass": "pwd",
"name": "semaphore",
"options": {
"sslmode": "disable"
}
},
4. fatal: bad numeric config value '0' for 'GIT_TERMINAL_PROMPT': invalid unit
Significa che si sta tentando di accedere tramite HTTPS a un repository che richiede l'autenticazione.
Come risolvere
- Andare nella schermata Key Store.
- Creare una nuova chiave di tipo
Login with password. - Specificare il proprio login per GitHub/BitBucket/ecc.
- Specificare la password. Per GitHub/BitBucket non è possibile usare la password dell'account: è necessario usare un Personal Access Token (PAT) al suo posto. Maggiori informazioni qui.
- Dopo aver creato la chiave, andare nella schermata Repositories, trovare il proprio repository e specificare la chiave.
5. Il clone o il pull di Git fallisce a intermittenza
I log delle attività possono mostrare messaggi come Git pull failed (...), retrying in 2s, seguiti da un esito positivo oppure da un fallimento definitivo dopo diversi tentativi.
Perché succede
Il server git era temporaneamente irraggiungibile o ha restituito un errore transitorio. Semaphore ritenta automaticamente le operazioni di clone e pull prima di far fallire l'attività.
Come risolvere
- Interruzioni transitorie: di solito si risolvono da sole. Semaphore ritenta fino a
git_attemptsvolte (predefinito 4) con backoff esponenziale. - Fallimenti frequenti: aumentare
git_attemptsnella configurazione oppure impostareSEMAPHORE_GIT_ATTEMPTS. - Fallimenti immediati e costanti: controllare l'URL del repository, il branch, le chiavi di accesso e la connettività di rete.
Vedere Operazioni Git per i dettagli di configurazione.
6. unable to read LDAP response packet: unexpected EOF
Molto probabilmente si sta tentando di connettersi al server LDAP con un metodo non sicuro, mentre il server si aspetta una connessione sicura (tramite TLS).
Come risolvere
Abilitare TLS nel file config.json:
...
"ldap_needtls": true
...
7. LDAP Result Code 49 "Invalid Credentials"
La password o il binddn sono errati.
Come risolvere
Usare lo strumento ldapwhoami e verificare che il proprio binddn funzioni:
ldapwhoami\
-H ldap://ldap.com:389\
-D "CN=/your/ldap_binddn/value/in/config/file"\
-x\
-W
Chiederà interattivamente la password e dovrebbe restituire il codice 0 e stampare il DN specificato.
È inoltre possibile leggere i seguenti articoli:
8. LDAP Result Code 32 "No Such Object"
Prossimamente.