Sebagai pengguna Linux, anda mungkin biasa dengan alat yang membolehkan anda memuat turun fail dari pelayan jauh menggunakan protokol HTTP, HTTPS, dan FTP, seperti wget dan cURL. Semasa menjalankan tugas automasi, anda kadang-kadang perlu memuat turun fail dan pakej ke host jauh. Walaupun anda dapat menggunakan wget dan cURL pada host jauh untuk melaksanakan fungsi ini, anda juga dapat memotong pemasangan yang diperlukan untuk menggunakan alat ini menggunakan modul get_url Ansible.
Tutorial ini menunjukkan kepada anda cara menggunakan perintah get_url Ansible untuk memuat turun fail dari pelayan jauh.
Sebelum kita memulakan, perintah get_url Ansible memerlukan prasyarat berikut:
- Pelayan jarak jauh dari mana fail akan dimuat turun harus mempunyai akses langsung ke pelayan hos.
- Pelayan host harus menyokong protokol HTTP dan HTTPS.
Mengenai Modul get_url
Sebelum anda mengetahui cara melaksanakan modul get_url, pertama, terdapat beberapa perkara yang perlu difahami mengenai modul ini. Modul get_url menyokong ciri berikut:
- Muat turun dan pengesahan Checksum dari pelayan
- Pelayan HTTP, HTTPS, dan FTP
- Pelayan proksi, yang dapat ditentukan oleh
_proksi arahan - Menetapkan batas waktu untuk mendapatkan permintaan
- Merangkak web
- Kebenaran web asas
Seterusnya, kami akan menunjukkan kepada anda cara menggunakan modul get_url untuk memuat turun fail dengan pelbagai protokol dan konfigurasi.
Menggunakan Modul get_url untuk Mendapatkan Fail
Berikut adalah beberapa contoh yang dapat anda laksanakan menggunakan modul get_url semasa memuat turun fail dari pelayan jauh.
Muat turun Fail dari Pelayan HTTP / HTTPS dengan URL Langsung
Pertimbangkan buku main berikut yang membuat direktori di ~ /.tempatan dan menggunakan modul get_url untuk memuat turun pakej Debian MySQL.
NOTA: Anda boleh mendapatkan pakej pelayan MYSQL dalam sumber yang disediakan di bawah:
https: // linkfy.ke / pakej mysql
- tuan rumah: semua- nama: Muat turun pelayan Debian MySQL menggunakan HTTP / HTTPS
tugas:
- name: Buat direktori mysql-server di / home / user /.tempatan
fail:
jalan: ~ /.pelayan tempatan / mysql
nyatakan: direktori
mod: 0777
- name: DAPATKAN pakej pelayan MySQL
get_url:
url: “https: // muat turun.mysql.com / arkib / get / p / 23 / fail / mysql-server_8.0.22-1debian10_amd64.deb-bundle.tar ”
dest: ~ /.pelayan tempatan / mysql
mod: 0777
checksum: md5: 5568e206a187a3b658392520540f556e
Buku main di atas dimulakan dengan membuat direktori di $ HOME /.pelayan tempatan / mysql, di mana pakej yang dimuat turun harus disimpan. Jika anda membuat direktori dalam direktori istimewa, ingatlah untuk menggunakan arahan 'menjadi'.
Seterusnya, buku main memanggil modul get_url dan menentukan URL dari mana untuk memuat turun pakej, diikuti dengan direktori tujuan untuk menyimpan fail. Bahagian terakhir buku main menentukan checksum md5 untuk memeriksa kesahihan fail.
NOTA: Dalam buku main di atas, kami memasukkan kode checksum dengan keras, tetapi anda boleh menentukan URL tempat hos pemeriksaan dihoskan.
Setelah anda menjalankan buku main, anda akan memperoleh output yang menunjukkan kejayaan atau kegagalan tugas.
$ ansible-playbook muat turun_mysql_server.yml PLAY [Muat turun pelayan Debian MySQL menggunakan HTTP / HTTPS] ************************************** ************************************************** ************************************************** ******************TUGAS [Mengumpulkan Fakta] ********************************************* ************************************************** ************************************************** *****************************************
ok: [35.222.210.12]
TUGAS [Jadikan direktori mysql-server di / home / user /.tempatan] ************************************************ ************************************************** ************************************************** ***********
35.222.210.12: ok = 3 diubah = 1 tidak terjangkau = 0 gagal = 0 dilangkau = 0 diselamatkan = 0 diabaikan = 0
Setelah proses selesai, anda boleh log masuk ke host dan mengesahkan sama ada fail tersebut ada.
Muat turun Fail dengan sha256 Checksum
Anda juga boleh memuat turun fail dan mengesahkannya menggunakan checksum sha256, seperti yang ditunjukkan dalam contoh buku panduan di bawah:
- tuan rumah: semua- nama: Muat turun pelayan Debian MySQL menggunakan HTTP / HTTPS
tugas:
- name: Buat direktori mysql-server di / home / user /.tempatan
fail:
jalan: ~ /.pelayan tempatan / mysql
nyatakan: direktori
mod: 0777
- name: DAPATKAN pakej pelayan MySQL
get_url:
url: https: // muat turun.mysql.com / arkib / get / p / 23 / fail / mysql-server_8.0.22-1debian10_amd64.deb-bundle.tar
dest: ~ /.pelayan tempatan / mysql
mod: 0777
checksum: sha256: b5bb9d8014a0f9b1d61e21e796d78eefdf1352f23cd32812f4850b878ae4944c
Untuk menggunakan URL dan bukannya menggunakan kod cekum, pertimbangkan contoh berikut:
- tuan rumah: semua- nama: Muat turun pelayan Debian MySQL menggunakan HTTP / HTTPS
tugas:
- name: Buat direktori mysql-server di / home / user /.tempatan
fail:
jalan: ~ /.pelayan tempatan / mysql
nyatakan: direktori
mod: 0777
- name: DAPATKAN pakej pelayan MySQL
get_url:
url: https: // muat turun.mysql.com / arkib / get / p / 23 / fail / mysql-server_8.0.22-1debian10_amd64.deb-bundle.tar
dest: ~ /.pelayan tempatan / mysql
mod: 0777
checksum: sha256: https: // muat turun.mysql.com / arkib / get / p / 23 / fail / mysql-server_8.0.22-1debian10_amd64.deb-bundle.tar.sha265
Muat turun Fail dengan Timeout pada Gagal Menjawab
Dalam beberapa kes, anda mungkin mempunyai URL sumber yang ditentukan yang memerlukan masa lebih lama untuk bertindak balas atau tidak tersedia. Ini boleh menyebabkan sambungan ditutup sebelum pelayan bertindak balas, kerana waktu tunggu lalai biasanya 10 saat. Untuk secara jelas menentukan nilai timeout, gunakan timeout:
Pertimbangkan buku main berikut:
- tuan rumah: semua- name: Muat turun pelayan Debian MySQL dengan masa tamat
tugas:
- name: Buat direktori mysql-server di / home / user /.tempatan
fail:
jalan: ~ /.pelayan tempatan / mysql
nyatakan: direktori
mod: 0777
- name: DAPATKAN pakej pelayan MySQL
get_url:
url: https: // muat turun.mysql.com / arkib / get / p / 23 / fail / mysql-server_8.0.22-1debian10_amd64.deb-bundle.tar
dest: ~ /.pelayan tempatan / mysql
mod: 0777
checksum: sha256: https: // muat turun.mysql.com / arkib / get / p / 23 / fail / mysql-server_8.0.22-1debian10_amd64.deb-bundle.tar.sha265
tamat masa: 30
Buku main di atas menetapkan waktu tamat sebagai 30 saat, dan sambungan akan terputus jika pelayan tidak bertindak balas dalam masa yang ditetapkan.
Muat turun Fail dengan Pengesahan
Untuk memuat turun fail ke pelayan yang memerlukan pengesahan, anda perlu menentukan nilai masuk.
Pertimbangkan buku main berikut:
- tuan rumah: semua- nama: Muat turun Fail dengan pengesahan
menjadi: ya
get_url:
url: http: // 102.15.192.120 / sandaran / pangkalan data.tar.gz
dest: / sandaran
nama pengguna: pengguna
kata laluan: 'pass'
mod: 0777
tamat masa: 5
Muat turun Fail dari Laluan Fail Tempatan
Untuk memuat turun fail dari jalur fail tempatan, anda boleh menggunakan skema fail: // URI, diikuti dengan jalan ke fail.
Pertimbangkan buku main berikut:
- hos: pelayan laman web- nama: Muat turun Fail dari laluan fail tempatan
menjadi: ya
get_url:
url: file: /// sandaran / selamat / konfigurasi.tar.gz
dest: / dev / null
Muat turun Fail FTP
Memuat turun fail FTP sangat serupa dengan proses yang dijelaskan di bahagian sebelumnya. Yang perlu anda lakukan ialah menentukan ftp: // sebagai protokol ke pelayan.
Untuk memuat turun fail selamat, anda juga mesti menambahkan maklumat log masuk, seperti yang ditunjukkan sebelumnya.
Pertimbangkan buku main berikut:
- tuan rumah: semuatugas:
- nama: Muat turun fail dari pelayan FTP
menjadi: ya
get_url:
url: ftp: // 192.168.11.101
dest: / sandaran
mod: 0777
Pilihan Modul get_url yang boleh dibaca
Modul get_url juga menyokong pelbagai pilihan yang boleh anda gunakan untuk menentukan dan memantau muat turun dan pengurusan fail. Pilihan yang tersedia dengan modul get_url merangkumi yang berikut:
- Sandaran: Pilihan sandaran, Boolean ya dan tidak, membolehkan anda menentukan sama ada membuat salinan sandaran fail yang akan dimuat turun.
- Kumpulan: Pilihan kumpulan menentukan kumpulan yang memiliki hak milik fail yang dimuat turun; pilihan ini adalah seperti arahan chown di Unix.
- Tajuk: Opsi tajuk digunakan untuk menentukan tajuk HTTP khusus dalam kamus dalam format hash.
- http_agent: Pilihan http_agent menentukan ejen HTTP.
- Pemilik: Pilihan pemilik menentukan pemilik fail muat turun.
- Seuser: Pilihan seuser menetapkan pengguna dalam konteks fail SELinux.
- gunakan_proksi: Pilihan use_proxy menetapkan sama ada proksi harus digunakan. Sekiranya pilihan ini ditetapkan ke salah, semua proksi akan diabaikan, walaupun anda mempunyai pilihan yang ditentukan di host sasaran.
Kesimpulannya
Artikel ini membincangkan modul get_url di Ansible secara terperinci dan menunjukkan kepada anda bagaimana menggunakan modul ini untuk memuat turun fail dari pelbagai sumber. Anda boleh menggunakan artikel ini untuk merujuk cara memuat turun fail di Ansible menggunakan modul get_url.