Repository
Un repository è un luogo in cui archiviare e gestire contenuti Ansible come playbook e ruoli.

Semaphore riconosce i repository di questi tipi:
- un file system locale (
/path/to/the/repo) - un repository Git locale (
file://) - un repository Git remoto accessibile tramite HTTPS (
https://) o SSH (ssh://) - il protocollo
git://è supportato, ma non è consigliato per motivi di sicurezza.
Tutti i modelli di task richiedono un repository per essere eseguiti.
Autenticazione
Se si utilizza un repository remoto che richiede l'autenticazione, è necessario configurare una chiave nella sezione Key Store di Semaphore.
Per i repository remoti che utilizzano SSH, è necessario utilizzare la propria chiave SSH nel Key Store.
Per i repository remoti che non richiedono autenticazione, è possibile creare una chiave di tipo None.
Creazione di un nuovo repository
-
Assicurarsi di aver configurato nella sezione Key Store la chiave per il repository che si sta per aggiungere.
-
Andare nella sezione Repository di Semaphore e fare clic sul pulsante Nuovo repository nell'angolo in alto a destra.
-
Configurare il repository:
- Assegnare un nome al repository
- Aggiungere l'URL. L'URL deve iniziare con uno dei seguenti:
/path/to/the/repoper una cartella locale sul file systemhttps://per un repository Git remoto accessibile tramite HTTPSssh://per un repository Git remoto accessibile tramite SSHfile://per un repository Git localegit://per un repository Git remoto accessibile tramite protocollo Git
- Impostare il branch del repository; in caso di dubbio, probabilmente è master o main
- Selezionare la Chiave di accesso configurata prima di impostare questo repository.
-
Fare clic su Salva una volta completata la configurazione.
Modifica di un repository esistente
-
Andare nella sezione Repository di Semaphore.
-
Fare clic sull'icona a forma di matita accanto al repository da modificare; verrà mostrata la configurazione del repository.
Eliminazione di un repository
Assicurarsi che il repository che si sta per eliminare non sia utilizzato da alcun modello di task. Un repository non può essere eliminato se è utilizzato in un modello di task:
-
Andare nella sezione Repository di Semaphore.
-
Fare clic sull'icona del cestino del repository da eliminare.
-
Fare clic su Sì nella finestra di conferma se si è sicuri di voler eliminare il repository.
Requisiti
All'inizializzazione del progetto, Semaphore cerca e installa i ruoli e le collection Ansible dai file requirements.yml nelle seguenti posizioni e nel seguente ordine.
Ruoli
playbook_dir/roles/requirements.ymlplaybook_dir/requirements.ymlrepo_path/roles/requirements.ymlrepo_path/requirements.yml
Collection
playbook_dir/collections/requirements.ymlplaybook_dir/requirements.ymlrepo_path/collections/requirements.ymlrepo_path/requirements.yml
Logica di elaborazione
- Ogni file viene elaborato in modo indipendente
- Se un file esiste, viene elaborato in base al suo tipo (ruolo o collection)
- Se l'elaborazione di un file genera un errore, il processo di installazione si interrompe e restituisce l'errore
- Lo stesso file requirements.yml nelle directory radice (
playbook_dir/requirements.yml erepo_path/requirements.yml) viene elaborato due volte: una per i ruoli e una per le collection
Semaphore tenterà di elaborare tutte queste posizioni indipendentemente dal fatto che le posizioni precedenti siano state trovate o elaborate con successo, tranne in caso di errori.