freebsd-build-server
Сервер сборки FreeBSD
Создает сервер FreeBSD, который предоставляет готовую к запуску установку 'poudriere'. Для получения дополнительной информации смотрите Руководство FreeBSD.
Я хотел создать сервер сборки, который не нужно держать включенным постоянно. Для этого репозиторий пакетов и параметры сборки для всех пакетов синхронизируются с S3. Это позволяет мне уничтожить сервер сборки после завершения сборки пакетов и их синхронизации.
Перед началом вы можете предоставить свои файлы, установив путь к соответствующей переменной Ansible.
make.conf
, (poudriere_build_options_file
)ports-list
, (poudriere_port_list_file
)poudriere.key
, (poudriere_key_file
)
Вы можете сделать это, предоставив свою версию файла и установив путь к нему через соответствующую переменную Ansible.
С учетом всего этого типичный рабочий процесс выглядит следующим образом.
- Запустите новый сервер (для этого есть файл Vagrant)
- Примените эту роль Ansible
- Войдите в систему
- Выполните команду:
sudo build-ports
- Выполните команду:
sudo upload-to-s3
- Выйдите из системы
- Уничтожьте сервер
Просто как пирог.
Требования
Эта роль предназначена для использования с новой установкой FreeBSD с небольшими модификациями. Вы можете использовать Vagrant Box с провайдерами для VirtualBox и EC2. Я создал этот проект Vagrant для создания машин VirtualBox и EC2.
Переменные роли
aws_default_region
Регион S3 для использования. По умолчанию: ''
.
aws_access_key_id
Ключ доступа S3. По умолчанию: ''
.
aws_secret_access_key
Секретный ключ S3. По умолчанию: ''
.
s3_bucket_name
Имя бакета для хранения пакетов и параметров сборки. По умолчанию: ''
.
s3_upload_path
Путь внутри S3 бакета для размещения папок packages
и build-options
. По умолчанию: '/public/FreeBSD'
.
freebsd_mirror_server
Сервер-дзеркало FreeBSD, используемый для настройки изоляторов. По умолчанию: 'ftp://ftp.freebsd.org'
.
poudriere_ssl_prefix
Путь, где должен быть сохранен ключ подписи пакета. По умолчанию: '/usr/local/etc/ssl'
.
poudriere_key_file
Приватный ключ, используемый для подписи пакетов. Пожалуйста, измените его на свой собственный ключ. По умолчанию: 'poudriere.key.default'
.
poudriere_ports_list_file
Список портов для сборки. По умолчанию: 'ports-list.default'
.
poudriere_ports_branch_name
Название ветки портов для загрузки через svn и сборки. По умолчанию: 'head'
.
poudriere_build_options_file
Параметры сборки make.conf
, используемые для сборки портов. По умолчанию: 'make.conf.default'
.
poudriere_jails
Изоляторы, которые должны быть созданы.
poudriere_jails:
- { jail_name: 'freebsd-11_2_x64', version: '11.2-RELEASE' }
По умолчанию: ''
.
poudriere_zpool
Имя zpool, который будет использоваться poudriere
. Если пула не существует, он будет создан с использованием устройств, указанных в poudriere_zpool_devices
. По умолчанию: 'tank'.
poudriere_zpool_devices
Устройства, которые должны быть использованы для создания zpool для poudriere, например, /dev/nvd1
. По умолчанию: ''
.
Зависимости
Нет.
Пример 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 }
Лицензия
BSD
Информация об авторе
Если вам нравится этот проект или у вас есть идеи по его улучшению, пожалуйста, откройте проблему на Github. Спасибо.
ansible-galaxy install JoergFiedler/freebsd-build-server