Help us understand the problem. What is going on with this article?

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

More than 3 years have 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 の使用

そのうち試す

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away