Το Ubuntu JeOS (προφέρεται "Τζους") είναι μια αποδοτική παραλλαγή του λειτουργικού συστήματος Διακομιστή Ubuntu, διαμορφωμένο συγκεκριμένα για εικονικές συσκευές. Δεν είναι πλέον διαθέσιμο σαν CD-ROM ISO για μεταφόρτωση, αλλά μόνο σαν επιλογή είτε:
-
Καθώς εγκαθιστάτε από το Server Edition ISO (πατώντας F4 στην πρώτη οθόνη θα σας επιτρέψει να επιλέξετε "Ελάχιστη Εγκατάσταση", που είναι η επιλογή πακέτου ισοδύναμη με το JeOS).
-
Ή να στηθεί χρησιμοποιώντας το vmbuilder του Ubuntu, το οποίο περιγράφεται εδώ.
Το JeOS είναι εξειδικευμένη εγκατάσταση της Έκδοσης Διακομιστή Ubuntu με ένα συντονισμένο πυρήνα ο οποίος περιέχει μόνο τα βασικά στοιχεία που χρειάζονται για να εκτελεστεί σε ένα εικονικό περιβάλλον.
Το Ubuntu JeOS έχει ρυθμιστεί ώστε να εκμεταλλεύεται βασικές τεχνολογίες απόδοσης στα τελευταία προϊόντα εικονικοποίησης από το VMware. Αυτός ο συνδυασμός του μειωμένου μεγέθους και τις βελτιστοποιημένης επίδοσης διασφαλίζει ότι η έκδοση Ubuntu JeOS παρέχει μια άκρως αποτελεσματική χρήση των πόρων του διακομιστή σε μεγάλες εικονικές αναπτύξεις.
Χωρίς περιττούς οδηγούς, και μόνο τα ελάχιστα απαιτούμενα πακέτα, το ISVs μπορεί να διαμορφώσει το υποστηριζόμενο OS ακριβώς όπως επιθυμούν. Έχουν τη σιγουριά ότι η ενημερώσεις, είτε για ασφάλεια είτε για λόγους ενίσχυσης, θα είναι περιορισμένες στο ελάχιστο που απαιτείται στο συγκεκριμένο περιβάλλον τους. Σε αντάλλαγμα, οι χρήστες που αναπτύσσουν εικονικές συσκευές χτισμένες σε JeOS θα πρέπει να περάσουν από λίγες ενημερώσεις και γι' αυτό λιγότερη συντήρηση από αυτή που θα είχαν με μία κανονική πλήρη εγκατάσταση ενός διακομιστή.
With vmbuilder, there is no need to download a JeOS ISO anymore. vmbuilder will fetch the various package and build a virtual machine tailored for your needs in about a minute. vmbuilder is a script that automates the process of creating a ready to use Linux based VM. The currently supported hypervisors are KVM and Xen.
Μπορείτε να περάσετε επιλογές γραμμής εντολών για να προσθέσετε επιπλέον πακέτα, να αφαιρέσετε πακέτα, να επιλέξετε ποια έκδοση του Ubuntu, ποιόν καθρέφτη κλπ. Σε πρόσφατο υλικό με μεγάλη RAM, να κάνετε tmpdir στο /dev/shm ή να χρησιμοποιήσετε ένα tmpfs, και έναν τοπικό καθρέφτη, μπορείτε να εκκινήσετε αυτόματα ένα VM σε λιγότερο από ένα λεπτό.
First introduced as a shell script in Ubuntu 8.04 LTS, ubuntu-vm-builder started with little emphasis as a hack to help developers test their new code in a virtual machine without having to restart from scratch each time. As a few Ubuntu administrators started to notice this script, a few of them went on improving it and adapting it for so many use case that Soren Hansen (the author of the script and Ubuntu virtualization specialist, not the golf player) decided to rewrite it from scratch for Intrepid as a python script with a few new design goals:
-
Να το αναπτύξει ώστε να μπορεί να επαναχρησιμοποιηθεί από άλλες διανομές.
-
Να χρησιμοποιεί μηχανισμούς plugin για όλες τις αλληλεπιδράσεις εικονικοποίησης ώστε άλλοι να μπορούν εύκολα να προσθέσουν λογική για άλλα περιβάλλοντα εικονικοποίησης.
-
Να παρέχει μια εύκολη να διατηρηθεί διεπαφή ιστού σαν επιλογή στη διεπαφή γραμμής εντολών.
Αλλά οι βασικές αρχές και εντολές να παραμείνουν ίδιες.
Υποθέτουμε ότι έχει εγκαταστήσει και διαμορφώσει τα libvirt και KVM τοπικά στη μηχανή ου χρησιμοποιείτε. Για πληροφορίες στο πως να το κάνετε, παρακαλώ αναφερθείτε στο:
-
Η σελίδα Wiki KVM
Επίσης υποθέτουμε ότι ξέρετε πως να χρησιμοποιήσετε έναν επεξεργαστή κειμένου με βάση κείμενο όπως οι nano ή vi. Εάν δεν έχετε χρησιμοποιήσει κανέναν από τους δύο στο παρελθόν, μπορείτε να δείτε μια επισκόπηση των διαφόρων επεξεργαστών κειμένου που είναι διαθέσιμοι διαβάζοντας τη σελίδα PowerUsersTextEditors. Αυτό το εγχειρίδιο οδηγιών έχει δημιουργηθεί σε KVM, αλλά η βασική αρχή πρέπει να παραμείνει σε άλλες τεχνολογίες εικονικοποίησης.
Το όνομα του πακέτου που χρειάζεται να εγκαταστήσετε είναι python-vm-builder. Σε ένα τερματικό εντολών πληκτρολογείστε:
sudo apt-get install python-vm-builder
|
|
|
Εάν τρέχετε Hardy, μπορείτε ακόμα να εκτελείτε τα περισσότερα από αυτά χρησιμοποιώντας την παλιά έκδοση του πακέτου που ονομάζεται ubuntu-vm-builder, υπάρχουν μόνο λίγες αλλαγές στη σύνταξη του πακέτου. |
Το να καθορίσετε μια εικονική μηχανή με το vmbuilder του Ubuntu είναι αρκετά απλό, αλλά εδώ είναι κάποια πράγματα που πρέπει να λάβετε υπόψιν:
-
Εάν σκοπεύετε να στείλετε μια εικονική συσκευή, μην υποθέσετε ότι ο τελικός χρήστης θα ξέρει πως να επεκτείνει το μέγεθος του δίσκου ώστε να καλύπτει τις ανάγκες του, έτσι είτε σχεδιάστε για έναν μεγάλο εικονικό δίσκο για να επιτρέπει στη συσκευή σας να μεγαλώνει, ή εξηγήστε αρκετά καλά στις βοηθητικές οδηγίες πως να δεσμεύουν περισσότερο χώρο. Ίσως είναι καλή ιδέα να αποθηκεύει δεδομένα σε κάποιο ξεχωριστό εξωτερικό μέσο αποθήκευσης.
-
Δεδομένου ότι η RAM είναι πολύ πιο εύκολο να δεσμευτεί σε ένα VM, το μέγεθος της RAM θα πρέπει να τεθεί σε ότι πιστεύετε είναι ασφαλές για τη συσκευή σας.
Η εντολή vmbuilder έχει 2 κύριες παραμέτρους: την τεχνολογία εικονικοποίησης (hypervisor) και την στοχοθετημένη κατανομή. Προαιρετικές παράμετροι είναι πολλές και μπορούν να βρεθούν χρησιμοποιώντας την ακόλουθη εντολή:
vmbuilder --help
Καθώς αυτό το παράδειγμα είναι βασισμένο σε KVM και σε Ubuntu 10.04 LTS (Lucid Lynx), και είναι πιθανόν να χτύσουμε την ίδια εικονική μηχανή πολλές φορές, θα καλέσουμε τις ακόλουθες πρώτες παραμέτρους:
sudo vmbuilder kvm ubuntu --suite lucid --flavour virtual --arch i386 -o --libvirt qemu:///system
Η --suite προσδιορίζει την έκδοση Ubuntu, η --flavour προσδιορίζει ότι θέλουμε να χρησιμοποιήσουμε τον εικονικό πυρήνα kernel (αυτός χρησιμοποιείται για το στήσιμο μιας εικόνας JeOS), η --arch δηλώνει ότι θέλουμε να χρησιμοποιήσουμε μια μηχανή 32 bit, η -o λέει στο vmbuilder να αντικαταστήσει την προηγούμενη έκδοση του VM και η --libvirt λέει να ενημερωθεί το τοπικό εικονικό περιβάλλον να προσθέσει το VM που προκύπτει στη λίστα διαθέσιμων μηχανών.
Σημειώσεις:
-
Λόγω της φύσεως των λειτουργιών που εκτελούνται από το vmbuilder, χρειάζεται να έχουμε διακαιώματα βάσης, γι' αυτό το sudo.
-
Εάν η εικονική σας μηχανή χρειάζεται να χρησιμοποιήσει πάνω από 3Gb ram, πρέπει να στήσετε μηχανή 64 bit (--arch amd64).
-
Μέχρι το Ubuntu 8.10, ο εικονικός πυρήνας ήταν φτιαγμένος μόνο για αρχιτεκτονική 32 bit, έτσι αν θέλετε να ορίσετε μηχανή amd64 στο Hardy, πρέπει να χρησιμοποιήσετε διακομιστή --flavour αντί αυτού.
Σαν εικονική συσκευή που μπορεί να ανατεθεί σε διάφορα πολύ διαφορετικά δίκτυα, είναι πολύ δύσκολο να γνωρίζουμε πως ακριβώς θα είναι το δίκτυο. Για να απλοποιήσουμε τη διαμόρφωση, είναι καλή ιδέα να ακολουθήσουμε μια προσέγγιση παρόμοια με αυτή που συνήθως κάνουν οι κατασκευαστές υλικού, να αναθέτουν μια σταθερή IP διεύθυνση στη συσκευή σε δίκτυα ιδιωτικής κλάσης τα οποία θα παρέχετε στις βοηθητικές οδηγίες. Μια διεύθυνση με εμβέλεια 192.168.0.0/255 είναι συνήθως μια καλή επιλογή.
Για να το κάνουμε θα χρησιμοποιήσουμε τις ακόλουθες παραμέτρους:
-
--ip ADDRESS: διεύθυνση IP σε μορφή με τελείες (εξορισμού σε dhcp εάν δεν διευκρινίζεται)
-
--mask VALUE: μάσκα IP σε μορφή με τελείες (εξορισμού: 255.255.255.0)
-
--net VALUE: IP διεύθυνση δικτύου (εξορισμού: X.X.X.0)
-
--bcast VALUE: IP εκπομπής (εξορισμού: X.X.X.255)
-
--gw ADDRESS: διεύθυνση πυλώνα (εξορισμού: X.X.X.1)
-
--dns ADDRESS: Διεύθυνση ονόματος διακομιστή (εξορισμού: X.X.X.1)
Υποθέτουμε για τώρα ότι η τιμές εξορισμού είναι αρκετά καλές,έτσι η προκύπτουσα επίκληση γίνεται:
sudo vmbuilder kvm ubuntu --suite lucid --flavour virtual --arch i386 -o --libvirt qemu:///system --ip 192.168.0.100
Επειδή η συσκευή μας πιθανόν θα χρειαστεί να είναι προσβάσιμη από απομακρυσμένους κεντρικούς υπολογιστές, πρέπει να διαμορφώσουμε το libvirt ώστε οι συσκευές να χρησιμοποιούν δικτύωση γέφυρας. Για να το κάνουμε αυτό θα χρησιμοποιήσουμε μηχανισμό προτύπου vmbuilder για να διαμορφώσουμε το αρχικό.
Στο κατάλογο εργασίας μας δημιουργούμε ένα πρότυπο ιεραρχίας και αντιγράφουμε το αρχικό πρότυπο:
mkdir -p VMBuilder/plugins/libvirt/templates cp /etc/vmbuilder/libvirt/* VMBuilder/plugins/libvirt/templates/
Μετά μπορούμε να επεξεργαστούμε το VMBuilder/plugins/libvirt/templates/libvirtxml.tmpl για να αλλάξουμε τα:
<interface type='network'>
<source network='default'/>
</interface>
Σε:
<interface type='bridge'>
<source bridge='br0'/>
</interface>
Ο διαμερισμός σε μια εικονική συσκευή θα πρέπει να λάβει υπόψιν τι σχεδιάζετε να κάνετε με αυτό. Επειδή οι περισσότερες συσκευές θέλουν να έχουν ξεχωριστό μέσο αποθήκευσης για δεδομένα, το να έχουν ένα ξεχωριστό /var θα έβγαζε νόημα.
Για να το κάνουμε αυτό το vmbuilder μας παρέχει το --part:
--part PATH
Allows you to specify a partition table in a partition file, located at PATH. Each line of the partition file should specify
(root first):
mountpoint size
where size is in megabytes. You can have up to 4 virtual disks, a new disk starts on a
line with ’---’. ie :
root 1000
/opt 1000
swap 256
---
/var 2000
/log 1500
Στην περίπτωσή μας θα προσδιορίσουμε ένα όνομα αρχείου κειμένου vmbuilder.partition το οποίο θα περιέχει τα ακόλουθα:
root 8000 swap 4000 --- /var 20000
|
|
|
Σημειώστε ότι χρησιμοποιούμε εικόνες εικονικού δίσκου, τα πραγματικά μεγέθη που βάζουμε εδώ είναι τα μέγιστα μεγέθη αυτών των τόμων. |
Η γραμμή εντολών μας τώρα είναι:
sudo vmbuilder kvm ubuntu --suite lucid --flavour virtual --arch i386 \ -o --libvirt qemu:///system --ip 192.168.0.100 --part vmbuilder.partition
|
|
|
Η χρήση "\" σε μια εντολή θα επιτρέψει μεγάλες συμβολοσειρές εντολών να αναδιπλώνονται στην επόμενη γραμμή. |
Ξανά στήνοντας μια εικονική συσκευή, θα πρέπει να παρέχετε έναν εξορισμού χρήστη και κωδικό που θα είναι γενικά ώστε να μπορέσετε να τα συμπεριλάβετε στις βοηθητικές οδηγίες. Θα δούμε αργότερα σε αυτό το εγχειρίδιο πως θα παρέχουμε ασφάλεια ορίζοντας ένα σενάριο που θα εκτελείται την πρώτη φορά που ο χρήστης εισέρχεται στη συσκευή, που, μεταξύ άλλων, θα του ζητάει να αλλάξει κωδικό. Σε αυτό το παράδειγμα θα χρησιμοποιήσω το 'user' σαν όνομα χρήστη, και το 'default' σαν κωδικό.
Για να το κάνουμε αυτό χρησιμοποιούμε προαιρετικές παραμέτρους:
-
--user USERNAME: Ορίζει το όνομα του χρήστη που θα προστεθεί. Εξορισμού: ubuntu.
-
--name FULLNAME: Ορίζει το πλήρες όνομα το χρήστη που θα προστεθεί. Εξορισμού: Ubuntu.
-
--pass PASSWORD: Ορίζει τον κωδικό χρήστη. Εξορισμού: ubuntu.
Η προκύπτουσα γραμμή εντολής γίνεται:
sudo vmbuilder kvm ubuntu --suite lucid --flavour virtual --arch i386 \
-o --libvirt qemu:///system --ip 192.168.0.100 --part vmbuilder.partition \
--user user --name user --pass default
Σε αυτό το παράδειγμα θα εγκαταστήσουμε το πακέτο (Limesurvey) που έχει πρόσβαση στη βάση δεδομένων MySQL και έχει διεπαφή ιστού. Επομένως θα χρειαστούμε το Λειτουργικό μας Σύστημα να μας παρέχει:
-
Apache
-
PHP
-
MySQL
-
OpenSSH Server
-
Limesurvey (σαν εφαρμογή παράδειγμα που έχουμε πακετάρει)
This is done using vmbuilder by specifying the --addpkg option multiple times:
--addpkg PKG Εγκαταστήστε το PKG στον επισκέπτη (μπορεί να οριστεί πολλαπλές φορές)
Όμως, λόγω του τρόπου που λειτουργεί το vmbuilder, τα πακέτα που πρέπει να κάνουν ερωτήσεις στον χρήστη κατά τη διάρκεια της φάσης πριν την εγκατάσταση δεν υποστηρίζονται και πρέπει αντί αυτών να εγκατασταθούν όταν μπορεί να συμβεί διαδραστικότητα. Αυτή είναι η περίπτωση Limesurvey, την οποία θα πρέπει να εγκαταστήσουμε αργότερα, όταν συνδεθεί ο χρήστης.
Άλλα πακέτα που ρωτούν απλή ερώτηση debconf, όπως ο mysql-server που ζητάει να οριστεί κωδικός, το πακέτο μπορεί να εγκατασταθεί αμέσως, αλλά θα πρέπει να το αναδιαμορφώσουμε την πρώτη φορά που θα συνδεθεί ο χρήστης.
Εάν κάποια πακέτα που πρέπει να εγκαταστήσουμε δεν είναι στο main, πρέπει να ενεργοποιήσουμε τα επιπλέον αποθετήρια χρησιμοποιώντας --comp και --ppa:
--components COMP1,COMP2,...,COMPN
Μια λίστα συνιστωσών χωρισμένων με κόμμα για να περιληφθούν (π.χ. main,universe). Αυτό από προεπιλογή είναι
στο "main"
--ppa=PPA Προσθέτει ppa που ανήκει στο PPA στη λίστα πηγών vm's
Εφόσον το Limesurvey δεν είναι μέρος του αρχείου αυτή τη στιγμή, θα ορίσουμε τη διεύθυνση PPA (αρχείο προσωπικού πακέτου) ώστε να προστεθεί στο VM /etc/apt/source.list, άρα προσθέτουμε τις ακόλουθες επιλογές στην γραμμή εντολών:
--addpkg apache2 --addpkg apache2-mpm-prefork --addpkg apache2-utils --addpkg apache2.2-common \ --addpkg dbconfig-common --addpkg libapache2-mod-php5 --addpkg mysql-client --addpkg php5-cli \ --addpkg php5-gd --addpkg php5-ldap --addpkg php5-mysql --addpkg wwwconfig-common \ --addpkg mysql-server --ppa nijaba
Ένα άλλο βολικό εργαλείο που θέλουμε να έχουμε στη συσκευή μας είναι το OpenSSH, καθώς θα επιτρέψει στους διαχειριστές μας να έχουν απομακρυσμένη πρόσβαση στη συσκευή. Ωστόσο, το να ωθήσουμε μια συσκευή με προ εγκατεστημένο OpenSSH διακομιστή είναι ένα μεγάλο ρίσκο ασφαλείας καθώς όλοι οι διακομιστές θα μοιράζονται το ίδιο κρυφό κλειδί, κάνοντάς το πολύ εύκολο για τους hackers να στοχεύσουν τη μηχανή μας με όλα τα εργαλεία που χρειάζονται για να την ανοίξουν στο λεπτό. Όσο για τον κωδικό χρήστη, θα βασιστούμε σε ένα σενάριο που θα εγκαταστήσει το OpenSSH την πρώτη φορά που θα συνδεθεί ο χρήστης ώστε το κλειδί που θα παραχθεί να είναι διαφορετικό για κάθε συσκευή. Για αυτό θα χρησιμοποιήσουμε το σενάριο --firstboot, καθώς δε χρειάζεται αλληλεπίδραση του χρήστη.
When vmbuilder creates builds your system, it has to go fetch each one of the packages that composes it over the network to one of the official repositories, which, depending on your internet connection speed and the load of the mirror, can have a big impact on the actual build time. In order to reduce this, it is recommended to either have a local repository (which can be created using apt-mirror) or using a caching proxy such as apt-proxy. The later option being much simpler to implement and requiring less disk space, it is the one we will pick in this tutorial. To install it, simply type:
sudo apt-get install apt-proxy
Όταν ολοκληρωθεί αυτό, ο (άδειος) διαμεσολαβητής σας είναι έτοιμος για χρήση στο http://mirroraddress:9999 και θα βρείτε το αποθετήριο ubuntu στο /ubuntu. Για να το χρησιμοποιήσει το vmbuilder, θα πρέπει να χρησιμοποιήσουμε την επιλογή --mirror:
--mirror=URL Χρησιμοποιήστε το καθρέφτη Ubuntu στο URL αντί του προεπιλεγμένου που είναι
http://archive.ubuntu.com/ubuntu for official
arches and http://ports.ubuntu.com/ubuntu-ports
otherwise
Άρα προσθέτουμε στη γραμμή εντολής:
--mirror http://mirroraddress:9999/ubuntu
|
|
|
The mirror address specified here will also be used in the |
Εάν είμαστε σε ένα μεγαλύτερο περιβάλλον, μπορεί να έχει νόημα να στήσουμε έναν τοπικό καθρέφτη τον αποθετηρίων Ubuntu. Το πακέτο apt-mirror παρέχει ένα σενάριο το οποίο χειρίζεται τη δημιουργία καθρεφτών για εσάς. Πρέπει να υπολογίσετε να έχετε περίπου 20 gigabyte ελεύθερου χώρου ανά υποστηριζόμενη έκδοση και αρχιτεκτονική.
Εξορισμού το, το apt-mirror χρησιμοποιεί το αρχείο διαμόρφωσης /etc/apt/mirror.list. Καθώς στήνετε, θα αναπαράγει μόνο την αρχιτεκτονική της τοπικής μηχανής. Εάν θα θέλατε να υποστηρίξετε και άλλες αρχιτεκτονικές στον καθρέφτη σας, απλά αντιγράψτε τις γραμμές που ξεκινούν με “deb”, αντικαθιστώντας τη λέξη-κλειδί deb με /deb-{arch} όπου arch μπορεί να είναι i386, amd64, κ.λπ.... Για παράδειγμα, σε μια μηχανή amd64, για να έχετε τα αρχεία i386 επίσης, θα έχετε:
deb http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse /deb-i386 http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse /deb-i386 http://archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse /deb-i386 http://archive.ubuntu.com/ubuntu lucid-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu lucid-security main restricted universe multiverse /deb-i386 http://security.ubuntu.com/ubuntu lucid-security main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu lucid main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer /deb-i386 http://archive.ubuntu.com/ubuntu lucid main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
Παρατηρείστε ότι τα πακέτα πηγής δεν είναι στον καθρέφτη καθώς χρησιμοποιούνται σπάνια σε σχέση με τα binaries και δεν πιάνουν πολύ χώρο, αλλά μπορούν εύκολα να προστεθούν στη λίστα.
Όταν ο καθρέφτης τελειώσει την αντιγραφή (και αυτό μπορεί να διαρκέσει πολύ), πρέπει να ρυθμίσετε τον Apache ώστε τα αρχεία καθρέφτη σας (στο /var/spool/apt-mirror εάν δεν αλλάξατε την προεπιλογή), να εκδίδονται από τον διακομιστή Apache. Για περισσότερες πληροφορίες στον Apache δείτε “HTTPD - Apache2 Διακομιστής Ιστού”.
Καθώς μπορείτε εύκολα να φανταστείτε, να γράφετε σε RAM είναι ΠΟΛΥ πιο γρήγορο από το να γράφετε σε δίσκο. Εάν έχετε κάποια ελεύθερη μνήμη, το να αφήσετε το vmbuilder να εκτελέσει τις λειτουργίες του σε δίσκοRAM θα βοηθήσει πολύ και η επιλογή --tmpfs θα σας βοηθήσει να κάνετε ακριβώς αυτό:
--tmpfs OPTS Χρησιμοποιήστε ένα tmpfs σαν κατάλογο εργασίας, ορίζοντας το
μέγεθος ή "-" για να χρησιμοποιήσετε tmpfs προεπιλογή (suid,dev,size=1G).
Άρα η πρόσθεση του --tmpfs - ακούγεται σαν πολύ καλή ιδέα εάν έχετε 1G ελεύθερης μνήμης.
Δύο επιλογές είναι διαθέσιμες σε εμάς:
-
Η προτεινόμενη μέθοδος για να το κάνετε είναι να δημιουργήσετε ένα πακέτο Debian. Μιας και αυτό είναι εκτός πεδίου εφαρμογής αυτού του εγχειριδίου, δε θα το εκτελέσουμε εδώ και θα καλέσουμε το χρήστη να διαβάσει τις βοηθητικές οδηγίες για το πως να το κάνει στο Ubuntu Packaging Guide. Σε αυτή την περίπτωση είναι επίσης καλή ιδέα να στήσετε ένα αποθετήριο για το πακέτο ώστε οι ενημερώσεις να τις τραβήξετε βολικά από εκεί. Δείτε το άρθρο Debian Administration για ένα εγχειρίδιο οδηγιών πάνω σε αυτό.
-
Εγκαταστήστε την εφαρμογή χειροκίνητα στο
/optόπως συνίσταται από τις κατευθυντήριες γραμμές FHS.
Στην περίπτωσή μας θα χρησιμοποιήσουμε το Limesurvey σαν παράδειγμα εφαρμογής ιστού για την οποία επιθυμούμε να παρέχουμε μια εικονική συσκευή. Όπως επισημάνθηκε πριν, έχουμε δημιουργήσει έκδοση του πακέτου διαθέσιμο στο PPA (Αρχείο Προσωπικού Πακέτου).
Όπως αναφέραμε νωρίτερα, την πρώτη φορά που εκκινείτε η μηχανή θα πρέπει να εγκαταστήσουμε το openssh-server ώστε το κλειδί το οποίο παράγεται να είναι μοναδικό για κάθε μηχανή. Για να το κάνουμε αυτό, θα γράψουμε ένα σενάριο που ονομάζεται boot.sh, όπως ακολουθεί:
# Αυτό το σενάριο θα εκτελεστεί την πρώτη φορά που εκκινείτε η εικονική μηχανή # Εκτελείτε ως root. apt-get update apt-get install -qqy --force-yes openssh-server
Και προσθέτουμε την επιλογή --firstboot boot.sh στη γραμμή εντολής μας:
Τα Mysql και Limesurvey χρειάζονται κάποια αλληλεπίδραση με το χρήστη κατά τη διάρκεια της εγκατάστασής τους, θα τα ορίσουμε την πρώτη φορά που θα εισέλθει κάποιος χρήστης χρησιμοποιώντας ένα σενάριο με όνομα login.sh. Επιπλέον θα χρησιμοποιήσουμε αυτό το σενάριο για να επιτρέψουμε στο χρήστη να επεξεργαστεί:
-
Τον κωδικό του
-
Να ορίσει το πληκτρολόγιο και άλλες τοπικές πληροφορίες που θέλει να χρησιμοποιήσει
Άρα θα προσδιορίσουμε το login.sh όπως ακολουθεί:
# Αυτό το σενάριο εκτελείτε την πρώτη φορά που θα εισέλθει ένας χρήστης echo "Η συσκευή είναι έτοιμη να τελειώσει ώστε να προσδιορισθεί." echo "Για να το κάνετε, θα πρέπει να σας κάνουμε κάποιες ερωτήσεις," echo "ξεκινώντας αλλάζοντας τον κωδικό σας." passwd #Δώσε τη δυνατότητα αλλαγής του πληκτρολογίου sudo dpkg-reconfigure console-setup #Διαμορφώστε τον κωδικό βάσης mysql server sudo dpkg-reconfigure mysql-server-5.0 #Εγκαταστήστε το limesurvey sudo apt-get install -qqy --force-yes limesurvey echo "Η συσκευή σας είναι τώρα διαμορφωμένη. Για να τη χρησιμοποιήσετε οδηγήστε το" echo "φυλλομετρητή στο http://serverip/limesurvey/admin"
Και προσθέτουμε την επιλογή --firstlogin login.sh στην γραμμή εντολής μας.
Για να διαμορφωθεί το σύστημά σας ώστε να ενημερώνεται αυτόματα σε τακτική βάση, θα εγκαταστήσουμε απλά το unattended-upgrades, άρα προσθέτουμε την ακόλουθη επιλογή στη γραμμή εντολής μας:
--addpkg unattended-upgrades
Καθώς έχουμε βάλει το πακέτο εφαρμογής μας στο PPA, η διαδικασία θα ενημερώσει όχι μόνο το σύστημα, αλλά και την εφαρμογή κάθε φορά που ενημερώνουμε την έκδοση στο PPA.
Εδώ είναι η εντολή με όλες τις επιλογές που συζητήθηκαν παραπάνω:
sudo vmbuilder kvm ubuntu --suite lucid --flavour virtual --arch i386 -o \
--libvirt qemu:///system --ip 192.168.0.100 --part vmbuilder.partition --user user \
--name user --pass default --addpkg apache2 --addpkg apache2-mpm-prefork \
--addpkg apache2-utils --addpkg apache2.2-common --addpkg dbconfig-common \
--addpkg libapache2-mod-php5 --addpkg mysql-client --addpkg php5-cli \
--addpkg php5-gd --addpkg php5-ldap --addpkg php5-mysql --addpkg wwwconfig-common \
--addpkg mysql-server --addpkg unattended-upgrades --addpkg acpid --ppa nijaba \
--mirror http://mirroraddress:9999/ubuntu --tmpfs - --firstboot boot.sh \
--firstlogin login.sh
Εάν ενδιαφέρεστε να μάθετε περισσότερα, έχετε απορίες ή προτάσεις, παρακαλώ επικοινωνήστε με την Ομάδα Διακομιστή Ubuntu στο:
-
IRC: #ubuntu-server on freenode
-
Λίστα Ηλεκτρονικής Αλληλογραφίας: ubuntu-server at lists.ubuntu.com
-
Also, see the JeOSVMBuilder Ubuntu Wiki page.

