Το Multipass είναι ένας ελαφρύς διαχειριστής VM για Windows, Linux και macOS. Είναι κατάλληλο για προγραμματιστές, web developers, DevOps, Sysadmins που θέλουν με μία μόνο εντολή ένα η περισσότερα Ubuntu servers στον laptop η το PC τους.
Με το Multipass μπορείτε να δημιουργήσετε ένα η περισσότερα Ubuntu VM για δοκιμές, ανάπτυξη εφαρμογών, docker instances, kubernetes κ.α. Είναι cross-platform και επομένως χρησιμοποιείτε το ίδιο εργαλείο ανεξαρτήτως λειτουργικού του υπολογιστή σας.
Ίσως σε μερικούς θυμίσει Vagrant, Windows Subsystem for Linux, LXC/LXD OS containers η απλές εικονικές μηχανές που κάνετε εγκατάσταση μέσω π.χ. του VirtualBox/ KVM Manager. Ενώ έχει ομοιότητες, διατηρεί όμως την απλότητα και μινιμαλισμό για όσους δεν θέλουν να ασχοληθούν με εγκατάσταση λειτουργικού (π.χ. VirtualBox) η θέλουν να ρυθμίζουν, όπως θα δούμε με μια εντολή τι πόρους θέλουν να δώσουν στα VM και να ξεμπερδεύουν.
Το Multipass, στο backend του, χρησιμοποιεί KVM στο Linux, Hyper-V η VirtualBox σε Windows και HyperKit η VirtualBox σε macOS για να τρέξει το VM με ελάχιστη επιβάρυνση στο κυρίως λειτουργικό σας.
Στον σημερινό οδηγό θα δούμε την εγκατάστασή του σε Linux, Windows και macOS. Στα παραδείγματα χρησιμοποιώ Windows 10 Pro αλλά οι εντολές όπως είπα πιο πάνω είναι ίδιες ανεξαρτήτως λειτουργικού.
Εγκατάσταση Multipass
Linux
Στο Linux μπορείτε να το εγκαταστήσετε με την παρακάτω εντολή:
sudo snap install multipass --classic
Windows 10
Οι ελάχιστες απαιτήσεις για Windows είναι :
- Windows 10 Pro/Enterprise (1803) με Hyper-V η νεότερο
- Windows 10 Home/Pro/Enterprise with VirtualBox
Στο Windows μπορείτε να το εγκατστήσετε είτε μέσω Chocolatey είτε να το κατεβάσετε απο το multipass.run

Για σημειώσεις εγκατάστασης Windows δείτε την επίσημη τεκμηρίωση (ιδιαίτερα για troubleshooting) :
Windows 10 πρώτη εκκίνηση του Multipass με Hyper-V
Μόλις εγκαταστήσετε το multipass, θα χρειαστεί να ξεκινήσετε το τερματικό του Windows με δικαιώματα διαχειριστή. Όταν τρέξετε για πρώτη φορά το multipass
θα σας ενημερώσει αν έχετε ενεργή την υπηρεσία Hyper-V ή όχι οπότε και θα σας προτείνει να το ενεργοποιήσετε είτε από την Προσθαφαίρεση δυνατοτήτων του Windows είτε τρέχοντας την παρακάτω εντολή:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

Windows 10 πρώτη εκκίνηση του Multipass με VirtualBox
Τη πρώτη φορά θα πρέπει να ανοίξετε το τερματικό του Windows 10 με δικαιώματα Administrator και να τρέξετε:
multipass set local.driver=virtualbox
macOS
Οι ελάχιστες απαιτήσεις για macOS είναι :
- macOS Yosemite (10.10.3) η νεότερο σε Mac του 2010 ή νεότερο
Μπορείτε να το κατεβάσετε να το κάνετε εγκατάσταση από το multipass.run

ή να το κάνετε εγκατάσταση μέσω brew:
brew cask install multipass
Για σημειώσεις εγκατάστασης macOS δείτε την επίσημη τεκμηρίωση (ιδιαίτερα για troubleshooting) :
macOS πρώτη εκκίνηση του Multipass με VirtualBox
Εξορισμού το multipass
χρησιμοποιεί το hyperkit
. Αν όμως θέλετε να χρησιμοποιήσετε το VirtulaBox ως backend τότε δίνετε την παρακάτω εντολή:
sudo multipass set local.driver=virtualbox
Σημείωση: Τη στιγμή της σύνταξης του οδηγού, τα VM του multipass που εκτελούνται με το VirtualBox σε MacOS δεν θα λάβουν διευθύνσεις IP.
Βασικές εντολές του multipass
Για να δούμε τις βασικές εντολές, ας υποθέσουμε το σενάριο, ότι έχουμε ένα ή περισσότερα Ubuntu VPS κάπου… στο Cloud και θέλουμε να δημιουργήσουμε ένα αντίστοιχο περιβάλλον στο PC μας για πειράματα, ανάπτυξη Web (ξεριζώστε επιτέλους το XAMPP, WAMP…. έλεος… ναι σε σένα μιλάω…) κ.α. Στο τέλος θα κάνουμε και εγκατάσταση του Cockpit για να διαχειριζόμαστε τις υπηρεσίες που τρέχουμε σε αυτά.
Ανοίξετε το τερματικό και δώστε multipass
. Θα δείτε τις παραμέτρους που λαμβάνει

Επίσης, θα παρατηρήσετε ότι έχει δημιουργήσει και ένα Quick access στο system tray του λειτουργικού σας (Windows, Linux macOS).
Δημιουργία Ubuntu server instance
Ας δημιουργήσουμε ένα Ubuntu Server στο PC μας:
multipass launch
…
Launched: tuxaio-onoma
Θα ξεκινήσει η λήψη του Ubuntu server image και έπειτα η εγκατάστασή του. Μόλις ολοκληρωθεί, θα λάβει ένα τυχαίο hostname το οποίο είναι χρήσιμο για να μπορούμε να αντλήσουμε κάποιες πληροφορίες για τον server:
multipass info tuxaio-onoma
Name: tuxaio-onoma
State: RUNNING
IPv4: 192.168.0.10
Release: Ubuntu 18.04.1 LTS
Image hash: c52486j6aa82 (Ubuntu 18.04 LTS)
Load: 0.00 0.10 0.15
Disk usage: 1.1G out of 4.7G
Memory usage: 71.6M out of 985.4M
Αν τρέξουμε άλλη μια φορά το multipass launch
θα χρησιμοποιήσει το ίδιο image που είχε κατεβάσει αλλά θα δημιουργήσει ένα νέο server instance με άλλο hostname
. Για να δούμε όλα τα instance που έχουμε φτιάξει, τρέχουμε:
multipass ls
Name State IPv4 Release
tuxaio-onoma RUNNING 192.168.0.10 Ubuntu 18.04 LTS
allo-onoma RUNNING 192.168.0.11 Ubuntu 18.04 LTS
kaiallo-onoma RUNNING 192.168.0.12 Ubuntu 18.04 LTS
Δημιουργία προκαθορισμένου Ubuntu server instance
Αν θέλουμε να καθορίσουμε το όνομα -n
, την RAM -m
, δίσκο -d
, επεξεργαστές -c
η κάποιο cloud-init configuration --cloud-init <file>
που θα χρησιμοποιεί κάποιο instance δίνουμε:
multipass launch -n myserver -c 4 -m 2G -d 5G
Για τις διαθέσιμες παραμέτρους του launch
μπορούμε να μάθουμε απο την εντολή:
multipass help launch
Αντιγραφή αρχείων στον Server
Αν θέλουμε να αντιγράψουμε κάποια αρχείο από τον server στο PC μας χρησιμοποιούμε την μορφή multipass copy-files onomainstance:/diadromi/arxeiou diadromi/sto/pc
:
multipass copy-files tuxaio-onoma:/ena/arxeio tuxaio-onoma:/allo/arxeio .
Με την τελεία στο τέλος δηλώνουμε ότι θέλουμε να αποθηκευτούν στην διαδρομή που τρέχουμε το shell
Κοινόχρηστος φάκελος με τον Server
Αν θέλουμε έναν κοινόχρηστο φάκελο π.χ. τον φάκελο shared
μεταξύ του υπολογιστή μας και του instance (για χρήση κοινόχρηστων αρχείων), το κάνουμε προσάρτηση με την παρακάτω εντολή:
multipass mount $HOME/shared tuxaio-onoma
Από αυτό το σημείο και έπειτα ο φάκελος shared
θα είναι διαθέσιμος μέσα στο instance παρουσία. Χρησιμοποιήστε το umount
για να το αποπροσαρτήσετε ή αν θέλετε να αλλάξετε την διαδρομή στην οποία γίνεται προσάρτηση:
multipass umount tuxaio-onoma
multipass mount $HOME/shared tuxaio-onoma:/mia/diadromi/fakelou
Εκτέλεση εντολών απευθείας από τον Server
Μπορούμε να πούμε στον server να τρέξει μια εντολή χωρίς να συνδεθούμε σε αυτόν με την μορφή multipass exec onomainstance -- entoli
:
multipass exec tuxaio-onoma -- sudo apt update
Είσοδος στο Server instance
Για να συνδεθούμε στον server δίνουμε την παρακάτω εντολή:
multipass shell tuxaio-onoma
Μόλις συνδεθεί, θα ήμαστε πλέον μέσα στο Ubuntu Server και άρα μπορούμε να κάνουμε ότι θα κάναμε και στο VPS μας.

Επίσης μπορείτε από το system tray να ξεκινήσετε απευθείας ένα Shell που θα σας βάλει μέσα στο Ubuntu Server.

Μέσα στο VM αυτό μπορείτε π.χ. να τρέξετε ότι Ubuntu/Debian εντολές θέλετε. Στο παράδειγμά μας θα εγκαταστήσουμε το Cockpit που είναι ένα εύχρηστο και ανοιχτού κώδικα web περιβάλλον για διαχείριση ενός η περισσοτέρων Server.
Μέσα στον server τρέχουμε:
sudo apt update
sudo apt install cockpit cockpit-bridge cockpit-dashboard cockpit-docker cockpit-packagekit
Με την παραπάνω εντολή εγκαθιστούμε :
- Το backend του cockpit
- Το Web περιβάλλον
- Υποστήριξη για εγκατάσταση docker containers
- Υποστήριξη για εγκατάσταση/ αναβάθμιση εφαρμογών
Επειδή όμως στο Ubuntu 18.04 πιθανόν να τρέχει μια παλιά έκδοση του cockpit, ας την αναβαθμίσουμε απο τα backports του Ubuntu
sudo apt install cockpit/bionic-backports
Μια ρύθμιση που πρέπει να κάνουμε πριν χρησιμοποιήσουμε το Cockpit είναι το password του χρήστη Ubuntu που χρησιμοποιεί by default το instance μας. Αυτός ο χρήστης δεν έχει password αλλά το Cockpit θα μας το ζητήσει για να συνδεθούμε στο panel του. Οπότε πάμε να προσθέσουμε ένα password:
sudo passwd ubuntu

Τέλος χρηματιζόμαστε την IP του instance μας την οποία όπως είδαμε μπορούμε να μάθουμε από το multipass info onoma-server
η μέσα από το Ubuntu με την εντολή ip addr
:
sudo passwd ubuntu
Έπειτα ανοίγουμε τον browser μας και πληκτρολογούμε την IP και port 9090

Επειδή είναι, προφανώς self signed
το SSL certificate, θα μας προειδοποιήσει ο browser και επομένως το θα το αγνοήσουμε για να μπούμε μέσα στο Cockpit.

Εδώ μπορούμε να δούμε τα logs των υπηρεσιών, πληροφορίες συστήματος, ενημερώσεις εφαρμογών ακόμα και να ξεκινήσουμε docker containers. Τέλος μπορούμε να προσθέσουμε και τα υπόλοιπα instances με την διεύθυνσή τους.
Για περισσότερα σχετικά με το Cockpit μπορείτε να διαβάσετε την επίσημη τεκμηρίωσή του:
Φυσικά ανάλογα και με τις εργασίες που θέλετε να κάνετε, μπορείτε να έχετε Panels όπως το Webmin, Virtualmin, ISPConfig, Anjeti, Vestapanel κλπ αν ασχολείστε με web hosting η το Portainer αν ασχολείστε με Docker η ακόμα και Kubernetes Dashboard αν έχετε συνδυάσει πολλαπλά instances σε k8s cluster.
Εκκίνηση, τερματισμός και Διαγραφή των instance
Για να σταματήσετε ένα instance δίνετε:
multipass stop onoma-server
Για να ξεκινήσετε ένα instance δίνετε:
multipass start onoma-server
Για να μετακινήσετε ένα instance στον «εικονικό κάδο» δίνετε:
multipass delete onoma-server
Για να επαναφέρετε ένα instance απο τον «εικονικό κάδο» δίνετε:
multipass recover onoma-server
Για να διαγράψετε εντελώς ένα instance δίνετε:
multipass delete onoma-server
multipass purge
multipass ls
.
No instances found.
Για την επίσημη τεκμηρίωση δείτε το Multipass Command-line Reference
Γραφικό περιβάλλον για τα multipass instance
Επειδή ανάλογα το λειτουργικό αλλά και το backend που χρησιμοποιείτε, δεν υπάρχει επίσημο γραφικό περιβάλλον πέραν π.χ. των Hyper-V Manager, VirtualBox κλπ. Έτσι στο Windows 10 Pro για παράδειγμα αν χρησιμοποιείτε Hyper-V μπορείτε να δείτε και να διαχειριστείτε τα instance από τον Hyper-V manager

Φυσικά είναι ολίγον overkill το να έχετε μάθει τις βασικές εντολές και να χρησιμοποιείτε γραφικό περιβάλλον…
Σύνοψη για το Multipass
Με το multipass είδαμε πως μπορούμε να δημιουργήσουμε ένα ή περισσότερα Ubuntu VM instances και να καθορίσουμε τους πόρους που θα καταλαμβάνουν από το σύστημά μας.
Έτσι, μέσα σε λίγα λεπτά μπορούμε να έχουμε ένα mini cloud dev environment για πειράματα και δοκιμές ώστε αν π.χ. χρησιμοποιούμε Ubuntu VMs στο cloud να μπορούμε να κάνουμε replicate το περιβάλλον εργασίας μας τοπικά. Η αν αναπτύσσουμε Web εφαρμογές ή ιστοσελίδες να μην χρειάζεται να κάνουμε όλη την διαδικασία εγκατάστασης λειτουργικού σε VM.
Παραπομπές:
Ωραίο!
Χαίρομαι που το βρήκες χρήσιμο !