Benutzer-Werkzeuge

Webseiten-Werkzeuge

A PCRE internal error occured. This might be caused by a faulty plugin

openqrm_-_client_per_upstart_starten

====== openQRM - Client per Upstart starten ====== Im allgemeinen funktioniert das Script ///etc/init.d/openqrm-client// prächtig nur wenn man die ausgetretenen Pfade verlässt wird es problematisch. So auch hier, wird haben auf den KVM-Maschinen (diejenigen, die die CPU-Leistung für die VM's bereitstellen) Bonding installiert. Leider wird das openQRM-Client-Script schon vorher gestartet und versagt dabei... Es darf erst gestartet werden wenn die Bridge-Interfaces hochgefahren wurden, die an die Bonding-Interfaces gebunden sind: # brctl show bridge name bridge id STP enabled interfaces br0 8000.001b215fb8cd no bond0 br1 8000.0024e849890b no bond1 br2 8000.001b21447e50 no bond2 Aus diesem Grund brauchen wir ein upstart-Script, welches unseren openQRM-Client erst startet, wenn das Bonding-Interfaces hochgefahren wurden: # vi /etc/init/openqrm-client.conf description "openQRM-Client zum richtigen Zeitpunkt starten lassen" author "DER Sysop" start on started bridge-network-interface or started network-interface-security or started network-interface INTERFACE=bond0 or started net-device-up IFACE=bond0 or started ssh console output script # erstmal alles laden, was man gebrauchen könnte . /var/openqrm/openqrm-resource.conf # auch wenn die Netzwerk-Geräte hochgefahren sind, # kann es in einigen Fällen noch nicht funktionieren, # hier wird einfach etwas Wartezeit benötigt ping -c50 ${resource_openqrmserver} # openQRM-Client starten if [ "$(/etc/init.d/openqrm-client status)" = "openQRM-client service is not running" ] ; then /etc/init.d/openqrm-client restart fi end script Es ist auch möglich andere Start-Event's anzugeben. Welche Event's auf dem System verwendet werden, kann man mit diesem Kommando sehen: # initctl list Gezielt kann man den Status eines Event's so abfragen: # initctl status ssh ssh start/running, process 3403 # initctl status network-interface INTERFACE=bond0 network-interface (bond0) start/running Da diese Start-Methode - die zukünftige in Ubuntu; - deutlich einfacher zu handhaben als Init-Sys-V; ist, sollte man sich vielleicht überlegen, ob man hier nicht auch die anderen Aktionen einträgt, die bisher im openQRM-Start-Script (/etc/init.d/openqrm-client) reingehäkelt wurden. In dem Fall würde die UpStart-Konfigurationsdatei so aussehen: description "openQRM-Client zum richtigen Zeitpunkt starten lassen" author "DER Sysop" start on started bridge-network-interface or started network-interface-security or started network-interface INTERFACE=bond0 or started net-device-up IFACE=bond0 or started ssh console output script # erstmal alles laden, was man gebrauchen könnte . /var/openqrm/openqrm-resource.conf # auch wenn die Netzwerk-Geräte hochgefahren sind, # kann es in einigen Fällen noch nicht funktionieren, # hier wird einfach etwas Wartezeit benötigt ping -c50 ${resource_openqrmserver} # hier wird ein komplettes Update durchgeführt aptitude update aptitude -y safe-upgrade # hier werden noch Pakete installiert, die wir brauchen aptitude -y install screen links nmap bmon mc # openQRM-Client starten if [ "$(/etc/init.d/openqrm-client status)" = "openQRM-client service is not running" ] ; then /etc/init.d/openqrm-client restart fi ### MTU für 10000MB/s rm -f /root/netspeed.sh wget -q -t 10 -nc -O /root/netspeed.sh "$openqrm_web_protocol://${resource_openqrmserver}/openqrm/boot-service/netspeed.sh" /bin/sh /root/netspeed.sh # in die HW-DB eintragen rm -f /root/hardwareinfos_zum_server_schicken.sh wget -q -t 10 -nc -O /root/hardwareinfos_zum_server_schicken.sh "$openqrm_web_protocol://${resource_openqrmserver}/openqrm/boot-service/hardwareinfos_zum_server_schicken.sh" /bin/bash /root/hardwareinfos_zum_server_schicken.sh end script ===== UpStart-Konfiguration im OpenQRM-Client-TAR-Paket einbauen ===== **WICHTIG! Diese Änderungen werden auf aktiven VM's (auch nach einem Reboot) nicht wirksam! Sie betreffen nur neu erstellte Appliances, und müssen auf laufenden Maschinen in der Datei ///etc/init.d/openqrm-client// nachgezogen werden.** So wird die aktuellste Konfiguration immer automatisch beim Start ausgerollt und man braucht sie nur noch im OpenQRM-Client-TAR-Paket zu pflegen. Als erstes muss das openQRM-Client-Archiv an einem sicheren Ort ausgepackt werden: # mkdir /var/tmp/openqrm-client # cd /var/tmp/openqrm-client # tar xzf /usr/share/openqrm/web/boot-service/openqrm-client.ubuntu.x86_64.tgz # vi usr/share/openqrm/etc/init.d/openqrm-client Wir werden hier die Funktione "openqrm_client_start" um ein paar Zeilen ergänzen. Wichtig ist, das wir nur innerhalb dieser "if"-Abfrage etwas tun! if [ ! -f /linuxrc ]; then # start boot-services from enabled plugins for boot_service in $openqrm_boot_services; do openqrm_boot_service $boot_service start done fi Nach unseren Änderungen sieht es so aus: if [ ! -f /linuxrc ]; then # hier werden noch Pakete installiert, die wir brauchen aptitude update ; aptitude -y safe-upgrade ; aptitude -y install screen links nmap bmon mc # start boot-services from enabled plugins for boot_service in $openqrm_boot_services; do openqrm_boot_service $boot_service start done rm -f /etc/init/openqrm-client.conf wget -q -t 10 -nc -O /etc/init/openqrm-client.conf "$openqrm_web_protocol://${resource_openqrmserver}/openqrm/boot-service/openqrm-client.conf" fi Zum Schluss muss das Archiv wieder zusammen gepackt und aufgeräumt werden: # tar czf /usr/share/openqrm/web/boot-service/openqrm-client.ubuntu.x86_64.tgz * # cd # rm -fr /var/tmp/openqrm-client ==== /usr/share/openqrm/web/boot-service/openqrm-client.conf ==== # openQRM-Client starten description openQRM-Client zum richtigen Zeitpunkt starten lassen author DER Sysop #start on started bridge-network-interface # or started network-interface-security # or started network-interface INTERFACE=bond0 # or started net-device-up IFACE=bond0 # or started ssh start on started ssh console output respawn respawn limit 10 120 pre-start script # erstmal alles laden, was man gebrauchen könnte . /var/openqrm/openqrm-resource.conf # auch wenn die Netzwerk-Geräte hochgefahren sind, # kann es in einigen Fällen noch nicht funktionieren, # hier wird einfach etwas Wartezeit benötigt ping -c50 ${resource_openqrmserver} end script script # erstmal alles laden, was man gebrauchen könnte . /var/openqrm/openqrm-resource.conf # in die HW-DB eintragen rm -f /root/hardwareinfos_zum_server_schicken.sh wget -q -t 10 -nc -O /root/hardwareinfos_zum_server_schicken.sh "$openqrm_web_protocol://${resource_openqrmserver}/openqrm/boot-service /hardwareinfos_zum_server_schicken.sh" /bin/sh /root/hardwareinfos_zum_server_schicken.sh # hier wird ein komplettes Update durchgeführt aptitude update aptitude -y safe-upgrade # hier werden noch Pakete installiert, die wir brauchen aptitude -y install screen links nmap bmon mc if [ "$(/etc/init.d/openqrm-client status)" = "openQRM-client service is not running" ] ; then /etc/init.d/openqrm-client restart fi end script Siehe auch [[openQRM - Client installiert beim Start fehlende Pakete]] ===== Problem ===== Leider funktioniert diese Konfiguration mit Upstart noch nicht reibungslos! Es wird jede vom System installierte Upstart-Konfiguration ordnungsgemäß abgearbeitet nur die selbst erstellten Upstart-Konfigurationen werden nicht abgearbeitet. Höchstwahrscheinlich ist noch ein weiterer Arbeitsschritt nötwendig, der mir zur Zeit aber noch nicht bekannt ist. ==== vorübergehende Problemumgehung ==== Solange die sichere Abarbeitung unserer selbst erstellten Upstart-Konfigurationen nicht gegeben ist, werden wir unsere Aktionen durch //"rc.local"// ausführen lassen. Hierfür müssen folgende Anpassungen in dem OpenQRM-Client-TAR-Paket vorgenommen werden: # mkdir /var/tmp/openqrm-client # cd /var/tmp/openqrm-client # tar xzf /usr/share/openqrm/web/boot-service/openqrm-client.ubuntu.x86_64.tgz # vi usr/share/openqrm/etc/init.d/openqrm-client Wir werden hier die Funktione "openqrm_client_start" um ein paar Zeilen ergänzen. Wichtig ist, das wir nur innerhalb dieser "if"-Abfrage etwas tun! if [ ! -f /linuxrc ]; then # start boot-services from enabled plugins for boot_service in $openqrm_boot_services; do openqrm_boot_service $boot_service start done fi Nach unseren Änderungen sieht es so aus: if [ ! -f /linuxrc ]; then # hier werden noch Pakete installiert, die wir brauchen aptitude update ; aptitude -y safe-upgrade ; aptitude -y install screen links nmap bmon mc # start boot-services from enabled plugins for boot_service in $openqrm_boot_services; do openqrm_boot_service $boot_service start done rm -f /etc/init/openqrm-client.conf wget -q -t 10 -nc -O /etc/init/openqrm-client.conf "$openqrm_web_protocol://${resource_openqrmserver}/openqrm/boot-service/openqrm-client.conf" rm -f /root/openqrm-client_start.sh wget -q -t 10 -nc -O /root/openqrm-client_start.sh "$openqrm_web_protocol://${resource_openqrmserver}/openqrm/boot-service/openqrm-client_start.sh" /bin/sh /root/openqrm-client_start.sh fi Zum Schluss muss das Archiv wieder zusammen gepackt und aufgeräumt werden: # tar czf /usr/share/openqrm/web/boot-service/openqrm-client.ubuntu.x86_64.tgz * # cd # rm -fr /var/tmp/openqrm-client === /usr/share/openqrm/web/boot-service/openqrm-client_start.sh === echo '#!/bin/bash if [ -n "$(egrep "^auto[ /t]*bond0" /etc/network/interfaces)" ] ; then while [ ! -s /sys/class/net/bond0/address ] do . /var/openqrm/openqrm-resource.conf sleep 1 ip addr > /tmp/netz 2>&1 ping -c1 ${resource_openqrmserver} > /tmp/ping 2>&1 done fi . /var/openqrm/openqrm-resource.conf ping -c30 ${resource_openqrmserver} rm -f /root/hardwareinfos_zum_server_schicken.sh wget -q -t 10 -nc -O /root/hardwareinfos_zum_server_schicken.sh "$openqrm_web_protocol://${resource_openqrmserver}/openqrm/boot-service/hardwareinfos_zum_server_schicken.sh" /bin/bash /root/hardwareinfos_zum_server_schicken.sh if [ "$(/etc/init.d/openqrm-client status)" = "openQRM-client service is not running" ] ; then aptitude update aptitude -y safe-upgrade aptitude -y install screen links nmap bmon mc /etc/init.d/openqrm-client restart fi ' > /etc/rc.local update-rc.d -f rc.local remove update-rc.d rc.local defaults 99 11

openqrm_-_client_per_upstart_starten.txt · Zuletzt geändert: 2016/04/13 00:50 (Externe Bearbeitung)