研究室に Qiita Team クローンの Knowledge を Docker (on Core OS) で導入してみた

More than 1 year has passed since last update.

研究室に Knowledge を導入してみたのでメモ。

経緯

研究室の情報共有を進めたい

  • wiki はすでに存在するが更新は停滞しがち
    • キレイな階層構造を意識してしまい、投稿の心理的敷居が高い?
    • 投稿に対するコミュニケーションが取りづらい
  • Qiita Team 良さそう
    • とりあえず投稿。検索するなり、必要に応じて後から整理
    • が、財政的に厳しい (関係者合わせると30人規模)
  • Knowledge
    • オープンソースの Qiita Team クローン
    • デザインが今風
    • 開発がアクティブ

共有したい情報

  • 望遠鏡の運用情報 (装置の情報、トラブル対処記録)
  • 開発情報 (設計・製作の過程)
  • 研究を進める上での Tips (ツールの使い方など)
  • 各自の研究進捗報告
  • 研究室の運営情報 (事務手続き方法など)

構成

  • コンテナ仮想化が便利そう
  • Docker が一番流行っている
  • Core OS なるものがあるそうだ
  • 既に研究室 web サーバーがあるので、リバースプロキシで Knowledge サーバーにアクセスさせる

手順

1. インストールメディアの準備

  • Core OS の ISO image をダウンロード
  • CD-R に焼く

2. Core OS のインストール

#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:
  • インストールを実行
    • 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 の使用

そのうち試す