mungkin

Cara Mengunduh File Menggunakan Modul get_url Ansible

Cara Mengunduh File Menggunakan Modul get_url Ansible

Sebagai pengguna Linux, Anda mungkin akrab dengan alat yang memungkinkan Anda mengunduh file dari server jarak jauh menggunakan protokol HTTP, HTTPS, dan FTP, seperti wget dan cURL. Saat melakukan tugas otomatisasi, Anda terkadang perlu mengunduh file dan paket ke host jarak jauh. Meskipun Anda dapat menggunakan wget dan cURL pada host jarak jauh untuk melakukan fungsi ini, Anda juga dapat melewati instalasi yang diperlukan untuk menggunakan alat ini menggunakan modul get_url Ansible.

Tutorial ini menunjukkan cara menggunakan perintah Ansible get_url untuk mengunduh file dari server jarak jauh.

Sebelum kita mulai, perintah get_url Ansible memerlukan prasyarat berikut:

  1. Server jarak jauh tempat file akan diunduh harus memiliki akses langsung ke server host.
  2. Server host harus mendukung protokol HTTP dan HTTPS.

Tentang Modul get_url

Sebelum Anda mempelajari tentang cara mengimplementasikan modul get_url, pertama-tama, ada beberapa hal yang perlu dipahami tentang modul ini. Modul get_url mendukung fitur berikut:

Selanjutnya, kami akan menunjukkan cara menggunakan modul get_url untuk mengunduh file dengan berbagai protokol dan konfigurasi.

Menggunakan Modul get_url untuk Mendapatkan File

Berikut ini adalah beberapa contoh yang dapat Anda terapkan menggunakan modul get_url saat mengunduh file dari server jauh:.

Unduh File dari Server HTTP/HTTPS dengan URL Langsung

Pertimbangkan buku pedoman berikut yang membuat direktori di ~/.lokal dan menggunakan modul get_url untuk mengunduh paket MySQL Debian.

CATATAN: Anda dapat menemukan paket server MYSQL di sumber daya yang disediakan di bawah ini:

https://linkfy.ke/paket mysql

- tuan rumah: semua
- nama: Unduh server MySQL Debian menggunakan HTTP/HTTPS
tugas:
- nama: Buat direktori mysql-server di /home/user/.lokal
mengajukan:
jalur: ~/.lokal/server-mysql
negara bagian: direktori
modus: 0777
- nama: DAPATKAN paket server MySQL
get_url:
url: “https://download.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundel.ter"
tujuan: ~/.lokal/server-mysql
modus: 0777
checksum: md5:5568e206a187a3b658392520540f556e

Playbook di atas dimulai dengan membuat direktori di $HOME/.local/mysql-server, tempat paket yang diunduh harus disimpan. Jika Anda membuat direktori di direktori istimewa, ingatlah untuk menggunakan direktif 'menjadi'.

Selanjutnya, playbook memanggil modul get_url dan menentukan URL untuk mengunduh paket, diikuti dengan direktori tujuan untuk menyimpan file. Bagian terakhir dari buku pedoman menentukan checksum md5 untuk memeriksa validitas file.

CATATAN: Di buku pedoman di atas, kami membuat hardcode checksum, tetapi Anda dapat menentukan URL tempat checksum di-host.

Setelah Anda menjalankan buku pedoman, Anda akan mendapatkan output yang menunjukkan keberhasilan atau kegagalan tugas.

$ ansible-playbook download_mysql_server.yml PLAY [Unduh server MySQL Debian menggunakan HTTP/HTTPS] ************************************** ************************************************** ************************************************** ******************
TUGAS [Mengumpulkan Fakta] ********************************************* ************************************************** ************************************************** *****************************************
oke: [35.222.210.12]
TUGAS [Buat direktori mysql-server di /home/user/.lokal] ************************************************ ************************************************** ************************************************** ***********
35.222.210.12 : ok=3 diubah=1 tidak dapat dijangkau=0 gagal=0 dilewati=0 diselamatkan=0 diabaikan=0

Setelah proses selesai, Anda dapat masuk ke host dan memverifikasi apakah file tersebut ada.

Unduh File dengan sha256 Checksum

Anda juga dapat mengunduh file dan memverifikasinya menggunakan checksum sha256, seperti yang ditunjukkan pada contoh buku pedoman di bawah ini:

- tuan rumah: semua
- nama: Unduh server MySQL Debian menggunakan HTTP/HTTPS
tugas:
- nama: Buat direktori mysql-server di /home/user/.lokal
mengajukan:
jalur: ~/.lokal/server-mysql
negara bagian: direktori
modus: 0777
- nama: DAPATKAN paket server MySQL
get_url:
url: https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundel.ter
tujuan: ~/.lokal/server-mysql
modus: 0777
checksum: sha256:b5bb9d8014a0f9b1d61e21e796d78eefdf1352f23cd32812f4850b878ae4944c

Untuk menggunakan URL alih-alih hardcoding checksum, pertimbangkan contoh berikut:

- tuan rumah: semua
- nama: Unduh server MySQL Debian menggunakan HTTP/HTTPS
tugas:
- nama: Buat direktori mysql-server di /home/user/.lokal
mengajukan:
jalur: ~/.lokal/server-mysql
negara bagian: direktori
modus: 0777
- nama: DAPATKAN paket server MySQL
get_url:
url: https://download.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundel.ter
tujuan: ~/.lokal/server-mysql
modus: 0777
checksum: sha256:https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundel.ter.sha265

Unduh File dengan Batas Waktu saat Gagal Merespon

Dalam beberapa kasus, Anda mungkin memiliki URL sumber daya tertentu yang memerlukan waktu lebih lama untuk merespons atau tidak tersedia. Ini dapat menyebabkan koneksi ditutup sebelum server merespons, karena batas waktu default biasanya 10 detik. Untuk secara eksplisit menentukan nilai batas waktu, gunakan batas waktu: pengarahan.

Perhatikan buku pedoman berikut:

- tuan rumah: semua
- nama: Unduh server MySQL Debian dengan batas waktu
tugas:
- nama: Buat direktori mysql-server di /home/user/.lokal
mengajukan:
jalur: ~/.lokal/server-mysql
negara bagian: direktori
modus: 0777
- nama: DAPATKAN paket server MySQL
get_url:
url: https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundel.ter
tujuan: ~/.lokal/server-mysql
modus: 0777
checksum: sha256:https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundel.ter.sha265
batas waktu: 30

Playbook di atas menetapkan batas waktu sebagai 30 detik, dan koneksi akan terputus jika server tidak merespons dalam waktu yang ditentukan.

Unduh File dengan Otentikasi

Untuk mengunduh file ke server yang memerlukan otentikasi, Anda harus menentukan nilai login.

Perhatikan buku pedoman berikut:

- tuan rumah: semua
- nama: Unduh File dengan otentikasi
menjadi: ya
get_url:
url: http://102.15.192.120/cadangan/basis data.ter.gz
tujuan: /backup
nama pengguna: pengguna
kata sandi: 'pass'
modus: 0777
batas waktu: 5

Unduh File dari Jalur File Lokal

Untuk mengunduh file dari jalur file lokal, Anda dapat menggunakan skema file:// URI, diikuti dengan jalur ke file.

Perhatikan buku pedoman berikut:

- host: server web
- nama: Unduh File dari jalur file lokal
menjadi: ya
get_url:
url: file:///backups/secure/config.ter.gz
tujuan: /dev/null

Unduh File FTP

Mengunduh file FTP sangat mirip dengan proses yang dijelaskan di bagian sebelumnya. Yang perlu Anda lakukan adalah menentukan ftp:// sebagai protokol ke server.

Untuk mengunduh file yang aman, Anda juga harus menambahkan informasi login, seperti yang ditunjukkan sebelumnya.

Perhatikan buku pedoman berikut:

- tuan rumah: semua
tugas:
- nama: Unduh file dari server FTP
menjadi: ya
get_url:
url: ftp://192.168.11.101
tujuan: /backup
modus: 0777

Opsi Modul get_url yang memungkinkan

Modul get_url juga mendukung berbagai opsi yang dapat Anda gunakan untuk menentukan dan memantau pengunduhan dan pengelolaan file. Opsi yang tersedia dengan modul get_url meliputi:

Kesimpulan

Artikel ini membahas modul get_url di Ansible secara rinci dan menunjukkan cara menggunakan modul ini untuk mengunduh file dari berbagai sumber. Anda dapat menggunakan artikel ini untuk referensi cara mengunduh file di Ansible menggunakan modul get_url.

Pertempuran untuk Tutorial Westnoth
The Battle for Wesnoth adalah salah satu game strategi open source terpopuler yang bisa kamu mainkan saat ini. Tidak hanya game ini telah dikembangkan...
0 A.D. tutorial
Dari sekian banyak game strategi di luar sana, 0 A.D. berhasil menonjol sebagai judul yang komprehensif dan permainan taktis yang sangat dalam meskipu...
Tutorial Unity3D
Pengantar Unity 3D Unity 3D adalah mesin pengembangan game yang tangguh. Ini adalah lintas platform yang memungkinkan Anda membuat game untuk seluler,...