研究室に Knowledge を導入してみたのでメモ。
経緯
研究室の情報共有を進めたい
- wiki はすでに存在するが更新は停滞しがち
- キレイな階層構造を意識してしまい、投稿の心理的敷居が高い?
- 投稿に対するコミュニケーションが取りづらい
-
Qiita Team 良さそう
- とりあえず投稿。検索するなり、必要に応じて後から整理
- が、財政的に厳しい (関係者合わせると30人規模)
-
Knowledge
- オープンソースの Qiita Team クローン
- デザインが今風
- 開発がアクティブ
共有したい情報
- 望遠鏡の運用情報 (装置の情報、トラブル対処記録)
- 開発情報 (設計・製作の過程)
- 研究を進める上での Tips (ツールの使い方など)
- 各自の研究進捗報告
- 研究室の運営情報 (事務手続き方法など)
構成
- コンテナ仮想化が便利そう
- Docker が一番流行っている
- Knowledge も Dockerfile を公開している
- Core OS なるものがあるそうだ
- 既に研究室 web サーバーがあるので、リバースプロキシで Knowledge サーバーにアクセスさせる
手順
1. インストールメディアの準備
- Core OS の ISO image をダウンロード
- CD-R に焼く
2. Core OS のインストール
- 新しい PC を準備しておく
- インストールメディアからブートする
- 固定 IP で運用したいので、 network interface の名前を調べておく
ifconfig
- Core OS のインストール設定ファイルである、cloud-config.yml を作成する
- 公式 : https://coreos.com/os/docs/latest/cloud-config.html
- 参考にした :
- core ユーザーを作成
- 固定 IP を設定
- docker サービスを起動させておく
#cloud-config
coreos:
update:
reboot-strategy: off
units:
-
name: coreos-setup-environment.service
command: restart
-
name: systemd-networkd.service
command: restart
-
name: docker.service
command: start
-
name: 10-static.network
runtime: no
content: |
[Match]
Name=eno1
[Network]
Address=192.168.aaa.xxx
Gateway=192.168.aaa.yyy
DNS=192.168.aaa.zzz
users:
-
name: core
passwd: `openssl passwd -1` で生成されるハッシュを書き込む
groups:
- sudo
- docker
- cloud-config.yml を local で作成して scp でアップロードしたい場合
- core ユーザーにパスワードを設定する
sudo passwd core
- scp で送る
scp cloud-config.yml coreos-host:
- core ユーザーにパスワードを設定する
- インストールを実行
sudo coreos-install -d /dev/sda -c cloud-config.yml -v
3. Knowledge をインストール
- Core OS にログイン
- 作業場所を作成
mkdir /home/core/knowledge
cd /home/core/knowledge
- Dockerfile を取得
wget https://raw.githubusercontent.com/support-project/docker-knowledge/master/Dockerfile
- docker を build
docker build -t knowledge:1.3.1 .
- docker を起動
docker run -d -p 80:8080 -v /home/core/knowledge:/root/.knowledge knowledge:1.3.1
- ブラウザから Core OS マシンの port 80 にアクセスし、Knowledge にアクセスできることを確かめる
- 初期ユーザーでログインし、管理者ユーザーを新規作成、初期ユーザーを削除
4. リバースプロキシの設定
4.1 Knowledge 側
- リバースプロキシを経由して https://lab-web-server/knowledge の URL を使いたいので、knowledge のインストール先を
/usr/local/tomcat/webapps/ROOT.war
から/usr/local/tomcat/webapps/knowledge.war
に変更- Dockerfile の ADD から始まる行を変更する
- Knowledge に管理者ユーザーでログインし、「システム設定」 - 「システム設定」 - 「サービスのURL」 を適切に変更する
4.2 プロキシサーバ側
- 使用している web server は、apache
- 設定ファイルを新規作成
sudo emacs proxy.conf
- プロキシ設定を記述
<Location /knowledge/>
ProxyPass http://192.168.aaa.xxx/knowledge/
ProxyPassReverse http://192.168.aaa.xxx/knowledge/
SSLRequireSSL
</Location>
- apache を再起動
5. PostgreSQL の使用
そのうち試す