GNU/Linux >> Belajar Linux >  >> Linux

Cara Bekerja dengan Penyedia File dan Shell di Vagrant

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.

  1. Skrip sebaris
  2. 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.


Linux
  1. `^m` Dan Bagaimana Cara Menghilangkannya?

  2. Tujuan .bashrc Dan Bagaimana Cara Kerjanya?

  3. Cara mengubah izin file dan direktori dengan Manajer File

  1. Cara bekerja dengan Manajer File Panel Web CentOS

  2. Cara mengubah kata dalam file dengan skrip shell linux

  3. Bagaimana cara mengisi file dengan FF menggunakan dd?

  1. Bagaimana saya menggunakan Vagrant dengan libvirt

  2. Cara memprogram dengan Bash:Sintaks dan alat

  3. Cara Bekerja Dengan Pengguna Dan Grup Di Linux