JoergFiedler.freebsd-build-server

Serwer budowy FreeBSD

Tworzy serwer FreeBSD, który oferuje gotową do uruchomienia instalację 'poudriere'. Zobacz Podręcznik FreeBSD po więcej informacji.

Chciałem mieć serwer do budowy, który nie muszę trzymać włączonym cały czas. Aby to osiągnąć, repozytorium pakietów i opcje budowy dla wszystkich pakietów są synchronizowane z S3. Dzięki temu mogę zniszczyć serwer budowy po zbudowaniu i synchronizacji pakietów.

Przed rozpoczęciem możesz dostarczyć własne pliki, ustawiając ścieżkę dla odpowiedniej zmiennej Ansible.

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

Możesz to zrobić, dostarczając własną wersję pliku i ustawiając ścieżkę do niego przez odpowiednią zmienną Ansible.

Mając to na uwadze, typowy przebieg pracy wygląda tak.

  1. Uruchom nowy serwer (jest plik Vagrant do tego)
  2. Zastosuj tę rolę Ansible
  3. Zaloguj się
  4. Uruchom: sudo build-ports
  5. Uruchom: sudo upload-to-s3
  6. Wyloguj się
  7. Zniszcz serwer

Tak proste jak tort.

Wymagania

Ta rola ma być używana z nową instalacją FreeBSD z pewnymi niewielkimi modyfikacjami. Jest Vagrant Box z dostawcami dla VirtualBox i EC2, którego możesz użyć. Stworzyłem ten projekt Vagrant, aby tworzyć maszyny VirtualBox i EC2.

Zmienne roli

aws_default_region

Region S3 do użycia. Domyślnie: ''.

aws_access_key_id

Klucz dostępu do S3. Domyślnie: ''.

aws_secret_access_key

Tajny klucz S3. Domyślnie: ''.

s3_bucket_name

Kosz do użycia do przechowywania pakietów i opcji budowy. Domyślnie: ''.

s3_upload_path

Ścieżka w obrębie kosza S3, gdzie umieścić foldery packages i build-options. Domyślnie: '/public/FreeBSD'.

freebsd_mirror_server

Serwer lustrzany FreeBSD używany do ustawienia więzień. Domyślnie: 'ftp://ftp.freebsd.org'.

poudriere_ssl_prefix

Ścieżka, w której klucz do podpisywania pakietów powinien być zapisany. Domyślnie: '/usr/local/etc/ssl'.

poudriere_key_file

Prywatny klucz używany do podpisywania pakietów. Proszę zmienić go na własny klucz. Domyślnie: 'poudriere.key.default'.

poudriere_ports_list_file

Lista portów do zbudowania. Domyślnie: 'ports-list.default'.

poudriere_ports_branch_name

Nazwa gałęzi portów do sprawdzenia za pomocą svn i zbudowania. Domyślnie: 'head'.

poudriere_build_options_file

Opcje budowy make.conf używane do budowania portów. Domyślnie: 'make.conf.default'.

poudriere_jails

Więzienia, które mają być utworzone.

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

Domyślnie: ''.

poudriere_zpool

Nazwa zpool, która będzie używana przez poudriere. Jeśli puli nie ma, zostanie utworzona przy użyciu urządzeń określonych w poudriere_zpool_devices. Domyślnie: 'tank'.

poudriere_zpool_devices

Urządzenia, które powinny być używane do utworzenia zpool dla poudriere, np. /dev/nvd1. Domyślnie: ''.

Zależności

Brak.

Przykładowy 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 }

Licencja

BSD

Informacje o autorze

Jeśli podoba Ci się to lub masz pomysły na poprawę tego projektu, otwórz zgłoszenie na Githubie. Dziękuję.

O projekcie

Creates a FreeBSD build server (poudriere).

Zainstaluj
ansible-galaxy install JoergFiedler.freebsd-build-server
Licencja
Unknown
Pobrania
107
Właściciel