Projekt 2 (Karl & Karl) – Propaganda PI | InternetRadio

Propaganda PI

Um einen Propaganda Sender erfolgreich zu hosten benötigt es folgendes Equipment:

  • Raspberry PI
  • 20 cm Antenne
  • PiFM Software

Antenne und Raspberry PI

  • Grundsätzlich kann jeder Kupferdraht für die Antenne verwendet werden. Am besten eignet sich ein normales Kabel mit zwei weiblichen Anschlüssen. Die Antenne wird an dem GPIO 4 angeschlossen. Mit einer 20cm Antenne kann in etwa 100 Meter ausgestrahlt werden.

antenne

Software PiFM

  1. Als nächsten Schritt wird die benötigte Software heruntergeladen mit folgendem Befehl

                          wget http://www.icrobotics.co.uk/wiki/images/c/c3/Pifm.tar.gz

  1. Mit dem nächsten Befehl wird das Archiv entzippt

                          tar –xzf Pifm.tar.gz

  1. Nun kann mit dem Broadcast begonnen werden

                 Sudo ./pifm sound.wav 108.0

./pifm startet das Skript. Danach folgt die *.wav Datei welche abgespielt werden soll. Als dritter Parameter folgt die FM Frequenz.

Es können auch MP3 abgespielt werden. Dazu wird folgender Befehl benötigt

                 ffmpeg -i input.mp3 -f s16le -ar 22.05k -ac 1 – | sudo ./pifm –

Oder es kann die Sounddatei auch in Stereo ausgegeben werden.

                 sudo ./pifm left_right.wav 103.3 22050 stereo

 Mittlerweile ist auch ein komplettes Image für einen Radio verfügbar. Mit diesem Image kann automatisch Musik abgespielt werden. Man überspielt einfach die Musik auf die SD Karte. Danach editiert man die pirateradio.config mit der gewünschten Frequenz. Es kann auch Shuffle und Repeat ausgewählt werden. Folgendes Image ist hier verfügbar.

http://makezine.com/projects/make-38-cameras-and-av/raspberry-pirate-radio/

Wie ist das möglich?

Die Raspberry Hardware kann an seine GPIO Pins ein Spread-Spectrum-Taktsignal abgeben um eine Energie für eine UKW Frequenz zu erzeugen. Das bedeutet es wird einfach ein 20cm Draht benötigt, in den GPIO 4 angebunden und die Software gestartet.

INTERNETRADIO

Um zu prüfen, ob der nötige Audio-Treiber geladen ist, öffnen Sie ein Terminal und geben dort den Befehl lsmod ein. In der Ausgabe sollte das Modul „snd_bcm2835“ auftauchen. Wenn das nicht der Fall ist, dann geben Sie den Befehl sudo modprobe snd_bcm2835 ein und sehen danach erneut nach.

Das Kernstück des Internetradios sind der Music Player Daemon und der Music Player Client. Diese installieren Sie mit dem Befehl sudo apt-get install mpd mpc.

Installieren Sie danach die MP3-Co­decs mit dem Befehl sudo apt-get install mpg321 lame.

Damit haben Sie schon alles, was Sie für den Empfang von Webradiosendern benötigen – bis auf die Sender.

Für einen ersten Test geben Sie mpc add http://mp3.live.tv-radio.com/franceinfo/all/franceinfo.mp3 ein, gefolgt von mpc play. Sie hören französisches Webradio. Um es wieder zu beenden, verwenden Sie mpc stop.

Die meisten Radiosender senden jedoch in Form einer Playlist mit der Dateiendung PLS oder M3U. Diese versteht mpd aber nicht, sodass Sie einen kleinen Umweg nehmen müssen.

Für Lounge FM schließlich verwenden Sie  die Adresse http://80.237.156.13/lounge-at. Wenn Sie alle gewünschten Sender erfasst haben, dann speichern Sie die Liste mit mpc save my_radios.

Anschließend zeigt mpc playlist die Liste der Sender an, mpc play 2 spielt den zweiten Sender der Liste und mpc next wechselt zum nächsten Stream. Um die Playlist zu löschen, geben Sie mpc clear ein.

Die Apps MPoD für iPhone sowie MPDroid für Android machen das Smartphone zur Fernbedienung für Ihr Rasp­berry-Radio.

RetroPI – „Raspberry PI“ als Spielekonsole (Schneeberger & Pauschenwein)

Exposee: Innerhalb der Lehrveranstaltung „Mobile and Location Based Computing“ soll das Arbeiten mit dem Mini-System, Raspberry Pi, den Studenten näher gebracht werden. Durch intensive Beschäftigung mit dem Server-System, können weitgehende Erfolge für den Heimgebrauch erzielt werden. Die Hardware wird insbesondere von interessierten experimentierfreudigen Studenten genutzt.

LV: Mobile- & Location-Based-Computing

Dozent: Rainer Schmidt

Team: Andreas Schneeberger &  Petra Pauschenwein

Status: 18-05-2015

_______________________________________________________________________________

Projekt: Raspberry PI als Spielekonsole – „RetroPI“

Motivation

„Retro – Games“, wie man sie aus den 80er Jahren kennt, laufen heutzutage auf den gängigen Hardwareausführungen und Betriebssystemen nicht mehr. In den vergangenen Jahrzehnten wurden teure Computersysteme an die Endkunden verkauft. Bekannte Anbieter und deren Game-Konsolen (Nintendo, Commodore64, Atari, Sega) werden für manche immer in Erinnerung bleiben. Die an das System gestellten Anforderungen können über die Hardware eines Mini-Systems, nämlich dem „Raspberry Pi“ erreicht werden. Dabei erfüllt dieser die Leistungsansprüche und es steht dadurch dem Wiederbeleben solcher Videospielsysteme nichts mehr im Wege.

Die Konsolenspiele können nicht direkt ausgeführt werden, müssen deshalb über eine „virtuelle Spielekonsole“ emuliert werden. Dadurch wird das Vorhandensein der benötigten Hardware erreicht beziehungseise vorgespielt und die Anweisungen übersetzt, sprich vom System verstanden.

Der „Raspberry-Pi“

Der Server wird über den „Raspberry Pi“ realisiert, welcher dafür zu Verfügung gestellt wurde. Die genauen Spezifikationen können der Herstellerseite entnommen werden und sind unter der URL „http://www.raspberrypi.org/introducing-raspberry-pi-model-b-plus/“ zu finden. Anschließend sind die wichtigsten Daten des Gerätestyps, „Raspberry Pi Model B+“ aufgezeigt:

Raspberry

SoC (CPU & GPU): Broadcom BCM2836

Model Name: ARMv7 Processor rev 5 (v7l)

Firmware-Version: Linux cpi 3.18.7-v7+ #755 SMP PREEMPT Thu Feb 12 17:20:48 GMT 2015 armv7l GNU/Linux

Abmessungen: 85,60 mm x 53,98 mm x 17 mm

Zusätzliche Produkte, wie ein HDMI Kabel, ein Netzwerkadapter mit 5 Volt bei 2000 Milliampere Energieverbrauch, ein WiFi-Adapter und eine Micro-SD-Speicher Karten mit etwa 32 GB sind für den Gebrauch erforderlich.

Hardware1jpgUm die Spielekonsole hautnah erleben zu können wurden alte Bestände, welche nicht mehr funktionstüchtig sind besorgt und entsprechend zur Restaurierung vorbereitet. Die Auswahl viel auf den Commodore 64.

Ziel ist es, altbekannte C64 Games aus unserer Jugend zu zocken!!!

Beschaffung des Betriebssystems

Das Betriebssystem kann kostenlos von der Herstellerseite bezogen werden. Die angebotenen Versionen stehen auf der „Raspberry Pi“ – Plattform zu Verfügung (http://www.raspberrypi.org/downloads/). Neben Raspbian (Debian Weezy), einer gängigen, zugeschnittenen Distribution speziell für den „Raspberry Pi“ gibt es alternativ „Snappy Ubuntu Core“, das für Entwickler bereit gestellt wird. Mit „OPENELEC- Open Embedded Linux Entertainment Center“ und „OSMC – Open Source Media Centre“ werden Betriebssysteme für ein Home Entertainment Media Center angeboten. Zusätzlich gibt es die Auswahl zwischen „RISC OS“ und „PIDORA“, welches auf die Umgebung von „Fedora“, ein weiteres bekanntes Linux Betriebssystem, zurückgreift.
Die Software kann direkt von der angeführten Web-Seite herunter geladen werden, entweder über einen „Torrent-Link“ oder als „Zip-Archiv“. Der Link, „file://localhost/C:/Users/~/Downloads/2015-02-16-raspbian-wheezy.zip.torrent“, wird über den Standardbrowser des Systems geöffnet und der Download startet automatisch. Nach dem extrahieren der runtergeladenen Zip-Datei, „2015-02-16-raspbian-wheezy.zip”, steht die gewünschte Image-Datai (.img) zu Verfügung.

Installation des Betriebssystems

Um das Betriebssystem auf die SD-Karte, die „Festplatte“ des „Raspberry Pi’s“ zu bekommen, werden unter Windows zusätzliche „Freeware-Tools“ verwendet. Das kostenlose Hilfsprogramm „Win32 Disk Imager“, (http://sourcefrog.net/projects/ win32diskimager/), kann dazu verwendet werden um die angesprochene Image-Datei direkt auf die SD-Karte zu schreiben. Ein komfortables Programm um die SD-Karten zu formatieren und für den Gebrauch herzurichten kann von folgender Quelle bezogen werden, http://www.heise.de/download/sd-formatter.html und nennt sich „SD-Formatter V4.0“.

SD_KarteRaspbian

2015-04-13 13_42_05-Win32 Disk Imager-Read-Backup erstellenEine weitere Variante, die sich als einfach und nützlich erwiesen hat, bietet die Anwendung des Installationsmanagers NOOBS (New Out Of the Box Software). Dabei steht eine Installation mit Netzwerkanbindung oder eine Offline-Variante frei zur Auswahl. Erst bei der netzwerkunterstützen Installation stehen weitere Betriebssysteme zum Selektieren bereit. In jedem Fall wird das heruntergeladene Archiv direkt auf die SD-Karte extrahiert. Unmittelbar nach diesem Vorgang kann diese in den „Raspberry Pi“ gegeben werden, die nötigen Peripheriegeräte (Maus, Tastatur, Monitor) angesteckt werden und der Mini-PC eingeschaltet werden. Das passiert, indem das Netzteil mit dem Mini-USB Slot des Gerätes verbunden wird und damit die Stromzufuhr ermöglicht. Danach startet die Installation automatisch und dauert etwa fünfundzwanzig – dreißig Minuten. Nach dem ersten Startvorgang öffnet sich erstmals ein Konfiguration-Modus. Dieser kann jederzeit mit dem Befehl, „raspi-config“ wieder aufgerufen werden und ermöglicht einige Standardeinstellungen für das Gerät. Ist die Installation nicht über NOOBS erfolgt, muss unter dem Menüpunkt „Expand Filesystem“ der gesamte verfügbare Speicher der SD Karte nutzbar gemacht werden. Die Standard-Login-Daten (User: pi / Passwort: raspberry) sollten geändert werden. Desweiteren ist es notwendig die länderspezifischen Einstellungen vorzunehmen. Dabei werden Sprache und regionale Einstellungen gesetzt, wobei darauf zu achten ist, dass de_AT.UTF-8, UTF-8 für ein österreichisches dreisprachiges Layout zu wählen. Zusätzlich bietet es sich an die US-spezifischen Einstellungen mit zu installieren. Das Erkennen des Tastatur-Layouts erfolgt dann automatisch.

GeneratingLocalesOverclock

Resize of DSC_0247

Das direkte Hochfahren mit Graphischer Oberfläche (GUI) kann aktiviert werden. Andernfalls startet der „Raspberry Pi“ lediglich mit einer Eingabe-Konsole. Das ist für den Server-Betrieb ausreichend und produktiv. Um trotzdem weitere Konfigurationen in gewohnter graphischer Umgebung vorzunehmen, kann jederzeit in den graphischen Modus mit „startx“ gewechselt werden.

Weiters ist das Arbeiten unter den in der Linuxwelt bekannten Bedingungen durchzuführen. Zunächst sollte die Version des Betriebssystems mit den Befehlen „sudo apt-get update“ und „sudo apt-get upgrade“ auf neuesten Stand aktualisiert werden. Der Paket-Manager führt die Anpassungen ordnungsgemäß durch und nimmt ungefähr 15 min Zeit in Anspruch. Voraussetzungen dazu ist eine aufrechte Verbindung zum Internet. Dies kann über die Ethernet-Schnittstelle mit einem herkömmlichen „LAN-Kabel“ (RJ45) erfolgen oder über einen WLAN-Adapter realisiert werden. Der Hersteller empfiehlt den Wireless 802.11b/g/n USB Adapter von „Edimax“. Die nötigen Treiber, sprich die Geräteerkennungssoftware, ist bereits im Betriebssystem integriert und muss nicht nachinstalliert werden. Um den „Raspberry Pi“ über WLAN erreichbar zu machen, müssen Konfigurationsänderungen durchgeführt werden. Zumal sind die Einträge in der Datei „/etc/network/interfaces“ zu erweitern, sodass eine IP-Adresse über DHCP (Dynamic Host Configuration Protocol) auto  matisch bezogen wird. Ebenso kann die gewünschte IP-Adresse auch statisch vergeben werden um dem Gerät eine dauerhaft bleibende Adresse zuzusichern. In diesem Fall wird die IP-Adresse beim Hochfahren des „Raspberry Pi’s“ zugeteilt. Dabei wird über spezielle Einstellungen am Netzwerkrouter sichergestellt, dass die gewählte Adresse permanent dem Gerät zugewiesen wird. Die Zugangsdaten werden in die Datei „/etc/wpa_supplicant/ wpa_supplicant.conf“ eingefügt, um eine Verbindungsauthentifizierung zu ermöglichen. Abhängig vom Access Point können die Einstellungen (RSN, CCMP) für ein WPA2 verschlüsseltes Netzwerk oder (WPA, TKIP) für WPA1-Verschlüsselung vorgenommen werden. Damit der „Raspberry Pi“ den WLAN-Adapter nach einer verloren gegangen Internetverbindung, beispielsweise bei schwachem Empfang nicht deaktiviert, wird die Datei „/etc/wpa_supplicant/ifupdown.sh“ in die das Verzeichnis „/etc/ifplugd/ action.d/“ kopiert. Nach einem Neustart des Netzwerkdienstes mit „sudo service networking restart“ kann die zugewiesene IP-Adresse mit dem Befehl „ifconfig“ überprüft werden.

networkinterfaces

interfaces

hostnameUm bequem mit dem „Raspberry Pi“ arbeiten zu können ist es notwendig entsprechende Remoteverbindungen einzurichten. Danach kann das Gerät vom Desktop-PC oder Laptop betreut und eingerichtet werden. Direkt an den „Raspberry Pi“ angeschlossene Geräte, wie Tastatur oder Monitor sind dann nicht mehr unbedingt erforderlich und können abgesteckt werden. Die Installation des SSH Dienstes erfolgt üblicherweise über den Packet Manager. Mit „sudo apt-get install openssh-server“ kann dieser nachinstalliert werden. Danach kann eine sichere Verbindung über Port 22, beispielsweise über das Programm „PuTTY“, hergestellt werden und über ein Konsolenfenster weitere Tätigkeiten durchgeführt werden. Durch Installation des „Xrdp-Dienstes“ (sudp apt-get install xrdp), ist es möglich auf das Betriebssystem via „Remotedesktop“ zu verbinden. Nach Eingabe der Login-Daten steht eine graphische Benutzeroberfläche zu Verfügung.

RemoteConnection

Erweiterte Systemkonfiguration

Dies soll bequem über ein erweitertes Installationsskript erfolgen.

  •  Paketmanager aktualisieren

sudo apt-get update

apt-update

  • Erforderliche Softwarepakete installieren

Zeitaufwand: 8:09 – 8:20

pi@cpi ~ $ sudo apt-get install git dialog
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen…. Fertig
git ist schon die neueste Version.
git wurde als manuell installiert festgelegt.
Die folgenden NEUEN Pakete werden installiert:
dialog
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 50 nicht aktualisiert.
Es müssen 304 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 1.136 kB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren [J/n]? J
Holen: 1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main dialog armhf 1.1-20120215-2 [304 kB]
Es wurden 304 kB in 0 s geholt (455 kB/s).
Vormals nicht ausgewähltes Paket dialog wird gewählt.
(Lese Datenbank … 78502 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacken von dialog (aus …/dialog_1.1-20120215-2_armhf.deb) …
Trigger für man-db werden verarbeitet …
dialog (1.1-20120215-2) wird eingerichtet …

  • Installationsskript laden

git clone git://github.com/petrockblog/RetroPie-Setup.git
pi@cpi ~ $ git clone git://github.com/petrockblog/RetroPie-Setup.git
Cloning into ‚RetroPie-Setup’…
remote: Counting objects: 9766, done.
remote: Total 9766 (delta 0), reused 0 (delta 0), pack-reused 9766
Receiving objects: 100% (9766/9766), 14.73 MiB | 1.11 MiB/s, done.
Resolving deltas: 100% (6857/6857), done.
pi@cpi ~ $

Zeitaufwand: 8:20 – 09:25

  • In das Heimatverzeichnis wechseln

cd Retro-Pie-Setup

RetroPI-Dirchmod-retropisetup

  • Skript starten

sudo ./retropie_setup.sh

Installation_retro_binaries

Petroblock-1-Setup_RetroPie-Setup  Petrockblock

 

  • Einloggen in das neu installierte System

startfenster-RetropiFortfolgend wurden alle Updates und Aktualisierungen durchgeführt.

Das starten des Emulators erfolgt mit dem Befehl:

emulationsstation

Dabei wurd das Setup so eingerichtet, dass dieser automatisch beim Start des Raspberry PI’s ausgeführt wird.

Dabei stehen verschiedenste Plattformen für den Betrieb bereit. Neben der Auswahl von Demoversionen steht auch die altbewährte DOS-BOX zu Verfügung.

Resize of DSC_0188 Resize of DSC_0189 Resize of DSC_0190 Resize of DSC_0191 Resize of DSC_0192 Resize of DSC_0193Resize of DSC_0244

Der Commodore 64 Emulator wurde nach dem Bereitstellen der Spiele in den vordefinierten Ordnern ebenfalls automatisch eingerichtet.

  • Setup der Emulations-Station

In weiterer Folge erfolgt das Setup der Input-Devices und der weiteren Einstellungen über Sound, Display, Steuerung, usw…

Resize of DSC_0194 Resize of DSC_0195 Resize of DSC_0196 Resize of DSC_0197 Resize of DSC_0245

  • Bereitstellen der Spiele Roms

romsÜber WIN SCP wurden die Spiele in die entsprechenden Ordner kopiert, dabei ist zu Beachten, dass die Anbieter der ROMs vertrauenswürdig sind.

Quelle: http://www.c64games.de/phpseiten/spiele.php

 

SpieleResize of DSC_0233 Anschliessend stehen die Spiele zur Auswahl bereit🙂

Der Commodore Emulator von „VICE“ muss zusätzlich konfiguriert werden!

Resize of DSC_0248Resize of DSC_0205 Resize of DSC_0204 Resize of DSC_0206 Resize of DSC_0207

Lizenzen🙂

Resize of DSC_0249 Resize of DSC_0251 Resize of DSC_0250

 

THE GAMES – It will make you crazy!

Resize of DSC_0241 Resize of DSC_0236 Resize of DSC_0235 Resize of DSC_0234 Resize of DSC_0230 Resize of DSC_0229 Resize of DSC_0224 Resize of DSC_0225 Resize of DSC_0219 Resize of DSC_0211 Resize of DSC_0208 Resize of DSC_0221  Resize of DSC_0202 Resize of DSC_0201

Für den „Amiga“ gibt es auch etwas:

Resize of DSC_0242 Resize of DSC_0243

 

  • Game Controller

Die Tastatur ist neben den Joysticks bekannterweise unbedingt erforderlich. Inputdaten müssen einerseits über Joystick 1 andererseits über Joystick 2 getätigt werden. Dazu braucht man zuzüglich die Tastatur um mit F1 -F8, RETURN, SPACE, TAB Eingaben vorzunehmen.

Es wurde versucht einen gängigen Controller (PS3), der über eine USB-Schnittstelle verfügt dem Emulator bekannt zu machen. Das klappt auch gut für die Menüführung.

Leider ist das Spielen innerhalb des C64 Emulators mit dem PS3 Controller nur bedingt möglich!

Resize of DSC_0226

sudo apt-get install joystick

Sixaxes Controller Check:

ls /dev/input

js0

jstest /dev/input/js0

jstest

Ausblick auf weitere Tätigkeiten

Quelle: http://blog.petrockblock.com/2012/10/21/the-retropie-gpio-adapter/

Unter diesem Blog sind die Möglichkeiten beschrieben, wie weitere Anpassungen vorgenommen werden können. So kann über das integrierte GPIO Interface des Raspberry PI’s die Schnittstelle zu orginalen Game-Pads erfolgen.

retrockblockGPIO

 

Keyrah bietet den kompletten Adapter für Tastatur und Input-Geräte am Markt offiziell an.

Quelle: http://www.vesalia.de/d_keyrahv2.htm

Kosten ~ 35,00 €

 

keyrah2 keyrah1

Leider konnte der Adapter innerhalb dieses Projektes aus Zeitgründen nicht organisiert werden.

Dieser kommt auf jeden Fall auf die TO-DO List was zukünftig mit Sicherheit sehr viel Spielespaß und Freude bedeuted🙂

LG, Andreas Schneeberger & Petra Pauschenwein

 

Gewächshaussteuerung – Raspberry – Teil 1 Webplattform (Fleck, Haas, Strieder)

Ziel dieser Übung ist es Sensordaten bezüglich Temperatur und Feuchtigkeit zu sammeln und diese in einer SQLite Datenbank zu speichern. Diese Daten dienen der anschließenden Anzeige auf einem Webserver.

Schritt 1 – Installation & Erstkonfiguration Raspbian Zuerst wird die vorhandene Speicherkarte mittels SDFormatter formatiert.

r06

Anschließend wird ein aktuelles Image Raspian Wheezy heruntergeladen (Quelle: https://www.raspberrypi.org/downloads/) und extrahiert.

r07

Das extrahierte Image wird danach mittels Win32DiskImager (Quelle: http://sourceforge.net/projects/win32diskimager/) auf die Speicherkarte kopiert.

r05

Sollte es zu Problemen kommen findet man eine detailierte Anleitung hier: https://www.raspberrypi.org/documentation/installation/installing-images/windows.md

Schritt 2 – Raspbian Einstellungen raspi-config, Filesystem, IP static

Aufruf der Konfigurationsdatei mittels sudo raspi-config. Anpassungen der Ländereinstellungen wie Zeitzone auf CET und Tastaturlayout auf deutsch.

4 Internationalisation Options   Set up language and regional settings to match your location

Zusätzlich musste um den vollen Speicherplatz der SD Karte zu nutzen ein expand Filesystem in dieser Konfig Datei ausgeführt werden.

1 Expand Filesystem              Ensures that all of the SD card storage is available to the OS

Anschließend wurden mit FINISH die Änderungen bestätigt.

Es folgt die Anpassung der IP Adresse des Raspberry damit dieser zukünftig via SSH immer mit der gleichen IP angesprochen werden kann. Dazu öffnet man die Einstellungen der Netzwerkkarte.

sudo nano /etc/network/interfaces

und kommentiert die Zeile mit eth0 aus und erstellt einen neuen Eintrag:

iface eth0 inet static
    address 192.168.7.100
    netmask 255.255.255.0
    gateway 192.168.7.150
danach muss die Netzwerkkarte neu gestartet werden:
sudo /etc/init.d/networking restart
Mittels ping auf http://www.orf.at wird die Funktion und die Übernahme der Einstellungen geprüft auf Konnektivität.

Schritt 3 – Temperatur und Luftfeuchtigkeit (Humidity) auslesen

Zu aller erst verkabeln wir den Sensor korrekt auf einem Prototype Board. Wir verbinden dazu GPIO22, GND und 3,3V mit dem Sensor wie auf Foto ersichtlich:

sensor1

sensor2

Da wir den DHT22 mittels bereits vorgefertigter Platine nutzen ersparen wir uns die Verwendung einen zusätzlichen Widerstandes Resistors.

sensor3

Um den Sensor ansprechen zu können müssen wir uns eine entprechende Library downloaden.

Bevor man neue Software installiert sollte immer ein

sudo aptget update

sudo aptget upgrade y

ausgeführt werden.

Um C Librarys mittels Pyhton nutzen zu können benötigen wir einige Pakete mitsamt seinen Abhängigkeiten.

python development package provides the necessary header files for your version of Python

Wir erstellen ein Verzeichnis für die Library und wechseln in dieses.

mkdir -p /home/pi/sources

cd /home/pi/sources

git clone https://github.com/adafruit/Adafruit_Python_DHT.git

mittels ls im Verzeichnis in sources erkennt man nun das ein neues Verzeichnis dazugekommen ist:

Adafruit_Python_DHT wir wechseln in dieses mittels cd Adafruit_Python_DHT

Wir installieren die Library:

sudo python setup.py install

das war’s nun sollten wir das Script ausführen können und bereits Werte erhalten:

sudo /home/pi/sources/Adafruit_Python_DHT/examples/AdafruitDHT.py 22 22

Als Übergabe Werte dienen als erster Wert der Chipsatz der DHT Sensors 22. Der zweite Wert stellt den GPIO Port dar an welchem der Sensor angeschlossen ist. In unserem Falle auch 22.

Hätte man z.B. den alten DHT11 Sensor auf 13 angeschlossen würde diese Zeile wie folgt lauten:

sudo /home/pi/sources/Adafruit_Python_DHT/examples/AdafruitDHT.py 11 13

sensor4

 

Um zukünftig auch von außen via öffentlicher IP Adresse auf den Raspberry zuzugreifen (SSH oder Webzugriff) wird es notwendig ein Portforwarding einzurichten sowie einen DNS Service.

11

 

12

 

Dazu wurde ein Account beim Anbieter no-ip angelegt und im Router 2 Regeln definiert. Eine für den SSH Zugriff und eine für einen Webzugriff.

13

 

 

Schritt 4 – Installation node.js, sqlite

Was ist Node.js? Wikipedia schreibt hierzu folgende Definition:

Node.js ist eine serverseitige Plattform zum Betrieb von Netzwerkanwendungen. Insbesondere lassen sich Webserver damit realisieren. Node.js basiert auf der JavaScript-Laufzeitumgebung „V8“, die ursprünglich für Google Chrome entwickelt wurde, und bietet daher eine ressourcensparende Architektur, die eine besonders große Anzahl gleichzeitig bestehender Netzwerkverbindungen ermöglicht.

Zur Installation könnten wir nun einfach

sudo apt-get install node eingeben. Dies hätte aber den Nachteil dass uns das System hier ein veraltetes Node Paket liefern würde.

Daher werden wir uns selbständig die zum Projektzeitpunkt aktuellste Stable Version downloaden und installieren.

Wir erstellen ein Arbeitsverzeichnis im Home Directory (cd ~ ) Names node_source und wechseln anschließend in diese;

mkdir node_source

cd node_source

Danach holen wir uns das aktuellste Paket mittels

git clone https://github.com/joyent/node.git

01

Damit wir das Paket auf unserer Plattform kompilieren können benötigen wir noch ein zusätzliches Paket:

sudo apt-get install build-essential

Anschließend bearbeiten wir die Konfigurationsdatei von zuvor heruntergeladenen Nodepaket und  welchseln dazu in das Verzeichnis node_source / node /:

cd node

nano configure

Unsere Konfigurationsdatei sieht wie folgt aus:

02

Nun kompilieren wir das Paket:

sudo make

03

und anschließend installieren das kompilierte Paket

sudo make install

Nachdem die Installation abgeschlossen wurde, installieren wir einen Node eigenen Webserver express.js. Dazu nutzen wir den Package Manger von Node.js npm.

sudo npm install -g express

und natürlich benötigen wir noch ein Datenbank System für die Unterstützung von SQLite

sudo npm install dblite

Warum dblite anstatt sqlite?

Hinweise des Autors:

I’ve created dblite module because there’s still not a simple and straight forward or standard way to have sqlite in node.js without requiring to re-compile, re-build, download sources a part or install dependencies instead of simply apt-get install sqlite3 or pacman -S sqlite3 in your *nix system.

dblite has been created with portability, simplicity, and reasonable performance for embedded Hardware such ARM boards, Raspberry Pi, Arduino Yun, Atmel MIPS CPUs or Linino boards in mind.

Weitere Infos: https://github.com/WebReflection/dblite

Am Bild erkennt man gut, was passiert wenn man sudo npm install sqlite3 eingibt:

04

 

Damit unsere Javascripts mit der GPIO Schnittstelle kommunizieren können benötigen wir noch ein entsprechendes Node Modul:

npm install rpigpio

Die Installation aller benötigten Komponenten ist nun abgeschlossen.

 

Schritt 5 – Programmierung der benötigten Scripte / Schnittstellen

Erstellung einer einer Datenbank local.db inkl. Anlage von Tabellen zur Speicherung der Sensordaten.

05

Erstellung der Serverdatei server.js

06

Wir laden nun alle am lokalen Rechner erstellten CSS, Javascript und HTML Dateien hoch zum Raspberry und starten den Server von Node mittels

node server.js

beenden können wir diesen mittels STRG+C

08

09

10

 

 

Testaufbau Nr. 2 – Eigenständiger externer PHP, MySQL Webserver

Schritt 1 bis 3 sind ident

Schritt 4 – Webserver Testumgebung

Ziel dieser Übung ist es Sensordaten bezüglich Temperatur und Luftfeuchtigkeit zu sammeln und diese anschließend an einen entfernten Webserver zu senden um diese dort in einer MySQL Datenbank zu speichern. Dadurch sollen die Ressourcen des Raspberry Pi’s geschont werden.
Erstellung eines Web FTP Accounts, einer MySQL Datenbank und einer ersten Tabelle in welche die Sensordaten gespeichert werden.
Da unser Projektteam ohnehin einen gemieteten Webserver besitzt der mit PHP, Python und MySQL Unterstützung kommt, haben wir einen Teil dieses Webservers reserviert für das Gewächshaus Projekt. raspberry.itc-haas.at

r01
Anschließend haben wir eine MySQL Datenbank angelegt. In weiterer Folge wurde der MySQL Dumper auf diesem Webspace installiert. Dieser dient in dazu um Sicherungen der ganzen Datenbank anlegen zu können. Des weiteren ist es mit dem Programm komfortabler zu arbeiten als mit dem standardmäßig installiertem Phpmyadmin.

r02

 

Dazu muss man die Installationdateien downloaden, entpacken und in ein Verzeichnis seiner Wahl auf dem Webserver laden. Anschließend muss man ein Verzeichnis mit dem Namen work erstellen und diesem die Berechtigung 777 erteilen.

Es folgt die Installation des dumpers mit Hilfe des Aufrufes des Verzeichnis indem der Dumper liegt. Eine Schritt für Schritt Anleitung begleitet durch die Installation. Diese ist nicht sonderlich schwierig man muss lediglich die Datenbank Verbindungsdaten kennen und diese eingeben.

Nach vollendeter Installation wird man darauf hingewiesen dass man einen Verzeichnisschutz anlegen muss um den Dumper und die dahinter liegenden Datenbanken abzusichern. Dieser kann einfach in der Administrationsoberfläche des Hostinganbieter angelegt werden.

r03

 

Anlage User Tabelle, Login Scripte, Abgesicherter Dashboardbereich

Damit nicht jeder Zugriff auf das Projekt hat wird nun ein gesicherter Nutzerbereich erstellt.
r08
Login:
r9
Weiterleitung in den noch leeren Nutzerbereich / Dashboardbereich: r10
Erstellung Musterdaten zu Testzwecken Dazu wird zunächst ein sampledata.php Script erstellt welches die Aufgabe hat die Tabelle sensordata zu befüllen.

r11
Bevor dieses Script nun ausgeführt werden darf muss ein Backup zu Sicherungszwecken angelegt werden. Dieses Backup wird mittels MySQL Dumper erstellt. Jetzt kann man das Script bedenkenlos ausführen. Die Ausführung funktioniert. Es wurde ein Fehler entdeckt und zwar musste die Tabellenstruktur der Tabelle sensordata angepasst werden. Und zwar war der decimal(2,2) Wert falsch gewählt. Es wurde nun geändert zu decimal (8,2). Ein zu kleiner Wert für zu „abgeschnittenen“ Werten. Es stehen nun 1000 Testwerte zur Verfügung: r12

 

Schritt 5 – Darstellung der Daten Die nun erzeugten Daten sollen nun dargestellt werden. Dazu bedienen wir uns dem Javascript Framework ChartJS. Dieses ist open source und bietet ein breites Anwendungsspektrum. Um diese Library zu verwenden müssen wir lediglich ein paar Javascript Dateien im Header einbinden.

02

Danach müssen wir ein PHP Script erstellen, welche die Daten aus der Datenbank ausliest und in ein brauchbares JSON Format wandelt.

03

Die JSON Daten werden einer Variable gespeichert welche dann mittels JAVASCRIPT dargestellt werden können.

04

(Am Bild  ist noch ein zusätzlicher Datenblock ersichtlich mit Zufallswerten, dient nur zur Testzwecken)

Wir schaffen nun in unserer Raspberry Webplattform einen eigenen Bereich zur Darstellung der Charts:

05

Schritt 6 – Aufbau einer Verbindung zum Raspberry Pi

Um entfernte Scripte, am entfernten Raspberry Pi ausführen zu können muss neben einer bekannten URL (Stichwort DynDNS Service) und einem offenen Port am Router / Gateway natürlich zusätzlich eine Technologie gewählt werden welche die Kommunikation zum Raspberry und retour ermöglicht. Es gibt viele Möglichkeiten aber nur 2 welche seitens unseres Shared Hosters angeboten werden. Nämlich cURL oder SSH. Um den Raspberry so weit wie möglich zu entlasten möchten wir darauf verzichten Zusatzsoftware am Raspberry zu installieren. Wir versuchen daher eine Verbindung mittels SSH via PHP aufzubauen. Auf der Suche nach einer passenden Möglichkeit via SSH eine Verbindung aufzubauen, sind wir auf das SSH2 Framework phpseclib aufmerksam geworden. Wir kopieren das gesamte  Verzeichnis auf unsere Webplatform und binden die neuen Ressourcen korrekt in unsere neue Datei raspcontroller.php ein.

r17

Wie auf dem Bild ersichtlich haben wir auch bereits eine erstes Testscript geschrieben welches wir versuchen aufzurufen. Dieses Script macht nichts anders als „Hello World“ zurückzugeben.

r18

Wir rufen nun die raspcontroller.php auf:

r19

Es wurde nun erfolgreich eine Verbindung zum Raspberry aufgenommen und ein Rückgabewert geliefert.

Um das ganze jetzt in Verbindung mit Button zu verwenden um später verschiedene Scripte anzusteuern, wird das Ganze nun mit AJAX und JQuery verknüpft.

Zuvor erstellen wir eine weitere MySQL Tabelle welche den derzeitigen Zustand der Sensoren speichert. Die Tabelle trägt den Namen sensorstatus.

06

und hat zum Test nun 2 Einträge:

07

Wir greifen nun in der raspcontroller.php auf die neu erzeugte Tabelle sensorstatus zu:

08

Das dazugehörige AJAX JQuery Script übernimmt nun 2 Werte den Namen des Sensors und die durchzuführende Aktion. 1 für ein und 0 für aus. Es ruft dann wieder eine PHP Datei auf und liefert ein Ergebnis zurück.

09

Die PHP Datei sensor.php welche verantwortlich ist für die Abarbeitung der SSH Verbindung sieht wie folgt aus:

10

Die „Rückggabewerte“:

11

Es wird in der Webplattform nun wieder ein neuer Bereich geschaffen:

12

Klickt man nun auf den Button wird ein Ereignis ausgelöst nämlich die Werte dem Script übergeben. Es wird nun zum Raspberry kommuniziert und bei Erfolg der Wert 1 zurückgegeben. Danach wird darauf basierend ein Feedback geladen der Bestätigt dass das Script ausgeführt wurde. Um die Ansicht zu aktualisieren, da sich ja der Zustand der Sensoren geändert hat wird nun auch noch ein JAVASCRIPT Countdown ausgeführt von 3 sec. Dadurch wird ein Siterefresh ausgelöst.

13

nach den 3 sec, der Status und die Uhrzeit haben sich geändert:

14

 

Schritt 7 – Raspberry Speicher und Prozesswerte übertragen 

Dazu dient uns ebenfalls das Framwork rund um phplibsec. Wir schaffen einen neuen Bereich Taskmanager. Dazu stellen wir ein eigenen PHP Script bereit Namens taskmanager.php und top.php.

Top.php beinhaltet den Verbindungsaufbau zum Raspberry und die Abwicklung der commands.

15

die dazugehörige taskmanager.php beinhaltet zusätzlich ein Script zum automatischen Refresh der Seite alle 6 Sekunden. Zur gewollten Verzögerung im Script ergeben sich ein automatischer Refresh von 10sec.

17

Das Resultat:

16

Der Prototyp der Webplattform ist somit fertig. Wir können nun das Scripten am Raspberry starten.

Schritt 8 – Erstellen eines Python Script zur Speicherung der Sensordaten in der Remote MySQL Datenbank

Im gleichen Ordner in dem derzeit das Script zum Auslesen des DHT22 Sensor liegt, erstellen wir nun ein weiteres Script welches automatisch alle gewissen Sekunden Daten an den entfernten MySQL Webserver sendet.

Wir befinden uns im Ordner:
soures/Adafruit_Python_DHT/examples

dort liegt derzeit bereits das Script:
AdaFruitDHT.py

Es wird ein neues Script mit dem Namen:
dht22_to_mysql.py
angelegt.

python

Damit dieses Script ach so funktioniert wie es soll, müssen wir noch ein Paket installieren.

sudo apt-get install python-mysqldb

Wir starten nun das Script:

sudo python dht22_to_mysql.py

 

Das Logfile sieht vielversprechend aus:

python2

 

 

Die entfernte MySQL Datenbank enthält nun alle Einträge:

python3

Ich habe die Struktur der Tabelle ein klein wenig angepasst und die Lüfterumdrehung rausgenommen. Des weiteren habe ich die Tabelle um einen timestamp erweitert. Somit wird jede neu hinzugekommen Zeile automatisch mit einem Datum versehen des MySQL Servers. Erweitert habe ich die bestehende Tabelle um eine sensorid. Zur Unterscheidung wenn mehrere DHT Sensor aktiv sein sollten.

Die Tabellenstruktur sieht nun wie folgt aus:

mysql2

Gefüllt mit Daten so:

mysql3

Nach Anpassung der chart.php zur Korrekten Anzeige der Daten:

chart1

chart2

 

chart3

Darstellung der Daten:

chart4

 

Zudem wurde im Bereich Raspberry Controller die Anzeige des derzeitigen Wertes:

mysql4

die Ausgabe:

mysql5

Zum Testen des Script über einem längeren Zeitraum via Putty empfiehlt es sich das Paket screen zu verwenden. Damit das Script im Hintergrund aktiv bleibt sobald man die Putty Session beendet. In der Produktivphase wird das Script selbstverständlich in weiterer Folge von einen Cronjob aufgerufen werden.

sudo apt-get install screen

Neue Screen Session Namens Script

screen -S script

und nun das Script einfach ausführen. Ich habe es jetzt auf 15 Minuten gestellt und werde es jetzt 2 Tage lang testen.

Die Putty Session kann ich nun schließen.

Das Ganze ist nun 2 Tage lang gelaufen und ich verbinde mich erneut auf den Raspberry mittels SSH Putty.

Um die Screen Session zurückzuholen führe ich den Befehl

screen -r 

aus.

01

Es hat alles bestens funktioniert.

02

Wir haben nun auch ein Script erstellt, welches nun von der Ferne am Raspberry ein LED ein- und ausschalten kann. Dieses LED könnte eine Pumpe zur Bewässerung symbolisieren.

03

Die zugrunde liegende MySQL Tabelle wurde ebenfalls ein wenig angepasst:

04

Der Datensatz zur LED:

05

Das PHP Script am Webserver empfängt aus einem AJAX Post 3 Variablen. Anhand derer wird entschieden was zu tun ist. Type: LED, Aktion: 0 oder 1, ein oder aus, GPIO Pin Nummer:

06

 

07

das Python Script am Raspberry:

08

Die Funktion:

Mittels Button klickt wird 3 Variablen per Post an ein AJAX Script gesandt. Daraufhin wird eine SSH Verbindung zum Raspberry aufgebaut und ein Befehl abgesetzt. Das Script am Raspberry lieft einen Rückgabewert und sendet diesen zurück an den Webserver. Dieser wiederrum updated auf dieser Grundlage unsere Tabelle sensorstatus und aktualisiert den timestamp der letzten Änderung. Danach wird eine Bestätigung der User angezeigt dass die Aktion erfolgreich oder nicht war. Es wird eine Verzögerung eingeleitet von x Sekunden um dem Raspberry Zeit zu geben das Script auszuführen und die Rückmeldung zur veranlassen. Danach lädt sich die Seite raspcontroller.php erneut und man erhält den aktuellen Buttonstatus.

in Bildern – Led ist aus:

pi1

Aktivieren Button wird betätigt. Led geht an.
Bestätigung wird angezeigt:

pi3

 

Nach Ablauf der Zeit (3 Sekunden) wird der Status der LED aktualisiert:

pi4

Als kleine Fazit können wir sagen, dass beide Varianten, Webserver direkt am Raspberry oder extern geeignet sind um den Raspberry zu steuern. Beide haben ihren Vorteil.

Direkt am Raspberry hat man interactivere Möglichkeiten Daten abzufragen (REST) und den Raspberry zu steuern. Der Nachteil ist allerdings sollte der Raspberry ausfallen hat man keinen Zugriff auf die Weboberfläche. Außerdem kann es vorkommen dass sich der Raspberry von einem auf den anderen Tag nicht mehr starten lässt und Daten verloren gehen.

Diese Nachteile hat man auf einem externen Webserver nicht. Daten können nicht verloren gehen. Am Raspberry laufen lediglich ein paar Script. Die externe Weboberfläche funktioniert immer auch ohne Raspberry. Alte Daten können also immer angesehen werden. Nachteil: Das ganze kann nicht ganz so interaktiv gestaltet werden.

Wobei das Ganze bei einem ordentlichen externen Serverumgebung anders aussieht dort kann man dann auch diverse Services nutzen (REST) usw.

Uns stand nur eine Apache mit PHP und MySQL zur Verfügung.

 

07 – vCenter und ESX Cluster – Einheit 09.01.2015 (Pauschenwein)

Aufsetzen Vmware – vCenter Hostname:CLU
IP-Adresse: 10.0.0.103, 255.255.255.0, 10.0.0.1
Virtual target for the VCenter vmwaretarget … 6GB

DSC_0404

FS – Create new iSCSI -Target vSwitch … add Netzwerkadapter

DSC_0407 DSC_0408DSC_0409DSC_0410DSC_0411DSC_0413

VM Kernel: 10.0.0.107

DSC_0414 DSC_0415 DSC_0416

Create vSwitch for new NIC

DSC_0419 DSC_0421 5 DSC_0423     DSC_0425   DSC_0427 DSC_0428 DSC_0429 DSC_0430 DSC_0431 DSC_0432 DSC_0433

DSC_0435 8

add Storage

DSC_0438 9  11 33   DSC_0441   Configuration Datastore Browser – Nostalgia DSC_0442

DSC_0454

add newly visible IQNs – copy from vsphere storage adapter properties

DSC_0444 DSC_0445 DSC_0447 DSC_0448 DSC_0450 44 DSC_0455 DSC_0456 DSC_0457 E2 – storage configuration (datastore + iscsi)

1111

Migrate Virtual Machine – Change datastore

99Checking the Consoles – running on the ESX Servers (E1 , E2)     222 DSC_0463     777 2222 3333 4444 5555 7777 8888

migrate Virtual Machine – Change datastoreDSC_0464 DSC_0465 s
configure a Cluster „meinclusta“ / disable EVC Mode
and move host into cluster
aa

ss

DSC_0468 DSC_0469 DSC_0471 DSC_0473 DSC_0474   ESX Servers successfully connected to new VMWARE DataCenter   DSC_0477 DSC_0478 DSC_0483 DSC_0484 DSC_0485 The Cluster overview

Reboot e1 + e2

DSC_0487   DSC_0495
enter Maintenance Mode – only way to perform a switch over
DSC_0496  DSC_0497 DSC_0500 switch over to E2 Test the Failover Cluster

suspend Nostalgia

DSC_0501 ff DSC_0503

y

„meinCluster“ turn on VSphere HA

17522     DSC_0509 DSC_0510 DSC_0513 DSC_0515  DSC_0517 DSC_0518 DSC_0519   reboot e1DSC_0521  DSC_0524 DSC_0528 DSC_0529

DSC_0554

DRS … Resource Distribution both servers on same load!

enable Cluster Features – turn on vSphere HA / DRSDSC_0535DSC_0542 DSC_0544 DSC_0546 DSC_0547 DSC_0549   DSC_0555 DSC_0558 DSC_0559  Migration: select the Destination Host/Cluster for this virtual machine migration.   DSC_0562 DSC_0564 DSC_0565 DSC_0566 DSC_0567 DSC_0568 DSC_0569 DSC_0570 DSC_0572 DSC_0573 new Cluster settings DSC_0576  clone virtual machine       DSC_0581 DSC_0588 DSC_0589 DSC_0591 DSC_0593 DSC_0594 DSC_0595 DSC_0596 DSC_0599   on Browser Top List … Check All to switch to VM’s & TemplatesDSC_0613        deploy template „newbumsti“DSC_0614 DSC_0618 DSC_0620 DSC_0622 DSC_0626 DSC_0627 DSC_0629 DSC_0630 DSC_0631

Host profiles
configer esx node
create Host Profile

DSC_0642 DSC_0643 DSC_0645 DSC_0647  DSC_0652   attach Host/ClusterDSC_0654

DSC_0661 DSC_0663 DSC_0666 DSC_0667 DSC_0669 DSC_0670

05 Cluster-Storage & Live-Migration, ESXI, vSphere

Cluster-Storage & Live-Migration

Cluster-Storage

H1 und H2 sehen keine Platteninformationen von den iSCSI-Disken, wenn diese in Verwendung (weder FS noch weitere Details)

01 HyperV2 - keine Partitionen

02 Cluster-Storage

02a SharedVolume

02b SharedVolume

02c SharedVolume

02d SharedVolume

CSV = Clustered Shared Volume
Nur eine Hyper-V-Maschine kann auf die Disks parallel zugreifen
Begründung liegt darin, dass diese quasi beseitzt sind -> Partitionen nicht sichtbar für, in unserem Fall, H2 (Quorum und Data) -> selbst nach Shared Volume (File Server-Role) allerdings trotzdem unantastbar; auch keine Optionen dabei verwendbar

Hyper-V-Manager kann Liver-Migration nach diesem Schritt nicht mehr durchführen, weil Data inzwischen CSV ist
Nur mehr über Failover Cluster Manager (unser Koffer) machbar

Kennen lernen von Failover Cluster Manager

01 Change Startup Priority

02 Remove Role

03a Properties

03b Properties

04 Reset Recent Events

Hinzufügen einer Rolle

03 Configure Role

04 Rollendefinition

05 Rollendefinition

06 Rollendefinition

07 Rollendefinition

Hier wurde auch DSL2 angeklickt

08 Rollendefinition

09 Rollendefinition

Live-Migration

Da Migration über Hyper-V-Manager nicht mehr durchführbar, muss über Failover Cluster Manager live migriert werden

02a Migration Hyper-V-Manager über Cluster Manager

02b Migration Hyper-V-Manager über Cluster Manager

02c Migration Hyper-V-Manager über Cluster Manager

02d Migration Hyper-V-Manager über Cluster Manager

02e Migration Hyper-V-Manager über Cluster Manager

02f Migration Hyper-V-Manager über Cluster Manager

02g Migration Hyper-V-Manager über Cluster Manager

02h Migration Hyper-V-Manager über Cluster Manager

02j Migration Hyper-V-Manager über Cluster Manager

Live-Migration ohne Probleme durchgeführt (auf Data-Platte geschoben)

Anschließend noch Ausfallsimulation (Shutdown oder von den Netzwerken disconnected)

08 Heruntergefahrenener HyperV1

01 Keine Verbindung

02 Keine Verbindung

03 Keine Verbindung

04 Keine Verbindung

05 Keine Verbindung

06 Keine Verbindung

07 Keine Verbindung

Übersicht Nodes

09 ÜbersichtNodes

Übersicht Migration auf HyperV2 (H2)

10 ÜbersichtHyperV2

Pausierender HyperV2

11 HyperV2 pausiert

ESXI – Installing & Config

Zuerst in der VWWare Workstation neue virtuelle Maschinen anlegen

esxi

esxi2

esxi3

esxi4

Installation von ESXI

esxi5

esxi6

esxi7

esxi8

esxi9

esxi10

esxi11

esxi12

Konfiguration der ESXI-Server

01 Option

02 Option

03 Option

04 Option

05 Option

06 Option

07 Option

Einstellungen im „DC“-Server anpassen

Zuerst DHCP-Manager

  1. Server aufklappen
  2. IPv4 aufklappen
  3. Scope aufklappen
  4. zu den Address Leases wechseln
    1. IP-Addressen (ESXI-Server): 10.0.0.106/107 markieren
    2. rechte Maustaste
    3. Add to Reservation klicken

Anschließend DNS konfigurieren – DNS-Manager starten

01 DNS-Eintrag

02 DNS-Eintrag

03 DNS-Eintrag

Add Host klicken nicht vergessen, anschließend auf Done (sonst weitere Hosts hinzufügen)

Anschließende Überprüfung mit Windows PowerShell
Eingabe: ping e1; ping e2

04 Überprüfung

vSphere

Installation

Zuerst .Net-Framework 3.5 installieren (ServerManager -> Add Roles and Featuers)

01a Add .NETFramework 3.5

01b Add .NETFramework 3.5

01c Add .NETFramework 3.5

01d Add .NETFramework 3.5

01e Add .NETFramework 3.5

01f Add .NETFramework 3.5

Darauf folgend VMWare-viclient-*.exe starten

02a Installationsdatei

  1. Verbindung und vSphereClient
    Verbindungsaufbau (hier mit e2, aber auch mit e1 à siehe ESXI-Konfiguration)

02b Install vSphere Client

Verbindung und vSphereClient

Verbindungsaufbau (hier mit e2, aber auch mit e1 à siehe ESXI-Konfiguration)

03a Verbindung

03c Verbindung

Hier auf „Ignore“ klicken

03b Verbindung

03d Verbindung

Einfach auf „OK“ klicken

03e Verbindung

Startup-Screen

Konfiguration

Folgender Ordner wird für virtuelle Maschine für ESXI-Server benötigt

04a Configuring

04b Configuring

04c Configuring

04d Configuring

04e Configuring

04f Configuring

Ansicht und Settings

05 Ansicht

06 Settings

04 – Creating the Cluster

The FAILOVER CLUSTER

SCHNEEBERGER ANDREAS, ITIVZ12, 28.11.2014

Ziel der Übung: private Cluster

DSCN1877

Gesamtes Schema des aktuellen Netwerkes des Datacenters

DSCN1882

Dazu wurde folgende Schritte durchgeführt:

1. Netzwerkadapter hinzufügen

Auf den Hyper-V Machines H1 und H2 wurde die Namensänderung der Ethernet Card vorgenommen.

Network Sharing Center – Change Adapter Settings – Rename: „domain“

–> Shutdown Guest (H1,H2)

Add Network Adapter

Network Adapter – Lan Segment: domin

Network Adapter2 – Lan Segment: cluster

DSCN1893

DSCN1862DSCN1863DSCN1864

Zuweisung der IP-Adressen

H1: 192.168.100.1

H2: 192.168.100.2

2. Hinzufügen einer virtuellen Machine (win):

Zuerst wird ein SMB Share zur Verteilung der Software angelegt:

DSCN1866DSCN1867DSCN1868DSCN1869DSCN1870DSCN1871

DSCN1872 Verwendete ISO für den Windows Server

3. Installation der Virtuellen Machine (win) auf H1 oder H2

Full Installation

DSCN1873DSCN1874DSCN1875DSCN1876

4. Netzwerk dem Server zuweisen!

–> auf H1 und H2

DSCN1878

DSCN1879

Virtual Switch Manager:

External

nach dem hinzufügen, wird dem Server automatisch eine IP-Adresse zugewiesen.

In unserem Fall … 10.0.0.103

Nachdem die Firewall Rules für die win-machine intalliert und enabled worden sind… konnte der MOVE (der virtuellen Machine) im laufenden Betrieb durchgeführt und getestet werden!

get-NetFirewallRule – DisplayGroup ‚*printer*‘ | Enable Net-FirewallRule

5. Das Testscenario war, wie im folgenden Bild ersichtlich, erfolgreich:

DSCN1880

 

 

6. Disk Initialisierung

Vom DC wurde eine Session zum H1 geöffnet:

ENTER-PSSession H1

–> Disk finden (format), initialisieren und connected (Online)

verwendetes Script

$ds = Get-Disk | where IsOffline -EQ $true

foreach ($d in $ds) { Set-Disk $d.Number -IsOffline $false }

foreach ($d in $ds) { Initialize-Disk $d.Number -PartitionStyle MBR -PassThru |

New-Partition -UseMaximumSize -AssignDriveLetter |

Format-Volume -FileSystem NTFS -Confirm:$false }

OUTPUT:

DriveLetter       FileSystemLabel FileSystem       DriveType      HealthStatus       SizeRemaining             Size

———–       ————— ———-       ———       ————       ————-             —-

E                                 NTFS             Fixed           Healthy                  29.9 GB           30 GB

F                                 NTFS             Fixed           Healthy                 981.06 MB       1022.93 MB

[h1]: PS C:\Users\Administrator.DOM\Documents>

Ergebnis sichtbar über die GUI des H1 und H2 (Computer Management)

DSCN1884

 

7. The Failover Cluster

Administrative Tools – Failover Cluster

DSCN1886DSCN1887DSCN1888DSCN1889DSCN1890DSCN1891

Achtung: Die Validation Tests sind immer durchzuführen!

 

8. Quorum

Regel: Es kann das Cluster nur dann weitergefahren werden, wenn der jeweilige Rechner mehr als 50% der Ursprungsstimmen bekommt.

 

DSCN1905

Bei 2 Node Cluster und in weiterer Folge auch 4 Node, 8 Node, ….

wird eine Quorum Disk, welche „1 Stimme“ simmuliert“ zu Hilfe genommen!DSCN1901

DSCN1902

DSCN1898

DSCN1895

 

Rename der Disks und des Clusters

DSCN1903

 

9. Validate the Cluster:

DSCN1892DSCN1906