Το 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 αλλά οι εντολές όπως είπα πιο πάνω είναι ίδιες ανεξαρτήτως λειτουργικού.

Advertisements

Εγκατάσταση 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 μπορείτε να το εγκατστήσετε είτε μέσω Chocolatey είτε να το κατεβάσετε απο το multipass.run

Για σημειώσεις εγκατάστασης Windows δείτε την επίσημη τεκμηρίωση (ιδιαίτερα για troubleshooting) :

Windows 10 πρώτη εκκίνηση του Multipass με Hyper-V

Μόλις εγκαταστήσετε το multipass, θα χρειαστεί να ξεκινήσετε το τερματικό του Windows με δικαιώματα διαχειριστή. Όταν τρέξετε για πρώτη φορά το multipass θα σας ενημερώσει αν έχετε ενεργή την υπηρεσία Hyper-V ή όχι οπότε και θα σας προτείνει να το ενεργοποιήσετε είτε από την Προσθαφαίρεση δυνατοτήτων του Windows είτε τρέχοντας την παρακάτω εντολή:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
θα σας ενημερώσει αν έχετε ενεργή την υπηρεσία Hyper-V

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. Θα δείτε τις παραμέτρους που λαμβάνει

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
Advertisements

Αντιγραφή αρχείων στον 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 μας.

 θα ήμαστε πλέον μέσα στο Ubuntu Server

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

system tray να ξεκινήσετε απευθείας ένα Shell

Μέσα στο 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
πάμε να προσθέσουμε ένα password

Τέλος χρηματιζόμαστε την 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.

Advertisements

Εκκίνηση, τερματισμός και Διαγραφή των 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

μπορείτε να δείτε και να διαχειριστείτε τα instance από τον Hyper-V manager

Φυσικά είναι ολίγον overkill το να έχετε μάθει τις βασικές εντολές και να χρησιμοποιείτε γραφικό περιβάλλον…

Σύνοψη για το Multipass

Με το multipass είδαμε πως μπορούμε να δημιουργήσουμε ένα ή περισσότερα Ubuntu VM instances και να καθορίσουμε τους πόρους που θα καταλαμβάνουν από το σύστημά μας.

Έτσι, μέσα σε λίγα λεπτά μπορούμε να έχουμε ένα mini cloud dev environment για πειράματα και δοκιμές ώστε αν π.χ. χρησιμοποιούμε Ubuntu VMs στο cloud να μπορούμε να κάνουμε replicate το περιβάλλον εργασίας μας τοπικά. Η αν αναπτύσσουμε Web εφαρμογές ή ιστοσελίδες να μην χρειάζεται να κάνουμε όλη την διαδικασία εγκατάστασης λειτουργικού σε VM.

Παραπομπές: