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

Aus revampedia
Zeile 93: Zeile 93:
 
  root@server1:~# nano /etc/network/interfaces
 
  root@server1:~# nano /etc/network/interfaces
  
Falls man nicht einen so langen Pfad schreiben will kann man auch zuerst in den richtigen Ordner wechseln und dann die kürzere Version davon eingeben:
+
If you don't want to write out a long path, you can first change into the directory by typing the following:
 
  cd /etc/network/
 
  cd /etc/network/
 +
and make the copy of the file:
 
  cp interfaces interfaces.orig
 
  cp interfaces interfaces.orig
 +
that you can go and edit the original:
 
  nano interfaces
 
  nano interfaces
  
[http://wiki.revamp-it.ch/index.php?title=Private_Versuche-Xen_aufsetzen_auf_Laptop Hier kann man noch meine privaten Versuche sehen auf einem Laptop ohne Ethernet und nur WLAN]
+
[http://wiki.revamp-it.ch/index.php?title=Private_Versuche-Xen_aufsetzen_auf_Laptop Here you can find my private tries on a laptop without ethernet and only WLAN]
  
Wir haben die vorhandenen Einträge auskommentiert:
+
We commented the existing entries out:
 
  # allow-hotplug eth0
 
  # allow-hotplug eth0
 
  # iface eth0 inet dhcp
 
  # iface eth0 inet dhcp
Zeilen die mit einem # beginnen werden als Kommentar betrachtet und was dahinter steht wird das ignoriert. <br />
+
Lines that start with a # are considered a comment and everything that follows it is ignored. <br />
 
+
And added the folloing:
 
  iface eth0 inet manual
 
  iface eth0 inet manual
 
  auto xenbr0
 
  auto xenbr0
Zeile 110: Zeile 112:
 
  bridge_ports eth0
 
  bridge_ports eth0
  
Um die Änderungen zu speichern drücken wir Ctrl+o und um den nano-editor zu verlassen Ctrl+x. Die Befehle sind auch am unteren Rand vom nano-Editor aufgelistet.
+
To save the changes press Ctrl+o and to leave the nano-editor press Ctrl+x. The commands are also listed at the bottom of the editor.
  
Hier noch die Erklärung was wir mit diesen neuen Einstellungen machen.
+
Here's an explanation what we do with the new settings.
iface eth0 inet manual  -> Interface für Internet wird manuell konfiguriert <br />
+
iface eth0 inet manual  -> Interface für Internet is configured manually <br />
auto xenbr0            -> Wenn der Computer startet wird automatisch eine Xen-Bridge erstellt <br />
+
auto xenbr0            -> When the computer starts up it automatically enables the Xen-Bridge <br />
iface xenbr0 inet dhcp  -> Xen-Bridge hat DHCP <br />
+
iface xenbr0 inet dhcp  -> Xen-Bridge uses DHCP <br />
bridge_ports eth0      -> Bridge geht zum Interface eth0 <br />
+
bridge_ports eth0      -> Bridge to Interface eth0 <br />
  
Diese Xen-Bridge dient dazu, dass wir die virtuellen Maschinen ansprechen können und gegen aussen nur ein physikalisches Interface haben. Für detailierte Infos gibt es die [https://wiki.xenproject.org/wiki/Xen_Networking folgende Seite]. Ich hoffe das Bild, das ich von dort kopiert habe hilft ein wenig zum Verstehen, was die Brücke macht.
+
The purpose of the Xen-Bridge is to be able to communicate with the virtual machine, as we only have one physical network interface. For more details follow [https://wiki.xenproject.org/wiki/Xen_Networking this link]. I hope that the picture I copied helps a bit to understand what the bridge does.
  
 
[[Datei:Xen-network-basic.png]]
 
[[Datei:Xen-network-basic.png]]
  
  
Nach dem Editieren nochmals neu starten:
+
After the editing we reboot once more by typing:
 
  reboot
 
  reboot
  
== Virtuelle Maschine erstellen ==
+
== Create a virtual machine ==
  
Unser Lehrer hat geprüft ob sich die IP Adressen geändert haben.
+
Our teacher checked if the IP addresses changed due to the reboot.
  
Also wieder zurück auf den server mit
+
Now we go back to the server by typing
  ssh user1@192.168.67.68
+
  ssh "username"@"remote computer"
  
Jetzt können wir die Änderungen, welche wir an /etc/network/interfaces vorgenommen haben auch auf dem Server sehen. Wir benutzen dazu den Befehl "ip address". Wir müssen den Befehl jedoch nicht ganz ausschreiben, sondern der Computer weiss bereits was wir wollen wenn wir folgendes schreiben:
+
Now we can see the changes we did to /etc/network/interfaces. We use the command "ip address". We don't have to write the full command, the system knows what do when we type the following:
 
  ip a
 
  ip a
  
Hier was auf meiner Testmaschine angezeigt wird:
+
Here is what it showed on my test machine:
  
 
<pre>
 
<pre>
Zeile 157: Zeile 159:
 
</pre>
 
</pre>
  
Wir sehen, dass eth0 keine Adresse hat und Xen unsere Adresse verwaltet. Falls man ein wenig mehr zu IPv4 wissen will, gibt es noch [http://wiki.revamp-it.ch/index.php?title=Kurzeinf%C3%BChrung_zu_IPv4 diesen Link] den ich erstellt habe. <br />
+
We can see that there is no address on eth0 and that Xen manages the address. If you wish to know a little more to IPv4, there is a short introduction to it [http://wiki.revamp-it.ch/index.php?title=Kurzeinf%C3%BChrung_zu_IPv4 under this link]. <br />
  
Als nächses wechseln wir in einen anderen Ordner:  <br />
+
Next we have to change into a different folder:  <br />
 
  cd /etc/xen-tools/partitions.d/
 
  cd /etc/xen-tools/partitions.d/
  
Hier ist sich aktuell in dem Ordner befindet:  <br />
+
Here is what's currently in this folder:  <br />
 
  root@server1:/etc/xen-tools/partitions.d# ls -la
 
  root@server1:/etc/xen-tools/partitions.d# ls -la
 
  insgesamt 12
 
  insgesamt 12
Zeile 169: Zeile 171:
 
  -rw-r--r-- 1 root root  463 Okt 26  2014 sample-server
 
  -rw-r--r-- 1 root root  463 Okt 26  2014 sample-server
  
Wir könnten wohl die "sample-server" nehmen und für uns anpassen, doch das ist nicht was wir machen. Wir erstellen eine neue Datei und wir verwenden den nano-Editor
+
We could make a copy of "sample-server" and modify it, but that's not what we're going to do. We'll create a new file and we're going to use the nano-editor
  nano vm1
+
  nano vm1 (chose the same number as your server)
  
Über Ctrl+Shift+V kann man etwas das man im Browser kopiert hat in der Konsole einfügen. Mit Ctrl+Shift+C kopieren wir etwas in der Konsole. Dies funktioniert nicht in allen Konsolen. "Terminator" ist ein Programm in dem man dies nutzen kann. <br />
+
With Ctrl+Shift+V we can paste something in the console that we've copied in the browser. Ctrl+Shift+C can copy something in the console. Unfortunately this key combination doesn't work in all consoles. I use the program "Terminator" where this works. <br />
  
Dies ist der Text, den wir in der Datei vm1 eingefügt haben:
+
Here is the text that we pasted into the file vm1:
 
<pre>
 
<pre>
 
[root]
 
[root]
Zeile 186: Zeile 188:
 
</pre>
 
</pre>
  
Ctrl+o zum Speichern und Ctrl+x um den nano-Editor zu verlassen.  <br />
+
Ctrl+o to save the file and Ctrl+x to leave the nano-editor.  <br />
  
Jetzt folgt eine lange Zeile die uns eine virtuelle Maschine erstellt
+
Now follows a very long command to create the virtual machine:
 
  root@server1:/etc/xen-tools/partitions.d# xen-create-image --hostname=vm1 --memory=2gb --vcpus=1 --dhcp --lvm=vg01 --dist=jessie --partitions=/etc/xen-tools/partitions.d/vm1 --pygrub --verbose --password=****
 
  root@server1:/etc/xen-tools/partitions.d# xen-create-image --hostname=vm1 --memory=2gb --vcpus=1 --dhcp --lvm=vg01 --dist=jessie --partitions=/etc/xen-tools/partitions.d/vm1 --pygrub --verbose --password=****
  
Hier noch die Erklärung zu was wir eingegeben haben:  <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 -> Befehl mit dem wir eine virtuelle Maschine erstellen können <br />
Zeile 489: Zeile 491:
 
  cd /etc/xen-tools/partitions.d/
 
  cd /etc/xen-tools/partitions.d/
  
Hier ist sich aktuell in dem Ordner befindet:  <br />
+
Hier ist was sich aktuell in dem Ordner befindet:  <br />
 
  root@server1:/etc/xen-tools/partitions.d# ls -la
 
  root@server1:/etc/xen-tools/partitions.d# ls -la
 
  insgesamt 12
 
  insgesamt 12

Version vom 3. April 2017, 13:09 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