🌊

[UE5] ConohaVPSを使用してPerforceサーバーを立てる

2024/01/07に公開

はじめに

ノートPCとデスクトップPC間のデータやり取りに色々悩んでいたのですが、
月額500円払ってPerforceサーバーで管理するやり方が自分には一番あっていたので、
再度Perforceサーバー立てることになりました。
前回書いた記事の情報が断片的過ぎたのと、Zennには記事がないので今回書くことにしました。


事前情報

  • TeraTermをインストール済み
  • ConohaVPS ベーシックプラン契約(36ヶ月契約しているので、大体500円くらい)
    ※僕は1回使用したことがあるので3年契約していますが、
    初めての人は短期契約にする(お値段は高くなる)など、
    試用期間を設けることを強く推奨します!


レンタルサーバー選定について

  • Wingサーバーの方がSSD要領が多かったので、Wingサーバーでも試してみましたが、
    たぶんできないと思います。※su コマンドが使えないので断念
    どうやらブログ系特化のように見えるので、VPSサーバーがいいのかなと思います。
    Gameサーバーは試したことがありません。

  • 何か月か様子見していい感じであれば、長期契約した方が料金は安くなるようです。

  • UnrealEngine自体もPerforceにあげられたらよかったのですが、
    SSD要領的に厳しいので、プロジェクトデータのみ想定です。
    ※UnrealEngineはGithubとも紐づけられているしいいか。となりました。


CentOSのセットアップ

//rootでログイン

//なんとなくアップデート
# yum update

//一般ユーザー作成
# adduser [USERNAME]
# passwd  [USERNAME]

//Ctrl+Dでログアウト
//作成した一般ユーザーでログイン
$ su -
password:(rootパスワード)

//sudo使用可能に
# visudo
  root ALL=(ALL)  ALL <-と記載がある部分を見つける
  この下に、
  [USERNAME] ALL=(ALL) ALLと記載する
  
//ssh接続でrootログイン許可はセキュリティ上よくないので禁止にする
# vi /etc/ssh/sshd_config
  PermitRootLogin no
  に変更する ※先頭に#がついていたら削除

//sshdを再起動
systemctl restart sshd.service


Teratermと接続する

まずConohaコントロールパネルを開き、VPSサーバーにセキュリティグループを設定します。
「default」は残したまま、「IPv4v6-SSH」を追加します。

上記の設定が終わり次第、以下の公式サポートを参考に接続します。
公式サポート


Teraterm側で設定作業

前項で接続出来次第、設定作業を開始します。

$ mkdir.ssh
$ cd .ssh

//公開鍵を作成
//[ファイル名] : 公開鍵ファイル名
$ ssh-keygen -f [ファイル名] -t rsa -b 2048

//公開鍵転送
//[ファイル名] :先ほど生成した公開鍵ファイル名
//[USERNAME]:接続している一般ユーザー名
//[IPアドレス]:接続しているホストIPアドレス
$ ssh-copy-id -p 22 -i [ファイル名].pub [USERNAME]@[IPアドレス]

//ssh ○○で接続できるように、configファイルを作成
$ vi config
  //エディタ開いたら以下のテンプレートを参考に編集
  Host (適当サーバー名)
  HostName [IPアドレス]
  User     [USERNAME]
  IdentityFile ~/.ssh/[ファイル名]  ※秘密鍵の指定なので.pubは必要ありません
  Port 22  ※なくても大丈夫なはず

//ssh接続テスト
$ ssh (適当サーバー名)

//sshでパスワード認証をできなくする
$ sudo vi /etc/ssh/sshd_config
  //編集できるようになったら以下の3つの項目を同じように編集する
  PasswordAuthentication no
  kbdInteractiveAuthentication no
  UsePAM yes

一旦ここまでです。


Perforceサーバーセットアップ

HelixCoreサーバー管理者ガイド
上記資料等を参考に進めていきます。

//公開鍵をインポート
$ sudo rpm --import https://package.perforce.com/perforce.pubkey

//Perforceリポジトリの設定
$ sudo vi /etc/yum.repos.d/perforce.repo
  //以下をファイルに追加
  [perforce]
  name=Perforce
  baseurl=http://package.perforce.com/yum/rhel/7/x86_64
  enabled=1
  gpgcheck=1
  
//インストール
$ sudo yum install helix-p4d
  
//perforceサーバーセットアップスクリプト実行
$ sudo /opt/perforce/sbin/configure-helix-p4d.sh
  //基本的にデフォルトで問題ないが、以下の点は用途に合わせて変更する
  //日本語使用予定ありの場合は、yesにする
  Perforce Server unicode-mode(y/n)[n]:y

  //スーパーユーザー名変えたい(デフォルトはsuper)なら変更する
  Perforce super-user login[super]:hogehoge

サーバー関連は以上で終わりです。


P4Vインストール

https://www.perforce.com/downloads/helix-visual-client-p4v
上記URLからP4Vをインストールします。
クライアント設定画面のみ以下のように設定してください。
それ以外はデフォルトでOKです。
クライアント設定画面

サーバー

ホストIPアドレス:1666

ユーザー名

とりあえずスーパーユーザー名

テキスト編集アプリケーション

お好みでテキスト編集アプリケーションを指定する

P4Vセットアップ

インストールしたp4vを起動する
最初にログインを求められると思いますが、サーバー指定は以下を参考にしてください。
ユーザーはスーパーユーザーで大丈夫です。
※ワークスペースの指定はいりません。

ssl:ホストIPアドレス:1666

以上まで対応した状態で接続してみてください。
接続できればOKです。

この際に$P4PORT周りのエラーが出る場合は、ファイアウォール設定を変更してみてください。

ファイアウォール設定変更

再度Teratermを接続し、以下のコマンドを実行してみてください。

//ファイアウォールにTCPポート1666を追加
$ sudo firewall-cmd --zone=public --add-port=1666/tcp --permanent

//ファイアウォール再読み込み
$ sudo firewall-cmd --reload

//追加されているか確認
//ports:1666/tcp があればOK
$ sudo firewall-cmd --list-all


最後に

長くなってきたので、一回ここで締めたいと思います。
ここまでやるとPerforceサーバにP4Vで接続はできますが、
バージョン管理として使うにはもうちょっと対応が必要です。

↓続編記事です。
https://zenn.dev/hakuto_gamedev/articles/480a85f110f62d

Discussion