bplower.factorio
Factorio
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_url
やserver_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テストを実行