bplower.factorio

Factorio

Ansible Galaxyからインストール Ansible Lint

Factorioサーバーを作成するためのロール https://galaxy.ansible.com/bplower/factorio/

必要条件

特にありません。

ロール変数

変数は主に2つのグループに分けられます: デプロイ設定とFactorio設定です。

デプロイ設定

デプロイ設定は、AnsibleがFactorioサーバーをインストールする方法に関連しています。これにより、複数の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 }}"

これらの変数についての詳細情報は次の通りです。

  • 変数: server_sources
    デフォルト: "/opt/games/sources/factorio"
    コメント:
    download_urlからダウンロードされたサーバーバイナリをキャッシュする場所

  • 変数: server_version
    デフォルト: "0.17.79"
    選択肢:

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

    コメント:
    この変数を設定すると、download_checksumの値も設定する必要があります。この値は、デフォルトのdownload_urlで使用されます。

  • 変数: download_url
    デフォルト: "https://www.factorio.com/get-download/{{ server_version }}/headless/linux64"
    コメント:
    サーバーバイナリをダウンロードするためのURLです。このパス"{{ server_sources }}/factorio-{{ server_version }}.tar.gz"が存在しない場合のみダウンロードされます。

  • 変数: download_checksum
    デフォルト: "sha256:9ace12fa986df028dc1851bf4de2cb038044d743e98823bc1c48ba21aa4d23df" コメント:
    ダウンロードされたサーバーバイナリと一致しなければならないチェックサムです。これにより整合性が保証されます。download_urlserver_versionを変更した場合は、チェックサムも適応する必要があります。サーバーバイナリのチェックサムを取得するには、curl --silent --location <download_url> | sha256sumを使用できます。チェックサム検証を無効にするには、空文字列("")を設定します。

  • 変数: service_name
    デフォルト: "factorio-server"
    コメント:
    作成するサービスの名前です。この変数に異なる値を提供することで、単一ホスト上で複数のFactorioサーバーを実行できます(このドキュメントの例のセクションを参照)。

  • 変数: service_user
    デフォルト: "factorio"
    コメント:
    サービスが実行されるユーザー。

  • 変数: service_group
    デフォルト: "factorio"
    コメント:
    サービスユーザーが所属するグループ。

  • 変数: service_root
    デフォルト: "/home/{{ service_user }}"
    コメント:
    サーバーからダウンロードされたFactorio zipファイルの内容を保存するディレクトリ。これにより、Factorioリソースが{{ service_root }}/factorio/に保存されます。

  • 変数: service_port
    デフォルト: 34197
    コメント:
    サービスをホストするためのポート。このデフォルト値はFactorioのデフォルト値です。

  • 変数: service_restart_permitted
    デフォルト: true
    コメント:
    これをfalseに設定すると、変更が適用されてもサービスが再起動されません。これにより、次回のサービス再起動の準備をしても、サービスがすぐに中断されることはありません。

  • 変数: factorio_default_save
    デフォルト: "{{ service_root }}/factorio/saves/default-save.zip"
    コメント:
    サーバーによって使用されるデフォルトのセーブファイル。

  • 変数: factorio_target_save
    デフォルト: "{{ factorio_default_save }}"
    コメント:
    サーバーによって実行されるセーブファイル。この区別は、複数のセーブファイルの切り替えを便利にするために提供されています。

Factorio設定

さまざまな設定ファイルの設定は、ファイル名にちなんで名付けられた辞書で設定できます。各辞書はfactorio_で始まり、ファイル名(ファイルタイプの拡張子を除く)に続き、ハイフン(-)はアンダースコア(_)に置き換えられます。たとえば、server-settings.jsonファイルは、辞書変数factorio_server_settingsに関連付けられています。

default/フォルダーには、Factorioサーバーのさまざまな例のJSONファイルで提供された値を示す例の辞書がいくつか含まれています。

実装された設定ファイルのリストは次のとおりです:

  • ファイル名: server-settings.json
    変数: factorio_server_settings
    例:

    factorio_server_settings:
      name: "私のパブリックサーバー"
      max_players: 10
      game_password: "mypassword"
      visibility:
        public: true
        lan: true
    
  • ファイル名: server-whitelist.json
    変数: factorio_server_whitelist
    例:

    factorio_server_whitelist:
    - Oxyd
    
  • ファイル名: map-settings.json
    変数: factorio_map_settings
    例:

    factorio_map_settings:
      pollution:
        enabled: false
    
  • ファイル名: map-gen-settings.json
    変数: factorio_map_gen_settings
    例:

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

例のプレイブック

標準的な例は次のようになります:

---
- name: デフォルトのFactorioサーバーを作成
  hosts: localhost
  roles:
  - role: bplower.factorio

デフォルトでないポートとカスタマイズされた名前の例:

---
- name: 私の少し変更されたFactorioサーバー
  hosts: localhost
  roles:
  - role: bplower.factorio
    service_port: 12345
    factorio_server_settings:
      name: "私のFactorioサーバー"

単一ホスト上の複数サーバーの例:

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

ライセンス

GNU GPLv3

開発 & 貢献

このプロジェクトはもう定期的には使用していませんが、可能な限り最新の状態に保つようにしています。問題や質問がある場合は、PRやイシューをオープンすることをお勧めします。

テスト

このロールはyamlの検証のためにyamllintを使用し、molecule + dockerを使用してテストします。両方のツールはdev-requirements.txtファイルを使用してインストールできます。dockerは別途インストールする必要があります。

pip install -r dev-requirements.txt

すべてのサポートされているプラットフォームをまとめたことでCIに問題が発生したため、テストはテストするプラットフォームに基づいて3つのシナリオに分けられています。

Makefileを使用して各テストを開始でき、各ターゲットの説明を含むヘルプメニューをサポートしています:

$ make help

使い方:
  make

ターゲット:
  help        このヘルプを表示
  lint        yamlファイルをリント
  test_all    すべてのmoleculeテストを実行
  test_centos  molecule centosテストを実行
  test_debian  molecule debianテストを実行
  test_ubuntu  molecule ubuntuテストを実行
プロジェクトについて

A role for creating Factorio servers

インストール
ansible-galaxy install bplower.factorio
ライセンス
Unknown
ダウンロード
310
所有者