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

Aus revampedia
Zeile 9: Zeile 9:
 
</pre>
 
</pre>
  
== Boot the server ==
+
== Remotely start the server ==
  
 
Our teacher installed the program "wakeonlan" on the LTSP-System we have for our training sessions. So, all our clients also get to use this program. With "wakenonlan" we can turn on our server through the LAN connection. In our training session the server is only a few meters away from us, but if there are several floors between us and the server or even several kilometers, this is a very handy tool, so we don't have to be on-site to power up the server. We do this with the following command:<br />
 
Our teacher installed the program "wakeonlan" on the LTSP-System we have for our training sessions. So, all our clients also get to use this program. With "wakenonlan" we can turn on our server through the LAN connection. In our training session the server is only a few meters away from us, but if there are several floors between us and the server or even several kilometers, this is a very handy tool, so we don't have to be on-site to power up the server. We do this with the following command:<br />
Zeile 34: Zeile 34:
 
  ssh "username"@"remote computer"
 
  ssh "username"@"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.
+
Username is the user you wish to use to login to the server. The user "root" can't login through SSH on the server for security reasons.
Remote Computer kann in Form der IP Adresse oder dem DNS Namen sein. <br />
+
Remote computer can be either an IP address or a DNS name. <br />
  
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. <br />
+
When you connect the first time to a remote computer, it sends you it's finger print. To continue, you need to write out the answer. A simple "y" isn't enough.<br />
  
 
  Are you sure you want to continue connecting (yes/no)? yes
 
  Are you sure you want to continue connecting (yes/no)? yes
  
== Paketliste aktualisieren ==
+
== Update packages ==
  
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 <br />  
+
Before we start installing a new program, we want to update the list of available packages for our Debian Jessie. If we're logged in as a regular user we do this with the following command:<br />  
 
  sudo apt update
 
  sudo apt update
  
Als Root kann man das "sudo" weglassen <br />
+
If you do this as "root", the "sudo" isn't necessary<br />
  
== Pakete für Xen-Hypervisor installieren ==
+
== Install packages for Xen-Hypervisor ==
  
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: <br />
+
For our Xen-server, we need the packages xen-linux-system and xen-tools. So, we enter the following command on the CLI: <br />
 
  user1@server1:~$ sudo apt install xen-linux-system xen-tools
 
  user1@server1:~$ sudo apt install xen-linux-system xen-tools
  
Eine veraltete Version von dieser Installation [http://wiki.revamp-it.ch/index.php?title=Revamp_LTSP:_Doku_zu_Installation_und_Konfiguration finden wir bereits in unserem Wiki], doch einige Dinge können wir von dort übernehmen, dass wir nicht soviel schreiben müssen.<br />
+
An outdated version of this installation can be found in german [http://wiki.revamp-it.ch/index.php?title=Revamp_LTSP:_Doku_zu_Installation_und_Konfiguration in our wiki]. We can copy some things from there, so we don't have to type too much.<br />
  
Wir müssen den folgenden Befehl eingeben: <br />
+
We have to enter the following command:<br />
 
  sudo dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen
 
  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. <br />
+
We change the name of the file, so it won't be overwritten with the next update of the package. My own understanding of Linux isn't well enough to give a better explanation of what we do with the command. If that ever changes, I'll update this text.<br />
  
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 <br />
+
Since I got tired of having to enter sudo at the beginning of each command, I changed to the root user. I did this by entering <br />
 
  sudo -i
 
  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: <br />
+
Next we have to update our boot loader GRUB. For that we need to enter: <br />
 
  update-grub
 
  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: <br />
+
To test if our changes were successful, we rebooted the server. We can do this with the following command:<br />
 
  reboot
 
  reboot
  
== Netzwerkverbindung anpassen ==
+
== Reconfigure the network connection ==
  
Da die Verbindung der Arbeitsstation mit dem Server unterbrochen wird, müssen wir mit dem Server wieder neu verbinden:
+
Since the connection to the server was lost with the reboot, we need to reconnect to it with:<br />
neu mit server verbinden nach dem Neustart <br />
+
  ssh "username"@"remote computer" (in my case ssh user1@192.168.67.68)
ssh "Benutzername"@"Remote Computer" (in meinem Fall ssh user1@192.168.67.68)
 
  
und wieder auf Root gewechselt über <br />
+
and changed again to root user<br />
 
  sudo -i
 
  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:
+
To check if the server started with the new parameters, we used the program "dmesg". The computer shows a lot of information. As it's more than the console can show at once on the screen, we redirect the output to the programm "less", so we can also use PageUp and PageDown to look at the text.
 
  dmesg | less
 
  dmesg | less
  
Hier haben wir Einträge zu Xen gefunden. Mit "q" kann man das Programm "less" verlassen um wieder auf der Konsole zu sein. <br />
+
Here we found our entries to Xen. To leave the progam "less" you need to press "q".<br />
  
Falls man am Anfang oder Ende einer Datei die Einträge sehen will kann man dies über "head" oder "tail" machen. Ohne andere Parameter werden 10 Zeilen angezeigt:
+
If you wish to see the first or last lines, you can use the program "head" or "tail". Without further parameters it will show 10 lines:
 
  dmesg | head
 
  dmesg | head
-> Zeigt die ersten 10 Zeilen
+
-> Shows the first 10 lines
 
  dmesg | tail
 
  dmesg | tail
-> Zeigt die letzten 10 Zeilen
+
-> Shows the last 10 lines
  
Wir werden an einer Datei Änderungen vornehmen und deswegen erstellen wir erst noch eine Kopie der Datei:
+
As we're planing on changing a file, we first make a copy of it for backup purposes:
 
  root@server1:~# cp /etc/network/interfaces /etc/network/interfaces.orig
 
  root@server1:~# cp /etc/network/interfaces /etc/network/interfaces.orig
Und wir öffnen mit dem Editor "nano" die Datei:
+
And we open the file with the editor "nano":
 
  root@server1:~# nano /etc/network/interfaces
 
  root@server1:~# nano /etc/network/interfaces
  

Version vom 30. März 2017, 12:39 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