おっすおっす
どうも、kaichiです!
今回は、自作したDiscord BOTをサーバー上に常駐化した手順を備忘録として記事にしようと思います!
私が使用しているサーバーはXSERVERですが、今回の方法はどこのサーバーに限らずある程度同じ手順で対応出来るのかなと思います。
やったこと
・python3.6で作成したDiscord BOTをXSERVER上に常駐化
はじめに
趣味でDiscord BOTを作成したのですが、自身のPCでずっと動かし続けるのもなかなか難しいので、サーバー上で常駐化してみようと思いました。
BOTを常駐させるサーバーとして、使用できる無料のサーバーはいくつかあるのですが、どうせならこのサイトの運用で使用しているXSERVERを使ってみることにしました。
しかし、意外と情報が少なく、思いのほか苦戦しました・・・
どうやらXSERVERのユーザーアカウントはroot権限がないため、標準でインストールされているpythonでは、pipを使った環境構築が出来ないようです。
そのため、LinuxblewやFlaskのような仮想的な環境を構築出来るツールを使う必要があるようです。
が、調べてみるとこれが色々と手順がめんどくさい・・・
と、その時、以下の記事を目にして、minicondaも導入出来るんじゃね?と思い、minicondaを導入してみることにしました。
結果は、問題なくいけました!
今のwindows環境でもminicondaで環境構築し、BOTを作成していたので、検証等もしやすく、結果的に良かったなーと思いました。
さて、前置きが長くなってしまいましたが、以下、導入した手順です!
XSERVERのSSH有効化、認証用鍵の取得
XSERVERのヘルプに詳細な手順が載っているので、そちらを参考に設定していきます。
ざっくりとした手順は、以下の通りです。
①サーバーパネルにログインし、SSHの設定をONにする。
②「公開鍵認証用鍵ペアの生成」からパスフレーズを設定
③ダウンロードした秘密鍵を使用してSSH接続
SSHで接続
私の使用しているOSは、最新版にアップデート済みのwindows 10です。
以下の記事によると、私の環境ではssh機能は既にインストールされていて、簡単に使用出来そうです。
以降は、PowerShell上で作業していきます。
まず、SSH接続の準備をしましょう。
以下のディレクトリにフォルダを作成し、先ほどダウンロードしてきた秘密鍵を格納します。
(例えば「id_xserver_rsa」にリネームしておく)
C:\Users\[ユーザー名]\.ssh\
そして、以下のコマンドを実行し、XSERVERにssh接続します。
注意点としては、ポートが10022になることです。通常のsshとポートが異なります。(通常は22)
接続すると以下のメッセージが出てくると思うので、秘密鍵をダウンロードした際に決定したパスコードを入力します。(初回は、接続確認が出るかもしれません)
(おまけ)
毎回、上記のコマンドを打つのは面倒ですよね!?
ということで、「.ssh」フォルダに「config」ファイルを作成し、テキストエディタで以下の項目を記入します。
HostName [サーバー名]
Port 10022
User [ユーザー名]
IdentityFile ~/.ssh/[秘密鍵のファイル名]
ServerAliveInterval 60
これで次回から「ssh xsrv」と打つだけでサーバーにログイン出来ます。
1行目の「Host ~」の~部が、「ssh ~」の~部に対応しているので、お好みで変えてOKです。
minicondaの導入
次はminicondaを公式サイトからインストールしていく訳ですが、
その前に念のためインストール先のserver OSの確認をしましょう。
XSERVER公式サイトによるとLinuxのようですが、何bitかの記載はありません。
そこで、SSHで接続し、「lscpu」コマンドを打ち、以下の項目を確認します。
64bitの記載があれば、64bitのOSです。
それでは、下記のminiconda公式サイトからLinux 64bit向けのインストーラーをダウンロードしてきましょう。
SCPでファイル転送&minicondaのインストール
さて、SSH接続とminicondaインストーラーの準備が整いました。
次はダウンロードしたインストーラーを転送して、XSERVER内にインストールしていきましょう。
ダウンロードしたインストーラーは分かりやすいようにminiconda3のようにリネームしていて構いません。
下記のコマンドで任意の場所にファイルを転送出来ます。
転送完了後、下記コマンドでインストールを実行します。
BOTの常駐化
ここまで来れば、後はwindowsにminicondaで環境構築した時と同じですね。
必要なパッケージをインストールし、BOTのソースファイル一式を転送することで、server上でもBOTが起動出来るようになったと思います。
しかし、このままではSSH接続を終了すると、BOTも終了してしまいます。
以下のコマンドでBOTを常駐化することが可能です!実行するプログラムをファイル名に入力して下さい。
このコマンドだと、ログファイルが $HOME 直下に自動で生成されますが、
以下のようにすることで、ログファイルを任意の場所に保存出来ます。
BOTを終了させたい時は、「ps x」で実行中のプログラムのプロセスIDを確認し、以下のコマンドを打ちましょう。
これで、プログラムを終了することが出来ます。
BOTの終了は「kill」コマンド
まとめ
必要な情報を集めるのに苦労しましたが、こうしてまとめてみると意外と簡単に出来そうですね。
この記事がお困りの方のお役に立てると幸いです。
以上、XSERVER上にminicondaを使用してpython環境を構築する話でした。
それではまた次の記事で!
twitterでも情報発信していきますので、どしどしフォローお願いします!
↓↓↓↓↓
ついったーをフォローする
以下のサイトでも配信してます。見に来てね♪
Youtubeで見る
コメント