JoergFiedler.freebsd-build-server

Servidor de Compilación FreeBSD

Crea un servidor FreeBSD que ofrece una instalación de 'poudriere' lista para usar. Consulta el Manual de FreeBSD para más información.

Quería tener un servidor de compilación que no tuviera que mantener en funcionamiento todo el tiempo. Para lograr esto, el repositorio de paquetes y la opción de compilación para todos los paquetes se sincronizan con S3. Esto me permite destruir el servidor de compilación después de que los paquetes han sido compilados y sincronizados.

Antes de comenzar, puedes proporcionar tus propios archivos configurando la ruta de la variable correspondiente de Ansible.

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

Puedes hacerlo proporcionando tu propia versión del archivo y configurando la ruta a él a través de la variable correspondiente de Ansible.

Con todo esto en mente, el flujo de trabajo típico es el siguiente:

  1. Crear un nuevo servidor (hay un archivo Vagrant para esto)
  2. Aplicar este rol de Ansible
  3. Iniciar sesión
  4. Ejecutar: sudo build-ports
  5. Ejecutar: sudo upload-to-s3
  6. Cerrar sesión
  7. Destruir el servidor

Así de fácil.

Requisitos

Este rol está destinado a utilizarse con una instalación fresca de FreeBSD con algunas modificaciones menores. Hay una Vagrant Box con proveedores para VirtualBox y EC2 que puedes usar. Creé este proyecto Vagrant para crear máquinas de VirtualBox y EC2.

Variables del Rol

aws_default_region

Región S3 a utilizar. Por defecto: ''.

aws_access_key_id

Clave de acceso S3. Por defecto: ''.

aws_secret_access_key

Clave secreta S3. Por defecto: ''.

s3_bucket_name

El bucket a utilizar para almacenar los paquetes y opciones de compilación. Por defecto: ''.

s3_upload_path

La ruta dentro del bucket S3 donde colocar la carpeta packages y build-options. Por defecto: '/public/FreeBSD'.

freebsd_mirror_server

El servidor espejo de FreeBSD utilizado para configurar los jails. Por defecto: 'ftp://ftp.freebsd.org'.

poudriere_ssl_prefix

La ruta donde se debe guardar la clave de firma de los paquetes. Por defecto: '/usr/local/etc/ssl'.

poudriere_key_file

La clave privada utilizada para firmar los paquetes. Cambia esto para usar tu propia clave. Por defecto: 'poudriere.key.default'.

poudriere_ports_list_file

La lista de puertos a compilar. Por defecto: 'ports-list.default'.

poudriere_ports_branch_name

El nombre de la rama de puertos que se debe usar para checkout a través de svn y compilar. Por defecto: 'head'.

poudriere_build_options_file

Opciones de compilación make.conf utilizadas para compilar los puertos. Por defecto: 'make.conf.default'.

poudriere_jails

Los jails que deben ser creados.

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

Por defecto: ''.

poudriere_zpool

El nombre del zpool que será utilizado por poudriere. Si el pool no existe, se creará utilizando los dispositivos especificados en poudriere_zpool_devices. Por defecto: 'tank'.

poudriere_zpool_devices

Los dispositivos que deben ser utilizados para crear el zpool de poudriere, por ejemplo, /dev/nvd1. Por defecto: ''.

Dependencias

Ninguna.

Ejemplo de 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 }

Licencia

BSD

Información del Autor

Si te gusta o tienes ideas para mejorar este proyecto, por favor abre un problema en Github. Gracias.

Acerca del proyecto

Creates a FreeBSD build server (poudriere).

Instalar
ansible-galaxy install JoergFiedler.freebsd-build-server
Licencia
Unknown
Descargas
107
Propietario