おうちRedmineのすゝめ
ブログのことなんてすっかり忘れてた。
レンタルサーバ, ドメインのコストを毛嫌いしてWPからはてなに移り約1年。
今回は、プロジェクト管理ツール Redmineをおうちに導入して2カ月ほど経ったのでその話をする。
エクセル管理の限界
個人で開発しているプロジェクトは、今までエクセルで作業内容とブランチ名を記載したシートを作成して管理していた。
しかし、ブランチ名に作業内容を適切に表現した短い単語をつける手間や、エクセルの1行の中にセル内改行を用いて改修内容や実装方針を書くのが面倒になり、何らかのプロジェクト管理ツールの導入を考え始めた。
会社では、プロジェクト管理にRedmineを利用しており、チケット駆動開発を用いている。
同様のツールとして、TrelloやBacklogがあるが、Trelloはカードと進捗の構造が個人的な考えに合わず、Backlogは複数プロジェクトを動かす場合お金かかる。
ということで、Redmineの導入を決めた。
サーバ構成
Linuxマシンに、MySQLやApacheを導入して組み立てる方法を考えたが、今回はリビングのTVで単独のクライアントマシンとしても使えるようにしたかったため、Windows 10での構成を考えた。
購入したのは Dell Vostro 3267
CPU Celeron G3900
RAM 4GB
HDD 250GB
OS Windows 10 Pro 64Bit
購入後、使用感を確かめてみたが、やはりHDD。遅すぎる。SSDが必要。
調べると、SSDを搭載できるスペース、電源はないが、SATA3ポートは1つ余っていることがわかったので、激安SSDとして評判のCrucial BX500 120GBモデルを購入。
そして、SATA電源が不足している問題を解決するために、SATA電源の2分岐ケーブルを購入。
〆て10千円ちょっとで済んだ。
SSDの取り付け場所に悩んだが、電源ユニットの上部が空いていたのでスペーサーみたいなのを作ってそこに放置することに。
OSの移行作業は、いつものように EaseUs Todo Backupで実行。
OEM領域がうまくクローンできない問題があったが、せいぜいWindowsとそのドライバぐらいしか入ってないPCなので、今回は無視して必要な領域をクローン。
すでに付いていたHDDは、全体をフォーマットしてドライブとして転用。
これはメインPCのバックアップデータの保管先になる。
(メインPCから、ネットワーク越しにこのPCのHDDの特定ディレクトリにバックアップを保管する仕組み。)
固定IPの設定
さて、これでひとまずPCとして利用できるようになったが、Redmineなど、Webアプリケーションを導入してサーバとして利用するために、プライベートネットワーク内でこのPCに対して固定したIPアドレスを割り当てる必要がある。
Ciscoとか、YAMAHAのルータを使ってるぜとか、DHCPサーバ組んでるぜっていう人でもない限り、ほとんどの場合ルーターと各クライアント端末(PC/スマホなど)との接続にはルーターに搭載されているDHCPによるプライベートIPアドレスの自動割り当てが効いているはず。
ただし、このDHCPを使うと、定期的にIPアドレスが再割り当てされて別なものに変わってしまうため、別端末からアクセスするためには毎回このサーバに何のIPが振られているかを確認しないといけなくなる。。
そこで、このサーバマシンだけ、常にこのIPアドレスを割り当てなさいという設定をルータに書き込むことで、別なIPが振られることをなくす。
(サーバのNICが持っている MACアドレスと、割り当てたいプライベートIPアドレスを登録することで対応表ができるというわけ)
<ルータ側の設定>
私の場合、このネットワークは
サブネットマスク 255.255.255.0
ネットワークアドレス 192.168.11.0
デフォルトゲートウェイ 192.168.11.1
という設定を取っているので、
このサーバマシン(のNICが持っているMACアドレス)に対して 192.168.11.50というプライベートIPを割り当てた。
<Windows側の設定>
コントロールパネル → ネットワークとインターネット → ネットワーク接続
当該ルータと接続しているネットワークデバイスのプロパティ、
インターネットプロトコルバージョン4のプロパティを開き、
次のIPアドレスを使うを選択。
IPアドレスに 割り当てた 192.168.11.50
サブネットマスクに、 255.255.255.0
デフォルトゲートウェイに 192.168.11.1
次のDNSサーバのアドレスを使うを選択。
優先DNSサーバに、 192.168.11.1
を設定してOK。
念のため再起動。
コマンドプロンプトで、ipconfig/all を流し、
設定しているネットワークデバイスの情報に、
DHCP有効:いいえ
IPv4アドレス:192.168.11.50
サブネットマスク:255.255.255.0
デフォルトゲートウェイ:192.168.11.1
DNSサーバー:192.168.11.1
となっていればOK。
Redmine導入
今回は、BitnaniのRedmineを使い、MySQL/Ruby on Rails/Apache/Redmine本体をまとめてインストールする方法を採用する。
Install Redmine, Download Redmine
インストール自体はウィザード形式なのですごーく簡単。
普段ターミナルで対話形式 or Vimで対応しているとGUIって素晴らしいと改めて実感。
再起動とかをすると、Btinami Redmine Stack Manager Toolというアプリケーションがインストールされているので、ここからMySQLやApache、Redmine本体の起動・停止・再起動ができる。
インストールしたマシンからアクセスするには、ブラウザのURLに、
と入力してアクセスすれば良い。127.0.0.1というIPは、あとで説明する。
ここからは、もう自由。
プロジェクトを作って、そこにチケットを作りまくり、進捗管理、ガントチャートでの期日管理とチケットに作業内容やメモを記述していく。
そして、開発時のブランチの名前には、チケットに振られる一意の番号を使えばよい。
ブランチ名で悩むことも、エクセルのセル内改行を駆使して情報を書き並べるめんどくささともおさらばできる。
Hostsの設定
さて、ここまでくれば他のマシン(クライアント)からも、192.168.11.50/redmineとブラウザに打ち込めばRedmineにアクセスできるようになるが、どうもこの、192.168.11.50という部分がわかりにくい。これが例えば、サーバ名/redmineというURLであれば、よりわかりやすいはず。
例として、サーバ名を test_srvとしよう。
そこで、各端末のHostsファイルというものを書き換え、サーバ名でアクセスした時に、192.168.11.50へ接続するようにする。
Mac/Linuxの場合、 /etc/hostsをVim等のエディタで開くと、
おそらく
~中略~
255.255.255.255 broadcasthost
::1 localhost
という記述になっているはず。
行頭#はコメントなので影響ない。
ここで出てきた、127.0.0.1というのが、自分自身を示すループバックアドレスというものになる。そしてこれには、localhostというドメイン名が振られている。
Windowsなら、メモ帳を管理者権限で開き、すべてのファイルにして、
C:\Windows\System32\drivers\etc\hostsを開く。
おそらく行頭に#が付いたコメント行だけなはず。
Windowsの場合、127.0.0.1 localhostがコメントアウトされた状態でも、
localhost自体は名前解決ができるようになっている。
したがって、先ほど、Redmineをインストールしたマシンのブラウザで、
127.0.0.1/redmineとしていたのは、 localhost/redmineと読み換えることができる。
ただし、この localhost/redmineというURLを、他のマシンで打ち込んでも、Redmineの画面には行き着かない。なぜなら、他のマシンでのlocalhostは、hostsに記載が有る限り、127.0.0.1であり、その’他のマシン’自身を示すことになるため。
サーバマシン以外のMac/Linux/WindowsそれぞれのHostsに、
192.168.11.50 test_srv
と設定して保存する。
キャッシュのクリアをすれば、test_srv/redmineというURLで接続ができるようになる。そして各クライアントでは、このURLをお気に入り登録すればよい。
ここまでで察したと思われるが、hostsファイルは他のDNSサーバより優先される。
googleとかをhostsに登録する(いないだろうが)と、それに対応するIPアドレスを持つマシンに接続するので、設定にはご注意を。
遠隔操作に対応する
ここまでで、Redmineの導入〜運用開始までは持って行ったが、サーバマシンの設定のためにわざわざディスプレイ・キーボード・マウス等を接続してああだこうだやるのは面倒。
したがって、同ネットワーク内では、リモートデスクトップ接続を使って接続する。
リモートデスクトップの接続については省く。
外部からの接続のために、サーバマシンにChrome Remote Desktop HostをChrome経由でインストールして初期設定を済ます。
スマホアプリ リモートデスクトップをインストールして、同一Googleアカウントでログインすると、設定済みのマシンが一覧で表示される。
初回接続時のみ、 PINコードを入力するが、それが終われば、今度はネットワークを越えてリモートマシンにアクセスできる。
家に置いてあるサーバマシンさえ起動していれば、移動中でも、外出先でも、アプリ経由でサーバマシンに接続できるわけだ。
しかも、プロバイダに依頼してグローバルIPの固定化をしなくてもいい。
とまあ、意外にボリューミーな記事となったが、おうちRedmineはアプリケーションの開発管理だけにとどまらず、Windows修復記録の保存や生活上のライフハックを書く場面としても便利な機能を有しているので、1台くらいマシン余ってるでしょうから、ぜひインストールして使ってみてほしい。