Server mit RAID1 aufsetzen Teil 2: Unterschied zwischen den Versionen

Aus revampedia
Zeile 1: Zeile 1:
Diese Schulung hat am 17.11.2016 stattgefunden. 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. 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 />
  
Unser Lehrer hat auf dem Serverdas 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:<br />
+
<pre>
 +
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
 +
</pre>
 +
 
 +
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:<br />
 
  wakeonlan -i 192.168.67.255 00:21:5a:6d:6d:42
 
  wakeonlan -i 192.168.67.255 00:21:5a:6d:6d:42
  
Zeile 138: Zeile 142:
 
Wir sehen, dass eth0 keine Adresse hat und Xen unsere Adresse verwaltet.  <br />
 
Wir sehen, dass eth0 keine Adresse hat und Xen unsere Adresse verwaltet.  <br />
  
Ab hier wird noch überarbeitet, dass es eine lesbare Form wird:  <br />
+
Als nächses wechseln wir in einen anderen Ordner:  <br />
cd /etc/xen-tools/partitions.d/
+
cd /etc/xen-tools/partitions.d/
  
 +
Hier ist sich aktuell in dem Ordner befindet:  <br />
 +
root@server1:/etc/xen-tools/partitions.d# ls -la
 +
insgesamt 12
 +
drwxr-xr-x 2 root root 4096 Nov 17 14:29 .
 +
drwxr-xr-x 6 root root 4096 Nov 17 14:29 ..
 +
-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
 +
nano vm1
  
 +
Ü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. <br />
  
root@server1:/etc/xen-tools/partitions.d# ls -la
+
Dies ist der Text, den wir in der Datei vm1 eingefügt haben:
insgesamt 12
+
<pre>
drwxr-xr-x 2 root root 4096 Nov 17 14:29 .
 
drwxr-xr-x 6 root root 4096 Nov 17 14:29 ..
 
-rw-r--r-- 1 root root  463 Okt 26  2014 sample-server
 
 
 
 
 
nano vm1
 
 
 
über ctl-shift-V kann man aus browser kopiertem im nano einfügen
 
ctl-shift-c zum kopieren
 
 
 
 
[root]
 
[root]
 
size=20G
 
size=20G
Zeile 164: Zeile 167:
 
size=5G
 
size=5G
 
type=swap
 
type=swap
 +
</pre>
  
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
+
Ctrl+o zum Speichern und Ctrl+x um den nano-Editor zu verlassen. <br />
  
 +
Jetzt folgt eine lange Zeile die uns eine virtuelle Maschine erstellt
 +
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 />
  
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
+
xen-create-image -> Befehl mit dem wir eine virtuelle Maschine erstellen können <br />
 +
--hostname=vm1 -> Name für die virtuelle Maschine die erstellt wird  <br />
 +
--memory=2gb -> Wieviel RAM die virtuelle Maschine brauchen darf <br />
 +
--vcpus=1       -> wieviele Processoren die virtuelle Maschine brauchen darf <br />
 +
--dhcp         -> IP Adresse wird über DHCP bezogenn <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 />
 +
--dist=jessie   -> Welche Debian Distribution auf der virtuellen Maschine installiert wird <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 />
 +
--pygrub       -> alternativer Bootloader den die virtuelle Maschine kriegt <br />
 +
--verbose       -> Gib uns mehr Informationen während die virtuelle Maschine erstellt wird <br />
 +
--password=root -> Passwort für die virtuelle Maschine <br />
  
root@server1:/etc/xen-tools/partitions.d# xen-create-image  
+
Am Schluss der Installation gibt und das xen-create-image-Tool auch ein paar Infos zu unserer VM: <br />
--hostname=vm1 # name für die Virtuelle Maschine
 
--memory=2gb  # Wieviel RAM kann es brauchen
 
--vcpus=1      # wieviele Processoren darf es brauchen
 
--dhcp          # IP adresse über dhcp beziehen
 
--lvm=vg01      # wo er die Partionen erstellen darf. Beim aufsetzen haben wir ja LVM aktiviert und dort die vg01 erstellt
 
--dist=jessie  # welche Debian Distro wird installiert
 
--partitions=/etc/xen-tools/partitions.d/vm1 # wo haben wir die datei gespeichert für die Partitionierung
 
--pygrub        # alternativer Bootloader
 
--verbose      # gib uns mehr infos
 
--password=root # pw für die VM
 
  
 
+
<pre>
 
 
am schluss der installation gibt und das Tool auch ein paar infos zu unserer VM:
 
 
Installation Summary
 
Installation Summary
 
---------------------
 
---------------------
Zeile 193: Zeile 198:
 
IP Address(es)  :  dynamic
 
IP Address(es)  :  dynamic
 
RSA Fingerprint :  31:75:57:0d:c9:f2:8e:79:b6:ef:bb:85:04:ea:75:b4
 
RSA Fingerprint :  31:75:57:0d:c9:f2:8e:79:b6:ef:bb:85:04:ea:75:b4
Root Password  :  root
+
Root Password  :  ****
 +
</pre>
  
cd /etc/xen
+
cd /etc/xen
-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 unserem Tool erstellt
+
Diese Datei wurde von xen-create-image erstellt und der Inhalt der Datei ist das folgende: <br />
 
 
less vm1.cfg
 
  
 +
less vm1.cfg
 +
<pre>
  
 
#
 
#
Zeile 211: Zeile 217:
 
#  Kernel + memory size
 
#  Kernel + memory size
 
#
 
#
 
  
 
bootloader = '/usr/lib/xen-4.4/bin/pygrub'
 
bootloader = '/usr/lib/xen-4.4/bin/pygrub'
Zeile 217: Zeile 222:
 
vcpus      = '1'
 
vcpus      = '1'
 
memory      = '2048'
 
memory      = '2048'
 
  
 
#
 
#
Zeile 227: Zeile 231:
 
                   'phy:/dev/vg01/vm1-swap,xvda1,w',
 
                   'phy:/dev/vg01/vm1-swap,xvda1,w',
 
               ]
 
               ]
 
 
 
 
  
 
#
 
#
 
#  Physical volumes
 
#  Physical volumes
 
#
 
#
 
  
 
#
 
#
Zeile 254: Zeile 253:
 
on_reboot  = 'restart'
 
on_reboot  = 'restart'
 
on_crash    = 'restart'
 
on_crash    = 'restart'
 +
</pre>
  
mit q wieder less beenden
+
Mit q wird "less" beendet <br />
  
 +
<pre>
 +
root@server1:/etc/xen# xl list
 +
Name                                        ID  Mem VCPUs    State      Time(s)
 +
Domain-0                                    0  1853    2    r-----    187.2
 +
</pre>
  
 +
Die virtuelle Maschine wurde noch nicht gestartet <br />
  
root@server1:/etc/xen# xl list
+
<pre>
Name                                        ID  Mem VCPUs
 
      State  Time(s)
 
Domain-0                                    0  1853    2    r-----    187.2
 
 
root@server1:/etc/xen# free -h
 
root@server1:/etc/xen# free -h
 
             total      used      free    shared    buffers    cached
 
             total      used      free    shared    buffers    cached
Mem:          1.7G      217M      1.5G      5.0M        12M      139M
+
Mem:          1.7G      217M      1.5G      5.0M        12M      139M
 
-/+ buffers/cache:        65M      1.6G
 
-/+ buffers/cache:        65M      1.6G
 
Swap:        4.7G        0B      4.7G
 
Swap:        4.7G        0B      4.7G
 +
</pre>
  
Da meine Maschine nicht genug RAM hat musste dies angepasst werden
+
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 />
root@server1:/etc/xen# nano vm1.cfg
 
 
 
memory      = '1024'
 
 
 
root@server1:/etc/xen# xl create -c /etc/xen/vm1.cfg
 
-c = console
 
 
 
-> wir starten die neu erstellte VM
 
 
 
 
 
 
 
da noch keine Benutzer bestehen loggen wir als root ein mit dem gewählten pw während der xen-tool kreation
 
Dieser Befehl kann jedoch nur etwas anzeigen, wenn die Maschine ein DHCP Server ist. Auf einem Client existiert diese Datei nicht. Es gibt den Pfad /var/lib/dhcp/ jedoch.
 
 
 
ssh user1@192.168.67.68
 
Wenn man gefragt wird ob man fortfahren will muss man das yes ausschreiben Are you sure you want to continue connecting (yes/no)? yes
 
sudo apt update -> die packetliste aktualisieren
 
wir wollen heute einen Xen-Server installieren, dass wir anschliessend Virtuelle Maschinen erstellen können auf dennen wir unterschiedliche Sachen installieren können
 
user1@server1:~$ sudo apt install xen-linux-system xen-tools
 
 
 
http://wiki.revamp-it.ch/index.php?title=Revamp_LTSP:_Doku_zu_Installation_und_Konfiguration sudo dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen
 
 
 
da ich es leid wurde, dass ich die Befehle nicht direkt ausführen kann, habe ich in den Root User gewechselt über
 
sudo -i
 
update-grub
 
reboot
 
neu mit server verbinden nach dem neustart
 
ssh user1@192.168.67.68
 
sudo -i
 
dmesg -> viel infos
 
dmesg | head -> ersten Zeilen dmesg | tail -> letzten Zeilen dmesg | less -> über q kann man aus dem less programm gehen
 
root@server1:~# cp /etc/network/interfaces /etc/network/interfaces.orig root@server1:~# nano /etc/network/interfaces
 
allow-hotplug eth0
 
iface eth0 inet dhcp
 
 
 
 
 
iface eth0 inet manual -> interface für internet, doch manue ll konfiguriert
 
auto xenbr0 -> startet xen-bridge automatisch iface xenbr0 inet dhcp -> xen-bridge hat dhcp
 
  bridge_ports eth0  -> bridge geht zu eth0
 
 
 
alternativ zuerst in den Ordner gehen: cd /etc/network/ ls -> listet den Inhalt
 
Nach dem editieren nochmals neu starten: reboot
 
Pietro musste überprüfen ob die IP Adresse geändert hat. wieder zurück auf den server mit
 
ssh user1@192.168.67.68
 
ip a
 
zeigt uns details zu IP Adressen:
 
 
 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
 
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 
  inet 127.0.0.1/8 scope host lo
 
      valid_lft forever preferred_lft forever
 
  inet6 ::1/128 scope host
 
      valid_lft forever preferred_lft forever
 
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master xenbr0 state UP group default qlen 1000
 
  link/ether 00:21:5a:6d:6d:42 brd ff:ff:ff:ff:ff:ff
 
3: xenbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
 
  link/ether 00:21:5a:6d:6d:42 brd ff:ff:ff:ff:ff:ff
 
  inet 192.168.67.68/24 brd 192.168.67.255 scope global xenbr0
 
      valid_lft forever preferred_lft forever
 
  inet6 fe80::221:5aff:fe6d:6d42/64 scope link
 
      valid_lft forever preferred_lft forever
 
 
 
Wir sehen, dass eth0 keine Adresse hat und Xen unsere Adresse verwaltet
 
cd /etc/xen-tools/partitions.d/
 
 
 
 
 
root@server1:/etc/xen-tools/partitions.d# ls -la insgesamt 12 drwxr-xr-x 2 root root 4096 Nov 17 14:29 . drwxr-xr-x 6 root root 4096 Nov 17 14:29 .. -rw-r--r-- 1 root root 463 Okt 26 2014 sample-server
 
 
 
nano vm1
 
über ctl-shift-V kann man aus browser kopiertem im nano einfügen ctl-shift-c zum kopieren
 
[root] size=20G type=ext4 mountpoint=/
 
[swap] size=5G type=swap
 
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
 
 
 
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
 
root@server1:/etc/xen-tools/partitions.d# xen-create-image --hostname=vm1 # name für die Virtuelle Maschine --memory=2gb # Wieviel RAM kann es brauchen --vcpus=1 # wieviele Processoren darf es brauchen --dhcp # IP adresse über dhcp beziehen --lvm=vg01 # wo er die Partionen erstellen darf. Beim aufsetzen haben wir ja LVM aktiviert und dort die vg01 erstellt --dist=jessie # welche Debian Distro wird installiert --partitions=/etc/xen-tools/partitions.d/vm1 # wo haben wir die datei gespeichert für die Partitionierung --pygrub # alternativer Bootloader --verbose # gib uns mehr infos --password=root # pw für die VM
 
 
 
am schluss der installation gibt und das Tool auch ein paar infos zu unserer VM: Installation Summary
 
Hostname  : vm1 Distribution  : jessie MAC Address  : 00:16:3E:98:82:D7 IP Address(es)  : dynamic RSA Fingerprint : 31:75:57:0d:c9:f2:8e:79:b6:ef:bb:85:04:ea:75:b4 Root Password  : root
 
cd /etc/xen -rw-r--r-- 1 root root 651 Nov 17 15:30 vm1.cfg
 
diese Datei wurde von unserem Tool erstellt
 
less vm1.cfg
 
 
 
Configuration file for the Xen instance vm1, created
 
by xen-tools 4.5 on Thu Nov 17 15:30:28 2016.
 
Kernel + memory size
 
 
 
bootloader = '/usr/lib/xen-4.4/bin/pygrub'
 
vcpus = '1' memory = '2048'
 
 
 
Disk device(s).
 
root = '/dev/xvda2 ro' disk = [
 
                'phy:/dev/vg01/vm1-root,xvda2,w',
 
                'phy:/dev/vg01/vm1-swap,xvda1,w',
 
            ]
 
 
 
 
 
Physical volumes
 
 
 
Hostname
 
name = 'vm1'
 
Networking
 
dhcp = 'dhcp' vif = [ 'mac=00:16:3E:98:82:D7' ]
 
Behaviour
 
on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart'
 
mit q wieder less beenden
 
 
 
root@server1:/etc/xen# xl list Name ID Mem VCPUs
 
    State  Time(s)
 
Domain-0 0 1853 2 r----- 187.2 root@server1:/etc/xen# free -h
 
            total      used      free    shared    buffers    cached
 
Mem: 1.7G 217M 1.5G 5.0M 12M 139M -/+ buffers/cache: 65M 1.6G Swap: 4.7G 0B 4.7G
 
Da meine Maschine nicht genug RAM hat musste dies angepasst werden root@server1:/etc/xen# nano vm1.cfg
 
memory = '1024'
 
root@server1:/etc/xen# xl create -c /etc/xen/vm1.cfg -c = console
 
-> wir starten die neu erstellte VM
 
 
 
da noch keine Benutzer bestehen loggen wir als root ein mit dem gewählten pw während der xen-tool kreation
 
  
adduser user1
+
root@server1:/etc/xen# nano vm1.cfg
 +
memory      = '1024'
  
apt install sudo
+
Jetzt können wir unseren Server starten <br />
 +
root@server1:/etc/xen# xl create -c /etc/xen/vm1.cfg
  
adduser user1 sudo
+
xl -> Das Programm welches wir nutzen <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 />
 +
-c -> Dass wir eine Konsole bekommen <br />
 +
/etc/xen/vm1.cfg -> Pfad zur Konfiguration von unserer virtuellen Maschine <br />
  
crash von server, dass ein paar Daten verloren gingen die ich geschrieben habe und die Schulung abgebrochen werden musste.
+
Da noch keine Benutzer bestehen loggen wir als root ein mit dem Passwort, welches wir bei xen-create-image eingegeben haben. <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":
 +
adduser user1
 +
Dass wir mit dem neu erstellten Benutzer auch Admin-Rechte haben müssen wir das Programm "sudo" installieren:
 +
apt install sudo
 +
Dass der neu erstellte Benutzer diese Rechte dann auch hat müssen wir ihn in die Gruppe sudo aufnehmen:
 +
adduser user1 sudo
  
 +
Zu diesem Zeitpunkt wurde unsere Schulung unfreiwillig abgebrochen, weil die Festplatte vom LTSP-Server in unserem Schulungsraum kaputt ging. <br />
  
 
[[Kategorie:Schulungen_/_Workshops]]
 
[[Kategorie:Schulungen_/_Workshops]]

Version vom 19. November 2016, 23:44 Uhr

Diese Schulung hat am 17.11.2016 stattgefunden. 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

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. Ich werde noch an einer anderen Seite arbeiten um IPv4 noch ein wenig zu erklären und dann hier den Link dazu einfügen.
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/

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

Bevor wir jetzt anfangen Programme zu installieren wollen wir in unserem Debian Jessie die Liste mit den verfügbaren Packeten 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

Für unseren Xen-Server brauchen wir die Packete 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 Packetupdate ü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

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 | less

Hier haben wir Einträge zu Xen gefunden. Mit "q" kann man das Programm "less" verlassen um wieder auf der Konsole zu sein.

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:

dmesg | head

-> Zeigt die ersten 10 Zeilen

dmesg | tail

-> Zeigt die letzten 10 Zeilen

Wir werden an einer Datei Änderungen vornehmen und deswegen erstellen wir erst noch eine Kopie der Datei:

root@server1:~# cp /etc/network/interfaces /etc/network/interfaces.orig

Und wir öffnen mit dem Editor "nano" die Datei:

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:

cd /etc/network/
cp interfaces interfaces.orig
nano interfaces

Wir haben die vorhandenen Einträge auskommentiert:

# allow-hotplug eth0
# iface eth0 inet dhcp

Zeilen die mit einem # beginnen werden als Kommentar betrachtet und was dahinter steht wird das ignoriert.

iface eth0 inet manual
auto xenbr0
iface xenbr0 inet dhcp
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.

Hier noch die Erklärung was wir mit diesen neuen Einstellungen machen. iface eth0 inet manual -> Interface für Internet wird manuell konfiguriert
auto xenbr0 -> Wenn der Computer startet wird automatisch eine Xen-Bridge erstellt
iface xenbr0 inet dhcp -> Xen-Bridge hat DHCP
bridge_ports eth0 -> Bridge geht zum Interface eth0

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 folgende Seite. Ich hoffe das Bild, das ich von dort kopiert habe hilft ein wenig zum Verstehen, was die Brücke macht.

Xen-network-basic.png


Nach dem editieren nochmals neu starten:

reboot

Unser Lehrer hat geprüft ob sich die IP Adressen geändert haben.

Also wieder zurück auf den server mit

ssh user1@192.168.67.68

Jetzt können wir die Änderunge, 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:

ip a

Hier was auf meiner Testmaschine angezeigt wird:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master xenbr0 state UP group default qlen 1000
    link/ether 00:21:5a:6d:6d:42 brd ff:ff:ff:ff:ff:ff

3: xenbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 00:21:5a:6d:6d:42 brd ff:ff:ff:ff:ff:ff
    inet 192.168.67.68/24 brd 192.168.67.255 scope global xenbr0
       valid_lft forever preferred_lft forever
    inet6 fe80::221:5aff:fe6d:6d42/64 scope link 
       valid_lft forever preferred_lft forever

Wir sehen, dass eth0 keine Adresse hat und Xen unsere Adresse verwaltet.

Als nächses wechseln wir in einen anderen Ordner:

cd /etc/xen-tools/partitions.d/

Hier ist sich aktuell in dem Ordner befindet:

root@server1:/etc/xen-tools/partitions.d# ls -la
insgesamt 12
drwxr-xr-x 2 root root 4096 Nov 17 14:29 .
drwxr-xr-x 6 root root 4096 Nov 17 14:29 ..
-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

nano vm1

Ü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 ist der Text, den wir in der Datei vm1 eingefügt haben:

[root]
size=20G
type=ext4
mountpoint=/

[swap]
size=5G
type=swap

Ctrl+o zum Speichern und Ctrl+x um den nano-Editor zu verlassen.

Jetzt folgt eine lange Zeile die uns eine virtuelle Maschine erstellt

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:

xen-create-image -> Befehl mit dem wir eine virtuelle Maschine erstellen können
--hostname=vm1 -> Name für die virtuelle Maschine die erstellt wird
--memory=2gb -> Wieviel RAM die virtuelle Maschine brauchen darf
--vcpus=1 -> wieviele Processoren die virtuelle Maschine brauchen darf
--dhcp -> IP Adresse wird über DHCP bezogenn
--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
--dist=jessie -> Welche Debian Distribution auf der virtuellen Maschine installiert wird
--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.
--pygrub -> alternativer Bootloader den die virtuelle Maschine kriegt
--verbose -> Gib uns mehr Informationen während die virtuelle Maschine erstellt wird
--password=root -> Passwort für die virtuelle Maschine

Am Schluss der Installation gibt und das xen-create-image-Tool auch ein paar Infos zu unserer VM:

Installation Summary
---------------------
Hostname        :  vm1
Distribution    :  jessie
MAC Address     :  00:16:3E:98:82:D7
IP Address(es)  :  dynamic
RSA Fingerprint :  31:75:57:0d:c9:f2:8e:79:b6:ef:bb:85:04:ea:75:b4
Root Password   :  ****
cd /etc/xen
-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:

less vm1.cfg

#
# Configuration file for the Xen instance vm1, created
# by xen-tools 4.5 on Thu Nov 17 15:30:28 2016.
#

#
#  Kernel + memory size
#

bootloader = '/usr/lib/xen-4.4/bin/pygrub'

vcpus       = '1'
memory      = '2048'

#
#  Disk device(s).
#
root        = '/dev/xvda2 ro'
disk        = [
                  'phy:/dev/vg01/vm1-root,xvda2,w',
                  'phy:/dev/vg01/vm1-swap,xvda1,w',
              ]

#
#  Physical volumes
#

#
#  Hostname
#
name        = 'vm1'

#
#  Networking
#
dhcp        = 'dhcp'
vif         = [ 'mac=00:16:3E:98:82:D7' ]

#
#  Behaviour
#
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

Mit q wird "less" beendet

root@server1:/etc/xen# xl list
Name                                        ID   Mem VCPUs    State      Time(s)
Domain-0                                     0  1853     2     r-----     187.2

Die virtuelle Maschine wurde noch nicht gestartet

root@server1:/etc/xen# free -h
             total       used       free     shared    buffers     cached
 Mem:          1.7G       217M       1.5G       5.0M        12M       139M
-/+ buffers/cache:        65M       1.6G
Swap:         4.7G         0B       4.7G

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:

root@server1:/etc/xen# nano vm1.cfg 
memory      = '1024'

Jetzt können wir unseren Server starten

root@server1:/etc/xen# xl create -c /etc/xen/vm1.cfg

xl -> Das Programm welches wir nutzen
create -> Ein Unterkommande welches eine .cfg Datei erwartet. Hier noch ein Link zur man-Page vom xl-Befehl
-c -> Dass wir eine Konsole bekommen
/etc/xen/vm1.cfg -> Pfad zur Konfiguration von unserer virtuellen Maschine

Da noch keine Benutzer bestehen loggen wir als root ein mit dem Passwort, welches wir bei xen-create-image eingegeben haben.
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":

adduser user1

Dass wir mit dem neu erstellten Benutzer auch Admin-Rechte haben müssen wir das Programm "sudo" installieren:

apt install sudo

Dass der neu erstellte Benutzer diese Rechte dann auch hat müssen wir ihn in die Gruppe sudo aufnehmen:

adduser user1 sudo

Zu diesem Zeitpunkt wurde unsere Schulung unfreiwillig abgebrochen, weil die Festplatte vom LTSP-Server in unserem Schulungsraum kaputt ging.