bplower.factorio

Factorio

Installation von Ansible Galaxy Ansible Lint

Eine Rolle zur Erstellung von Factorio-Servern https://galaxy.ansible.com/bplower/factorio/

Voraussetzungen

Keine Voraussetzungen

Rollenvariablen

Variablen können grob in zwei Gruppen unterteilt werden: Bereitstellungskonfigurationen und Factorio-Konfigurationen.

Bereitstellungskonfigurationen

Die Bereitstellungskonfigurationen beziehen sich auf die Art und Weise, wie Ansible den Factorio-Server installiert. Diese sollten so abstrahiert sein, dass mehrere Factorio-Server gleichzeitig ausgeführt werden können.

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 }}"

Detaillierte Informationen zu diesen Variablen sind wie folgt:

  • Variable: server_sources
    Standard: "/opt/games/sources/factorio"
    Kommentare:
    Wo die Server-Binärdateien, die von der download_url heruntergeladen wurden, zwischengespeichert werden.

  • Variable: server_version
    Standard: "0.17.79"
    Auswahlmöglichkeiten:

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

    Kommentare:
    Wenn Sie diese Variable festlegen, müssen Sie auch den Wert von download_checksum festlegen. Dieser Wert wird in der Standard-download_url verwendet.

  • Variable: download_url
    Standard: "https://www.factorio.com/get-download/{{ server_version }}/headless/linux64"
    Kommentare:
    Die URL, um die Server-Binärdatei herunterzuladen. Diese wird nur heruntergeladen, wenn der Pfad "{{ server_sources }}/factorio-{{ server_version }}.tar.gz" nicht vorhanden ist.

  • Variable: download_checksum
    Standard: "sha256:9ace12fa986df028dc1851bf4de2cb038044d743e98823bc1c48ba21aa4d23df" Kommentare:
    Die Prüfziffer, die mit der heruntergeladenen Server-Binärdatei übereinstimmen muss. Dies gewährleistet die Integrität. Wenn Sie die download_url oder server_version ändern, müssen Sie auch die Prüfziffer anpassen. Um die Prüfziffer einer Server-Binärdatei zu erhalten, können Sie curl --silent --location <download_url> | sha256sum verwenden. Um die Prüfzifferüberprüfung zu deaktivieren, setzen Sie sie einfach auf einen leeren String ("").

  • Variable: service_name
    Standard: "factorio-server"
    Kommentare:
    Der Name des zu erstellenden Dienstes. Mehrere Instanzen von Factorio-Servern können auf einem einzigen Host ausgeführt werden, indem unterschiedliche Werte für diese Variable angegeben werden (siehe den Abschnitt Beispiele in diesem Dokument).

  • Variable: service_user
    Standard: "factorio"
    Kommentare:
    Der Benutzer, unter dem der Dienst ausgeführt werden soll.

  • Variable: service_group
    Standard: "factorio"
    Kommentare:
    Die Gruppe, der der Dienstbenutzer angehören soll.

  • Variable: service_root
    Standard: "/home/{{ service_user }}"
    Kommentare:
    Das Verzeichnis, in dem die Inhalte der von dem Server heruntergeladenen Factorio-Zip-Datei gespeichert werden. Dadurch werden die Factorio-Ressourcen unter {{ service_root }}/factorio/ gespeichert.

  • Variable: service_port
    Standard: 34197
    Kommentare:
    Der Port, auf dem der Dienst betrieben werden soll. Dieser Standardwert ist der Standardwert von Factorio.

  • Variable: service_restart_permitted
    Standard: true
    Kommentare:
    Wenn Sie dies auf false setzen, wird verhindert, dass der Dienst neu gestartet wird, wenn Änderungen angewendet wurden. Dies ermöglicht es, Einstellungen anzuwenden, um sich auf den nächsten Dienstneustart vorzubereiten, ohne sofort einen Dienstunterbrechung zu verursachen.

  • Variable: factorio_default_save
    Standard: "{{ service_root }}/factorio/saves/default-save.zip"
    Kommentare:
    Die standardmäßige Speicherdatei, die vom Server verwendet wird.

  • Variable: factorio_target_save
    Standard: "{{ factorio_default_save }}"
    Kommentare:
    Die Speicherdatei, die vom Server ausgeführt werden soll. Diese Unterscheidung dient dazu, zwischen mehreren Speicherdateien zu wechseln.

Factorio-Konfigurationen

Einstellungen für verschiedene Konfigurationsdateien können in Wörterbüchern gesetzt werden, die grob nach der Datei benannt sind. Jeder Wörterbuch beginnt mit factorio_, gefolgt vom Dateinamen (ohne die Dateiendung), wobei Bindestriche ( - ) durch Unterstriche ( _ ) ersetzt werden. Zum Beispiel wird die Datei server-settings.json mit der Wörterbuchvariable factorio_server_settings verknüpft.

Der Ordner default/ enthält mehrere Dateien, die Beispielwörterbücher darstellen, die die Werte darstellen, die von den verschiedenen Beispiel-JSON-Dateien der Factorio-Server bereitgestellt werden.

Hier ist eine Liste von Konfigurationsdateien, die implementiert wurden:

  • Dateiname: server-settings.json
    Variable: factorio_server_settings
    Beispiel:

    factorio_server_settings:
      name: "Mein öffentlicher Server"
      max_players: 10
      game_password: "meinpasswort"
      visibility:
        public: true
        lan: true
    
  • Dateiname: server-whitelist.json
    Variable: factorio_server_whitelist
    Beispiel:

    factorio_server_whitelist:
    - Oxyd
    
  • Dateiname: map-settings.json
    Variable: factorio_map_settings
    Beispiel:

    factorio_map_settings:
      pollution:
        enabled: false
    
  • Dateiname: map-gen-settings.json
    Variable: factorio_map_gen_settings
    Beispiel:

    factorio_map_gen_settings:
      water: "hoch"
      autoplace_controles:
        coal:
          size: "sehr-niedrig"
    

Beispiel-Playbooks

Ein einfaches Beispiel könnte wie folgt aussehen:

---
- name: Erstelle einen Standard-Factorio-Server
  hosts: localhost
  roles:
  - role: bplower.factorio

Ein Beispiel mit einem anderen Port und angepasstem Namen:

---
- name: Mein leicht veränderter Factorio-Server
  hosts: localhost
  roles:
  - role: bplower.factorio
    service_port: 12345
    factorio_server_settings:
      name: "Mein Factorio-Server"

Ein Beispiel für mehrere Server auf einem einzelnen Host:

---
- name: Factorio-Farm
  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 }}

Lizenz

GNU GPLv3

Entwicklung & Beiträge

Ich nutze dieses Projekt nicht mehr regelmäßig, versuche aber, es bei Bedarf aktuell zu halten. Wenn Sie Probleme oder Fragen dazu haben, ermutige ich Sie, einen PR oder eine Anfrage zu öffnen.

Testen

Diese Rolle verwendet yamllint zur Überprüfung von YAML und Molecule + Docker zum Testen. Beide Tools können mit der Datei dev-requirements.txt installiert werden. Docker muss separat installiert werden.

pip install -r dev-requirements.txt`

Die Zusammenfassung aller unterstützten Plattformen hat Probleme für CI verursacht, also wurden die Tests in 3 Szenarien basierend auf den getesteten Plattformen aufgeteilt.

Die Makefile kann verwendet werden, um jeden Test zu starten und unterstützt ein Hilfe-Menü mit Beschreibungen für jedes Ziel:

$ make help

Verwendung:
  make

Ziele:
  help        Diese Hilfe anzeigen
  lint        YAML-Dateien prüfen
  test_all    Alle Molecule-Tests ausführen
  test_centos  Molecule-Centos-Tests ausführen
  test_debian  Molecule-Debian-Tests ausführen
  test_ubuntu  Molecule-Ubuntu-Tests ausführen
Über das Projekt

A role for creating Factorio servers

Installieren
ansible-galaxy install bplower.factorio
GitHub Repository
Lizenz
Unknown
Downloads
310
Besitzer