Penyedia adalah alat yang memungkinkan Anda untuk mengotomatiskan alur kerja saat Anda mem-boot mesin virtual. Gelang mendukung penyedia seperti file, shell, ansible, puppet, dan salt stack. Anda dapat menggunakan salah satu alat ini dan mengotomatiskan alur kerja penerapan mesin virtual Anda.
[ Anda mungkin juga menyukai:Memulai Vagrant dan VirtualBox ]
Artikel ini akan melihat dua dari File dan Shell penyedia yang mungkin Anda gunakan secara teratur saat Anda menerapkan mesin virtual baru.
Cara Menggunakan Penyedia Shell di Gelandangan
Cangkang penyedia memungkinkan Anda untuk menjalankan shell perintah di mesin gelandangan Anda. Untuk menggunakan kulit penyedia Anda harus memberikan shell sebagai argumen ke vm.provision metode.
config.vm.provision "shell"
Ada dua cara untuk menjalankan shell perintah di gelandangan.
- Skrip sebaris
- Skrip eksternal
Cara Bekerja dengan Skrip Sebaris di Vagrant
Di sebaris skrip, Anda akan melewati shell perintah di dalam Vagrantfile . Ada banyak cara untuk menggunakan skrip sebaris. Contoh di bawah ini menunjukkan cara menggunakan skrip sebaris. Setelah mendefinisikan penyedia shell, Anda harus melewati inline dan perintah sebagai pasangan nilai kunci. Silakan dan ubah Vagrantfile dan tambahkan baris di atas.
config.vm.provision "shell", inline: "echo Welcome to linuxshelltips"
Sebelum menjalankan penyedia any ada poin penting yang harus diperhatikan. Penyedia biasanya berjalan hanya saat Anda menjalankan “vagrant up ” untuk pertama kalinya.
Lihatlah gambar di bawah ini, saya menambahkan penyedia shell ke Vagrantfile dan memulai mesin virtual saya dan memberitahu saya untuk menggunakan --provision
tandai karena ini bukan pertama kalinya saya mem-boot VM ini.
$ vagrant up --provision # Starting the VM $ vagrant reload --provision # Restarting the VM
Anda juga dapat menggunakan blokir sintaks yang menawarkan lebih mudah dibaca. Ini sama dengan definisi satu baris sebelumnya.
config.vm.provision "shell" do |cmd| cmd.inline = "echo Welcome to Linuxshelltips" end
Jika Anda telah bekerja dengan bash, Anda mungkin telah menggunakan heredoc . Mirip dengan Ruby juga mendukung Heredoc yang dapat Anda gunakan dalam file gelandangan dan mengarahkan serangkaian perintah bash ke sana. Di sini saya mencoba menginstal epel-repository dan instal wget perintah.
$COMMANDS = <<-'BLOCK' yum install epel-release -y yum install wget -y BLOCK config.vm.provision "shell", inline: $COMMANDS
Biarkan saya menjelaskan apa yang dilakukan kode di atas. Saya membuat variabel bernama $COMMANDS
dan menyimpan heredoc dalam variabel. Saya melewati $COMMANDS
variabel sebagai nilai inline yang akan menjalankan rangkaian yum perintah yang kita lewati di dalam blok kode.
Anda dapat melihat dari tangkapan layar di atas keduanya epel-repo dan wget berhasil diinstal. Anda juga dapat memanggil skrip yang sudah tersedia di mesin gelandangan. Saya memiliki skrip pengujian bernama welcome.sh di vagrant host dan untuk menjalankannya tambahkan sintaks berikut ke file konfigurasi.
config.vm.provision "shell", inline: "/usr/bin/bash /home/vagrant/welcome.sh"
Jika Anda ingin penyedia berjalan setiap kali Anda memulai/me-reboot mesin virtual Anda, maka Anda dapat menggunakan definisi gaya blok dan meneruskan “selalu ” untuk “lari ”. Jalankan menerima dua nilai “selalu ” dan “tidak pernah ”. Saat disetel ke “tidak pernah ” penyedia tidak akan berjalan.
Vagrant.configure("2") do |config| config.vm.provision "shell", inline: "/usr/bin/bash ~/welcome.sh", run: "always" end
Anda juga dapat melewati --no-provision
tandai dengan perintah start/reboot untuk menekan perilaku parameter run.
$ vagrant up --no-provision $ vagrant reload --no-provision
Cara Bekerja dengan Skrip Eksternal di Vagrant
Opsi alternatif untuk skrip sebaris adalah skrip eksternal. Ini cukup sederhana, buat skrip shell secara eksternal dan berikan jalur skrip di penyedia shell seperti di bawah ini.
config.vm.provision "shell", path: "/home/karthick/welcome.sh"
Gelandang akan menyalin skrip ke /tmp/ lokasi di mesin virtual dan akan memicu skrip.
Cara Menggunakan Penyedia File di Vagrant
Penyedia file memungkinkan Anda mengunggah file direktori ke mesin gelandangan dari mesin host Anda. Penyedia file menerima dua jalur sumber parameter dan jalur tujuan.
Untuk menyalin file, tambahkan properti berikut di Vagrantfile Anda dengan jalur sumber dan tujuan. Ganti jalur sumber dan tujuan sesuai dengan lokasi Anda.
config.vm.provision "file", source: "/home/karthick/vagrant/centos7/script.sh" , destination: "~/script.sh"
Jika Anda memulai/me-restart mesin virtual, Anda akan melihat penyedia file log dipanggil dan file disalin ke mesin virtual.
Untuk menyalin direktori, Anda harus melewati jalur direktori di sumber dan tujuan. Jika Anda menginginkan nama yang sama untuk direktori Anda seperti di sumber, Anda harus memberikan nama tujuan yang sama.
config.vm.provision "file", source: "/home/karthick/vagrant/centos7" , destination: "~/centos7"
Pada artikel berikutnya, kita akan melihat bagaimana penyedia yang memungkinkan untuk mengotomatisasi alur kerja kita menggunakan buku pedoman.