JoergFiedler.freebsd-build-server

FreeBSD Build Server

Erstellt einen FreeBSD-Server, der eine einsatzbereite 'poudriere'-Installation bereitstellt. Weitere Informationen finden Sie im FreeBSD-Handbuch.

Ich wollte einen Build-Server haben, den ich nicht ständig laufen lassen muss. Um dies zu erreichen, werden das Paket-Repository und die Build-Optionen für alle Pakete mit S3 synchronisiert. Dadurch kann ich den Build-Server nach dem Erstellen und Synchronisieren der Pakete zerstören.

Bevor Sie beginnen, können Sie Ihre eigenen Dateien bereitstellen, indem Sie den Pfad zur entsprechenden Ansible-Variablen festlegen.

  1. make.conf, (poudriere_build_options_file)
  2. ports-list, (poudriere_port_list_file)
  3. poudriere.key, (poudriere_key_file)

Sie können dies tun, indem Sie Ihre eigene Version der Datei bereitstellen und den Pfad dazu über die entsprechende Ansible-Variable festlegen.

Mit all dem im Hinterkopf sieht der typische Arbeitsablauf so aus:

  1. Einen neuen Server starten (es gibt eine Vagrant-Datei dafür)
  2. Diese Ansible-Rolle anwenden
  3. Einloggen
  4. Ausführen: sudo build-ports
  5. Ausführen: sudo upload-to-s3
  6. Abmelden
  7. Den Server zerstören

So einfach wie Kuchen.

Anforderungen

Diese Rolle ist für die Verwendung mit einer frischen FreeBSD-Installation mit einigen kleineren Änderungen gedacht. Es gibt eine Vagrant-Box mit Anbietern für VirtualBox und EC2, die Sie nutzen können. Ich habe dieses Vagrant-Projekt erstellt, um VirtualBox- und EC2-Maschinen zu erstellen.

Rollenvariablen

aws_default_region

S3-Region, die verwendet werden soll. Standard: ''.

aws_access_key_id

S3-Zugriffsschlüssel. Standard: ''.

aws_secret_access_key

S3-Geheimschlüssel. Standard: ''.

s3_bucket_name

Der Bucket, der zum Speichern der Pakete und Build-Optionen verwendet wird. Standard: ''.

s3_upload_path

Der Pfad im S3-Bucket, wo die Ordner packages und build-options abgelegt werden sollen. Standard: '/public/FreeBSD'.

freebsd_mirror_server

Der FreeBSD-Mirror-Server, der zum Einrichten der Jails verwendet wird. Standard: 'ftp://ftp.freebsd.org'.

poudriere_ssl_prefix

Der Pfad, wo der Schlüssel zum Signieren der Pakete gespeichert werden soll. Standard: '/usr/local/etc/ssl'.

poudriere_key_file

Der private Schlüssel, der zum Signieren der Pakete verwendet wird. Bitte ändern Sie dies, um Ihren eigenen Schlüssel zu verwenden. Standard: 'poudriere.key.default'.

poudriere_ports_list_file

Die Liste der Ports, die gebaut werden sollen. Standard: 'ports-list.default'.

poudriere_ports_branch_name

Der Name des Ports-Branch, der über svn ausgecheckt und gebaut werden soll. Standard: 'head'.

poudriere_build_options_file

Build-Optionen make.conf, die verwendet werden, um die Ports zu bauen. Standard: 'make.conf.default'.

poudriere_jails

Die Jails, die erstellt werden sollen.

poudriere_jails:
- { jail_name: 'freebsd-11_2_x64', version: '11.2-RELEASE' }

Standard: ''.

poudriere_zpool

Der Name des Zpools, der von poudriere verwendet wird. Wenn der Pool nicht existiert, wird er mit den in poudriere_zpool_devices angegebenen Geräten erstellt. Standard: 'tank'.

poudriere_zpool_devices

Die Geräte, die zur Erstellung des Zpools für poudriere verwendet werden sollen, z. B. /dev/nvd1. Standard: ''.

Abhängigkeiten

Keine.

Beispiel-Playbook

---
- hosts: default
  sudo: true

  vars:
    aws_access_key_id: '{{ lookup("env","AWS_ACCESS_KEY_ID") }}'
    aws_secret_access_key: '{{ lookup("env","AWS_SECRET_ACCESS_KEY") }}'
    aws_default_region: '{{ lookup("env","AWS_DEFAULT_REGION") }}'
    s3_bucket_name: 'repo.bucket.name'
    poudriere_ports_list_file: './files/ports.list'
    poudriere_key_file: './files/poudriere.key'
    poudriere_build_options_file: './files/make.conf'
    poudriere_jails:
      - { jail_name: 'freebsd-11_2_x64', version: '11.2-RELEASE' }

  roles:
  - { role: JoergFiedler.freebsd-build-server }

Lizenz

BSD

Autoreninformationen

Wenn Ihnen das Projekt gefällt oder Sie Ideen zur Verbesserung haben, öffnen Sie bitte ein Issue auf Github. Danke.

Über das Projekt

Creates a FreeBSD build server (poudriere).

Installieren
ansible-galaxy install JoergFiedler.freebsd-build-server
GitHub Repository
Lizenz
Unknown
Downloads
107
Besitzer