Ansible

Come scaricare file utilizzando il modulo get_url di Ansible

Come scaricare file utilizzando il modulo get_url di Ansible

Come utente Linux, probabilmente hai familiarità con gli strumenti che ti consentono di scaricare file da server remoti utilizzando i protocolli HTTP, HTTPS e FTP, come wget e cURL. Quando si eseguono attività di automazione, occasionalmente sarà necessario scaricare file e pacchetti su host remoti. Sebbene sia possibile utilizzare wget e cURL sugli host remoti per eseguire questa funzione, è anche possibile ignorare l'installazione richiesta per utilizzare questi strumenti utilizzando il modulo Ansible get_url.

Questo tutorial mostra come utilizzare il comando Ansible get_url per scaricare file da server remoti.

Prima di iniziare, il comando Ansible get_url richiede i seguenti prerequisiti:

  1. Il server remoto da cui devono essere scaricati i file dovrebbe avere accesso diretto al server host.
  2. Il server host dovrebbe supportare entrambi i protocolli HTTP e HTTPS.

Informazioni sul modulo get_url

Prima di imparare come implementare il modulo get_url, per prima cosa, ci sono alcune cose che vale la pena capire su questo modulo. Il modulo get_url supporta le seguenti funzionalità:

Successivamente, ti mostreremo come utilizzare il modulo get_url per scaricare file con vari protocolli e configurazioni.

Utilizzo del modulo get_url per ottenere file

Di seguito sono riportati alcuni esempi che è possibile implementare utilizzando il modulo get_url durante il download di file da un server remoto.

Scarica file dal server HTTP/HTTPS con URL diretto

Considera il seguente playbook che crea una directory nel ~/.local e usa il modulo get_url per scaricare il pacchetto Debian MySQL.

NOTA: puoi trovare i pacchetti del server MYSQL nella risorsa fornita di seguito:

https://linkfy.to/mysql-pacchetti

- host: tutti
- nome: Scarica il server Debian MySQL utilizzando HTTP/HTTPS
compiti:
- nome: crea la directory mysql-server in /home/user/.Locale
file:
percorso: ~/.local/mysql-server
stato: directory
modalità: 0777
- nome: GET pacchetti del server MySQL
get_url:
URL: “https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundle.catrame"
destinazione: ~/.local/mysql-server
modalità: 0777
somma di controllo: md5:5568e206a187a3b658392520540f556e

Il playbook sopra inizia creando una directory in $HOME/.local/mysql-server, dove dovrebbe essere archiviato il pacchetto scaricato. Se stai creando una directory in una directory privilegiata, ricorda di usare la direttiva 'become''.

Successivamente, il playbook chiama il modulo get_url e specifica l'URL da cui scaricare il pacchetto, seguito dalla directory di destinazione in cui archiviare il file. La sezione finale del playbook specifica il checksum md5 per verificare la validità del file.

NOTA: Nel playbook sopra, abbiamo codificato il checksum, ma puoi specificare l'URL in cui è ospitato il checksum.

Dopo aver eseguito il playbook, otterrai un output che indica il successo o il fallimento delle attività.

$ ansible-playbook download_mysql_server.yml PLAY [Scarica il server Debian MySQL usando HTTP/HTTPS] ************************************** ************************************************** ************************************************** ******************
COMPITO [Raccolta dati] ********************************************* ************************************************** ************************************************** ****************************************
bene: [35.222.210.12]
TASK [Crea directory mysql-server in /home/user/.Locale] ************************************************ ************************************************** ************************************************** ***********
35.222.210.12 : ok=3 modificato=1 irraggiungibile=0 fallito=0 saltato=0 salvato=0 ignorato=0

Una volta completato il processo, puoi accedere all'host e verificare se il file esiste.

Scarica file con checksum sha256

Puoi anche scaricare file e verificarli utilizzando il checksum sha256, come mostrato nel playbook di esempio di seguito:

- host: tutti
- nome: Scarica il server Debian MySQL utilizzando HTTP/HTTPS
compiti:
- nome: crea la directory mysql-server in /home/user/.Locale
file:
percorso: ~/.local/mysql-server
stato: directory
modalità: 0777
- nome: GET pacchetti del server MySQL
get_url:
URL: https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundle.catrame
destinazione: ~/.local/mysql-server
modalità: 0777
checksum: sha256:b5bb9d8014a0f9b1d61e21e796d78eefdf1352f23cd32812f4850b878ae4944c

Per utilizzare un URL invece di codificare il checksum, considera il seguente esempio:

- host: tutti
- nome: Scarica il server Debian MySQL utilizzando HTTP/HTTPS
compiti:
- nome: crea la directory mysql-server in /home/user/.Locale
file:
percorso: ~/.local/mysql-server
stato: directory
modalità: 0777
- nome: GET pacchetti del server MySQL
get_url:
URL: https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundle.catrame
destinazione: ~/.local/mysql-server
modalità: 0777
checksum: sha256:https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundle.catrame.sha265

Scarica file con timeout in caso di mancata risposta

In alcuni casi, potresti avere un URL di risorsa specificato che può richiedere più tempo per rispondere o non è disponibile. Ciò può causare la chiusura della connessione prima che il server risponda, poiché il timeout predefinito è solitamente di 10 secondi. Per specificare esplicitamente il valore di timeout, usa il timeout: direttiva.

Considera il seguente playbook:

- host: tutti
- nome: Scarica il server Debian MySQL con timeout
compiti:
- nome: crea la directory mysql-server in /home/user/.Locale
file:
percorso: ~/.local/mysql-server
stato: directory
modalità: 0777
- nome: GET pacchetti del server MySQL
get_url:
URL: https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundle.catrame
destinazione: ~/.local/mysql-server
modalità: 0777
checksum: sha256:https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundle.catrame.sha265
timeout: 30

Il playbook sopra specifica il timeout di 30 secondi e la connessione verrà interrotta se il server non risponde entro il tempo impostato.

Scarica file con autenticazione

Per scaricare un file su un server che richiede l'autenticazione, dovrai specificare i valori di accesso.

Considera il seguente playbook:

- host: tutti
- nome: Scarica file con autenticazione
diventa: sì
get_url:
URL: http://102.15.192.120/backup/database.catrame.gz
destinazione: /backup
nome utente: utente
password: 'pass'
modalità: 0777
timeout: 5

Scarica file dal percorso file locale

Per scaricare un file da un percorso di file locale, puoi utilizzare lo schema file:// URI, seguito dal percorso del file.

Considera il seguente playbook:

- host: server web
- nome: Scarica il file dal percorso del file locale
diventa: sì
get_url:
url: file:///backups/secure/config.catrame.gz
dest: /dev/null

Scarica file FTP

Il download di file FTP è molto simile al processo descritto nella sezione precedente. Tutto quello che devi fare è specificare ftp:// come protocollo per il server.

Per scaricare un file sicuro, è necessario aggiungere anche le informazioni di accesso, come mostrato in precedenza.

Considera il seguente playbook:

- host: tutti
compiti:
- nome: Scarica file dal server FTP
diventa: sì
get_url:
URL: ftp://192.168.11.101
destinazione: /backup
modalità: 0777

Opzioni modulo Ansible get_url

Il modulo get_url supporta anche varie opzioni che puoi utilizzare per specificare e monitorare il download e la gestione dei file file. Le opzioni disponibili con il modulo get_url includono quanto segue:

Conclusione

Questo articolo ha discusso in dettaglio il modulo get_url in Ansible e ti ha mostrato come utilizzare questo modulo per scaricare file da varie fonti. Puoi utilizzare questo articolo per fare riferimento a come scaricare file in Ansible utilizzando il modulo get_url.

Come mostrare il contatore FPS nei giochi Linux
I giochi Linux hanno avuto una grande spinta quando Valve ha annunciato il supporto Linux per il client Steam e i loro giochi nel 2012. Da allora, mol...
Come scaricare e giocare a Sid Meier's Civilization VI su Linux
Introduzione al gioco Civilization 6 è una versione moderna del concetto classico introdotto nella serie dei giochi Age of Empires. L'idea era abbasta...
Come installare e giocare a Doom su Linux
Introduzione a Doom La serie Doom è nata negli anni '90 dopo l'uscita dell'originale Doom. È stato un successo immediato e da quel momento in poi la s...