GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengonfigurasi Jaringan Di Vagrant

Gelang sangat populer di kalangan pengembang dan insinyur DevOps, karena mereka dapat terus menggunakan alat pengembangan yang ada (Misalnya editor, browser, debugger, dll.) di sistem lokal mereka. Misalnya, pengembang dapat menyinkronkan file dari mesin tamu ke sistem lokal, menggunakan editor favorit mereka untuk mengedit file tersebut dan akhirnya menyinkronkannya kembali ke mesin tamu. Demikian pula, jika mereka telah membuat aplikasi web di VM, mereka dapat mengakses dan menguji aplikasi tersebut dari browser web sistem lokal mereka. Dalam panduan ini, kita akan melihat cara mengonfigurasi jaringan di Vagrant untuk menyediakan akses ke mesin tamu dari sistem host lokal.

Konfigurasikan Jaringan di Vagrant

Vagrant menawarkan tiga opsi jaringan berikut:

  1. Penerusan port
  2. Jaringan pribadi (jaringan khusus host)
  3. Jaringan publik (jaringan yang dijembatani)

1. Konfigurasi penerusan port

Secara default, kita dapat mengakses Vagrant VM melalui ssh menggunakan vagrant ssh memerintah. Saat kami mengakses VM melalui SSH, Vagrant meneruskan port 22 dari mesin tamu ke port terbuka di mesin host. Ini disebut penerusan port. Vagrant secara otomatis menangani proses penerusan port ini tanpa campur tangan pengguna. Anda juga dapat meneruskan port tertentu pilihan Anda. Misalnya, jika Anda meneruskan port 80 di mesin tamu ke port 8080 pada mesin host, Anda kemudian dapat mengakses server web dengan menavigasi ke http://localhost:8080 di mesin host Anda.

Penerusan port dapat dikonfigurasi di "Vagrantfile". Buka direktori proyek Vagrant Anda dan buka Vagrantfile di editor favorit Anda.

Temukan baris berikut:

Vagrant.configure("2") do |config|
[...]
   # config.vm.network "forwarded_port", guest: 80, host: 8080
end

Batalkan komentar dan tentukan port mana yang akan diteruskan ke mana. Dalam contoh ini, saya meneruskan port 80 di guest ke port 8080 di host.

Vagrant.configure("2") do |config|
[...]
   config.vm.network "forwarded_port", guest: 80, host: 8080
end

Sekarang restart mesin Vagrant dengan Vagrantfile yang diperbarui:

$ vagrant reload --provision

Anda akan melihat penerusan port dikonfigurasi dalam output:

==> default: Halting domain…
==> default: Starting domain.
==> default: Waiting for domain to get an IP address…
==> default: Waiting for SSH to become available…
==> default: Creating shared folders metadata…
==> default: Forwarding ports…
==> default: 80 (guest) => 8080 (host) (adapter eth0)
==> default: Rsyncing folder: /home/sk/myvagrants/ => /vagrant

Anda juga dapat menghancurkan VM dan menjalankannya kembali dengan Vagrantfile yang diperbarui:

$ vagrant destroy <VM-name>
$ vagrant up

Sekarang SSH masuk ke mesin tamu dengan perintah:

$ vagrant ssh

Instal server web Apache di dalamnya. Jika VM berbasis Deb, jalankan:

$ sudo apt install apache2

Jika sistem berbasis RHEL, jalankan ini:

$ sudo yum install httpd

Mulai layanan Apache:

$ sudo systemctl enable --now httpd

Sekarang buka browser web di sistem host Anda dan navigasikan ke http://localhost:8080 alamat dari browser Anda. Anda akan melihat halaman pengujian Apache di browser Anda.

Padahal kita mengakses web server dengan URL http://localhost:8080 di sistem host, tidak dilayani dari server web lokal. Situs web sebenarnya (yaitu halaman pengujian Apache) dilayani dari mesin virtual tamu dan semua data jaringan aktual dikirim ke tamu.

1.1. Bagaimana jika port 8080 sedang digunakan oleh aplikasi lain?

Dalam contoh sebelumnya, kami meneruskan port 80 dari guest ke port 8080 di host. Dengan kata lain, lalu lintas yang dikirim ke port 8080 sebenarnya diteruskan ke port 80 di mesin tamu. Bagaimana jika beberapa aplikasi lain sedang menggunakan port 8080? Tabrakan port terjadi saat menjalankan beberapa VM. Anda mungkin secara tidak sadar meneruskan port yang sudah digunakan. Jangan khawatir! Vagrant memiliki dukungan bawaan untuk mendeteksi tabrakan port. Jika port sudah digunakan oleh aplikasi lain, Vagrant akan melaporkannya di output, sehingga Anda dapat mengosongkan port atau menggunakan port lain.

Vagrant juga cukup pintar untuk menemukan dan mengoreksi tabrakan port secara otomatis. Jika menemukan port bertabrakan dengan port lain, itu akan otomatis mengoreksinya dengan menggunakan port lain yang tidak digunakan untuk Anda.

Untuk mengaktifkan koreksi otomatis, tambahkan opsi tambahan auto_correct: true dalam definisi penerusan port di Vagrantfile Anda.

config.vm.network "forwarded_port", guest: 80, host: 8080, auto_correct: true

Secara default, Vagrant akan memilih port koreksi otomatis antara port 2200 dan port 2250 jangkauan. Anda juga dapat memilih rentang kustom Anda sendiri dengan menentukan baris berikut di Vagrantfile seperti di bawah ini.

config.vm.usable_port_range = (2200..2250)

Mulai ulang mesin Vagrant untuk menerapkan perubahan:

1.2. Ubah protokol jaringan

Secara default, Vagrant menggunakan protokol TCP untuk penerusan port. Namun, Anda dapat menggunakan protokol UDP jika ingin meneruskan paket UDP.

Untuk menggunakan port UDP, tambahkan definisi berikut di Vagrantfile Anda:

config.vm.network "forwarded_port", guest: 80, host: 8080, auto_correct: true protocol: "udp"

Mulai ulang Vagrant VM untuk menerapkan perubahan.

2. Konfigurasikan jaringan pribadi

Dalam jaringan pribadi atau khusus host, koneksi jaringan dibuat antara sistem host dan VM pada sistem host. Jaringan pribadi dibuat menggunakan adaptor jaringan virtual yang terlihat oleh sistem operasi host. Sistem lain di jaringan tidak dapat berkomunikasi dengan VM. Semua operasi jaringan diizinkan dalam sistem host.

Jaringan pribadi juga dapat berfungsi sebagai server DHCP dan memiliki subnet sendiri. Setiap VM di jaringan pribadi akan mendapatkan alamat IP dari ruang IP ini. Jadi, kita bisa mengakses VM secara langsung menggunakan IP dari sistem host.

Untuk mengonfigurasi jaringan pribadi atau khusus host di Vagrant dengan alamat IP statis, buka Vagrantfile, temukan baris berikut dan batalkan komentar.

config.vm.network "private_network", ip: "192.168.121.60"

Di sini, 192.168.121.60 adalah alamat IP dari VM. Ganti ini dengan IP Anda sendiri.

Mulai ulang VM untuk menerapkan perubahan.

Jika Anda ingin mengatur alamat IP secara otomatis dari DHCP, ubah definisi jaringan pribadi seperti di bawah ini:

config.vm.network "private_network", type: "dhcp"

Alamat IP acak akan diberikan ke VM. Untuk menemukan IP VM, Anda perlu memasukkan SSH ke dalamnya menggunakan vagrant ssh perintah dan kemudian temukan alamat ipnya dengan ip perintah.

3. Konfigurasikan jaringan publik

Di jaringan publik atau yang dijembatani, semua VM akan berada di jaringan yang sama dengan mesin host Anda. Setiap VM akan menerima alamat IP sendiri dari server DHCP (jika tersedia di jaringan lokal). Jadi semua VM akan bertindak seperti sistem fisik lain di jaringan dan mereka dapat berkomunikasi dengan sistem apa pun di jaringan.

Untuk mengonfigurasi jaringan publik atau yang dijembatani, edit Vagrantfile, temukan baris berikut dan batalkan komentarnya:

config.vm.network "public_network"

Simpan dan tutup file. Mulai ulang VM untuk menerapkan perubahan. VM akan secara otomatis mendapatkan alamat IP.

Jika Anda ingin mengatur IP statis, cukup ubah definisi jaringan seperti di bawah ini:

config.vm.network "public_network", ip: "192.168.121.61"

4. Setel nama host

Anda dapat menentukan nama host menggunakan config.vm.hostname pengaturan di Vagrantfile.

Edit Vagrantfile di editor pilihan Anda dan tambahkan/ubah baris berikut:

config.vm.hostname = "myhost.ostechnix.example"

Simpan dan tutup file. Definisi di atas akan menambahkan myhost.ostechnix.example baris di /etc/hosts berkas.

Mulai ulang Vagrant VM untuk menerapkan perubahan.

Verifikasi apakah nama host diubah:

[[email protected] ~]$ hostname -f
myhost.osechnix.example

Anda juga dapat langsung memeriksa isi /etc/hosts berkas.

$ cat /etc/hosts

Contoh keluaran:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.1.1 myhost.osechnix.example myhost

5. Aktifkan beberapa opsi jaringan

Setiap opsi jaringan memiliki kelebihan dan kekurangannya sendiri. Untuk beberapa alasan, Anda mungkin ingin mengonfigurasi semua opsi jaringan ke satu VM. Jika demikian, Vagrant memiliki kemampuan untuk mengaktifkan beberapa opsi jaringan. Yang harus Anda lakukan hanyalah menentukan opsi jaringan satu per satu di Vagrantfile seperti di bawah ini:

config.vm.hostname = "myhost.ostechnix.example"
config.vm.network "forwarded_port", guest: 80, host: 8080, auto_correct: true
config.vm.network "private_network", ip: "192.168.121.60"

Saat Anda membuat VM baru dengan Vagrantfile ini, gelandangan akan membuat VM dengan detail jaringan berikut:

  • tetapkan hostname sebagai myhost.ostechnix.example
  • mengonfigurasi penerusan port
  • mengonfigurasi pribadi dengan IP statis 192.168.121.60

Selain mengonfigurasi beberapa jenis jaringan, kami juga dapat menentukan beberapa jaringan. Misalnya, Anda dapat menentukan beberapa jaringan khusus host dengan alamat IP yang berbeda seperti di bawah ini.

config.vm.network "private_network", ip: "192.168.121.60"
config.vm.network "private_network", ip: "192.168.121.61"

Semoga ini membantu. Pada tahap ini, Anda mungkin sudah mendapatkan ide dasar tentang jenis jaringan Vagrant dan cara mengkonfigurasi jaringan di Vagrant dari baris perintah. Ada lebih banyak untuk dipelajari. Saya menyarankan Anda untuk melihat dokumentasi Vagrant resmi untuk konfigurasi yang lebih detail.


Linux
  1. Cara Menginstal Vagrant di Linux

  2. Cara Mengatur Tunneling SSH

  3. Cara Mengonfigurasi Firewall UFW di Ubuntu 18.04

  1. Cara Mengubah Port SSH Di Linux

  2. Cara Menginstal Vagrant Di Linux

  3. Kehabisan port jaringan Linux

  1. Cara Mengkonfigurasi Jaringan IP dengan Perintah nmcli di Linux

  2. Cara Mengubah Port SSH di VPS

  3. Cara mengkonfigurasi iptables agar port yang tidak diinginkan tidak dilaporkan sebagai difilter