Build Service/Installationsanleitung/openSUSE 10.2

aus openSUSE, der freien Wissensdatenbank

Das Installieren des Build Service auf openSUSE 10.2 ist wirklich einfach, wenn Sie eine Internetverbindung haben:

Inhaltsverzeichnis

YaST

Statt YaST können Sie auch eine andere Paketverwaltung verwenden.

Einrichtung der Installatinsquelle

Als erstes wollen Sie YaST mitteilen, wo es nach Paketen schauen soll.

  1. Öffnen Sie YaST
  2. Gehen Sie in das Modul Installationsquelle wechseln.
  3. Wählen Sie Hinzufügen und dort URL angeben....
  4. Es könnte auch notwendig sein, den oss-Katalog von opensuse.org zu aktivieren (oder alternativ, ihn hinzuzufügen

Installation des Open Build Service

Als nächstes müssen Sie die Build Service Pakete installieren:

  1. Öffnen Sie das Modul Software installieren oder löschen.
  2. Suchen Sie dort nach obs
  3. Installieren Sie dann obs-api, obs-server und obs-worker (sowie ihre Abhängigkeiten).

Konfiguration

(Die folgenden Inhalte werden schamlos von /usr/share/doc/packages/obs-api/README.SETUP in das obs-api-Paket kopiert).

Standardmäßig laufen alle Dienste auf dem selben System, um die Zuverlässigkeit zu erhöhen und um eine Lastverteilung durchzuführen, können Sie aber auch auf verschiedene Systeme verteilt werden.

Starten des Backend

Das Backend beherbergt alle Quellen, baut Pakete und berechnet die Aufgaben. Sie müssen dafür das Paket "obs-server" installiert haben.

Starten der Dienste

Starten Sie die folgenden Dienste in dieser Reihenfolge. WARNUNG: Die folgenden Befehle starten Dienste, die auch von außerhalb erreichbar sind.

        Tun Sie dies nicht auf einem System, welches mit einem nicht vertrauenswürdigen Netzwerk verbunden ist
        oder stellen Sie sicher, dass die entsprechenden Ports von einer Firewall blockiert werden.
# rcobsrepserver start
# rcobssrcserver start
# rcobsscheduler start

Die Daten werden standardmäßig unterhalb des Ordners /srv/obs abgelegt.

Starten des Arbeiters

Die Arbeiter fragen beim Backend nach offenen Bauaufträgen und führen diese dann aus. Hierfür muss das Paket "obs-worker" installiert sein.

Lokale Arbeiter

Ein Arbeiter (worker) kann auf dem lokalen Host durch folgenden Befehl gestartet werden:

# rcobsworker start

Mehr Infos zum Starten der Dienste

Insgesamt sind folgende Dienste zu starten:

# rcmysql start
# rcobsrepserver start
# rcobssrcserver start
# rcobsscheduler start
# rcobsworker start
# rcobsdispatcher start
# rcobspublisher  start
# rclighttpd start

Zum Stoppen die Dienste in umgekehrter Reihenfolge stoppen.

Aktuelle Info's in der Datei: /usr/share/doc/packages/obs-api/README.SETUP

Mehrer Arbeiter auf entfernten Systemen

Starten des Frontend

Hierfür müssen das "obs-api"-Paket und ein "mysql"-Server installiert sein, letzerer kann auch auf einem entfernten Rechner laufen.

MySQL Einrichtung & Konfiguration

rcmysql start    # verwenden Sie "insserv mysql" für einen dauerhaften Start
/usr/bin/mysqladmin -u root password 'ihr Passwort'
  • Konfigurieren Sie ihren verwendeten MySQL-Nutzer in
    /srv/www/obs/frontend/config/database.yml
    /srv/www/obs/webclient/config/database.yml
    im Abschnitt "development":
  • Führen Sie die folgenden Kommandos aus
mysql -u root -p
mysql> create database frontend_development;
mysql> quit
cd /srv/www/obs/frontend/
rake db:migrate

Konfigurieren des Frontend und des Web-Client

Nach der Konfiguration des Frontend (und des Web-Client) wird eine Rails-Schnittstelle benötigt. Eine Konfiguration für den Zugriff via http://127.0.42.1 und http://127.0.42.2 wird automatisch in /etc/lighttpd/vhosts.d/obs.conf installiert.

Falls die folgenden Einstellungen in /etc/lighttpd/lighttpd.conf fehlen müssen Sie sie hinzufügen:

var.conf_dir    = "/etc/lighttpd/"
include "vhosts.d/obs.conf"

In der /etc/lighttpd/modules.con müssen die Module "mod_magnet" und "mod_rewrite" aktiviert werden. Zusätzlich müsse Sie FastCGI aktivieren, indem Sie es den Kommentar vor

include "conf.d/fastcgi.conf"

innerhalb dieser Datei entfernen.

Als nächstes können Sie den OBS starten, via:

rclighttpd start  # Benutzen Sie "insserv lighttpd" für einen dauerhaften Start

Einrichten der Anfangsdistributionen

Der OBS benötigt einige Basisprojekte und Pakete um mit dem Bau zu beginnen. Sie können ihn zum Beispiel folgendermaßen für openSUSE 10.2 einrichten:

  • Besuchen Sie http://127.0.42.1 Der Standardnutzer ist "Admin" mit der Passwort "opensuse".
  • Erstellen Sie ein "openSUSE:10.2"-Projekt, indem Sie in einem Browser die folgende Adresse aufrufen: http://127.0.42.1. Klicken Sie auf "Projects", dann (in der Nähe des Seitenfußes) auf "All projects (einschließlich Home Projects)" und schließlich auf "Add a new project".
  • Klicken Sie in diesem Projekt auf '[Add Repository]' und auf der nächsten Seite auf '[Advanced]' (unterhalb eines Bündels von Distorbutionsknöpfen), im Feld Name geben Sie 'standard' ein.
  • Daraus sollte eine Projekt-XML-Datei als /srv/obs/projects/openSUSE:10.2.xml entstehen und etwa so aussehen:
<project name="openSUSE:10.2">
  <repository status='disabled' name='standard'>
    <arch>i586</arch>
  </repository>
  <title>the openSUSE 10.2 distribution</title>
  <description></description>
</project>

Der status='disabled' verhindert jeglichen Bau innerhalb dieses Projekts, es kann aber als Basis für andere Projekte verwendet wrden.

Danach müssen Sie die RPMs aus der Basisdistribution nach /srv/obs/build/openSUSE:10.2/standard/i586/:full/ kopieren. Erstellen Sie das Verzeichnis einfach, falls es noch nicht existiert. Um sicherzugehen, dass die Verzeichnisstruktur mit den korrekten Rechten ausgestattet ist, führen Sie folgenden aus:

chown -R obsrun.obsrun /srv/obs

Nachdem Sie alle RPMs aus dem i586- und dem noarch-Verzeichnis der Basisdistribution nach /srv/obs/build/openSUSE:10.2/standard/i586/:full/ kopiert haben, müssen Sie das Auslesen des Verzeichnisses durch das Steuerprogramm (sheduler) veranlassen. Am einfachsten erreichen Sie dies durch einen Neustart des Programms.

# rcobsscheduler restart

Wenn Sie über ein x86_64 System verfügen, sind sie in der Lage sowohl x86_64, als auch i586 Pakete zu bauen. Hierzu müssen Sie das Repository um x86_64 Pakete erweitern.

Sie müssen die RPMs aus dem x86_64- und dem noarch-Verzeichnis der Basisdistribution nach /srv/obs/build/openSUSE:10.2/standard/x86_64/:full kopieren. Passen Sie die Projekt-XML-Datei so an:

<project name="openSUSE:10.2">
  <repository status='disabled' name='standard'>
    <arch>x86_64</arch>
    <arch>i586</arch>
  </repository>
  <title>the openSUSE 10.2 distribution</title>
  <description></description>
</project>

Editiern Sie /etc/sysconfig/obs-server

 OBS_SCHEDULER_ARCHITECTURES="i586 x86_64"

Zu guter Letzt müssen Sie noch die Distributionskonfiguration kopieren, um zu definieren, wie die Basisdistribution eingerichtet werden soll. Diese Distributionen sind für SUSE teil des build rpm.

# cp /usr/lib/build/configs/sl10.2.conf /srv/obs/projects/openSUSE:10.2.conf

Sie möchten vielleicht auch noch wissen, wie eine Bauumgebung definiert ist um eine Beschreibung des Konfigurationsformats zu erhalten.

Das Projekt ist nun bereit, als Basis für andere Projekte genutzt zu werden.

Andere Distributionen können ähnlich hinzugefügt werden, was die 'distro'-Knöpfe erledigen, wenn Sie eine Depotarbeit hinzufügen.

Namen von Projekten zum Erstellen für andere Distributionen:

Linux-Distribution Name
SLED/SLES 10 SUSE:SLE-10:SDK
SLES 9 SUSE:SLES-9
Fedora 6 (mit Extras) Fedora:Extras6
Ubuntu 7.04 (Feisty Fawn) Ubuntu:7.04
Ubuntu 7.10 (Gutsy Gibbon) Ubuntu:7.10
SUSE Linux 10.1 SUSE:SL-10.1
openSUSE 10.2 openSUSE:10.2

(Ich bin sicher, es gibt noch mehr...)

Zugriff

Standardmäßig können Sie die API mit jedem Browser unter der folgenden Adresse erreichen:

 http://127.0.42.2

Die Web-Schnittstelle ist erreichbar über:

 http://127.0.42.1

Der Standardnutzer ist "Admin" mit dem Passwort "opensuse".

Aktualisierung

Sollte das obs-api-Paket aktualisiert worden sein, kann es notwendig sein, die Datenbank zu erneuern. Dazu führen sie

cd /srv/www/obs/frontend/
rake migrate

nach der Aktualisierung von obs-api aus.

Kommandozeilenschnittstelle (osc)

Um das Kommandozeilenwerkzeug für den Build Service zu verwenden, ändern Sie ihre ~/.oscrc in etwa wie folgt:

[general]

# Downloaded packages are cached here. Must be writable by you.
#packagecachedir = /var/tmp/osbuild-packagecache

# Wrapper to call build as root (sudo, su -, ...)
#su-wrapper = su -c

# rootdir to setup the chroot environment
# can contain %(repo)s and/or %(arch)s for replacement
#build-root = /var/tmp/build-root

# use this API server
# (it needs a section [api.opensuse.org] with the credentials)
#apisrv = api.opensuse.org

# our local build service api:
apisrv = 127.0.42.2

# for local build service, use http (not https)
scheme = http

# local default admin account
[127.0.42.2]
user = Admin
pass = opensuse

# normal build service account
[api.opensuse.org]
user = foo
pass = bar