bplower.factorio

Factorio

Installer depuis Ansible Galaxy Ansible Lint

Un rôle pour créer des serveurs Factorio https://galaxy.ansible.com/bplower/factorio/

Exigences

Aucune exigence

Variables du Rôle

Les variables peuvent être réparties en deux groupes : configurations de déploiement et configurations Factorio.

Configurations de Déploiement

Les configurations de déploiement concernent la manière dont Ansible installe le serveur Factorio. Elles doivent être suffisamment abstraites pour permettre de faire fonctionner plusieurs serveurs Factorio en même temps.

server_sources: "/opt/games/sources/factorio"
server_version: "0.17.79"
download_url: "https://www.factorio.com/get-download/{{ server_version }}/headless/linux64"
service_name: "factorio-server"
service_user: "factorio"
service_group: "factorio"
service_root: "/home/{{ service_user }}"
service_port: 34197
service_restart_permitted: true
factorio_default_save: "{{ service_root }}/factorio/saves/default-save.zip"
factorio_target_save: "{{ factorio_default_save }}"

Voici des informations détaillées concernant ces variables :

  • Variable : server_sources
    Par défaut : "/opt/games/sources/factorio"
    Commentaires :
    Lieu où mettre en cache les binaires du serveur téléchargés à partir de download_url.

  • Variable : server_version
    Par défaut : "0.17.79"
    Choix :

    • "0.18.26"
    • "0.17.79"
    • "0.17.74"
    • "0.16.51"
    • "0.15.40"
    • "0.14.23"
    • "0.13.20"
    • "0.12.35"

    Commentaires:
    Vous devez définir la valeur de download_checksum si vous définissez cette variable. Cette valeur est utilisée dans l'URL de téléchargement par défaut.

  • Variable : download_url
    Par défaut : "https://www.factorio.com/get-download/{{ server_version }}/headless/linux64"
    Commentaires:
    L'URL pour télécharger le binaire du serveur. Ce fichier sera téléchargé uniquement si le chemin "{{ server_sources }}/factorio-{{ server_version }}.tar.gz" n'existe pas.

  • Variable : download_checksum
    Par défaut : "sha256:9ace12fa986df028dc1851bf4de2cb038044d743e98823bc1c48ba21aa4d23df"
    Commentaires:
    Le checksum qui doit correspondre au binaire du serveur téléchargé. Cela garantit l'intégrité. Si vous changez download_url ou server_version, vous devez également adapter le checksum. Pour obtenir le checksum d'un binaire de serveur, vous pouvez utiliser curl --silent --location <download_url> | sha256sum. Pour désactiver la vérification du checksum, il suffit de le définir sur une chaîne vide ("").

  • Variable : service_name
    Par défaut : "factorio-server"
    Commentaires:
    Le nom du service à créer. Plusieurs instances de serveurs Factorio peuvent fonctionner sur un même hôte en fournissant des valeurs différentes pour cette variable (voir la section des exemples de ce document).

  • Variable : service_user
    Par défaut : "factorio"
    Commentaires:
    L'utilisateur sous lequel le service doit s'exécuter.

  • Variable : service_group
    Par défaut : "factorio"
    Commentaires:
    Le groupe dont fait partie l'utilisateur du service.

  • Variable : service_root
    Par défaut : "/home/{{ service_user }}"
    Commentaires:
    Le répertoire où stocker le contenu du fichier zip de Factorio téléchargé depuis le serveur. Cela signifie que les ressources de Factorio seront stockées à {{ service_root }}/factorio/.

  • Variable : service_port
    Par défaut : 34197
    Commentaires:
    Le port sur lequel héberger le service. Cette valeur par défaut est la valeur par défaut de Factorio.

  • Variable : service_restart_permitted
    Par défaut : true
    Commentaires:
    Si vous définissez cela sur false, cela empêchera le service d'être redémarré si des modifications ont été appliquées. Cela permet d'appliquer des réglages en préparation du prochain redémarrage du service sans interrompre immédiatement le service.

  • Variable : factorio_default_save
    Par défaut : "{{ service_root }}/factorio/saves/default-save.zip"
    Commentaires:
    Le fichier de sauvegarde par défaut utilisé par le serveur.

  • Variable : factorio_target_save
    Par défaut : "{{ factorio_default_save }}"
    Commentaires:
    Le fichier de sauvegarde à utiliser par le serveur. Cette distinction est fournie pour faciliter le changement entre plusieurs fichiers de sauvegarde.

Configurations Factorio

Les réglages pour divers fichiers de configuration peuvent être définis dans des dictionnaires nommés en fonction du fichier. Chaque dictionnaire commence par factorio_ suivi du nom du fichier (sans l'extension), où les tirets ( - ) sont remplacés par des soulignements ( _ ). Par exemple, le fichier server-settings.json est associé à la variable dictionnaire factorio_server_settings.

Le dossier default/ contient plusieurs fichiers montrant des exemples de dictionnaires représentant les valeurs fournies par les différents fichiers JSON d'exemple des serveurs Factorio.

Voici une liste des fichiers de configuration qui ont été implémentés :

  • Nom du fichier : server-settings.json
    Variable : factorio_server_settings
    Exemple :

    factorio_server_settings:
      name: "Mon Serveur Public"
      max_players: 10
      game_password: "monmotdepasse"
      visibility:
        public: true
        lan: true
    
  • Nom du fichier : server-whitelist.json
    Variable : factorio_server_whitelist
    Exemple :

    factorio_server_whitelist:
    - Oxyd
    
  • Nom du fichier : map-settings.json
    Variable : factorio_map_settings
    Exemple :

    factorio_map_settings:
      pollution:
        enabled: false
    
  • Nom du fichier : map-gen-settings.json
    Variable : factorio_map_gen_settings
    Exemple :

    factorio_map_gen_settings:
      water: "high"
      autoplace_controles:
        coal:
          size: "very-low"
    

Exemples de Playbooks

Un exemple prêt à l'emploi pourrait ressembler à ceci :

---
- name: Créer un serveur Factorio par défaut
  hosts: localhost
  roles:
  - role: bplower.factorio

Un exemple avec un port non par défaut et un nom personnalisé :

---
- name: Mon serveur Factorio légèrement modifié
  hosts: localhost
  roles:
  - role: bplower.factorio
    service_port: 12345
    factorio_server_settings:
      name: "Mon serveur Factorio"

Un exemple de plusieurs serveurs sur un seul hôte :

---
- name: Ferme Factorio
  hosts: localhost
  roles:
  - role: bplower.factorio
    service_port: 50001
    service_name: factorio_1
    service_root: /home/{{ service_user }}/{{ service_name }}
  - role: bplower.factorio
    service_port: 50002
    service_name: factorio_2
    service_root: /home/{{ service_user }}/{{ service_name }}

Licence

GNU GPLv3

Développement & Contributions

Je n'utilise plus ce projet régulièrement, mais j'essaie de le maintenir à jour lorsque c'est possible. Si vous avez des problèmes ou des questions, je vous encourage à ouvrir un PR ou un problème.

Tests

Ce rôle utilise yamllint pour la validation yaml, et molecule + docker pour les tests. Les deux outils peuvent être installés à l'aide du fichier dev-requirements.txt. Vous devrez installer Docker séparément.

pip install -r dev-requirements.txt

Le regroupement de toutes les plateformes supportées a causé des problèmes pour l'intégration continue, donc les tests sont répartis en 3 scénarios basés sur les plateformes testées.

Le Makefile peut être utilisé pour démarrer chacun des tests et prend en charge un menu d'aide avec des descriptions pour chaque cible :

$ make help

Utilisation :
  make

Cibles :
  help        Afficher cette aide
  lint        Linter les fichiers yaml
  test_all    Exécuter tous les tests molecule
  test_centos  Exécuter les tests molecule centos
  test_debian  Exécuter les tests molecule debian
  test_ubuntu  Exécuter les tests molecule ubuntu
À propos du projet

A role for creating Factorio servers

Installer
ansible-galaxy install bplower.factorio
Licence
Unknown
Téléchargements
310
Propriétaire