Skip to content

aiwolfdial/AIWolfPreliminaryRun

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AIWolfPreliminaryRun

概要

これは公式運営サーバ上で自身のエージェント5体で自己対戦を行うためのプログラムです。公式運営サーバへの接続の確認用、公式運営サーバに自己対戦のログを残す際にご使用ください。本戦では使用しないことに留意してください。

環境

以下の環境で実行を確認しております。

  • Python 3.8.10

以下のコマンドで必要なライブラリをインストールしてください。

$ pip install -r ./res/requirements.txt

実行前の準備

./res/ssh-configを以下の無いように従い設定してください。

HostName:公式運営サーバのipアドレスを入力してください。

User:参加登録の際に希望ユーザ名として提出頂いたユーザ名を設定してください。

IdentityFile:参加登録の際に提出頂いた公開鍵に対応する秘密鍵のパスを設定してください。

RemoteForward [remote_port1] localhost:[local_port1]: 運営が提供するするサーバに対するリモートフォワードの設定です。運営が提供するサーバの[remote_port*]と参加者の皆様の[local_port*]をフォワーディングします。この1ポートを1エージェントが使用し、対戦接続システムと通信を行います。remote_port*に関しては参加登録後、運営が指定するポートを指定してください。

Host aiwolf-server
HostName [公式運営サーバのipアドレス]
User [user name]
IdentityFile [秘密鍵のパス]
RemoteForward [remote_port1] localhost:[local_port1]
RemoteForward [remote_port2] localhost:[local_port2]
RemoteForward [remote_port3] localhost:[local_port3]
RemoteForward [remote_port4] localhost:[local_port4]
RemoteForward [remote_port5] localhost:[local_port5]

準備例

ここでは、以下設定の例で./res/ssh-configの記述例を示します。

設定

参加登録の際に提出した希望ユーザ名: kanolab
参加登録の際に提出頂した公開鍵に対応する秘密鍵のパス: ~/.ssh/id_rsa
参加登録の際に運営から指定された公式運営サーバのipアドレス: 0.0.0.0
参加登録の際に運営から指定されたポート番号: 50000 ~ 50004
自身の環境にバインドするポート番号: 50100 ~ 50104

設定に沿った場合の./res/ssh-config

Host aiwolf-server
HostName 0.0.0.0
User kanolab
IdentityFile ~/.ssh/id_rsa
RemoteForward 50000 localhost:50100
RemoteForward 50001 localhost:50101
RemoteForward 50002 localhost:50102
RemoteForward 50003 localhost:50103
RemoteForward 50004 localhost:50104

使用方法

以下の手順で使用してください

  1. ご自身のエージェント5体を実行し、対戦接続プログラムの待ち受け状態にしてください。
  2. 以下のコマンドでこのプログラムを実行してください
    $ python3 inform_bind_port.py
    

実行後に成功したか確認する方法

公式運営サーバへの接続・公式運営サーバ上の対戦接続プログラムを使用しての対戦に成功した場合、以下のURLに実行したログが残ります。 http://[公式運営サーバのipアドレス]/aiwolf/2024/pre

一部の方向けの情報

このプログラムの概要

2023年までは主催者が提供する対戦サーバに自身のエージェント5体を接続して頂くことで対戦を自動実行していましたが、予期せぬプログラムの実行エラーや日程調整の兼ね合いが困難なことなどを鑑み、本年度からは参加者の方々に対戦サーバの待ち受けをして頂き主催者がそこに接続をする形で開催することに致しました。そのため、公式運営サーバに自己対戦のログを残す際にどのポート番号にエージェントのプログラムが待ち受けているか確認する必要がでてきました。このプログラムではエージェントが待ち受けているポート番号を対戦接続プログラムに伝えることを行います。

このプログラムの内容

まず初めにssh-configの内容を参考に公式運営サーバへ接続を行い、公式運営サーバ上で実行している対戦接続プログラムが待ち受けをしているポートとconfig.iniで指定したローカル環境のポートをポートフォワードによって接続します。その後、接続されたローカル環境のポートを通し、ssh-configに記載されているエージェントが待ち受けをしているポート番号5つを対戦接続プログラムに伝え、接続を終了します。 対戦接続プログラムはエージェントの待ち受けているポート番号が分かり次第接続を試みるので、事前にエージェントプログラムは実行しておいて下さい。

踏み台サーバを経由する等、秘密鍵を参照することができない場所から接続を行う方向け

この場合の接続方法はssh-agentを使用する方法となります。

  1. まずはローカルの環境で以下のコマンドを実行してください。[秘密鍵]の部分は参加登録の際に頂いた公開鍵に対応する秘密鍵を指定してください。
    $ eval `ssh-agent`
    $ ssh-add ~/.ssh/[秘密鍵]
    
  2. 次に以下のように-Aオプションを付与してご自身のリモートサーバ等にアクセスしてください
    $ ssh -A [host name]
    
  3. ./res/config.iniの一部を以下に合わせてください
    use_ssh_agent = true
    

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages