環境は以下の通り。
・サーバーはAWS EC2
・サーバーのOSはAMI Linux
・ローカルのOSはCentOS 6.5
・ローカルにはnode.jsサーバーのソースコードがあるものとする
説明内容は以下の通り。
・サーバーにnode.jsをインストール
・サーバーにgitサーバーを立てる
・サーバーにnode.jsサーバーのソースコードをデプロイする
・サーバーのnode.jsサーバーを起動する
AWS EC2でのサーバー構築方法はsimtterができるまで(サーバー取得と設定)を参照して欲しい。
EC2からのリモートコントロールにはTera Termを使う。
Tera Termの使い方はchat.acができるまで(statusnetをインストール)を参照して欲しい。
ただし、今回インストールするOSはubuntuではなくAMI Linuxとする。
AMI Linuxのユーザー名はec2-userになる。
では、OSまで入った前提で以降を説明する。
node.jsをインストール
参考文献:
node.jsをyumでインストールする(centos6.5)
Amazon Linux AMI に関するよくある質問
Tera Termから下記コマンド実行。
sudo yum install nodejs npm --enablerepo=epel
gitサーバーを立てる
参考文献:自宅のCentOSにGitサーバを構築してみた
Tera Termから下記コマンド実行。
sudo yum install git git-deamon git-all xinetd sudo chkconfig xinetd on sudo vi /etc/xinetd.d/git-daemon
内容は
service git { disable = no socket_type = stream wait = no user = nobody server = /usr/libexec/git-core/git-daemon server_args = --base-path=/home --export-all --user-path=ec2-user --syslog --inetd --verbose log_on_failure += USERID }
xinetd を起動
sudo service xinetd start
リポジトリ作成
cd ~ mkdir test.git cd test.git git --bare init --shared
gitグループを作成してユーザをそのグループに追加
sudo groupadd git sudo usermod -G wheel,git ec2-user sudo chown -R root:git ~/test.git
node.jsサーバーをデプロイする
ローカルのgitにはすでに何らかのソースコードをコミットしているものとする。
ローカルから下記コマンドを実行する。
リモートリポジトリの登録
git remote add origin ssh://ec2-user@[Public IP]:/~/test.git
※ [Public IP]はAWS EC2に割り当てられたIPアドレスを指定する。独自ドメインを設定している場合はドメイン名でも良い。
※ ssh 用の鍵ペアはTera Termでの通信で使う鍵と同じである。
リモートリポジトリに push
git push origin master
node.jsサーバーを起動する
サーバーで下記コマンドを実行する。
クローン作成
cd ~ git clone test.git
node.jsサーバー起動
cd test node app.js
※ app.jsは自分が起動したいソースファイルに適宜読み替えること。