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.
make.conf
(poudriere_build_options_file
)ports-list
(poudriere_port_list_file
)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.
- Uruchom nowy serwer (jest plik Vagrant do tego)
- Zastosuj tę rolę Ansible
- Zaloguj się
- Uruchom:
sudo build-ports
- Uruchom:
sudo upload-to-s3
- Wyloguj się
- 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ę.
ansible-galaxy install JoergFiedler.freebsd-build-server