freebsd-build-server

Сервер сборки FreeBSD

Создает сервер FreeBSD, который предоставляет готовую к запуску установку 'poudriere'. Для получения дополнительной информации смотрите Руководство FreeBSD.

Я хотел создать сервер сборки, который не нужно держать включенным постоянно. Для этого репозиторий пакетов и параметры сборки для всех пакетов синхронизируются с S3. Это позволяет мне уничтожить сервер сборки после завершения сборки пакетов и их синхронизации.

Перед началом вы можете предоставить свои файлы, установив путь к соответствующей переменной Ansible.

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

Вы можете сделать это, предоставив свою версию файла и установив путь к нему через соответствующую переменную Ansible.

С учетом всего этого типичный рабочий процесс выглядит следующим образом.

  1. Запустите новый сервер (для этого есть файл Vagrant)
  2. Примените эту роль Ansible
  3. Войдите в систему
  4. Выполните команду: sudo build-ports
  5. Выполните команду: sudo upload-to-s3
  6. Выйдите из системы
  7. Уничтожьте сервер

Просто как пирог.

Требования

Эта роль предназначена для использования с новой установкой 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. Спасибо.

О проекте

Creates a FreeBSD build server (poudriere).

Установить
ansible-galaxy install JoergFiedler/freebsd-build-server
Лицензия
Unknown
Загрузки
97
Владелец