bplower.factorio

Factorio

Zainstaluj z Ansible Galaxy Ansible Lint

Rola do tworzenia serwerów Factorio https://galaxy.ansible.com/bplower/factorio/

Wymagania

Brak wymagań

Zmienne roli

Zmienne można podzielić na dwie grupy: konfiguracje wdrożenia i konfiguracje Factorio.

Konfiguracje wdrożenia

Konfiguracje wdrożenia dotyczą sposobu, w jaki ansible instaluje serwer Factorio. Powinny być wystarczająco abstrakcyjne, aby umożliwić jednoczesne uruchamianie kilku serwerów Factorio.

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

Szczegółowe informacje o tych zmiennych:

  • Zmienna: server_sources
    Domyślnie: "/opt/games/sources/factorio"
    Komentarze:
    Gdzie przechowywać binaria serwera pobrane z download_url.

  • Zmienna: server_version
    Domyślnie: "0.17.79"
    Wybory:

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

    Komentarze:
    Musisz ustawić wartość download_checksum, jeśli ustawisz tę zmienną. Ta wartość jest używana w domyślnym download_url.

  • Zmienna: download_url
    Domyślnie: "https://www.factorio.com/get-download/{{ server_version }}/headless/linux64"
    Komentarze:
    URL do pobrania binariów serwera. Będzie pobierany tylko, jeśli ścieżka "{{ server_sources }}/factorio-{{ server_version }}.tar.gz" nie istnieje.

  • Zmienna: download_checksum
    Domyślnie: "sha256:9ace12fa986df028dc1851bf4de2cb038044d743e98823bc1c48ba21aa4d23df" Komentarze:
    Suma kontrolna, która musi pasować do pobranej binariów serwera. Zapewnia to integralność. Jeśli zmienisz download_url lub server_version, musisz również dostosować sumę kontrolną. Aby uzyskać sumę kontrolną binariów serwera, możesz użyć curl --silent --location <download_url> | sha256sum. Aby wyłączyć weryfikację sumy kontrolnej, po prostu ustaw ją na pusty ciąg ("").

  • Zmienna: service_name
    Domyślnie: "factorio-server"
    Komentarze:
    Nazwa usługi do utworzenia. Można uruchomić wiele instancji serwerów Factorio na jednym hoście, podając różne wartości dla tej zmiennej (zobacz sekcję z przykładami w tym dokumencie).

  • Zmienna: service_user
    Domyślnie: "factorio"
    Komentarze:
    Użytkownik, pod którym ma być uruchamiana usługa.

  • Zmienna: service_group
    Domyślnie: "factorio"
    Komentarze:
    Grupa, której członkiem powinien być użytkownik usługi.

  • Zmienna: service_root
    Domyślnie: "/home/{{ service_user }}"
    Komentarze:
    Katalog, w którym będą przechowywane zawartości pliku zip Factorio pobranego z serwera. To spowoduje przechowywanie zasobów Factorio w {{ service_root }}/factorio/.

  • Zmienna: service_port
    Domyślnie: 34197
    Komentarze:
    Port, na którym ma być hostowana usługa. Ta domyślna wartość jest domyślną wartością Factorio.

  • Zmienna: service_restart_permitted
    Domyślnie: true
    Komentarze:
    Ustawienie tej wartości na false uniemożliwi re-start usługi, jeśli zastosowano jakieś zmiany. Umożliwia to wprowadzenie ustawień w przygotowaniach do następnego restartu usługi bez natychmiastowego przerywania usługi.

  • Zmienna: factorio_default_save
    Domyślnie: "{{ service_root }}/factorio/saves/default-save.zip"
    Komentarze:
    Domyślny plik zapisu używany przez serwer.

  • Zmienna: factorio_target_save
    Domyślnie: "{{ factorio_default_save }}"
    Komentarze:
    Plik zapisu, który ma być uruchamiany przez serwer. Ta różnica jest podana, aby ułatwić przełączanie między wieloma plikami zapisu.

Konfiguracje Factorio

Ustawienia różnych plików konfiguracyjnych można ustawiać w słownikach luźno nazywanych po nazwie pliku. Każdy słownik zaczyna się od factorio_ a następnie nazwa pliku (bez rozszerzenia) gdzie myślniki (-) są zastępowane podkreślnikami (_). Na przykład, plik server-settings.json jest powiązany ze zmienną słownika factorio_server_settings.

Folder default/ zawiera kilka plików pokazujących przykłady słowników reprezentujących wartości dostarczone przez różne pliki JSON serwerów Factorio.

Poniżej znajduje się lista plików konfiguracyjnych, które zostały zaimplementowane:

  • Nazwa pliku: server-settings.json
    Zmienna: factorio_server_settings
    Przykład:

    factorio_server_settings:
      name: "Mój Publiczny Serwer"
      max_players: 10
      game_password: "mojehasło"
      visibility:
        public: true
        lan: true
    
  • Nazwa pliku: server-whitelist.json
    Zmienna: factorio_server_whitelist
    Przykład:

    factorio_server_whitelist:
    - Oxyd
    
  • Nazwa pliku: map-settings.json
    Zmienna: factorio_map_settings
    Przykład:

    factorio_map_settings:
      pollution:
        enabled: false
    
  • Nazwa pliku: map-gen-settings.json
    Zmienna: factorio_map_gen_settings
    Przykład:

    factorio_map_gen_settings:
      water: "wysoki"
      autoplace_controles:
        coal:
          size: "bardzo-niski"
    

Przykładowe playbooki

Przykład "z pudełka" może wyglądać następująco:

---
- name: Utwórz domyślny serwer factorio
  hosts: localhost
  roles:
  - role: bplower.factorio

Przykład z niestandardowym portem i nazwą:

---
- name: Mój lekko zmieniony serwer factorio
  hosts: localhost
  roles:
  - role: bplower.factorio
    service_port: 12345
    factorio_server_settings:
      name: "Mój serwer factorio"

Przykład wielu serwerów na jednym hoście:

---
- name: Farma 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 }}

Licencja

GNU GPLv3

Rozwój i Wkład

Nie używam już tego projektu regularnie, ale staram się aktualizować go, gdy to możliwe. Jeśli masz jakieś problemy lub pytania dotyczące tego, zachęcam do otwarcia PR lub zgłoszenia problemu.

Testowanie

Ta rola wykorzystuje yamllint do walidacji yaml, a także molecule + docker do testowania. Obydwa narzędzia można zainstalować za pomocą pliku dev-requirements.txt. Należy zainstalować docker osobno.

pip install -r dev-requirements.txt`

Grupowanie wszystkich wspieranych platform razem powodowało problemy z CI, więc testy są podzielone na 3 scenariusze na podstawie testowanych platform.

Plik makefile można użyć do uruchomienia każdego z testów i obsługuje menu pomocy z opisami dla każdego celu:

$ make help

Użycie:
  make

Cele:
  help        Wyświetl pomoc
  lint        Sprawdź pliki yaml
  test_all    Uruchom wszystkie testy molecule
  test_centos  Uruchom testy molecule na centos
  test_debian  Uruchom testy molecule na debian
  test_ubuntu  Uruchom testy molecule na ubuntu
O projekcie

A role for creating Factorio servers

Zainstaluj
ansible-galaxy install bplower.factorio
Licencja
Unknown
Pobrania
310
Właściciel