Sebastian Mogilowskis Blog

Just another blog about administration, linux and other stuff

Language: German English

Fix Ubuntu 11.10 Oneiric Ocelot dbus Problem

Nach dem Update zu Ubuntu 11.10 Oneiric Ocelot bekam ich folgende Meldung wärend des Systemstarts:

Waiting for network configuration

Es dauerte eine Weile und führte zu einem schwarzen Bildschirm.

Außerdem bekommt man manchmal folgende Meldung:

Unable to connect to the system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: Connection refused

Die schnelle Lösung war die dbus-Dateien im Verzeichnis “/var/run/dbus/” zu löschen:

rm /var/run/dbus/*

und anschließend das System neu zu starten.

Allerdings wird man das selbe Problem nach dem nächsten Neustart wieder haben.

Eine stabile Lösung ist es die Verzeichnisse “/var/run” und “/var/lock” zu verschieben.

Dazu verschiebt man zuerst die Inhalte von “/var/run” nach “/run” und die Inhalte von “/var/lock” nach “/run/lock”:

mv /var/run/* /run/
mv /var/lock/* /run/lock/

Falls man VMWare installiert haben sollte (z.B. den VMWare Player) muss man zuerst “vmblock-fuse” unmounten, bevor man den Inhalt verschieben kann.

umount /var/run/vmblock-fuse

Nun das Verzeichnis “/var/run” und “/var/lock” löschen

rmdir /var/run
rmdir /var/lock

und anschließend durch Symlinks ersetzen:

ln -s /run /var/run
ln -s /run/lock /var/lock

danach das System neu starten.

Links:

* https://bugs.launchpad.net/ubuntu/+source/dbus/+bug/811441

* https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/856810

* http://forum.ubuntuusers.de/topic/nach-upgrade-problem-mit-dem-networkmanager/#post-3473007

Comments: 14 | Read Comments | Write a Comment |

Convert PDF to Image

Mit “convert” von “imagemagick” kann man PDFs einfach in Bilder umwandeln.

Beispiel:

convert -geometry 1024x768 -density 200 -colorspace RGB input.pdf output.jpg

Oder man verwendet eine andere Qualität, Auflösung und Graustufen:

convert -geometry 2048x1536 -density 400 -colorspace gray input.pdf output.jpg

Links:

* http://www.imagemagick.org/script/convert.php

Comments: 0 | Read Comments | Write a Comment |

System Administrator Appreciation Day – 2011

To all other system adminstrators “HAPPY SYSADMIN DAY !”

http://www.sysadminday.com

and, of course


Sources:
http://www.userfriendly.org
http://xkcd.org

Comments: 0 | Read Comments | Write a Comment |

Install Sun Java with Puppet on Ubuntu

Bei der Installation von Softwarepaketen (JRE oder JDK) von Sun muss man den Lizenzbestimmungen zustimmen. Für eine automatische Installation benötigt man daher eine Preseed-Datei.
Den Inhalt dieser Datei bekommt man mit “debconf-get-selections | grep sun-” auf einem System auf dem man bereits die Installation durchgeführt hat.

Nun legt man eine Datei “/etc/puppet/files/sun-java6.preseed” mit dem folgenden Beispielinhalt an:

sun-java6-bin shared/accepted-sun-dlj-v1-1 boolean true
sun-java6-jdk shared/accepted-sun-dlj-v1-1 boolean true
sun-java6-jre shared/accepted-sun-dlj-v1-1 boolean true
sun-java6-jre sun-java6-jre/stopthread boolean true
sun-java6-jre sun-java6-jre/jcepolicy note
sun-java6-bin shared/error-sun-dlj-v1-1 error
sun-java6-jdk shared/error-sun-dlj-v1-1 error
sun-java6-jre shared/error-sun-dlj-v1-1 error
sun-java6-bin shared/present-sun-dlj-v1-1 note
sun-java6-jdk shared/present-sun-dlj-v1-1 note
sun-java6-jre shared/present-sun-dlj-v1-1 note

Ich habe dieses APT-Modul verwendet, um das Ubuntu Partner Repository zu installieren. Dieses wird für die Sun-Pakete benötigt.

apt::source { "partner":
    location => "http://archive.canonical.com/ubuntu",
    release => "${lsbdistcodename}",
    repos => "partner",
    include_src => false,
}

Nun kann man die Pakete installieren:

file { "/var/cache/debconf/sun-java6.preseed":
    source => "puppet://$server/filesserver/sun-java6.preseed",
    ensure => present
}
package { "sun-java6-jdk":
    ensure  => installed,
    responsefile => "/var/cache/debconf/sun-java6.preseed",
    require => [ Apt::Source["partner"], File["/var/cache/debconf/sun-java6.preseed"] ],
}

Bemerkung: Ich habe hier sun-java6-jdk installiert. sun-java5-jre lässt sich jedoch ebenso installieren.

Comments: 4 | Read Comments | Write a Comment |

Install latest Broadcom bnx2 linux driver

Installation eines neuen Broadcom Treibers unter Ubuntu oder Debian:

1. Herrunterladen des Linuxtreibers

http://www.broadcom.com/support/ethernet_nic/downloaddrivers.php

2. Entpacken

unzip linux-6.2.23.zip
cd Server/Linux/Driver
tar vfx netxtreme2-6.2.23.tar.gz
cd netxtreme2-6.2.23

3. Installation der build tools und des Treibers

sudo aptitude install build-essential linux-headers
make
sudo make install

4. Testen

Vor der Installation:

$ ethtool -i eth0
driver: bnx2
version: 2.0.2
firmware-version: 4.6.1 ipms 1.6.0
bus-info: 0000:05:00.0

Nach der Installation:

$ ethtool -i eth0
driver: bnx2
version: 2.0.23b
firmware-version: bc 4.6.1 ipms 1.6.0
bus-info: 0000:05:00.0
Comments: 0 | Read Comments | Write a Comment |

Install VMware Tools on Debian Squeeze

1. Installation der benötigten Pakete

aptitude install autoconf automake binutils cpp gcc linux-headers-$(uname -r) make psmisc

2. VMware Tools einbinden

mkdir /tmp/vmtools
mount /dev/cdrom /tmp/vmtools

3. Tools entpacken

tar -C /tmp -vfx /tmp/vmtools/VMwareTools*.tar.gz

4. Installationsscript starten

cd /tmp/vmware-tools-distrib
./vmware-install.pl

Bemerkung: Man kann als Alternative zu den VMware Tools auch die “open-vm-tools” installieren.

aptitude install open-vm-tools

Dazu wird “contrib” in der sources.list benötigt !

Comments: 0 | Read Comments | Write a Comment |

Nginx as reverse proxy cache for wordpress and apache

1. Nginx installieren

* PPA Installation
* Installation mit selbstgebauten Paket

2. Allgemeine Nginx Einstellungen

Folgende Einstellungen in der Datei “/etc/nginx/nginx.conf” vornehmen:

[...]
http {
  [...]
  # Gzip Settings
  gzip on;
  gzip_disable "msie6";
  gzip_buffers 32 8k;
  gzip_comp_level   6;
  gzip_http_version 1.0;
  gzip_min_length   0;
  gzip_types        text/html text/css image/x-icon application/x-javascript application/javascript text/javascript application/atom+xml application/xml ;

  # Proxy Settings
  proxy_temp_path /var/lib/nginx/proxy;
  proxy_connect_timeout 30;
  proxy_read_timeout 120;
  proxy_send_timeout 120;
  proxy_cache_key "$scheme://$host$request_uri";
  [...]
}
[...]

3. Site anlegen

Anlegen der Datei “/etc/nginx/sites-available/www.mogilowski.net” mit folgenden Inhalt:

Bemerkung: Ersetze “www.mogilowski.net” mit der Domain deiner Seite und ersetze “mogfilecache” mit einen eindeutigen Namen für den Filecache der Seite.

proxy_cache_path  /var/lib/nginx/cache  levels=1:2   keys_zone=mogfilecache:180m  max_size=500m;

server {
        proxy_cache_valid 200 3h;

        listen 80;

        server_name www.mogilowski.net;

        access_log /var/log/nginx/mogilowski.proxied.log;
        error_log /var/log/nginx/mogilowski.proxied.log crit;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        location / {
            # If logged in, don't cache.
            if ($http_cookie ~* "comment_author_|wordpress_(?!test_cookie)|wp-postpass_" ) {
                set $do_not_cache 1;
            }
            proxy_cache_key "$scheme://$host$request_uri $do_not_cache";
            proxy_cache mogfilecache;
            proxy_pass http://127.0.0.1:81;
        }

        location ~* wp\-.*\.php|wp\-admin {
            proxy_pass http://127.0.0.1:81;
        }

	location ~* \.(jpg|png|gif|jpeg|css|js|mp3|wav|swf|mov|doc|pdf|xls|ppt|docx|pptx|xlsx)$ {
            proxy_cache_valid 200 6h;
            expires max;
            proxy_cache mogfilecache;
            proxy_pass http://127.0.0.1:81;
        }

        location ~* \/[^\/]+\/(feed|\.xml)\/? {
            if ($http_cookie ~* "comment_author_|wordpress_(?!test_cookie)|wp-postpass_" ) {
                set $do_not_cache 1;
            }
            proxy_cache_key "$scheme://$host$request_uri $do_not_cache";
            proxy_cache_valid 200 1h;
            proxy_cache mogfilecache;
            proxy_pass http://127.0.0.1:81;
        }

        # No access to .htaccess files.
        location ~ /\.ht {
            deny  all;
        }

}

Bemerkung: In dieser Beispielkonfiguration läuft der Apache Webserver auf Port 81 auf dem selben Server (localhost). Es könnte aber ebenso ein anderer Server sein, dazu einfach “http://YOUR_APACHE_SERVER:80″ verwenden.

4. Site aktivieren

ln -s /etc/nginx/sites-available/www.mogilowski.net /etc/nginx/sites-enabled/www.mogilowski.net

Bemerkung: Bitte die default Site entfernen!

5. Purge Cache

Falls man sein eigenes Nginx Paket mit dem “proxy_cache_purge” Modul gebaut hat, kann man dies noch zu seiner Konfiguration hinzufügen: (http://labs.frickle.com/nginx_ngx_cache_purge/)

server {
    [...]
    location ~ /purge(/.*) {
                allow                   127.0.0.1;
                deny                    all;
                proxy_cache_purge       mogfilecache   "$scheme://$host$request_uri";
        }
    [...]
}

Dies kann man prima zusammen mit diesem Plugin verwenden: http://wordpress.org/extend/plugins/nginx-proxy-cache-purge

6. Links

* http://wp-performance.com/2010/10/nginx-reverse-proxy-cache-wordpress-apache/
* http://wiki.nginx.org/Wordpress
* http://wordpress.org/extend/plugins/nginx-proxy-cache-integrator/
* http://www.djm.org.uk/wordpress-nginx-reverse-proxy-caching-setup/
* http://zachbrowne.com/2011/how-to-build-the-fastest-wordpress-website-with-apache-ngnix-reverse-proxy-php-cgi-google-pagespeed/

Comments: 3 | Read Comments | Write a Comment |

Install nginx on debian squeeze from PPA

Aktuell findet man die Version 0.7.67-3 von Nginx in Debian Squeeze. Wenn man eine neuere Version haben möchte, kann man sich seine eigenen Pakete bauen, oder man verwendet welche aus den Ubuntu PPA-Quellen.

Dies installiert die neuste (stable) Version von Nginx (aktuell 1.0.1) auf Debian Squeeze.

echo "deb http://ppa.launchpad.net/nginx/stable/ubuntu lucid main" > /etc/apt/sources.list.d/nginx-stable-lucid.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C
aptitude update
aptitude install nginx

Aber wenn man Third Party Module benötigt, muss man seine eigenen Pakete bauen.

Comments: 1 | Read Comments | Write a Comment |

Building a nginx debian package with third party modules

Ich habe diese Anleitung mit Debian Squeeze (amd64) und der neusten Version von Nginx (stable) mit einem Third Party Module als Beispiel erstellt. Bitte beachtet, das ihr ggf. die Versionsnummern in dieser Anleitung anpassen müsst, wenn ihr neuere Versionen von Nginx oder des Moduls verwendet.

1. Installation Debian Build-Tools und abhängigen Paketen

aptitude install build-essential dpkg-dev debhelper autotools-dev libgeoip-dev libssl-dev libpcre3-dev zlib1g-dev

2. Herrunterladen und entpacken des neusten Nginx

wget http://nginx.org/download/nginx-1.0.2.tar.gz
tar xvzf nginx-1.0.2.tar.gz

3. Weitere Module herrunterladen

In diesem Beispiel verwende ich das Nginx Proxy Purge Modul. Herrunterladen

wget http://labs.frickle.com/files/ngx_cache_purge-1.3.tar.gz

und anschließend ein Verzeichnis “module” erstellen (sollte dieses nicht bereits existieren). Das Modul wird dann in dieses Verzeichnis entpackt:

mkdir nginx-1.0.2/modules
tar vfx ngx_cache_purge-1.3.tar.gz -C nginx-1.0.2/modules/

4. Herrunterladen des neuesten Debian Pakets

apt-get source nginx

Man bekommt einen Ordner mit den letzten Debian Sources angelegt (nginx-0.7.67) von diesen wird jedoch nur der Ordner “debian” benötigt.

5. Kopieren des Debian-Ordners in den neuen Nginx-Ordner

cp -r nginx-0.7.67/debian/ nginx-1.0.2
rm nginx-1.0.2/debian/patches/*

Nicht vergessen die alten Patches zu entfernen! Diese werden nicht mehr benötigt.

Edit “nginx-1.0.2/debian/changelog” and prepend:

nginx (1.0.2-1) unstable; urgency=low

  * added purge proxy module

 -- Sebastian Mogilowski   Sat, 14 May 2011 13:00:00 +0100

Bemerkung: Am besten ersetzt man dabei meinen Namen durch seinen eigenen :-)

Nun fügt man das Modul zu den Build-Rules hinzu. Dazu editiert man die Datei “nginx-1.0.2/debian/rules” und fügt

--add-module=$(CURDIR)/modules/ngx_cache_purge-1.3 \

zu den “./configure” Einstellungen.

Beispiel:

./configure --conf-path=/etc/nginx/nginx.conf \
            --error-log-path=/var/log/nginx/error.log \
            --http-client-body-temp-path=/var/lib/nginx/body \
            --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
            --http-log-path=/var/log/nginx/access.log \
            --http-proxy-temp-path=/var/lib/nginx/proxy \
            --lock-path=/var/lock/nginx.lock \
            --pid-path=/var/run/nginx.pid \
            --with-debug \
            --with-http_dav_module \
            --with-http_flv_module \
            --with-http_geoip_module \
            --with-http_gzip_static_module \
            --with-http_realip_module \
            --with-http_stub_status_module \
            --with-http_ssl_module \
            --with-http_sub_module \
            --with-ipv6 \
            --with-mail \
            --with-mail_ssl_module \
            --add-module=$(CURDIR)/modules/ngx_cache_purge-1.3 \
            $(CONFIGURE_OPTS)

6. Erstellen des Pakets

cd nginx-1.0.2
dpkg-buildpackage -b

7. Installation

dpkg -i nginx_1.0.2-1_amd64.deb
Comments: 3 | Read Comments | Write a Comment |

Nagios 3 with Nginx on Ubuntu Server

1. Installation von Nagios 3

aptitude install nagios3

2. Testen der Nagios Installation

Öffne “http://SERVER/nagios3″ in einem Browser. Anmeldung mit “nagiosadmin” und dem Passwort, dass während der Installation festgelegt wurde.

3. Wechseln von Apache zu Nginx

Mit der Nagios Installation wurde Apache automatisch mit installiert. Nun wird er durch Nginx ersetzt.

3.1 Installation von Nginx und libfcgi (Perl)
aptitude install nginx libfcgi-perl
3.2 Fastcgi konfigurieren

Herrunterladen des fastcgi-wrapper und init Skripts: perl-fastcgi (1.64 kB)

wget http://www.mogilowski.net/wp-content/uploads/perl-fastcgi.tar.gz
tar vfx perl-fastcgi.tar.gz
mv fcgi/fastcgi-wrapper /usr/bin/fastcgi-wrapper.pl
mv fcgi/perl-fastcgi /etc/init.d/perl-fastcgi
rmdir fcgi
chmod +x /usr/bin/fastcgi-wrapper.pl
chmod +x /etc/init.d/perl-fastcgi
update-rc.d perl-fastcgi defaults
/etc/init.d/perl-fastcgi start
3.3 Nginx konfigurieren
vim /etc/nginx/sites-available/nagios
server {
	listen   80;
	server_name  servername.com;

	access_log  /var/log/nginx/access.log;

	auth_basic            "Restricted Nagios Area!";
  	auth_basic_user_file  /etc/nagios3/htpasswd.users;	

	location / {
		root /usr/share/nagios3/htdocs;
		index index.html;

		rewrite ^/nagios3/(.*)$ /$1 break;
	}

	location /nagios3/stylesheets {
                alias /etc/nagios3/stylesheets;
        }

	location ~ \.cgi$ {
		root /usr/lib/cgi-bin/nagios3;
		include /etc/nginx/fastcgi_params;

		rewrite ^/cgi-bin/nagios3/(.*)$ /$1;

		fastcgi_pass 127.0.0.1:8999;
		fastcgi_param SCRIPT_FILENAME /usr/lib/cgi-bin/nagios3$fastcgi_script_name;
		fastcgi_param AUTH_USER       $remote_user;
		fastcgi_param REMOTE_USER     $remote_user;
	}

}
ln -s /etc/nginx/sites-available/nagios /etc/nginx/sites-enabled/nagios
/etc/init.d/nginx restart
3.4 Apache entfernen

Nun kann man alle Apache Pakete entfernen mit Ausnahme von “apache2-utils” welches von Nagios benötigt wird.

4. Testen mit Nginx

Öffne “http://SERVER/nagios3″ in einem Browser. Anmeldung mit “nagiosadmin” und dem Passwort, dass während der Installation festgelegt wurde.

5. Links

* http://inode.co.nz/running-nagios3-under-nginx-fastcgi

* http://library.linode.com/web-servers/nginx/perl-fastcgi/ubuntu-10.04-lucid

* http://wiki.linuxwall.info/doku.php/fr:ressources:dossiers:supervision:nagios3

* http://wiki.nginx.org/Main

* http://www.nagios.org

Comments: 0 | Read Comments | Write a Comment |

Previous Posts Next posts