Schulung-Teil2-Server mit Xen aufsetzen: Unterschied zwischen den Versionen

Aus revampedia
Zeile 1: Zeile 1:
 
{{#switch:{{#IfLang:}}
 
{{#switch:{{#IfLang:}}
 
|en=
 
|en=
 
 
== Preface ==
 
== Preface ==
 
This training session took place on 11-17-2016. It is the continuation of [http://wiki.revamp-it.ch/index.php?title=Schulung-Teil1-Server_mit_RAID1_aufsetzen ersten Teil]. Today we learned how to setup a Xen-Server. With a Xen-Server we can create virtual machines, that we can use for various purposes. The first virtual machine will be a webserver (Apache). jr <br />
 
This training session took place on 11-17-2016. It is the continuation of [http://wiki.revamp-it.ch/index.php?title=Schulung-Teil1-Server_mit_RAID1_aufsetzen ersten Teil]. Today we learned how to setup a Xen-Server. With a Xen-Server we can create virtual machines, that we can use for various purposes. The first virtual machine will be a webserver (Apache). jr <br />
Zeile 195: Zeile 194:
 
Here's the explanation of what we entered here:  <br />
 
Here's the explanation of what we entered here:  <br />
  
xen-create-image -> Befehl mit dem wir eine virtuelle Maschine erstellen können <br />
+
xen-create-image -> This is the command we use to create the virtual machine<br />
--hostname=vm1 -> Name für die virtuelle Maschine die erstellt wird  <br />
+
--hostname=vm1 -> The name that the virtual machine will have <br />
--memory=2gb  -> Wieviel RAM die virtuelle Maschine brauchen darf <br />
+
--memory=2gb  -> How much RAM will be available to the virtual machine<br />
 
--vcpus=1      -> wieviele Processoren die virtuelle Maschine brauchen darf <br />
 
--vcpus=1      -> wieviele Processoren die virtuelle Maschine brauchen darf <br />
--dhcp          -> IP Adresse wird über DHCP bezogenn <br />
+
--dhcp          -> IP address will be obtained through DHCP<br />
--lvm=vg01      -> Wo er die Partionen für die virtuelle Maschine erstellt werden darf. Beim Aufsetzen haben wir ja LVM aktiviert und dort die vg01 erstellt <br />
+
--lvm=vg01      -> The partition where the virtual machine will be created. In the first training session we activated LVM and created vg01<br />
--dist=jessie  -> Welche Debian Distribution auf der virtuellen Maschine installiert wird <br />
+
--dist=jessie  -> What Debian distribution will be installed on the virtual machine.<br />
--partitions=/etc/xen-tools/partitions.d/vm1 -> Angabe was für Partitionen erstellt werden mit dem Pfad zu der Datei die wir vorher erstellt haben. <br />  
+
--partitions=/etc/xen-tools/partitions.d/vm1 -> Information for what partitions will be created. It has the path to the file we've created previously.<br />  
--pygrub        -> alternativer Bootloader den die virtuelle Maschine kriegt <br />
+
--pygrub        -> alternative boot loader for our virtual machine<br />
--verbose      -> Gib uns mehr Informationen während die virtuelle Maschine erstellt wird <br />
+
--verbose      -> we receive more information from the system while the virtual machine is being created<br />
--password=**** -> Passwort für die virtuelle Maschine <br />
+
--password=**** -> root password for the virtual machine <br />
  
Am Schluss der Installation gibt und das xen-create-image-Tool auch ein paar Infos zu unserer VM: <br />
+
At the end of the installation we receive a little summary from the xen-create-image-tool: <br />
  
 
<pre>
 
<pre>
Zeile 223: Zeile 222:
 
  -rw-r--r--  1 root root  651 Nov 17 15:30 vm1.cfg
 
  -rw-r--r--  1 root root  651 Nov 17 15:30 vm1.cfg
  
Diese Datei wurde von xen-create-image erstellt und der Inhalt der Datei ist das folgende: <br />
+
This file was created by xen-create-image. To see it's context we enter: <br />
  
 
  less vm1.cfg
 
  less vm1.cfg
Zeile 274: Zeile 273:
 
</pre>
 
</pre>
  
Mit q wird "less" beendet <br />
+
With q we can end the program "less"<br />
  
 
<pre>
 
<pre>
Zeile 282: Zeile 281:
 
</pre>
 
</pre>
  
Die virtuelle Maschine wurde noch nicht gestartet <br />
+
The virtual machine hasn't been started yet. <br />
  
 
<pre>
 
<pre>
Zeile 292: Zeile 291:
 
</pre>
 
</pre>
  
Dies hat uns gezeigt, dass mein Server nicht genug RAM hat und somit müssen wir das in der vm1.cfg, welche das xen-create-image erstellt hat, anpassen: <br />
+
The free command showed us that my server doesn't have enough RAM. So, it's necessary to edit the configuration file that xen-create-image created: <br />
  
 
  root@server1:/etc/xen# nano vm1.cfg  
 
  root@server1:/etc/xen# nano vm1.cfg  
 
  memory      = '1024'
 
  memory      = '1024'
  
== Auf der virtuellen Maschine einloggen ==
+
== Login to the virtual machine ==
  
Jetzt können wir unseren Server starten <br />
+
Now we can start the virtual server <br />
 
  root@server1:/etc/xen# xl create -c /etc/xen/vm1.cfg
 
  root@server1:/etc/xen# xl create -c /etc/xen/vm1.cfg
  
xl -> Das Programm welches wir nutzen <br />
+
xl -> The program we use<br />
create -> Ein Unterkommande welches eine .cfg Datei erwartet. [http://xenbits.xen.org/docs/unstable/man/xl.1.html Hier noch ein Link zur man-Page vom xl-Befehl] <br />
+
create -> A subcommand that will require a .cfg file. [http://xenbits.xen.org/docs/unstable/man/xl.1.html Here a link to the man page of the xl command] <br />
-c -> Dass wir eine Konsole bekommen <br />
+
-c -> we wish to have a console for the virtual machine <br />
/etc/xen/vm1.cfg -> Pfad zur Konfiguration von unserer virtuellen Maschine <br />
+
/etc/xen/vm1.cfg -> path to the configuration file of the virtual machine <br />
  
Da noch keine Benutzer bestehen loggen wir als root ein mit dem Passwort, welches wir bei xen-create-image eingegeben haben. <br />
+
Since no other users have been created to far we need to login as root with the password we entered during the xen-create-image command (the long line). <br />
Wir möchten in der Zukunft in der Lage sein über SSH einzuloggen, doch da der Benutzer root dies nicht darf müssen wir einen neuen Benutzer erstellen. In meinem Fall ist es "user1":
+
That we're able to login to the virtual machine with SSH in the future, we need to create a new user. For security purposes the user root isn't allowed to login via SSH. In my case I chose "user1":
 
  adduser user1
 
  adduser user1
Dass wir mit dem neu erstellten Benutzer auch Admin-Rechte haben müssen wir das Programm "sudo" installieren:
+
So the newly created user will also have administrative rights we need to installl the program "sudo":
 
  apt install sudo
 
  apt install sudo
Dass der neu erstellte Benutzer diese Rechte dann auch hat müssen wir ihn in die Gruppe sudo aufnehmen:
+
That we get those right, we also need to add the username to the group sudo:
 
  adduser user1 sudo
 
  adduser user1 sudo
  
Am besten noch schnell den folgenden Befehl eingeben und sich die IP Adresse merken welche wir auf dem Ethernet Interface haben, dass man später über SSH direkt mit dem neu erstellten Benutzernamen einloggen kann:
+
To be able to login directly through SSH it's best to quickly check the IP address we have on our network interface. The command for it is:
 
  ip a
 
  ip a
  
 +
As the hard drive of our LTSP server for training purposes crashed, we had to stop here. The continuation will be in [http://wiki.revamp-it.ch/index.php?title=Schulung-Teil3-Webserver_aufsetzen Teil3]<br />
  
Weiter geht es in [http://wiki.revamp-it.ch/index.php?title=Schulung-Teil3-Webserver_aufsetzen Teil3], doch der ist noch nicht fertig, da unsere Schulung unfreiwillig frühzeitig abgebrochen wurde, weil die Festplatte vom LTSP-Server in unserem Schulungsraum kaputt ging. <br />
 
  
 +
== Automatically boot the virtual machine ==
  
== Start der virtuellen Maschine automatisieren ==
+
On 02-16-2017 we learned how to automatically start the virtual machine when the server is turned on. Thematically it belongs here, so I wanted to at least add a [http://wiki.revamp-it.ch/index.php?title=Schulung-Teil4-Joomla_aufsetzen link] on this page.  
 
 
Da wir dies erst am 16.02.2017 gelernt haben ist die Anleitung dazu [http://wiki.revamp-it.ch/index.php?title=Schulung-Teil4-Joomla_aufsetzen hier] zu finden. Da es jedoch thematisch noch zu dieser Schulung gehört will ich hier wenigsten den Link dazu haben.
 
  
  
  
 
|#default=
 
|#default=
 
 
== Vorwort ==
 
== Vorwort ==
 
Diese Schulung hat am 17.11.2016 stattgefunden. Es handelt sich um eine Fortsetzung vom [http://wiki.revamp-it.ch/index.php?title=Schulung-Teil1-Server_mit_RAID1_aufsetzen ersten Teil]. Wir haben heute gelernt wie wir einen Xen-Server aufsetzen. Damit können wir virtuelle Maschinen erstellen, die wir für unterschiedliche Zwecke konfigurieren können. Die erste virtuelle Maschine wird ein Webserver (Apache) werden. jr <br />
 
Diese Schulung hat am 17.11.2016 stattgefunden. Es handelt sich um eine Fortsetzung vom [http://wiki.revamp-it.ch/index.php?title=Schulung-Teil1-Server_mit_RAID1_aufsetzen ersten Teil]. Wir haben heute gelernt wie wir einen Xen-Server aufsetzen. Damit können wir virtuelle Maschinen erstellen, die wir für unterschiedliche Zwecke konfigurieren können. Die erste virtuelle Maschine wird ein Webserver (Apache) werden. jr <br />

Version vom 3. April 2017, 17:48 Uhr

Vorwort

Diese Schulung hat am 17.11.2016 stattgefunden. Es handelt sich um eine Fortsetzung vom ersten Teil. Wir haben heute gelernt wie wir einen Xen-Server aufsetzen. Damit können wir virtuelle Maschinen erstellen, die wir für unterschiedliche Zwecke konfigurieren können. Die erste virtuelle Maschine wird ein Webserver (Apache) werden. jr

Falls noch Fragen offen sind nach dieser Anleitung bitte oben bei "Ansichten" auf "Diskussion" gehen und Feedback hinterlassen, dass ich noch weitere Details hinzufügen kann. jr

Den Server aufstarten

Unser Lehrer hat auf dem Server das Programm "wakeonlan" installiert, dass unsere Clients an denen wir arbeiten das auch nutzen können. Mit diesem Programm können wir unsere Server über die LAN-Verbindung einschalten. In unserem Schulungsfall ist das zwar nur ein paar Meter entfernt, doch falls man mehrere Stockwerke dazwischen hat oder gar mehrere Kilometer Distanz zum Server hat ist es eine grosse Erleichterung dies nicht vor Ort machen zu müssen. Der Befehl dazu ist der folgende:

wakeonlan -i 192.168.67.255 00:21:5a:6d:6d:42

-i sagt, dass anschliessend eine IP Adresse folgt
192.168.67.255 ist die Broadcast-Adresse von unserem Netzwerk. Hier findet man noch eine kleine Einführung in IPv4, dass man dies besser versteht.
00:21:5a:6d:6d:42 ist die MAC-Adresse von der Netzwerkkarte die im Server steckt, den ich aufgesetzt habe.

Eine allgemeinere Formulierung ist also

wakeonlan -i "broadcast IP" "MAC address"

Um jetzt per SSH musste unser Lehrer auf dem Server schauen welche IP Adressen unsere frisch aufgeweckten Server bezogen haben. Dies machte er über

less /var/lib/dhcp/dhcpd.leases

Diese Datei existiert jedoch nur auf dem DHCP Server. Auf einem DHCP Client existiert diese Datei nicht. Es gibt jedoch den Pfad /var/lib/dhcp/

Auf dem Server einloggen

In meinem Fall zum Einloggen auf dem Server musste ich den folgenden Befehl eingeben:

ssh user1@192.168.67.68

Die allgemeine Formulierung dazu ist

ssh "Benutzername"@"Remote Computer"

Benutzername ist als wen man sich auf dem Server einloggen will. Der Benutzer root darf sich nicht per SSH auf einem Server einloggen aus Sicherheitsgründen. Remote Computer kann in Form der IP Adresse oder dem DNS Namen sein.

Wenn man zum ersten Mal auf einem Remote Computer einloggt von einer Maschine aus, schickt der Remote Computer seinen Fingerabdruck mit. Um da fortfahren zu können ist es notwendig die Antwort auszuschreiben. Ein einfaches "y" reicht nicht aus.

Are you sure you want to continue connecting (yes/no)? yes

Paketliste aktualisieren

Bevor wir jetzt anfangen Programme zu installieren wollen wir in unserem Debian Jessie die Liste mit den verfügbaren Paketen auf den neusten Stand bringen. Wenn man als normaler Benutzer eingeloggt ist macht man dies über

sudo apt update

Als Root kann man das "sudo" weglassen

Pakete für Xen-Hypervisor installieren

Für unseren Xen-Server brauchen wir die Pakete xen-linux-system und xen-tools. Also geben wir auf der Befehlszeile den folgenden Befehl ein:

user1@server1:~$ sudo apt install xen-linux-system xen-tools

Eine veraltete Version von dieser Installation finden wir bereits in unserem Wiki, doch einige Dinge können wir von dort übernehmen, dass wir nicht soviel schreiben müssen.

Wir müssen den folgenden Befehl eingeben:

sudo dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen

Wir geben damit der Datei einen anderen Namen und macht noch etwas dass die Datei nicht von einem Paketupdate überschrieben wird. Ich verstehe leider Linux als ganzes auch noch zu wenig um es besser erklären zu können. Sollte ich in der Zukunft mal ein besseres Verständnis dafür haben, werde ich den Text hier wohl updaten.

Da ich es leid wurde, dass ich die Befehle nicht direkt ausführen zu können (weil immer ein sudo nötig ist), habe ich in den Root User gewechselt über

sudo -i

Als nächstes müssen wir unserem Bootloader mit dem Namen Grub die Änderungen beibringen. Deswegen müssen wir den Befehl "update-grub" eingeben:

update-grub

Um zu testen ob was wir installiert haben auch effektiv ist, starten wir den Server neu. Auf der Kommandozeile geben wir den Befehl ein:

reboot

Netzwerkverbindung anpassen

Da die Verbindung der Arbeitsstation mit dem Server unterbrochen wird, müssen wir mit dem Server wieder neu verbinden: neu mit server verbinden nach dem Neustart

ssh "Benutzername"@"Remote Computer" (in meinem Fall ssh user1@192.168.67.68)

und wieder auf Root gewechselt über

sudo -i

Um sehen zu können ob der Server jetzt auch mit den neuen Parametern startet benutzen wir das Programm "dmesg" Da Computer sehr viele Infos zum aufstarten anzeigt ist dies mehr als man in der Konsole anzeigen kann. Um trotzdem alles anschauen zu können leiten wir die Daten zu dem Programm "less" um, dass wir auch PageUp und PageDown nutzen können:

dmesg