Friday, October 14, 2016

Solusi VM Tidak dapat Terhubung(Unreachable, VM ↔ HOST = nihil) ++ Cerita Training

       Sejak awal Training di IDN Semarang, Aseptilena sangat bersemangat untuk mengikuti segala prosedur yang ada. Di hari pertama, semua materi tak mau ia lewatkan. Maklum, selain karena izin tidak masuk kuliah, ia juga masih sangat-sangat pemula di server GNU/Linux yang salah satu platformnya itu Ubuntu. Hari itu banyak materi dicatat, tapi karena sangat banyak, jam 12an malam baru bisa di-publish pada blog linuxinaja.blogspot.com. So, hari pertama dilewati dengan cukup baik, walaupun masih ada yang kurang.
Namun demikian, setelah hari kedua, semangat Aseptilena mulai menurun, dikarenakan overload pemikiran(masih memikirkan tugas kuliah, membuat paper dan presentasi). Jadi hari kedua otak mulai menunjukkan badai ekstrimnya, baik tugas kuliah maupun post di blog belum bisa diselesaikan. Meskipun begitu, beberapa catatan materi sudah terekam dengan text editor.
Di hari yang sama, badai mulai bertambah karena materi yang dibahas menimbulkan masalah tersendiri pada laptop Aseptilena, Si Lenny T420, Si Tebal 14 inch. Masalahnya ialah pengaturan jaringan atau network, bisa juga disebut koneksi dari mesin virtual yang ada di virtualbox. Secara umum, para peserta menggunakan mode “bridge” di mana laptop masing-masing akan memiliki alamat IP yang satu jaringan dengan Wifi atau AP(Access Point) tersedia di IDN Semarang. Mode “bridge” ini” belum dapat memberikan kenyamanan dalam hal koneksi internet dan stabilitas atau ketetapan alamat IP, karena bisa jadi suatu saat akan berubah saat access point berubah, baik pengaturan maupun perangkatnya. Di sisi lain, kebanyakan peserta mode ini cukup memberikan kesederhanaan dalam pengaturan IP Address, karena cukup sekali pengaturan saja, selanjutnya otomatis.
Nah, pada laptop Aseptilena sendiri ada yang cukup spesial. Menurut Aseptilena koneksi yang jauh lebih reliable atau dapat diandalkan adalah NAT dan Host Only Adapter. NAT sendiri adalah mode yang membuat Host(Laptop) menjadi layaknya sebuah penyedia layanan internet ataupun router. Jadi alamat IP mesin virtual akan  secara otomatis beda jaringan dengan Wifi dan Laptop. Sebagai contoh:
IP Address Laptop : 192.168.1.15
Network Access Point : 192.168.1.0
IP Address Virtual Machine : 10.0.2.15
Network Virtual Machine : 10.0.2.0
Secara teknis, si VM dapat terhubung ke internet selama ada koneksi pada laptopnya, tapi tidak terbatas pada koneksi apa, bahkan lebih jauh dapat dibuat load balancing di Laptop untuk dua koneksi internet(menggunakan dispatch-proxy{hanya http yang didukung} atau haproxy{bisa http maupun https}). Dengan begitu, “NAT” menjadi solusi yang lebih baik dibandingkan “bridge”. Meskipun begitu, NAT memiliki kelemahan di sisi fleksibilitas akses. Secara default atau bawaan, ia hanya mengijinkan akses ke luar dari VM. Jadi akses ke dalam VM tidak dibolehkan sama sekali. Kalaupun bisa, diharuskan pengaturan lebih lanjut di firewall atau iptables maupun port forwarding(belum dibahas semuanya di Training, mungkin nanti ++ sama mas Andri Muhyidin di Jogja, hehe). Ya, intinya sulit untuk mengandalkan NAT jika ingin ber-ssh atau remote login ke VM dari laptop, padahal lebih nyaman kalau bisa. (dispatch-proxy dan haproxy update info hari ke 6)
Mode lain yang Aseptilena coba adalah Host Only Adapter, si interface khusus yang bisa menghubungkan si Laptop dengan VM. Secara default, ia memfasilitasi Host(laptop) untuk bisa akses ke VM dan dengan plihan mode “static” maupun “DHCP”. Pilihan utama Aseptilena jatuh pada mode static, di mana contoh pengturannya:
IP Address Laptop(iface : wifi/wireless adapter): 192.168.1.15; IP Address Laptop(iface: vboxnet0): 10.10.10.2;
IP Address VM(iface: eth0): 10.10.10.1;  Gateway di iface eth0 diarahkan ke IP Address 10.10.10.2.
Dengan menggunakan pengaturan tersebut, Aseptilena berhasil memfasilitasi akses dari Laptop ke VM. PING oke, SSH oke, FTP juga oke, selama ada layanannya di VM (Ubuntu Server).
Hari kedua selanjutnya dilewati dengan troubleshooting pengaturan di virtualbox, sebenarnya termasuk hari ke 4 sampai ke 5, dengan materi yang sudah mulai masuk DNS server, Mail Server dengan Zimbra, FTP server, NTP Server(Sinkronisasi Waktu Server-Client atau Server-Server) oleh mas Andri Muhyidin, juga “Proxmox Virtualization” oleh mas Candra Milad (sebenarnya ada juga materi tambahan konfigurasi firewall iptables oleh mas Hugo). Saat itu, otak kian berbadai karena bertumpuk dengan tugas kuliah yang belum selesai dan deadline-nya sudah mengkiritis, ahahaha gagal fokus.
Pada pembahasan DNS server, Aseptilena mengalami masalah tambahan, masih berkutat pada pengaturan jaringan di virtualbox. Awalnya pengaturan DNS bisa dicapai dengan baik, namun pada sesi ke 2 atau 3 masalah timbul karena pengaturan yang sudah fix tiba-tiba tidak dapat bekerja.(Panic Mode : ON) Struggling dengan masalah ini, Aseptilena berusaha sekuat tenaga untuk menyelesaikannya, mulai dari browsing dan searching sampai pada coba-coba hal baru. Masalah sementara dapat diatasi dengan menambah adapter NAT pada VM. Jadi ada dua interface yang aktif, yaitu NAT dan Host Only Adapter.
Terkait pengaturan alamat IP-nya, seperti ini contohnya:

IP Address Laptop (iface: wlp3s0) : 192.168.1.15
Network Access Point (iface: wlp3s0) : 192.168.1.0

IP Address Virtual Machine (iface: eth0[dengan/dari NAT]) : 10.0.2.15
Network Virtual Machine (iface: eth0[dengan/dari NAT]) : 10.0.2.0

IP Address Virtual Machine (iface: eth1) : 10.10.10.254
Network Virtual Machine (iface: eth1) : 10.10.10.0 

NB: untuk NAT, alamat IP didapatkan dari DHCP otomatis.

Dengan demikian peran si NAT menjadi jalur akses internet ke luar mesin virtual, sedangkan si Host Only Adapter bertindak sebagai gerbang akses ke mesin virtual dari dunia luar termasuk HOSTnya sendiri alias is Laptop.  O ya, solusi ini baru ketemu setelah memaksakan Host Only Adapter sampai pada titik maksimalnya untuk bisa terkoneksi dua arah, modal pribadi, karena rekan-rekan yang lain termasuk para fasilitator sangat sibuk dengan materi dan troubleshooting dari materi yang aktual atau saat itu.
Pada hari kedua akhir, saat mulai nge-lab Mail Server dengan Zimbra, Aseptilena berkesempatan secara langsung bertemu dengan salah satu artis di bidang IT dan ilmu komputer. Ia lah yang biasa disebut “BUG”, kalau kena ini rasa seperti tubuh mengeluarkan bunyi ma’gedeBUG(pakai ‘AIN, biar joss, hehe). Indikasi awal terlihat pada virtualbox yang tersisa dari konfigurasi/pengaturan yang lalu dengan NAT dan Host Only Adapter. 
Si Mesin Virtual tidak lagi menunjukkan tersedianya koneksi antara dirinya dengan Si Laptop, bahkan lebih jauh dirinya, laptop dan internet (Wah, kayak Kuche-kuche Hota He). PING dari VM ke HOST tak bisa(saya lupa, sama Mas Chandra kayaknya dibantuin troubleshooting, bisa jadi bisa), PING dari HOST ke VM tak bisa dan PING dari VM ke internet tak bisa. So, Aseptilena sedikit merasa frustasi dan bingung. Walaupun begitu, mas Candra akhirnya memberikan solusi untuk migrasi ke mode Bridge dan ”It Works”, alhamdulillah.
Akhirnya setelah itu Aseptilena bergerak dengan menuju finishing instalasi zimbra. Nah, bersamaan dengan itu, terjadi juga troubleshooting global untuk instalasi zimbra dengan Mas Andri Muhyidin sebagai fasilitatornya. Zimbra yang diunduh dan dibagikan ternyata tidak compatible dengan ubuntu server 16.04 yang digunakan. Sudah berbuat banyak di situ, termasuk menyelesaikan dependensi paket yang belum terpenuhi untuk install zimbra, hasilnya ternyata belum cukup memuaskan. Dengan kata lain troubleshooting zimbra ini gagal, tapi setidaknya masih ada solusi lain yaitu install ulang ubuntu server 14.04 (yang dijamin kompatibel dengan zimbra versi 8.6 yang tersedia) di VM baru atau download sekaligus install zimbra versi 8.7 untuk ubuntu 16.04.
Aseptilena sendiri beserta beberapa rekan lain termasuk Riswan(dari Univ. Gunadharma) memilih untuk menyalin file instalasi zimbra 8.7 tersebut dari salah seorang rekan training, kalau tidak salah Hardiyan dari Polines Semarang. Dengan demikian dimulailah percobaan instalasi zimbra mail server pada ubuntu server 16.04 yang ada di VM virtualbox.
Pada instalasi ini Aseptilena menemui sebuah kejanggalan, yaitu instalasi terasa sangat lama, tidak seperti progress yang ditunjukkan oleh zimbra versi 8.6. Ditunggu 1 jam-an(bukan satu zaman ya...^_^) belum kelar-kelar juga.“This is stuck”, kalau kata saya, islaminya Subhaanallah. Tidak mau berlama-lama dengan penantian ini, Aseptilena langsung melakukan eksekusi dengan jagal “Ctrl+C”(kalau gagal, repeat alias ulang pejet-nya). Okelah, saat itu Aseptilena menyerah pada si Zimbra ini dan memilih alternatif kedua.
Pilihan kedua, yaitu instalasi ubuntu server dengan VM baru dan instalasi zimbra versi 8.6 berhasil diselesaikan dengan baik. Namun demikian, yang namanya masalah selalu ada dan silih berganti. Aseptilena belum dapat mengakses si Zimbra dengan DNS yang telah ditetapkan pada pengaturan lewat CLI atau mode teks. Ceritanya, Aseptilena mengaturnya dengan nama domain lokal “mail.aseptilena.lan”, namun setelah diakses lewat web browser di HOST, tidak bisa terhubung. 
Dengan keadaan itu, Aseptilena akhirnya melakukan trobleshooting pribadi sampai malam hari, jadi tidak fokus dengan materi dan posting di blog. Sebenarnya Aseptilena melakukan itu karena tidak enak dengan fasilitator, kan harus mengurusi semua orang. Paling tidak berkurang lah masalahnya dari satu orang, walaupun Aseptilena sendiri yang akhirnya merasakan self-dizzy alias pusing pribadi.  SemangKa, Semangat Kakak…!!!
Pada hari ketiga, akhirnya Aseptilena berhasil menemui kebenaran yang ternyata pengaturan DNS belum benar alias salah. Kesalahan Aseptilena terletak pada tanda “;” yang ada pada pengaturan forwarder dan resolver DNS. Begini contohnya:
berkas → /etc/bind/named.conf.local
#Zona Forward
zone "aseptilena.lan" {
        type master;
        file "/etc/bind/zona/fw.rb";
};
#Zona Reverse
zone "10.10.10.in-addr.arpa" {
        type master;
        file "/etc/bind/zona/rs.db";
};
Kesalahan Aseptilena ternyata terletak pada “;” yang ada setelah tanda kutip dobel. Simpel, tapi past tense(kalau kata Bang Andre dan Mbak siapa gitu, lupa), kalau kata saya Simpel tapi Signifikan.
Alhamdulillah, akhirnya bisa juga ikutan ngelab ntp server dan ftp server disambi menyelesaikan masalah pribadi, walaupun tidak terlalu fokus, karena masih lelah dengan troubleshooting pribadi. Harus reset otak dulu sepertinya, hehe. Di siang hari barulah Aseptilena merasa sedikit fresh karena masalah DNS sudah solved di pagi hari sampai jam 11an saat sesi pertama hari ketiga.
Di siang harinya, kami belajar terkait dasar instalasi mode teks atau CLI untuk Server Web. Pemateri saat itu adalah Mas Hugo. Aseptilena sendiri sedikit nyaman dengan materinya, namun ternyata masih ada sedikit troubleshooting secara umum, terkait dengan paket-paket instalasi server web. Pada dasarnya cukup instalasi paket apache2 untuk bisa mengakses web server, namun jika ingin menjalankan web app populer untuk manajemen basis data relasional( phpmyadmin ), perlu instalasi beberapa paket tambahan.
sudo apt-get install apache2
sudo apt-get install phpmyadmin php mysql
sudo apt-get install php php-cgi libapache2-mod-php php-common php-pear php-mbstring
NB : pada baris kedua itu perintah instalasi paket tambahan agar phpmyadmin tidak kacau tampilannya alias bisa ditampilkan dengan baik.
Pada sore harinya, training memasuki sesi tambahan, yaitu pembahasan dadakan terkait pengaturan firewall iptables untuk manajemen akses di server. Setidaknya yang tercatat oleh Aseptilena adalah beberapa hal berikut.
iptables -A INPUT -i enp0s3 -p tcp --dport 22 -j DROP →  ditutup semua, untuk port 22 alias SSH

iptables -A INPUT -i enp0s3 -p tcp --dport 22 -j ACCEPT →  dibuka semua, untuk port 22 alias SSH juga

NB : Secara default, semua port selalu terbuka.

iptables -L →  melihat list dari iptables atau tabel akses

iptables -F →  menghapus rules, di VM langsung saat network tertutup

iptables -A INPUT -i enp0s3 -p tcp --dport 22 -j DROP -n 10.10.10.1/24

Untuk dijalankan setiap startup...
dimasukkan ke /etc/rc.local

-A OUTPUT →  iface ke luar, server ke luar

iptables -A OUTPUT -o enp0s3 -p icmp -j DROP  → interface di dalam tidak bisa PING ke luar

-s →  subnet →  10.10.10.0/24

iptables -t nat -A PREROUTING -p tcp --dport ... -j DNAT --to-destination IP_Address

-A POSTROUTING → opsi lain, digunakan saat mengatur akses dari dalam jaringan, kebalikan dari PREROUTING yang mengatur akses dari luar jaringan atau di cloud.
Satu pesan dari Mas Hugo “Berbeda kernel atau versi bisa membuat masalah yang aneh, seperti tidak stabil atau jaringan tidak normal.”
Setelah itu, ba’da maghrib dan ba’da isya, materi dilanjutkan dengan pengenalan proxmox kalau tidak salah, untuk persiapan besok pagi harinya juga. Sedikit ulasan tentang proxmox yang Aseptilena ingat dari materinya,

PROXMOX, kenalan Dulu
Berikut beberapa hal terkait proxmox yang di-share oleh Mas Candra.
Cloud Computing Pertama kali → 50' - 90'
Tipe dari cloud : Public - Private - Hybrid
Proxmox = Virtual Environtment
distro debian based
Text & Web Based
support KVM dan OpenVZ

Kelebihan
- OpenSource
- Mudah config
- mendukung platform virtualisasi
- hardisk virtual
- minimalis dan powerful, resource yang relatif kecil
- auto backup
- Cluster atau High Availability Server

Kekurangan
- 64bit saja
- Menghapus seluruh hardisk saat install
- Jika menggunakan KVM -> butuh mobo/CPU yang support VT-x

Spesifikasi Minimum
- Pentium 4
- full virtualization -> intel VT / AMD V
- Hardisk 20 GB
- RAM 2GB

Langkah-langkah Instalasi
Membuat VM, mount ISO, boot.
Di options bagian pengaturan hardisk instalasi, bisa atur swap dll.
Pengaturan Network →  rekomendasi Bridge dan HostOnly
iface yang wajib dapat IP atau terhubung dengan Host: vmbr0
Instalasi cukup mudah(NB: gambar menyusul, masih dalam editing dan seleksi)
akses di web: https://IP:8006
Beberapa hal penting seputar Proxmox
Masalah “VM no accelerator” →  disable KVM pada pengaturan VM di bagian “options”
akses VM: klik tombol  “shell”-→ VNC
monitoring server tambahan
htop →  satu server saja
cacti -> ganda atau lebih dari satu -> referensi: buku Network Management System
windows guest, khususnya Xp butuh driver minimal ethernet adapter

Driver intel e1000

https://downloadcenter.intel.com/product/50459
https://downloadcenter.intel.com/download/22283/Intel-Ethernet-Adapters-Connections-CD?product=50459

https://downloadcenter.intel.com/search?keyword=Intel%c2%ae+Ethernet+Connections+CD
https://downloadcenter.intel.com/download/22283/Intel-Ethernet-Adapters-Connections-CD

https://drivers.suse.com/intel/Intel-e1000-e1000e/sle10-sp3/install-readme.html
https://drivers.suse.com/intel/Intel-e1000-e1000e/sle10-sp4/
https://drivers.suse.com/intel/Intel-e1000-e1000e/sle10-sp4/install-readme.html

VirtIO
https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers
https://pve.proxmox.com/wiki/Paravirtualized_Network_Drivers_for_Windows
https://packages.vmware.com/tools/esx/latest/windows/index.html?src=vmw_so_vex_fgreh_241
https://my.vmware.com/web/vmware/details?productId=491&downloadGroup=VMTOOLS1000

Gambar screenshot driver ethernet adapter yang tersedia di proxmox:
https://pve.proxmox.com/wiki/File:Screen-Network-Card-virtio.png

Realtek...
http://freedriveronline.blogspot.co.id/2012/01/network-card-realtek-rtl8139810x-family.html
http://stankopetric.blogspot.co.id/2014/04/vmware-esxi-55-realtek-8139-support.html
http://www.realtek.cz/realtek-download.php?realtek=RTL8139_810x&system=1
http://ccm.net/download/download-10041-realtek-rtl810x-rtl8130-rtl8139-driver-for-98-2000-xp
http://wallung.blogspot.co.id/2015/01/driver-win7-realtek-rtl8139810xrtl8130.html
http://www.indyarocks.com/blog/3433986/Realtek-Rtl8139-Drivers-Download*

OpenVZ Templates Download
https://sourceforge.net/projects/vztemplates/?source=directory

Berdasarkan pengujian, driver yang sudah bisa bekerja pada windows xp VM proxmox adalah realtek-rtl8139
Gambar menyusul… ya...
User Management di Proxmox
Kalau copas stuktur dari wiki resminya https://pve.proxmox.com/wiki/User_Management, beberapa hal yang perlu dibahas adalah sebagai berikut.(Termasuk juga yang dibahas pada pelatihan ini dan Aseptilena ingat).

Administrasi User di Proxmox

+ Group
Setiap user dapat menjadi anggota dari beberapa grup. Group merupakan metode yang cenderung dipilih untuk mengatur perizinan. Direkomendasikan untuk memberi perizinan pada group dibandingkan dengan user. Dengan demikian pengendalian akses menjadi lebih mudah dan cepat.

Authentication Realms / Wilayah Otentikasi
Pengguna-pengguna Proxmox VE ialah penyetaraan saja untuk pengguna yang ada pada beberapa wilayah eksternal, wilayahnya harus diatur/konfigurasi dalam /etc/pve/domains.cfg. Wilayah-wilayah berikut  (metode otentikasi) adalah yang  tersedia:

Linux PAM standard authentication
Dalam hal ini pengguna harus ada (seperti dibuat melalui perintah adduser) pada semua titik(node) di mana pengguna tersebut diizinkan untuk login/masuk, dan pengguna tersebut mengotentikasi dengan kata sandi sistem yang biasa. Contoh:
useradd heinz
passwd heinz
groupadd watchman
usermod -a -G watchman heinz

Proxmox VE authentication server
Ini merupakan sebuah penyimpanan password layaknya unix (/etc/pve/priv/shadow.cfg). Password  dienkripsi/dikodekan menggunakan metode hash SHA-256. Ini juga merupakan metode termudah untuk  installasi kecil(atau bahkan menengah) di mana pengguna tidak membutuhkan akses pada hal-hal di luar Proxmox VE. Dalam hal ini pengguna dikelola secara penuh oleh Proxmox VE dan dapat mengubah password mereka melalui GUI.

+ User
Users
Proxmox VE menyimpan atribut-atribut pengguna dalam /etc/pve/user.cfg. Password tidak disimoan di sini,  pengguna sebaliknya dihubungkan dengan wilayah otentikasi yang dijelaskan di bawah ini. Jadi seorang pengguna secara internal sering dikenali dari namanya dan wilayahnya dalam format <userid>@<realm>.
Setiap rekam pengguna dalam file ini memuat informasi sebagai berikut:
First name
Last name
E-mail address
Group memberships
An optional Expiration date
A comment or note about this user
Whether this user is enabled or disabled
Optional two factor authentication keys

System administrator
Pengguna utama(root) dari sistem selalu dapat masuk melalui wilayah Linux PAM dan merupakan administrator yang dibatasi. Pengguna ini tidak dapat dihapus, namun atribut-atribut masih dapat diubah dan surat-surat sistem akan dikirimkan ke alamat email yang ditetapkan untuk pengguna tersebut.

Roles
Sebuah peran ialah sebuah daftar hak. Proxmox VE memiliki sebuah nomor dari peran-peran yang telah ditetapkan sebelumnya dan memenuhi sebagian besar kebutuhan. 
Administrator: punya semua hak
NoAccess: tidak berhak (digunakan untuk melarang akses)
PVEAdmin: dapat melakukan sebagian besar hal-hal, namun kehilangan hak untuk memodifikasi pengaturan sistem ( Sys.PowerMgmt, Sys.Modify, Realm.Allocate).
PVEAuditor: akses hanya baca/lihat (read only)
PVEDatastoreAdmin: membuat dan mengalokasikan ruangan backup dan template.
PVEDatastoreUser: mengalokasikan ruangan backup dan melihat penyimpanan
PVEPoolAdmin: mengalokasikan pool
PVESysAdmin: AccessList pengguna, audit, konsol sistem dan catatan-catatan sistem
PVETemplateUser: melihat dan mengkloning template
PVEUserAdmin: administrasi user
PVEVMAdmin:  VM Administer penuh
PVEVMUser: melihat, backup, config CDROM, VM console, VM power management
Set dari peran yang telah ditetapkan sebelumnya di atas dapat dilihat pada GUI.
Penambahan peran baru hanya dapat dilakukan dari command line / CLI, seperti ini:
pveum roleadd PVE_Power-only -privs "VM.PowerMgmt VM.Console"
pveum roleadd Sys_Power-only -privs "Sys.PowerMgmt Sys.Console"

Permissions/Perizinan
Objects dan Paths
Perizinan akses  ditetapkan untuk objects, sepeti sebuah mesin virtual, penyimpanan atau sumber daya pool. Proxmox menggunakan sistem file seperti jalur/jalan untuk mengalamatkan objek-objek ini. Path-path tersebut membentuk sebuah pohon yang alami, dan perizinan dari tingkatan-tingkatan yang lebih tinggi (jalan terdekat) dapat  diperbanyak ke bawah secara opsional dengan hirarki ini.
Path dapat di-templatekan. Saat sebuah API memanggil membutuhkan perizinan pada sebuah templated path, jalur tersebut dapat memuat referensi ke parameter-parameter dari panggilan API. Referensi-referensi ini dikhususkan pada kurung kurawal. Beberapa parameter secara implisit diambil dari URI panggilan API. Misalnya jalur perizinan /nodes/{node} saat memanggil /nodes/mynode/status membutuhkan perizinan pada /nodes/mynode, saat jalur tersebut {path} di sebuah permintaan PUT ke /access/acl mengacu pada parameter jalur milik metodenya.
Berikut beberapa contohnya:
/nodes/{node}: Access to Proxmox VE server machines
/vms: Covers all VMs
/vms/{vmid}: Access to specific VMs
/storage/{storeid}: Access to a storages
/pool/{poolname}: Access to VMs part of a <<resource-pools,pool>
/access/groups: Group administration
/access/realms/{realmid}: Administrative access to realms

Pools
Sebuah perusahaan biasanya distrukturkan menjadi beberapa departemen yang lebih kecil, dan sudah umum bahwa anda ingin menetapkan sumber daya pada mereka dan mengirim tugas-tugas manajemen. Sebuah pool secara sederhana ialah seperangkat mesin virtual dan penyimpanan data.
Anda dapat membuat pool pada GUI. Setelah itu anda dapat menambahkan sumber daya ke pool tersebut.(VM, Storage) Anda juga dapat menetapkan perizinan untuk pool tersebut. Perizinan tersebut diturunkan ke semua anggota pool.
Mari kita asumsikan anda punya sebuah departemen pengembangan software, jadi kita pertama membuat sebuah grup
pveum groupadd developers -comment “Pengembang Software Kita”
Sekarang kita membuat satu pengguna baru yang merupakan anggota grup tersebut
pveum useradd developer1@pve -group developers -password
Parameter password akan menanyakan pada anda sebuah password. 
Diasumsikan bahwa kita telah membuat sebuah pool bernama “dev-pool” pada GUI. Jadi sekarang kita bisa menetapkan perizinan pada pool tersebut:
pveum aclmod /pool/dev-pool/ -group developers -role PVEAdmin
Pengembang software kita sekarang dapat melakukan administrasi sumber daya yang ditetapkan pada pool tersebut.


Konfigurasi Jaringan Proxmox - Host

Secara sederhana, konfigurasi jaringan di proxmox adalah setiap Virtual Machine atau Container Template di dalam proxmox harus berada pada satu jaringan dengan interface vmbr1 yang terdapat pada node atau proxmox-nya. 
Eh, kelupaan, cerita tentang topik utamanya yaitu fondasi semua training ini, yaitu virtualbox yang bermasalah. Kembali ke Virtualbox (baru nyambung saat membahas sesi-sesi di hari keempat yang membutuhkan pengaturan jaringan lokal untuk menjalankan proxmox, terutama UI web yang menjadi andalannya). Berikut detil dari pengaturan jaringan di proxmox, khususnya pada node.

Pengaturan di /etc/network/interfaces

iface vmbr0 inet static
        address  192.168.58.1
        netmask  255.255.255.0
        gateway  192.168.58.2
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        post-up echo > 1 /proc/sys/net/ipv4/conf/eth0/proxy_arp

auto vmbr1
iface vmbr1 inet static
        address  10.10.10.254
        netmask  255.255.255.0
        bridge_ports none
        bridge_stp off
        bridge_fd 0
        post-up echo > 1 /proc/sys/net/ipv4/ip_forward         
        post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE



Sesi ke-2: Challenge proxmox dari awal sampai target…

dari mas Alan Prastyo
iptables -t nat -A PREROUTING -p tcp —dport 2121 -j DNAT —to-destination 10.212.113.10:22

Tantangan dari Mas Candra Milad
1. Install Proxmox
2. Buat CT1 dan CT2
3. Kedua CT bisa saling ping
4. salah satu CT bisa di ping dari leptop dan ssh
5. salah satu CT bisa konek internet 
6. bonus salah satu ct di install web server, web bisa dibuka di leptop

dari mas Alan Prastyo
iptables -t nat -A PREROUTING -p tcp —dport 8080 -j DNAT —to-destination 10.212.113.20:80

isi file /etc/network/interfaces
auto vmbr0
iface vmbr0 inet static
        address  192.168.1.150
        netmask  255.255.255.0
        gateway  192.168.1.1
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        post-up echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp

auto vmbr1
iface vmbr1 inet static
        address  10.212.113.1
        netmask  255.255.255.0
        bridge_ports none
        bridge_stp off
        bridge_fd 0
        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up iptables -t nat -A POSTROUTING -s '10.212.113.0/24' -o vmbr0 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '10.212.113.0/24' -o vmbr0 -j MASQUERADE

Template konfigurasi dari Alan Prastyo^^^


Hari ke-lima: Mulai Open Stack
Perkenalan
Full Virtualization
VMware, Vbox
HW - Host OS - Vir Soft - Guest OS - Apps
Apps
Bare Metal
Proxmox
HW - Hypervisor - Guest OS - Apps
OS Container
Docker
HW - Host OS {Container Engine & Management - Apps Container}
On-Premise vs Cloud
Cloud
- OnDemand Self Service -> Digital Ocean
- Broad Network Access -> Digital Ocean -> bandwidth 1:1
- Location Independent Resource Pooling -> Multi Nodes 1 Pool
- Measured Service -> RAM 1:2 -> 1024MB
- Rapid Elasticity -> ekspansi penyimpanan -> geser saja, sesuai spek.
Jenis Layanan
 On Premise -> Traditional -> Full Managed
 Cloud
- SaaS
Full user or using, 0 managed -> managed by owner -> facebook
- PaaS
App & Data -> User
Others -> Owner
-> Amazon Web Service, just Hosting
- IaaS
OS - Apps -> User
Net - Virtualization -> Vendor or Owner
MaaS tdk termasuk? Metal as a Service → seperti proxmox
SaaS -> DropBox, GoogleApps
PaaS -> Windows Azure, Google App Engine
IaaS -> Amazon Web Services mostly
SaaS -> EndUsers
PaaS -> Devs & Testers
IaaS -> Administrators
Model Implementasi
- Public
Whoever
- Private
Centain people, sedikit.
- Community
satu kelompok / komunitas
Hybrid
Combine 2/lebih
-> Google
Admin Cloud ->
SysAdmin -> 
SDN

APP Layer
|
Control Layer <- OpenStack
|
Infrastructure Layer
Pooling Control = Kontrol Keseluruhan
OpenFlow based Plugin
Linux Bridge
Cloud Software
OPenStack, CloudStack, OpenNebula, Cloudify, Stackato, OPenShift
Openstack -> Populer, terbaik yang free, banyak vendor yang support.
OpenStack -> Cloud OS, control large pools, managed -> dashboard.
Next Data Center
Proxmox -> Add Network
OpenStack -> Create Network
OpenStack History
NASA & RackSpace -> Nebula (first open stack)
OpenStack Platinum Partner
Rackspace, at&t, Ubuntu, HPe, IBM, intel, Suse, redhat
Gold
Cisco, DellEMC, Huawei, Hitachi, Juniper, Symantec, Fujitsu, Ericsson, NEC
Vital di Open Stack
Open Stack Core Services
SWIFT-Object Storage -> like DropBox -> Virtual Disk, KEYSTONE - identity -> Login, nama VM, NOVA - compute - create VM..., NEUTRON-Networking -> networking specialist, CINDER block storage -> milik VM -> Disk -> install OS, GLANCE - image service -> ISOs
Optional
HORIZON -> dashboard
TROVE -> Db
ZAQAR -> Messaging Service
BARBICAN -> Key Management
CONGRESS -> Governance
CEILOMETER -> Telemetry -> hitung biaya atau resource, bayar2 jika mau jalan
SAHARA -> Elastic Map reduce
MANILA -> Shared Filesystems -> internal
MAGNUM -> Containers
HEAT -> Orchestration
IRONIC -> Bare Metal Provisioning
DESIGNATE -> DNS Service
MURANO -> Application Catalog
Liberty & Mitaka
Mitaka 12GB masih berat.

Distribusi OpenStack
Ubuntu, Redhat,   Suse, 
| | |
| Mirantis,CentOS, OpenSUSE, 
|
debian->noDocs


Ngelab Pertama

Bikin VM dengan spek:
- Ubuntu 14.04 64 bit server
- RAM lebih dari 4GB
- HDD 40-50 GB

Panduan
https://github.com/katahugo/Openstack
Otomasi install DevStack OpenStack


Untuk yang mengalami error saat menjalankan perintah “screen -x devstack”, berikut referensi solusinya.

https://makandracards.com/makandra/2533-solve-screen-error-cannot-open-your-terminal-dev-pts-0-please-check

Solve screen error "Cannot open your terminal '/dev/pts/0' - please check"

When using the screen tool you may be unable to start a screen session but instead encounter an error:


Cannot open your terminal '/dev/pts/0' - please check.
This is because another user (you) initiated the current terminal – you probably did a sudo su into the user you are now trying to run screen as, right?

There are two ways to resolve this:

Sign out and properly connect / sign in as the user you wish to use.
Run script /dev/null to own the shell (more info over at Server Fault); then try screen again.
Important: Do not chmod the virtual terminal device like suggested at (way too many) places around the interwebs. This gives other users read and write access to the terminal session!

Maybe you even want a different terminal multiplexer. You might want to take a look at tmux.



Hari ke-5, finale : SOLUSI KONFIGURASI / PENGATURAN HOST ONLY LINUX

PERTAMA, MENEMUKAN INI...
https://forums.virtualbox.org/viewtopic.php?f=8&t=55766

KEDUA, NYAMBUNG KE SINI...
http://www.virtualbox.org/manual/ch06.html#network_hostonly
http://www.virtualbox.org/manual/ch06.html#natforward
TAPI KOK TAMBAH BINGUNG...

KETIGA, DAPAT TAUTAN INI...
http://askubuntu.com/questions/293816/in-virtualbox-how-do-i-set-up-host-only-virtual-machines-that-can-access-the-in

UBUNTU PASTINYA... CCIE... CCIE...
berikut kutipan-kutipan yang didapatkan.
In setting up virtual machines with VirtualBox, I often want the following characteristics
vm has a static ip
host can access vm without port forwarding
vm can access the internet
I can move my laptop from network to network (e.g. from home to office to coffeeshop) without worrying about securing or reconfiguring the vm
None of the VirtualBox network connection methods staisfies these requirements on their own.
NAT
Requires port forwarding if you want to connect to the vm from the host.
Host-only
The vm can not access the internet, unless the host is a router.
Bridged
Exposes the vm to the network; not portable.
networking virtualbox virtualization

In VirtualBox > Preferences > Network, set up a host-only network.
Mine is called vboxnet0, it is manually configured:
ip 192.168.56.1
netmask 255.255.255.0
no dhcp

\VirtualBox network configuration VirtualBox network configuration

Then, in the network settings for the virtual machine, set up two adapters:


Adapter 1
host only, vboxnet0

Adapter2
NAT

Boot the virtual machine and log in through the console VirtualBox provides.

Run this to see your adapters:

ls /sys/class/net
In my case the adapters were named eth1 and eth2 (and lo, the loopback interface).

Then, edit your network configuration.

sudoedit /etc/network/interfaces


# The loopback network interface
auto lo
iface lo inet loopback

# Host-only interface
auto eth1
iface eth1 inet static
        address         192.168.56.20
        netmask         255.255.255.0
        network         192.168.56.0
        broadcast       192.168.56.255

# NAT interface
auto eth2
iface eth2 inet dhcp
Note that eth1 has no default gateway specified. eth2 will get a default gateway from dhcp.

   

I could solve my problem with a mix of Christian Long solution. I added 2 adapters:

Adapter 1 - NAT

Adapter 2 - host only, vboxnet0

The only diference was in VM's interfaces file:

sudoedit /etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback
# NAT
auto eth0
iface eth0 inet dhcp
# Host only
auto eth1
iface eth1 inet dhcp
In VirtualBox Network config I left DHCP checked.

After a VM reboot everything worked fine.



There is another simple way that we don't need to create a new NAT adapter

On the host machine, please add the following iptables rules. This will forward packets through the host and on to the Internet:
sudo iptables -A FORWARD -o eth0 -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT 

sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

sudo iptables -A POSTROUTING -t nat -j MASQUERADE
You will also need to enable IP forwarding on the host by issuing the following command:
sudo sysctl -w net.ipv4.ip_forward=1



I Just added 2 adapters:

Adapter 1 host only, vboxnet0

Adapter2 NAT

And it works perfect, I can access the virtual machine from the host, and I have internet on the vm.


HARI KE-6 : SEJARAH INSTALASI OPEN STACK Aseptilena, catatan lain...

BUAT USER stack

DIJADIKAN SUDOERS

LOGIN SEBAGAI stack

CD

CLONE GITHUB OPENSTACK

CD KE DIREKTORI devstack

screen -dmS devstack

screen -x devstack

./stack.sh

TUNGGU PROSESNYA...
DI SINI LAMAAAA BANGEEETs...
SEHARIAN BRO...

JIKA FAILED, JALANKAN ULANG stack.sh

JIKA KONEKSI PUTUS ATAU STUCK, REBOOT VM, JALANKAN stack.sh LAGI.

JIKA GAGAL MASUK KE OPEN STACK DI BROWSER, JALANKAN clean.sh DAN LANJUT KE stack.sh.

PERHATIAN!!!!!!! PASTIKAN IP ADDRESS DAN JARINGAN OS VM UBUNTU UNTUK OPEN STACK BEKERJA UNTUK DUA ARAH, BAIK INPUT MAUPUN OUTPUT.
CEK DENGAN PING KE LUAR ATAU KE HOST DAN PING DARI HOST KE VM.
HOST ONLY ADALAH SOLUSI TERBAIK, SELAIN HOST ONLY DI+ NAT.

JIKA IP BERUBAH, MAKA HARUS KONFIGURASI ULANG OPEN STACK DENGAN CARA EKSEKUSI:
clean.sh
KEMUDIAN
stack.sh

MASIH ADA MASALAH TERKAIT HOST ONLY YANG DIPAKAI… HIKS HIKS…
SOLVED HOST ONLY: Melanjutkan yang Belum Selesai, terkait tambahan pada IPTABLES

Ketika rekan-rekan lainnnya sibuk mengikuti materi training dengan khusyuuk.  Aseptilena justru sibuk sendiri dengan troubleshooting virtualbox-nya. Sebelumnya masalah memang berada pada Host Only Adapter yang tidak mengizinkan si Mesin Virtual untuk mengakses internet atau jaringan luar yang terhubung dengan HOST (laptop).  Berdasarkan pemberitahuan terakhir yang diterima dan diingat, berikut beberapa perintah untuk menyediakan akses internet dengan Host Only Adapter pada Mesin Virtual.

sudo iptables -A FORWARD -i enp0s25 -o vboxnet0 -s 10.10.10.0/24 -m conntrack --ctstate NEW -j ACCEPT

iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A POSTROUTING -j MASQUERADE

Penjelasannya, masih butuh belajar lebih dalam terkait firewall configuration with IPTABLES.
Dengan menggunakan perintah-perintah di atas, ternyata akses internet belumlah didapatkan oleh si VM.
Setelah Aseptilena browsing lebih jauh, ternyata ada satu perintah yang tertinggal, yaitu:
sudo sysctl -w net.ipv4.ip_forward=1

Terkait dengan Proxmox, mas Alan Prastyo, salah satu rekan di Training yang tercepat menyelesaikan tantangan dari fasilitator, memberikan beberapa info untuk perbaikan pengaturan jaringan antara laptop dan  Proxmox.
iptables -t nat -A PREROUTING -p tcp —dport 2121 -j DNAT —to-destination 10.10.10.2:22

Tantangan dari Fasilitator(Aseptilena tidak sempat, hiks...)
1. Install Proxmox
2. Buat CT1 dan CT2
3. Kedua CT bisa saling ping
4. salah satu CT bisa di ping dari leptop dan ssh
5. salah satu CT bisa konek internet 
6. bonus salah satu ct di install web server, web bisa dibuka di leptop

Masih info dari mas Alan Prastyo...
iptables -t nat -A PREROUTING -p tcp —dport 8080 -j DNAT —to-destination 10.10.10.2:80

iptables -t nat -A POSTROUTING -s '10.212.113.0/24' -o vmbr0 -j MASQUERADE

iptables -t nat -D POSTROUTING -s '10.212.113.0/24' -o vmbr0 -j MASQUERADE





Hari ke-6: Sejarah Install-ku DevStack
Menginjak hari ke-6, training memasuki pengembangan atau instalasi Devstack, sistem Openstack yang ditujukan untuk pengembangan lokal dengan resource atau sumber daya yang lebih sedikit. Devstack sendiri juga merupakan otomasi pembuatan sistem Openstack. Setidaknya berikut langkah-langkah tekstual pembuatan atau instalasinya. 
1) Nyalakan VM dan Login
username & password → user yang dibuat saat instalasi ubuntu server
2) sudo su → untuk pindah ke user root
3) useradd stack → menambahkan user baru dengan nama “stack”
4) isikan password 2x, keterangan seperti fullname dan lain-lain(bisa dilewati dengan tekan tombol enter)
5) usermod -G sudo stack → tambahkan user “stack” ke grup sudoers atau sudo, agar bisa pakai sudo
6) login → masuk secara dedicated atau mandiri sebagai user tertentu.
Masukkan username, lalu enter.
Masukkan password, lalu enter.
Jika perintah login ini diabaikan, maka dijamin akan terdapat error pada langkah selanjutnya.
Trust me, It works...(gayane...)
7) sudo apt install git → memasang GIT, untuk meng-kloning berkas-berkas instalasi Devstack.
8) git clone http://github.com/openstack-dev/devstack → meng-kloning ^^^^^^^^^^^^^^^^^^
9) cd devstack/ → pindah ke direktori devstack di mana program instalasi berada.
10) nano local.conf → edit berkas pengaturan username dan password untuk Devstack.
11) screen -dmS devstack → perintah awal untuk deklarasi layar khusus sesi install Devstack
12) screen -x devstack → perintah akhir untuk aktifkan layar khusus sesi install Devstack
Jika membutuhkan CLI untuk keperluan lain, sesi install Devstack dapat dijalankan di backgroud dengan cara tekan tombol “Ctrl+A+D” dengan cepat. Untuk kembali lagi ke sesi install, bisa mengeksekusi kembali perintah “screen -x devstack”.

13) ./stack.sh 
Jika terjadi error atau macet saat instalasi, direkomendasikan untuk langsung melakukan restart sistem dengan perintah: sudo reboot.
Setelah restart, direkomendasikan juga untuk eksekusi script clean.sh dan eksekusi kembali stack.sh. Jika terjadi error yang tidak berkaitan dengan koneksi internet, maka direkomendasikan untuk eksekusi script clean.sh dan menghapus direktori /opt/stack dengan perintah:
sudo rm -rf /opt/stack
Berikut beberapa perintah yang dijalankan oleh stack.sh secara otomatis dan direkam oleh history shell ubuntu server yang aktif.
/usr/local/bin/nova-api & echo $! >/opt/stack/status/stack/n-api.pid; fg || echo "n-api failed to start" | tee "/opt/stack/status/stack/n-api.failure"
/usr/local/bin/nova-scheduler --config-file /etc/nova/nova.conf & echo $! >/opt/stack/status/stack/n-sch.pid; fg || echo "n-sch failed to start" | tee "/opt/stack/status/stack/n-sch.failure"
/usr/local/bin/nova-novncproxy --config-file /etc/nova/nova.conf --web /opt/stack/noVNC & echo $! >/opt/stack/status/stack/n-novnc.pid; fg || echo "n-novnc failed to start" | tee "/opt/stack/status/stack/n-novnc.failure"
/usr/local/bin/nova-consoleauth --config-file /etc/nova/nova.conf & echo $! >/opt/stack/status/stack/n-cauth.pid; fg || echo "n-cauth failed to start" | tee "/opt/stack/status/stack/n-cauth.failure"
/usr/local/bin/nova-conductor --config-file /etc/nova/nova.conf & echo $! >/opt/stack/status/stack/n-cond.pid; fg || echo "n-cond failed to start" | tee "/opt/stack/status/stack/n-cond.failure"
sg libvirtd '/usr/local/bin/nova-compute --config-file /etc/nova/nova.conf' & echo $! >/opt/stack/status/stack/n-cpu.pid; fg || echo "n-cpu failed to start" | tee "/opt/stack/status/stack/n-cpu.failure"
/usr/local/bin/glance-api --config-file=/etc/glance/glance-api.conf & echo $! >/opt/stack/status/stack/g-api.pid; fg || echo "g-api failed to start" | tee "/opt/stack/status/stack/g-api.failure"
/usr/local/bin/glance-registry --config-file=/etc/glance/glance-registry.conf & echo $! >/opt/stack/status/stack/g-reg.pid; fg || echo "g-reg failed to start" | tee "/opt/stack/status/stack/g-reg.failure"
sudo tail -f /var/log/apache2/keystone.log | sed 's/\\x1b/\o033/g' & echo $! >/opt/stack/status/stack/key.pid; fg || echo "key failed to start" | tee "/opt/stack/status/stack/key.failure"
/usr/local/bin/cinder-api --config-file /etc/cinder/cinder.conf & echo $! >/opt/stack/status/stack/c-api.pid; fg || echo "c-api failed to start" | tee "/opt/stack/status/stack/c-api.failure"
/usr/local/bin/cinder-scheduler --config-file /etc/cinder/cinder.conf & echo $! >/opt/stack/status/stack/c-sch.pid; fg || echo "c-sch failed to start" | tee "/opt/stack/status/stack/c-sch.failure"
/usr/local/bin/cinder-volume --config-file /etc/cinder/cinder.conf & echo $! >/opt/stack/status/stack/c-vol.pid; fg || echo "c-vol failed to start" | tee "/opt/stack/status/stack/c-vol.failure"
/usr/local/bin/neutron-dhcp-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini & echo $! >/opt/stack/status/stack/q-dhcp.pid; fg || echo "q-dhcp failed to start" | tee "/opt/stack/status/stack/q-dhcp.failure"
/usr/local/bin/neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini & echo $! >/opt/stack/status/stack/q-svc.pid; fg || echo "q-svc failed to start" | tee "/opt/stack/status/stack/q-svc.failure"
/usr/local/bin/neutron-l3-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/l3_agent.ini & echo $! >/opt/stack/status/stack/q-l3.pid; fg || echo "q-l3 failed to start" | tee "/opt/stack/status/stack/q-l3.failure"
/usr/local/bin/neutron-metadata-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/metadata_agent.ini & echo $! >/opt/stack/status/stack/q-meta.pid; fg || echo "q-meta failed to start" | tee "/opt/stack/status/stack/q-meta.failure"
/usr/local/bin/neutron-openvswitch-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini & echo $! >/opt/stack/status/stack/q-agt.pid; fg || echo "q-agt failed to start" | tee "/opt/stack/status/stack/q-agt.failure"
/home/stack/devstack/tools/dstat.sh /opt/stack/logs & echo $! >/opt/stack/status/stack/dstat.pid; fg || echo "dstat failed to start" | tee "/opt/stack/status/stack/dstat.failure"
sudo tail -f /var/log/apache2/horizon_error.log | sed 's/\\x1b/\o033/g' & echo $! >/opt/stack/status/stack/horizon.pid; fg || echo "horizon failed to start" | tee "/opt/stack/status/stack/horizon.failure"
sudo tail -f /var/log/apache2/keystone_access.log | sed 's/\\x1b/\o033/g' & echo $! >/opt/stack/status/stack/key-access.pid; fg || echo "key-access failed to start" | tee "/opt/stack/status/stack/key-access.failure"
cd devstack/
Setelah install selesai, akan ada pemberitahuan Completed dalam bentuk teks.(ya iyalah, lha mode teks)





Menilik Solusi Terakhir dari Virtualbox yang Ber-BUG: Meneruskan Masalah Virtualbox Sebelumnya

Jika melihat changelog atau catatan perubahan setiap rilis versi barunya, virtualbox ternyata memiliki banyak peningkatan termasuk pada tampilan GUI dan sistemnya sendiri. Berikut tautan dari halaman resmi virtualbox.
https://www.virtualbox.org/wiki/Changelog
Adapun ketika melihat pada tautan di bawah ini, Aseptilena mendapatkan sebuah pembahasan terkait dengan BUG yang dimiliki virtualbox.
https://github.com/mitchellh/vagrant/issues/7306
Jika diambil kesimpulan singkat, maka bisa dikatakan bahwa virtualbox masih sedikit buggy atau memiliki bug-bug yang belum bisa terselesaikan. Berdasarkan dua tautan di atas, akhirnya Aseptilena memutuskan untuk melihat versi dari virtualbox pada pacar setianya yaitu Ubuntu Mate di Lenny Papan Mikir T420 yang tebal. Tidak dinyana-nyana, versi virtualbox di situ 5.0.26. Jika dibandingkan dengan rilis stabil terbarunya 5.1.6, ternyata sudah out of date. Oleh karena itu Aseptilena yakin untuk meng-update atau upgrade si virtualbox ke versi terbarunya, berharap BUG yang diterima lenyap. Berikut sedikit cara update/upgrade virtualbox di Ubuntu 16.04.

Berdasarkan situs resminya, https://www.virtualbox.org/wiki/Linux_Downloads
Untuk sistem 32bit...
http://download.virtualbox.org/virtualbox/5.1.6/virtualbox-5.1_5.1.6-110634~Ubuntu~xenial_i386.deb
Untuk sistem 64bit...
http://download.virtualbox.org/virtualbox/5.1.6/virtualbox-5.1_5.1.6-110634~Ubuntu~xenial_amd64.deb

Ada 2 cara memasang paket software yang bisa di-unduh ^.
(1) Dengan “open with gdebi”, itu full GUI alias grafis, tinggal klik dan tunggu.
(2) Via teks atau CLI, dengan perintah berikut.

wget URL_download_file_.deb
sudo dpkg -i *.deb
*  = bisa diisikan nama berkas yang diunduh.
Opsi kedua adalah dengan menambahkan repositori  resmi virtualbox ke sistem Ubuntu. Berikut perintah-perintahnya.
sudo add-apt-repository “deb http://download.virtualbox.org/virtualbox/debian xenial contrib”
Distribusi Debian 8 alias Jessie atau Ubuntu Xenial alias 16.04 membutuhkan berkas ini agar repositori atau gudang paket software bisa diakses(download dan install).
https://www.virtualbox.org/download/oracle_vbox_2016.asc

Untuk dapat bekerja, ia harus dimasukkan ke sistem akses pergudangan atau manajer paket Ubuntu dengan cara berikut.
wget https://www.virtualbox.org/download/oracle_vbox_2016.asc
sudo apt-key add  oracle_vbox_2016.asc
Perintah kombinasi keduanya...
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
Sidik jari kunci pada berkas “oracle_vbox_2016.asc” adalah...
B9F8 D658 297A F3EF C18D  5CDF A2F6 83C5 2980 AECF
Oracle Corporation (VirtualBox archive signing key) <info@virtualbox.org>
Untuk memasang virtualbox...
sudo apt-get update
sudo apt-get install virtualbox-5.1
Kalau ketemu beginian saat refresh atau update list paket software dengan “sudo apt-get update” atau “sudo apt update” 
The following signatures were invalid: BADSIG …
silakan eksekusi beberapa perintah berikut di CLI / mode teks...
# sudo -s -H
# apt-get clean
# rm /var/lib/apt/lists/*
# rm /var/lib/apt/lists/partial/*
# apt-get clean
# apt-get update
NB: Tanda “#” menandakan sesi aktif CLI berada pada root, bukan user biasa, jadi tidak perlu dituliskan.
Setelah upgrade virtualbox ke versi 5.1.6, yang terjadi adalah masalah baru, hehe. Pada development Openstack manual di hari terakhir pelatihan, Aseptilena mengalami OpenStuck (bukan openstack) alias mentok/deadlock yang terbuka. Stuck berada pada jaringan “bridge” yang dipasang di salah satu interface virtualbox. PING tidak mengalami masalah sama sekali baik dari VM ke HOST maupun HOST ke VM, hanya ada duplikat paket data. Nah, masalahnya ada pada update repository ubuntu yang macet atau tidak mau download database paket software, hanya ada waiting dan waiting. Ditunggu 1 jam pun tak ada peningkatan, padahal koneksi tidak bermasalah. Meskipun begitu NAT dan Host Only menjadi normal pada versi baru ini, setelah dicoba, DevStack yang sudah Aseptilena develop, bisa dinikmati kembali, Alhamdulillah. So, Bridge User no update.