公開日 2020年11月16日
更新日 2021年11月16日
はじめに
当社ではWindowsパソコンに仮想化ソフトウェアとしてVMWareを導入し、
仮想環境にCentOSをインストールして開発を行っています。
ここではVMWare Workstation Playerを利用した開発環境の構築方法を記載します。
VMwareのインストール
VMWare Workstation Playerのサイトから最新版をダウンロードします。
※2020/11/16時点の最新版のダウンロードは下記になります。
https://my.vmware.com/en/web/vmware/downloads/info/slug/desktop_end_user_computing/vmware_workstation_player/16_0
ダウンロードしたexeファイルを実行しインストールします。
CentOSのインストール
isoファイルのダウンロード
CentOSの公式サイトからisoファイルをダウンロードします。
※2020/11/16時点での最新版のダウンロードは下記になります。
http://isoredirect.centos.org/centos/8/isos/x86_64/
適当なミラーサイトからisoファイルをダウンロードします。
※下記はhttp://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/8.2.2004/isos/x86_64/を選択した場合
新規仮想マシンの作成
VMWareを起動後、「新規仮想マシンの作成」をクリックします。
「後でOSをインストール」を選択して「次へ」をクリックします。
ゲストOSに「Linux」を選択し、バージョンに「CentOS バージョン5 以前 64ビット」を選択します。
「仮想マシン名」を入力して「次へ」をクリックします。
ディスク容量を指定して「次へ」をクリックします。
「完了」をクリックします。
「仮想マシン設定の編集」をクリックします。
「CD/DVD」を選択して、「ISOイメージファイルを使用する」を選択します。
「参照」をクリックして、先ほどダウンロードしたISOファイルを選択します。
その後「OK」をクリックします。
仮想環境でのCentOSのインストール
「仮想マシンの再生」をクリックします。
起動後に「Install CentOS Linux8」を選択します。
「日本語」を選択します。
各種の設定を行います。
「ソフトウェアの選択」をクリックします。
開発時にGUIは利用しませんので、「最小限のインストール」を選択し、「完了」をクリックします。
「インストール先」を選択し「完了」をクリックします。
「ネットワークとホスト名」を選択します。
ネットワーク接続がある場合は「オン」を選択し「完了」をクリックします。
「日付と時刻」を選択します。
「地域」をアジア、「都市」を東京とし、ネットワーク接続がある場合は「ネットワーク時刻」をオンにして
「完了」をクリックします。
「インストールの開始」をクリックします。
「rootパスワード」を選択し、rootパスワードを設定します。
「ユーザーの作成」を選択し、ユーザーを作成します。
インストールが完了したら「再起動」をクリックします。
再起動後、作成したユーザーでログインできることを確認します。
ログイン時にTera TermやPuTTyなどSSHクライアントを利用するのが便利です。
共有フォルダ設定
open-vm-toolsをインストールしてWindowsとの共有フォルダを有効化します。
CentOSにログイン後、以下のコマンドを実行します。
$ su -
$ yum install open-vm-tools
インストール完了後、CentOSを再起動します。
$ shutdown -r now
VMWareのメニューから「管理」→「仮想マシン設定」を選択します。
「オプション」を選択し、設定の「共有フォルダ」を選択します。
フォルダの共有から「常に有効」を選択し、「追加」をクリックします。
追加ウィザードが表示されるので、「参照」からWindows側で共有したいフォルダを選択し、
「名前」にCentOS側に作成する共有フォルダ名を入力します。
その後「次へ」をクリックします。
「この共有を有効化」にチェックが入っている状態で「完了」をクリックします。
共有フォルダが追加されていることを確認できたら「OK」をクリックします。
以上の設定が完了するとCentOS上の/mnt/hgfs/以下に共有フォルダが作成されます。
エディタについて
当社では開発者が各々に好きなエディタを使用しています。
主にはEclipse、Visual Studio Code、Atomなどです。
仮想環境に構築されたCentOS上のファイルをWindows側にインストールされたエディタで直接参照できませんが、
先の共有フォルダの設定を行い、共有フォルダを通してアクセスすることが可能です。
CentOS上の共有フォルダが/mnt/hgfs/share、ソースコードを格納するディレクトリを/var/www/srcとすると
$ ln -s /mht/hgfs/share /var/www/src
のようにシンボリックリンクを作成することで、
/var/www/src以下の配置されたソースコードが共有フォルダを通して参照できます。
その後、各種エディタにおいて共有フォルダをプロジェクト指定することで編集可能となります。また、FTP接続が行えるプラグインなどを利用することで共有フォルダ設定なしでもアクセス可能です。
例えば、AtomではRemote-FTPパッケージが利用可能です。
developmentモードでの起動
通常のインストール手順でJoruriをインストールした際、起動モードはproductionモードとなります。
productionモードは本番稼働を想定した環境となり、高速化のためクラスをキャッシュしておりアプリケーションを再起動しないとソースコードの変更が反映されません。
またログ出力のレベルも高く設定されておりデバッグ情報を確認できません。 開発を行う際はdevelopmentモードでの起動を推奨しています。
developmentモードで起動する場合は、インストール手順書内の「14.サーバーの起動」の前に、unicorn起動設定ファイルを編集してください。
# vi /var/www/joruri/config/samples/unicorn.service
---
Environment=RAILS_ENV=development
Environment=PATH=/usr/local/nodenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
SyslogIdentifier=joruri_unicorn
PIDFile=/var/www/unicorn/pids/unicorn.pid
ExecStart=/usr/local/rbenv/shims/bundle exec unicorn_rails -c config/unicorn/development.rb -E production
ExecStop=/usr/bin/kill -QUIT $MAINPID
ExecReload=/bin/kill -USR2 $MAINPID
---
共有フォルダ上でのJoruriの稼働
共有フォルダ上のソースでJoruriを稼働させる場合、通常のインストール手順内でのソースコード設置をシンボリックリンク作成に変更することに加えて、ソースコード内のunicorn設定ファイルを編集する必要があります。
シンボリックリンク作成によるソースコードの設置
「共有フォルダ設定」で登録したWindows上のフォルダにファイルを置くと、CentOS上の /mnt/hgfs/share にファイルが共有されます。
以下の画像のように、共有フォルダに設定したWindows側のフォルダにjoruriソースコードを設置すると、CentOS側からは /mnt/hgfs/share/joruri のパスでソースコードにアクセスできるようになります。
インストール手順書では「11. Joruriのインストール」で /var/www/joruriディレクトリにJoruriのソースコードを設置しています。これを共有フォルダ上のJoruriソースコードに置き換えるため、「11. Joruriのインストール」の「 専用ディレクトリを作成します。 」の手順を下記の通り変更します。
# ln -s /mht/hgfs/share/joruri /var/www/joruri
# chown -R joruri:joruri /var/www/joruri
unicornの設定ファイル編集
unicornのpidファイルとsocketファイルが共有フォルダ上に存在している時、unicornプロセスが両ファイルにアクセスできずに起動が失敗します。
pidファイルとsocketファイルの場所はソースコード内の以下のファイルで設定しているため、ソースコードの設置場所に合わせて適宜設定を変更してください。
・/var/www/joruri/config/development.rb (developmentモードの場合)
・/var/www/joruri/config/production.rb (productionモードの場合)
例として、/var/runディレクトリ以下に設置する手順を紹介します。修正した内容は太字で表記します。
/var/runディレクトリ以下にunicorn用のディレクトリを作成します。
# mkdir /var/www/unicorn
# mkdir /var/www/unicorn/sockets
# mkdir /var/www/unicorn/pids
unicorn設定ファイルを編集します。(developmentモードの場合)
# vi /var/www/joruri/config/development.rb
---
# listen 8080, backlog: 1024
listen "/var/www/unicorn/sockets/unicorn.sock", backlog: 1024
pid "/var/www/unicorn/pids/unicorn.pid"
---
その他、nginxの設定ファイルとunicorn起動設定ファイル内でもpidファイルとsocketファイルの参照場所を指定しているので、上記の手順で編集した内容に合わせて修正してください。
・/var/www/joruri/config/nginx/nginx.conf
---
upstream joruri_unicorn {
server unix:///var/www/unicorn/sockets/unicorn.sock;
} upstream joruri_dynamic {
server unix:///var/www/unicorn/sockets/unicorn.sock;
}
---
・/var/www/joruri/config/samples/unicorn.service
---
PIDFile=/var/www/unicorn/pids/unicorn.pid
---
設定ファイルの編集はインストール手順書内の「14.サーバーの起動」の前に行ってください。