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.
- Öffnen Sie YaST
- Gehen Sie in das Modul Installationsquelle wechseln.
- Wählen Sie Hinzufügen und dort URL angeben....
- Geben Sie als Adresse dann http://software.opensuse.org/download/openSUSE:/Tools/openSUSE_10.2/ ein.
- Sie müssen eine zusätzliche Installationsquelle mit aktuelleb Ruby-Pakete hinzufügen, damit der obs läuft:
- Gehen Sie wie zuvor vor und geben Sie als Adresse http://download.opensuse.org/repositories/ruby/openSUSE_10.2/ ein.
- 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:
- Öffnen Sie das Modul Software installieren oder löschen.
- Suchen Sie dort nach obs
- Installieren Sie dann obs-api, obs-server und obs-worker (sowie ihre Abhängigkeiten).
Konfiguration
(Die folgenden Inhalte sind aus /usr/share/doc/packages/obs-api/README.SETUP aus dem obs-api-Paket kopiert).
Standardmäßig laufen alle Dienste auf dem selben System, können aber, um die Zuverlässigkeit zu erhöhen und um eine Lastverteilung durchzuführen, 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
# rcobsdispatcher start
# rcobspublisher start
Die Daten werden standardmäßig unterhalb des Ordners /srv/obs abgelegt.
Starten der Worker
Die Arbeiter (worker) fragen beim Backend nach offenen Bauaufträgen und führen diese dann aus. Hierfür muss das Paket "obs-worker" installiert sein.
Lokale Worker
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 Infos in der Datei: /usr/share/doc/packages/obs-api/README.SETUP
Mehrere Arbeiter auf entfernten Systemen
/etc/sysconfig/obs-worker muss bearbeitet werden.
# OBS_STORAGE_SERVER="[IP des "SOURCE_HOST" Servers]:6262"
Starten des Frontend
Hierfür müssen das "obs-api"-Paket und ein "mysql"-Server installiert sein, letzterer 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
Wenn Sie einen Fehler wie "Cannot find gem for Rails ~>1.2.3.0" erhalten, dann installieren Sie es mit "gem install rails" und ändern Sie die Version in "config/environment.rb" auf die aktuelle Version von Rails (für mich war es 1.2.5 an Stelle von 1.2.3).
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.
Bearbeiten Sie nun /srv/www/obs/webclient/config/environments/development_base.rb<tt> und setzen Sie die folgenden Variablen:
FRONTEND_HOST = "127.0.42.2" FRONTEND_PORT = 80 FRONTEND_PROTOCOL = 'http'
und <tt>/srv/www/obs/frontend/config/environments/development_base.rb
SOURCE_HOST = "127.0.42.1" RPM_HOST = "127.0.42.1"
Als nächstes können Sie den OBS starten, via:
rclighttpd start # Benutzen Sie "insserv lighttpd" für einen dauerhaften Start
Fall lighttpd nicht startet, müssen Sie IPv6 aktivieren.
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/obs/server/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

