Cara Mengubah Hostname Instance VM GCE

Seberapa penting sebuah hostname atau nama mesin untuk anda? Jika anda bukan orang yang bergelut dibidang postmaster mungkin hostname hanya menjadi pelengkap, tidak lebih hanya "sebuah nama".

Bagi postmaster (bukan saya, tentunya) nama mesin sangat berati untuk keberlangsungan sistem mail yang tengah dibangunnya. Karena FQDN (full qualified domain name) sangat berperan penting dalam siklus mail server.

Menurut Servernesia [1], FQDN sendiri merupakan sistem penamaan yang valid untuk sebuah mesin yang menentukan lokasi pastinya pada suatu hirarki DNS (domain name server/system).

Artikel ini membahas bagaimana cara mengubah nama mesin pada Instance VM Google Compute Engine (GCE). Khusus bagi anda yang sudah membuat instance VM.

Cara 1 - Mengubah Nama Mesin di GCE


Agar mesin instance VM di GCE anda dapat diubah nama mesinnya, yang perlu dilakukan adalah mengubah data dari metadata.

[caption id="attachment_536" align="alignnone" width="893"] Gambar 1. Instance VM di dasbor Compute Engine[/caption]

Buka konsol Google Cloud anda, kemudian arahkan ke dasbor Instance VM, seperti gambar diatas. Kemudian klik nama Instance VM-nya.

[caption id="attachment_537" align="alignnone" width="849"] Gambar 2. Halaman detail dari Instance VM[/caption]

Anda akan diarahkan ke halaman detail Instance VM yang anda klik tadi. Pada posisi ini, klik menu Edit.

[caption id="attachment_543" align="alignnone" width="818"] Gambar 3. Bagian untuk mengedit data Metadata[/caption]

Setelah halaman pengeditan terbuka, gulirkankan halaman hingga anda menemukan bagian Metadata khusus (dalam bahasa Indonesia). Isikan data berupa hostname pada form pertama kemudian mesin.example.id pada form kedua. Gulirkan kembali halaman kebawah kemudian klik tombol simpan.

Setelah mengubah data dari metadata, selanjutnya adalah menerapkan perubahan tersebut pada mesin Instance VM anda.

Akses mesin Instace VM anda dengan SSH. Setelah berhasil, jalankan perintah berikut untuk memastikan apakah metadata yang sudah anda tulis tadi sudah terbaca oleh sistem GCE atau belum.
curl --silent "http://metadata.google.internal/computeMetadata/v1/instance/attributes/hostname" -H "Metadata-Flavor: Google"

Jika jawaban dari perintah diatas adalah seperti ini:
hostname mesin.example.id

Maka anda sudah berhasil mendaftarkan metadata untuk nama mesin anda. Selanjutnya, mari kita buat perubahan tersebut seolah-olah permanen dengan membuat penjadwalan khusus ketika anda menginginkan reboot.

Buatlah penjadwalan otomatis yang aktif ketika anda melakukan reboot pada crontab dengan perintah berikut:
sudo env EDITOR=nano crontab -e

Setelah editor nano membuka berkas konfigurasi crontab, tambahkan baris perintah berikut ini di baris paling bawah:
@reboot hostname $(curl --silent "http://metadata.google.internal/computeMetadata/v1/instance/attributes/hostname" -H "Metadata-Flavor: Google")

Simpan perubahan berkas crontab. Cobalah merestart Instance VM anda, ketika anda mengaksesnya kembali, anda akan menemukan nama mesin yang sudah disesuaikan.

Cara 2 - Mengubah Nama Mesin di GCE


Saya sudah menerapkan cara pertama, namun ketika saya mengakses instance VM saya kemudian hari, nama mesin berubah seperti sedia kala. Jika anda mengalaminya juga, mari kita coba cara kedua ini.

Buka kembali dasbor Instance VM anda, kemudian hapus metadata yang sebelumnya sudah anda isikan (gambar 3) agar tidak terjadi tumpukan metadata yang sama. Simpan perubahan anda dan kembali ke halaman utama Instance VM.

[caption id="attachment_547" align="alignnone" width="840"] Gambar 4. Ikon konsol Google Cloud Shell[/caption]

Cara kali ini kita memanfaatkan fungsi dari gcloud shell, sebutan konsol yang dimiliki GCP. Klik ikon gcloud shell (ikon kursor). Setelah shell terbuka, berikut ini format perintah yang digunakan untuk menambahkan metadata pada Instance VM:
gcloud compute instances add-metadata <nama-instance> –-zone <zona-instance> -–metadata startup-script='#! /bin/bash hostname <hostname>'

Jika diketik lengkap pada gcloud shell, maka perintah tersebut menjadi seperti ini:
gcloud compute instances add-metadata instance-2 –-zone us-east1-b -–metadata startup-script='#! /bin/bash hostname mesin.example.id'

Setelah mengeksekusi perintah di atas pada gcloud shell, pastikan anda mendapatkan balasan berupa baris pembaruan, seperti dibawah ini:
Updated [https://www.googleapis.com/compute/v1/projects/core-guard-211712/zones/us-east1-b/instances/instance-2]

Selanjutnya akses Instance VM anda dengan SSH. Setelah berhasil, masuklah sebagai root dengan perintah berikut:
sudo su

Perbarui perintah penjadwalan otomatis pada crontab yang sebelumnya telah anda lakukan.
crontab -e

Lalu perbarui baris @restart menjadi seperti ini (tidak perlu menhapus semuanya, perbarui saja bagian-bagian yang penting):
@reboot hostname $(curl --silent “http://metadata.google.internal/computeMetadata/v1/instance/attributes/hostname” -H “Metadata-Flavor: Google”)

Jangan lupa untuk menyimpan perubahan yang telah anda lakukan. Selanjutnya buat pengaturan startup pada mesin anda, agar menjalankan perintah tertentu saat anda memuat ulang mesin anda.

Secara default, pada distribusi turunan Debian, kita dapat mengatur perintah yang dapat dieksekusi secara otomatis saat mesin dimuat ulang pada berkas rc.local, namun pada kasus Instance VM, berkas tersebut tidak ada, sehingga kita harus melakukan konfigurasi agar baris perintah yang kita simpan di rc.local dapat dieksekusi oleh sistem.

Buat berkas rc.local dengan perintah berikut (anda harus menggunakan hak akses root sepenuhnya, bukan dengan perintah sudo):
cat <<EOF >/etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0
EOF

Kemudian rubah hak aksesnya agar dapat dieksekusi
chmod +x /etc/rc.local

Anda harus memuat ulang daemon pada sistem anda agar dapat membaca segala pembaruan yang akan anda diterapkan.
systemctl daemon-reload

Setelah memuat ulang daemon, sistem kini telah membaca pengaturan baru yang anda terapkan, yaitu rc.local, sistem telah mengenalinya sebagai sebuah service baru. Agar service tersebut benar-benar dapat dieksekusi oleh sistem, silahkan jalankan dengan perintah berikut:
systemctl start rc.local

Nah, saat ini sistem anda telah mengenali serta dapat mengeksekusi service dari rc.local. Anda dapat memeriksa status layanan tersebut dengan perintah berikut:
systemctl status rc.local

[caption id="attachment_549" align="alignnone" width="810"] Gambar 6. Layanan rc.local telah berjalan[/caption]

Sampai pada langkah ini anda dapat mengujinya dengan merestart Instance VM anda dan mengaksesnya kembali via SSH.

Sumber


[1] https://servernesia.com/2811/apa-itu-fqdn/

https://stackoverflow.com/a/48151928

https://rafishaikblog.wordpress.com/2017/07/15/how-to-make-hostname-permanent-on-google-cloud-engine-gce/

https://stackoverflow.com/a/44801337

Komentar

Postingan populer dari blog ini

Implementasi IPv6 TunnelBroker untuk Server WordPress Self Host

Daftar Rekomendasi Repositori Lokal Debian 11 "Bullseye"

Koneksi Internet Bermasalah di Ubuntu 18.04, Berikut Cara Memperbaikinya