Come utente Linux, probabilmente hai familiarità con gli strumenti che consentono di scaricare file da server remoti utilizzando protocolli HTTP, HTTPS e FTP, come WGET e CURL. Quando si eseguono attività di automazione, occasionalmente dovrai scaricare file e pacchetti su host remoti. Mentre è possibile utilizzare Wget e arricciarsi sugli host remoti per eseguire questa funzione, è anche possibile bypassare l'installazione richiesta per utilizzare questi strumenti utilizzando il modulo ANSIBE 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:
Informazioni sul modulo get_url
Prima di imparare come implementare il modulo get_url, prima, ci sono alcune cose che meritano di essere comprese 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.
Utilizzando il 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 i file dal server HTTP/HTTPS con URL diretto
Considera il seguente playbook che crea una directory in ~/.locale e utilizza il modulo get_url per scaricare il pacchetto Debian Mysql.
NOTA: Puoi trovare pacchetti di server MySQL nella risorsa fornita di seguito:
https: // linkfy.a/mysql-packages
- Host: tutto
- Nome: Scarica Debian Mysql Server utilizzando HTTP/HTTPS
compiti:
- Nome: Make Directory MySQL-Server in/Home/User/.Locale
file:
Path: ~/.locale/mysql-server
Stato: directory
Modalità: 0777
- Nome: Ottieni pacchetti MySQL-Server
get_url:
URL: “https: // downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1DEBIAN10_AMD64.Deb-bundle.catrame"
dest: ~/.locale/mysql-server
Modalità: 0777
checksum: MD5: 5568E206A187A3B658392520540F556E
Il playbook sopra inizia creando una directory in $ home/.locale/mysql-server, in cui il pacchetto scaricato dovrebbe essere archiviato. Se stai creando una directory in una directory privilegiata, ricorda di usare la direttiva "diventa".
Successivamente, il playbook chiama il modulo GET_URL e specifica l'URL da cui scaricare il pacchetto, seguito dalla directory di destinazione a 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 è possibile 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 Debian Mysql Server utilizzando HTTP/HTTPS] *************************************** ************************************************* ************************************************* ******************
Attività [raccolta fatti] ******************************************* ************************************************* ************************************************* ***************************************
OK: [35.222.210.12]
Task [Rendi directory mysql-server in/home/utente/.Locale] ************************************************ ************************************************* ************************************************* ***********
35.222.210.12: OK = 3 modificato = 1 non raggiungibile = 0 non riuscito = 0 saltato = 0 salvato = 0 ignorato = 0
Una volta completato il processo, è possibile 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 qui sotto:
- Host: tutto
- Nome: Scarica Debian Mysql Server utilizzando HTTP/HTTPS
compiti:
- Nome: Make Directory MySQL-Server in/Home/User/.Locale
file:
Path: ~/.locale/mysql-server
Stato: directory
Modalità: 0777
- Nome: Ottieni pacchetti MySQL-Server
get_url:
URL: https: // downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1DEBIAN10_AMD64.Deb-bundle.catrame
dest: ~/.locale/mysql-server
Modalità: 0777
checksum: sha256: b5bb9d8014a0f9b1d61e21e796d78eeefdf1352f23cd32812f4850b878ae4944c
Per utilizzare un URL invece di codificare il checksum, considera il seguente esempio:
- Host: tutto
- Nome: Scarica Debian Mysql Server utilizzando HTTP/HTTPS
compiti:
- Nome: Make Directory MySQL-Server in/Home/User/.Locale
file:
Path: ~/.locale/mysql-server
Stato: directory
Modalità: 0777
- Nome: Ottieni pacchetti MySQL-Server
get_url:
URL: https: // downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1DEBIAN10_AMD64.Deb-bundle.catrame
dest: ~/.locale/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 i file con timeout in caso di risposta
In alcuni casi, è possibile avere un URL di risorse 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 è di solito 10 secondi. Per specificare esplicitamente il valore di timeout, utilizzare il timeout: direttiva.
Considera il seguente playbook:
- Host: tutto
- Nome: Scarica Debian Mysql Server con timeout
compiti:
- Nome: Make Directory MySQL-Server in/Home/User/.Locale
file:
Path: ~/.locale/mysql-server
Stato: directory
Modalità: 0777
- Nome: Ottieni pacchetti MySQL-Server
get_url:
URL: https: // downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1DEBIAN10_AMD64.Deb-bundle.catrame
dest: ~/.locale/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 come 30 secondi e la connessione verrà eliminata 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: tutto
- Nome: scarica file con autenticazione
Diventa: sì
get_url:
URL: http: // 102.15.192.120/backup/database.catrame.Gz
dest: /backups
Nome utente: utente
Password: 'pass'
Modalità: 0777
Timeout: 5
Scarica i file dal percorso del file locale
Per scaricare un file da un percorso del file locale, è possibile utilizzare lo schema del file: // URI, seguito dal percorso del file.
Considera il seguente playbook:
- Host: Webservers
- 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 anche aggiungere le informazioni di accesso, come mostrato in precedenza.
Considera il seguente playbook:
- Host: tutto
compiti:
- Nome: scarica il file dal server FTP
Diventa: sì
get_url:
URL: FTP: // 192.168.11.101
dest: /backups
Modalità: 0777
Opzioni del modulo Ansible get_url
Il modulo GET_URL supporta anche varie opzioni che è possibile utilizzare per specificare e monitorare il download e la gestione dei file. Le opzioni disponibili con il modulo GET_URL includono quanto segue:
Conclusione
Questo articolo ha discusso in dettaglio il modulo GET_URL e ha mostrato come utilizzare questo modulo per scaricare file da varie fonti. È possibile utilizzare questo articolo per fare riferimento a come scaricare i file in ansible utilizzando il modulo get_url.