Tutorial Caranya Pindah Server Linux ke Linode!

Yey, hari pindahan tiba. Dari Hetzner, kita akan pindah ke MacMiniVault (Sub CyberLynk.net), tapi karena server dari MMV ternyata belum jadi, kita harus pindah sementara deh ke Linode.

Kenapa fokus Linode? Karena Linode tidak pakai partition table. Jadi agak beda dengan kalau kamu restore ke kebanyakan cloud provider lainnya, atau malahan VirtualBox / VMware.

CATATAN : Tutorial ini hanya fokus untuk server dengan 1 partisi /, tidak dibagi untuk /home atau kawan kawannya. Karena kalau kamu sudah ngerti bagi partisi, HARUSNYA kamu tidak butuh tutorial ini.

serverpilot@rinaldo-server1:~/apps/rinaldo/public$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           789M  1.1M  788M   1% /run
/dev/sda1       1.8T  149G  1.6T   9% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
tmpfs           789M     0  789M   0% /run/user/0

Kalau dicek, berapa disk digunakan? Ternyata, 150GB. Pilihan kita ga banyak deh. 🙁
Untungnya, dapat free credit nih. Masih dapat Linode 8GB, dengan disk 160GB.

Ini harusnya bisa disesuaikan dengan cloud provider apa yang kamu pakai, tapi instruksi disini akan lebih fokus ke Linode.

Bikin Linode baru deh, yang kira kira bakal muat server lama.

Ini deh.

Lokasi? Singapore, biar dekat kerumah. OS Image juga kaga ngaruh. Toh mau restore kan? Password dan kawan kawannya juga asal jadi aja.

Setelah jadi, langsung masuk ke Recovery Mode / Rescue.

Tuh menu rescue ada di sebelah kanan.

Akan muncul menu seperti ini. Masuk deh.

Setelah itu langsung klik Reboot into Rescue Mode.

Kalau kamu di Linode, kamu bisa masuk Console dengan klik “Launch LISH Console” yang ada di atas, dan harusnya gak ada passwordnya. Kalau kamu di hosting lain, bisa disesuaikan, siapa tau kamu punya akses recovery itu harus pake SSH dan root password.

Walau ini di browser, disini bisa copy paste loh.

Kalau kamu pernah backup server ke Google Drive, kamu bisa baca dibawah ini. Kalau enggak, lanjut ke 1.2.

1.1 Kalau Kamu punya backup server rootfs.tar.gz di Google Drive …

kamu perlu install rclone di recovery OS mu. Nih tutorialnya.

Lanjut, kamu harus pastiin kamu udah mount disk baru mu. Tadi diatas, dia bilang /dev/sda kan buat Debian xxx? Coba di mount.

Cek dulu /mnt emang kosong.

root@finnix:/# ls /mnt
root@finnix:/#

Kalau dia ga kosong, mkdir ntah dimana (misalnya mkdir /mnt2) lalu ganti semua command dibawah dari /mnt ke /mnt2.

Lalu …

root@finnix:/# mount /dev/sda /mnt
root@finnix:/# cd /mnt
root@finnix:/mnt# ls
bin   home            lib32       media  root  sys  vmlinuz
boot  initrd.img      lib64       mnt    run   tmp  vmlinuz.old
dev   initrd.img.old  libx32      opt    sbin  usr
etc   lib             lost+found  proc   srv   var
root@finnix:/mnt# 

Ini gila sih, ga ada tabel hard disknya. Tapi gapapa. Hajar aja.

Delete semuanya. rm -rf /mnt/*

root@finnix:/mnt# rm -rf /mnt/*
root@finnix:/mnt# ls
root@finnix:/mnt#

Oke dia sudah kosong lagi.

Sekarang, cek di Google Drive kamu, dimana kamu nyimpan backup? Dan backupmu bentuk apa? rootfs.tar.gz kah? atau dd image *.img.gz?

1.1.1 Kalau backupmu berupa rootfs.tar.gz

Catat dulu dia ada di folder mana. Backup terakhirku ternyata ada disini.

Berarti ada di drive:pvebackup/20220126/rootfs.tar.gz, tapi sebelumnya back 1 folder, siapa tau ada yang double folder name. Delete dulu salah satu yang bukan isi backup.

Pastiin rclone udah ketemu file yang benar pake rclone ls.

root@finnix:/mnt# rclone ls drive:pvebackup/20220126/
90183832278 rootfs.tar.gz

Gunakan screen, supaya kalau SSH atau Console mu terclose, dia tidak terexit. Ketik aja screen lalu enter. Disaat kamu tak sengaja nanti terclose, kamu bisa attach ulang dengan ketik screen -dR. Biasanya pada rescue console, screen sudah terinstall.

Pastikan kamu sudah ter-cd di direktori tempat kita nge-mount partisi tadi. Kalau iya, kamu bisa extract tar dari Google Drive kamu dengan command rclone cat <config_name>:<file_name> | tar vzxf -

root@0:/mnt# rclone cat drive:pvebackup/20220126/rootfs.tar.gz | tar vzxf -
etc/apm/event.d/20hdparm
etc/mysql/
etc/mysql/my.cnf
etc/mysql/debian.cnf
etc/mysql/debian.cnf-5.7
etc/mysql/mysql.conf.d/
etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf
etc/mysql/mysql.conf.d/mysqld.cnf
etc/mysql/mysql.conf.d/mysqld.cnf.dpkg-dist
etc/mysql/conf.d/
...

Dia akan extract isi tar mu. Ini tinggal makan siang aja dulu. Kalau banyak, mungkin sampai makan malam.

1.2 Kalau misalnya sumber backup masih online …

Nah, misalnya server sumber backup kamu masih ON, kamu bisa “rapiin” sebagian file pake rsync, biar dia makin sinkron. Kalau gak, bagian ini dilewatin aja. Atau kamu bisa lewatin semua diatas, dan langsung ngambil ke server yang sedang online.

Commandnya : rsync -avz root@<old_server>:/ ./ --exclude=/dev --exclude=/proc --exclude=/run --exclude=/sys --delete-after (karena kita kan udah di cd di direktori kerja sebelumnya)

root@0:/mnt# rsync -avz root@xxxx:/ ./ --exclude=/dev --exclude=/proc --exclude=/run --exclude=/sys --delete-after 
The authenticity of host 'xxxx (xxx.xxx.xxx.xxx)' can't be established.
                                                                                ECDSA key fingerprint is SHA256:/xxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'xxxxxxxx' (ECDSA) to the list of known hosts.
root@xxxx's password: 
...

Aku saranin sih, rsync agak 3-4 kali, supaya semua file yang terbaru. Karena rsync cuma ngambil file yang ke-edit, dan dalam command diatas, mendelete yang udah gak ada lagi di server lama.

1.3 Sekarang kita perbaiki /etc/fstab.

Kita perlu ngambil block ID nya partisi yang kita mount sekarang. Di contoh disini, /dev/sda.

root@0:/mnt# blkid /dev/sda
/dev/sda: LABEL="linode-root" UUID="d7c19195-91a6-a926-8903-9b80543d49ea" BLOCK_SIZE="4096" TYPE="ext4"

Catat UUID nya, lalu edit /mnt/etc/fstab. Gunakan nano /mnt/etc/fstab.

Seharusnya setelah ini rebuild bootloader, lalu reboot. Tapi Linode tidak ada bootloadernya.

1.4 Bagian sini, khusus Linode. Perbaiki Network dan Kernel.

Kamu perlu masuk ke halaman Configurations lalu Edit.

Apa yang diedit? Pastikan Kernel ada di “Latest 64 Bit”, lalu Block Device Assignment, matikan swap di /dev/sdb.

Setelah itu save changes, lalu Boot.

Lalu kembali ke Lish. Klik Launch LISH Console di ujung. Seharusnya sih, kalian sudah nyangkut di Login prompt. Login, lalu reboot, lalu masuk lagi Console. Lakukan beberapa kali.

Ubuntu 18.04.6 LTS rinaldo-server1 ttyS0

rinaldo-server1 login: 

Setelah login sebagai root, coba cek jaringan menggunakan ip addr | more. Kenapa pakai more? Supaya seandainya ada “sisa-sisa” konfigurasi jaringan dari server sebelumnya, kita bisa “next page” dan tidak ada yang tenggelam.

Perhatikan ada yang ethX atau enpXsX, dimana X adalah angka.

(base) root@rinaldo-server1:~# ip addr | more
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group defaul
t qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1
000
    link/ether 6e:63:be:e3:f1:4d brd ff:ff:ff:ff:ff:ff
3: enp0s3: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen
 1000
    link/ether f2:3c:93:56:08:5f brd ff:ff:ff:ff:ff:ff
4: teql0: <NOARP> mtu 1500 qdisc noop state DOWN group default qlen 100
    link/void 
5: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
6: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN group default qlen 1000
    link/gre 0.0.0.0 brd 0.0.0.0
7: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group defa
ult qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
8: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1450 qdisc noop state DOWN group defa

Contoh diatas, bisa dilihat ada enp0s3 dalam keadaan DOWN. Berarti, network nya masih salah konfigurasi. Kita akan konfigurasi enp0s3 supaya dapat IP lewat DHCP, alias otomatis.

Edit /etc/network/interfaces. Kalau aku, biasa pakai nano. Lalu tambahkan line ini di paling bawah.

allow-hotplug enp3s0
iface enp3s0 inet dhcp

Setelah itu, gunakan ifup enp0s3.

(base) root@rinaldo-server1:~# ifup enp0s3
Internet Systems Consortium DHCP Client 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/enp0s3/f2:3c:93:56:08:5f
Sending on   LPF/enp0s3/f2:3c:93:56:08:5f
Sending on   Socket/fallback
DHCPDISCOVER on enp0s3 to 255.255.255.255 port 67 interval 3 (xid=0x5e8677c)
DHCPREQUEST of 139.162.18.48 on enp0s3 to 255.255.255.255 port 67 (xid=0x7c67e8)
DHCPOFFER of 139.162.18.48 from 103.3.60.31
DHCPACK of 139.162.18.48 from 103.3.60.28
/etc/resolvconf/update.d/libc: Warning: /etc/resolv.conf is not a symbolic linkf
bound to 139.162.18.48 -- renewal in 38229 seconds.

Sudah? Ya sudah, coba reboot lagi. Harusnya jaringan sudah otomatis jalan.

Setelah itu, selesai! Kamu sudah pindah ke Linode! Sekarang saatnya ganti IP di DNS resolvermu, misalnya CloudFlare.

Share Button
Published
Categorized as Tutorial

By Rinaldo Jonathan

Admin of this site. Artis papan PCB. #zoneRinaldo #Controllerism Studio Demon, Stage Angel, Sleepy Developer, Smoke free. Kalkud SHS 2012, PCR G15.

Leave a Reply

Verified by ExactMetrics