JoergFiedler.freebsd-build-server
Serveur de Construction FreeBSD
Crée un serveur FreeBSD qui propose une installation 'poudriere' prête à l'emploi. Consultez le Guide FreeBSD pour plus d'informations.
Je voulais avoir un serveur de construction que je n'ai pas besoin de faire fonctionner tout le temps. Pour y parvenir, le dépôt de paquets et les options de construction pour tous les paquets sont synchronisés avec S3. Cela me permet de détruire le serveur de construction après que les paquets ont été construits et synchronisés.
Avant de commencer, vous pouvez fournir vos propres fichiers en définissant le chemin pour la variable Ansible correspondante.
make.conf
, (poudriere_build_options_file
)ports-list
, (poudriere_port_list_file
)poudriere.key
, (poudriere_key_file
)
Vous pouvez le faire en fournissant votre propre version du fichier et en définissant le chemin via la variable Ansible correspondante.
Avec tout cela en tête, le flux de travail typique ressemble à ceci.
- Démarrer un nouveau serveur (il y a un fichier Vagrant pour cela)
- Appliquer ce rôle Ansible
- Se connecter
- Exécuter :
sudo build-ports
- Exécuter :
sudo upload-to-s3
- Se déconnecter
- Détruire le serveur
Facile comme tout.
Exigences
Ce rôle est destiné à être utilisé avec une nouvelle installation de FreeBSD avec quelques modifications mineures. Il existe une Vagrant Box avec des fournisseurs pour VirtualBox et EC2 que vous pouvez utiliser. J'ai créé ce projet Vagrant pour créer des machines VirtualBox et EC2.
Variables de Rôle
aws_default_region
Région S3 à utiliser. Par défaut : ''
.
aws_access_key_id
Clé d'accès S3. Par défaut : ''
.
aws_secret_access_key
Clé secrète S3. Par défaut : ''
.
s3_bucket_name
Le bucket à utiliser pour stocker les paquets et les options de construction. Par défaut : ''
.
s3_upload_path
Le chemin dans le bucket S3 où mettre les dossiers packages
et build-options
. Par défaut : '/public/FreeBSD'
.
freebsd_mirror_server
Le serveur miroir FreeBSD utilisé pour configurer les jails. Par défaut : 'ftp://ftp.freebsd.org'
.
poudriere_ssl_prefix
Le chemin où la clé de signature des paquets doit être sauvegardée. Par défaut : '/usr/local/etc/ssl'
.
poudriere_key_file
La clé privée utilisée pour signer les paquets. Veuillez changer cela pour utiliser votre propre clé. Par défaut : 'poudriere.key.default'
.
poudriere_ports_list_file
La liste des ports à construire. Par défaut : 'ports-list.default'
.
poudriere_ports_branch_name
Le nom de la branche des ports à vérifier via svn et à construire. Par défaut : 'head'
.
poudriere_build_options_file
Options de construction make.conf
utilisées pour construire les ports. Par défaut : 'make.conf.default'
.
poudriere_jails
Les jails qui doivent être créées.
poudriere_jails:
- { jail_name: 'freebsd-11_2_x64', version: '11.2-RELEASE' }
Par défaut : ''
.
poudriere_zpool
Le nom du zpool qui sera utilisé par poudriere
. Si le pool n'existe pas, il sera créé en utilisant les dispositifs spécifiés dans poudriere_zpool_devices
. Par défaut : 'tank'.
poudriere_zpool_devices
Les dispositifs qui doivent être utilisés pour créer le zpool pour poudriere, par exemple /dev/nvd1
. Par défaut : ''.
Dépendances
Aucune.
Exemple 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 }
Licence
BSD
Informations sur l'Auteur
Si vous aimez ce projet ou avez des idées pour l'améliorer, veuillez ouvrir une issue sur Github. Merci.
ansible-galaxy install JoergFiedler.freebsd-build-server