|
|
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
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 />
| + | Ich habe eine sinnvollere Namensgebung für die Schulungsseiten gefunden. Da ich diese Seite zuerst erstellt habe und es möglich ist, dass jemand sich diese Seite als Bookmark gesetzt hat, ist hier noch der Link zur neuen Seite. |
| | | |
− | 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 />
| + | [http://wiki.revamp-it.ch/index.php?title=Schulung-Teil2-Server_mit_Xen_aufsetzen Link zur neuen Seite] |
− | wakeonlan -i 192.168.67.255 00:21:5a:6d:6d:42
| |
− | | |
− | -i sagt, dass anschliessend eine IP Adresse folgt <br />
| |
− | 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. <br />
| |
− | 00:21:5a:6d:6d:42 ist die MAC-Adresse von der Netzwerkkarte die im Server steckt, den ich aufgesetzt habe. <br />
| |
− | | |
− | Eine allgemeinere Formulierung ist also <br />
| |
− | 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 <br />
| |
− | 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/ <br />
| |
− | | |
− | In meinem Fall zum Einloggen auf dem Server musste ich den folgenden Befehl eingeben: <br />
| |
− | ssh user1@192.168.67.68
| |
− | | |
− | Die allgemeine Formulierung dazu ist <br />
| |
− | 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. <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 />
| |
− | | |
− | 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 <br />
| |
− | sudo apt update
| |
− | | |
− | Als Root kann man das "sudo" weglassen <br />
| |
− | | |
− | 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: <br />
| |
− | 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 />
| |
− | | |
− | Wir müssen den folgenden Befehl eingeben: <br />
| |
− | 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. <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 />
| |
− | 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 />
| |
− | 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 />
| |
− | 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 <br />
| |
− | ssh "Benutzername"@"Remote Computer" (in meinem Fall ssh user1@192.168.67.68)
| |
− | | |
− | und wieder auf Root gewechselt über <br />
| |
− | 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. <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:
| |
− | dmesg | head
| |
− | -> Zeigt die ersten 10 Zeilen
| |
− | dmesg | tail
| |
− | -> Zeigt die letzten 10 Zeilen
| |
− | | |
− | -> ü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
| |
− | 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
| |
− | | |
− | apt install sudo
| |
− | | |
− | adduser user1 sudo
| |
− | | |
− | crash von server, dass ein paar Daten verloren gingen die ich geschrieben habe und die Schulung abgebrochen werden musste.
| |
− | | |
− | | |
− | [[Kategorie:Schulungen_/_Workshops]]
| |