前回
概要
前回の続きの環境で、下記を行う。
これで、Palworldサーバーを、完全放置で好きな時間に動作させるようにします。
仮想マシンのPalworldサーバーの自動起動化
systemdを使って、自動起動を行う。下記を用意する。
- 実行スクリプト
- serviceファイル
Palworldサーバーの実行スクリプトを作成
steamユーザーで実行スクリプトを作成します。
$ sudo -u steam -s $ cd ~/ $ mkdir scripts $ vi boot-pal.sh
#!/bin/sh /home/steam/.steam/SteamApps/common/PalServer/PalServer.sh
実行権限を付けます。
$ chmod u+x boot-pal.sh $ ls -l boot-pal.sh -rwxr--r-- 1 steam steam 69 Jan 22 14:14 boot-pal.sh
今回は下記パスにファイルを作成した。
/home/steam/scripts/boot-pal.sh
serviceファイルの作成
マシン起動時にPalworldサーバーの実行スクリプトを実行させるシンプルなサービスを作成する。
内容はシンプルで、先ほどの実行スクリプトを「steam」ユーザーで実行してね、ということを書いた。
理解していない設定項目もあるので、とりあえず記載だけしている箇所もある。
$ cd /etc/systemd/system $ vi boot-pal.service
[Unit] Description=Auto Start Up Service for Pal After=local-fs.target [Service] User=steam Type=simple ExecStart=/home/steam/scripts/boot-pal.sh [Install] WantedBy=multi-user.target
単体テスト
$ sudo systemctl start boot-pal $ systemctl status boot-pal
Active: active (running)
の文言があって、普通にPalworldサーバー実行したときと同じようなログが表示されていればOK。
ゲームでも確認しておくと尚よい。
サービス自動起動有効設定
$ sudo systemctl enable boot-pal
起動確認
$ systemctl status boot-pal (省略) $ ps aux | grep pal steam 640 0.0 0.0 2616 536 ? Ss 12:50 0:00 /bin/sh /home/steam/scripts/boot-pal.sh
ゲームで接続できるか確認する。
これで完了。
Azureで仮想マシンの自動起動化
仮想マシンの自動起動には、Azure Automationを使用していきます。
- Automationアカウントの作成
- Runbookの作成
- スケジュールの設定
- 各種紐づけ
Automationアカウントの作成
Automationアカウント画面から、作成
- リソースグループ(今回作成したリソースグループを指定)
- 他任意で
- マネージドID
- システム割り当て(今回はこっちで)
- ネットワーク接続
- 一旦パブリックで
Runbookの作成
作成したAutomationアカウントのメニューからRunbook→ギャラリーを参照
「Start Azure V2 VMs」を選択
「選択」
Runbook名を入力して「インポート」
編集画面が表示されたら、「テストウィンドウ」へ遷移
以下のパラメーターに必要情報を入力して、「開始」
他の画面と違ってドロップダウンから選べないので打ち間違い注意。
- RESOURCEGROUPNAME:リソースグループ名
- VMNAME:起動させたい仮想マシンの名前
- SUBSCRIPTION:サブスクリプションID(Azureの「サブスクリプション」画面で確認可能)
上記3つはスケジュール設定の紐づけで再度入力するので、メモしておくとよい。
テストをすると完了と表示されるが、紐づけのエラーが起きるので、その設定を行う。
Automationと仮想マシンの紐づけ
仮想マシンのサイドメニューの「ID」
システム割り当て済みタブの状態をオンにする。
仮想マシンのサイドメニューの「アクセス制御(IAM)」
このリソースへのアクセス権の付与の項目から「ロール割り当ての追加」
「メンバー」
- アクセスの割り当て先:マネージドID
マネージドIDの選択
サブスクリプション:従量課金
マネージドID:Automationアカウント
選択:<作成したAutomationアカウントを選択>
「選択」
「レビューと割り当て」
Runbookのテスト
先ほどのRunbookのテストを開始し、完了が表示され、エラーがなくなっていれば成功。
完了すると、対象の仮想マシンが起動しているはず。
スケジュールの設定
Automationアカウントのサイドメニュー→「スケジュール」
スケジュールの追加
お好みで設定。
今回は夜だけ稼働させたいので、毎日夜起動するように設定した。
Runbookとスケジュールの紐づけ
Runbookを発行します。
Automation アカウントのサイドメニュー→「Runbook」
先ほど作成したRunbookの管理画面まで遷移。
Runbookのサイドメニュー→「概要」
「編集」→「ポータルで編集」
先ほど作成したRunbookの編集画面へ遷移し、「公開」
「スケジュールへのリンク」が押せるようになるので、押下
- スケジュール
- 「スケジュールをRunbookにリンクします」
- 先ほど作成したスケジュールがリストにあるので、それを選択
- パラメーターと実行設定
- Runbookのテスト時と同様の値をそれぞれ入力します。
「OK」
Automationアカウントのサイドメニュー→「スケジュール」
先ほど作成したスケジュールを確認。
設定情報のリンクされたRunbookに先ほど設定したRunbookが表示されていれば紐づけ完了。
動作確認
あらかじめ仮想マシンを停止しておく。
- 設定した日時に仮想マシンの起動を確認
- ゲームからサーバーに接続確認
接続できれば完了。
おわりに
Palworldサーバーを完全放置の稼働に成功した。