Qiita風ナレッジ共有ツール Knowledge
「情報共有」ってなかなか難しいですよね。
プロジェクトに直接関係する内容なんかであれば、各プロジェクトごとの Redmine や Backlog で共有できると思いますが、特定のプロジェクトに依存しないナレッジやTipsのようなものは保管はされても誰にも参照されず、そのまま埋もれていく… となってしまいがち。
でもそれだともったいないので、あらためてナレッジ共有の場(ツール)を用意したいね、という話を会社の人としていました。
そんな中、Knowledge というツールが導入候補に挙がり、とりあえず動かしてみようということで、「動く」までの手順をまとめておきます。
つまり、只のインストール手順です (`・ω・´)キリッ
Knowledge は Javaで開発されており、ありがたいことにGitHub上で公開されているオープンソースです。
https://github.com/support-project/knowledge/releases
最新版(2016年9月10日時点)は v1.5.0 のようですね。これを CentOS 6 で動かしたいと思います。
1. Java 8 をインストール
Knowledge を動かすためには、Java 8 と Tomcat 8 以上が必要です。
1 |
$sudo yum install java-1.8.0-openjdk |
Java の別バージョンが既にインストールされていると Java 8 が動かないので、切り替えます。
1 2 3 4 |
$sudo rm /usr/bin/java $sudo ln -s /usr/bin/java8 /usr/bin/java $java -version openjdk version "1.8.0_101" |
新しくインストールしたバージョンが表示されればOKです。
2. Tomcat 8 をインストール
http://tomcat.apache.org/download-80.cgi
上記から Tomcat 8.5 をダウンロードしてインストールします。このときにTomcat実行用ユーザも作成しておきます。
1 2 3 4 5 6 |
$sudo useradd tomcat $wget http://ftp.tsukuba.wide.ad.jp/software/apache/tomcat/tomcat-8/v8.5.4/bin/apache-tomcat-8.5.4.tar.gz $tar -xzvf apache-tomcat-8.5.4.tar.gz $sudo mkdir /opt/apache-tomcat $sudo mv apache-tomcat-8.5.4 /opt/apache-tomcat $sudo chown -R tomcat:tomcat /opt/apache-tomcat |
次に環境変数を設定します。
1 2 3 4 5 6 |
$sudo cp /etc/profile /etc/profile_yyyymmdd $sudo vi /etc/profile # 以下を末尾に追記 JRE_HOME=/usr/java/default CATALINA_HOME=/opt/apache-tomcat/apache-tomcat-8.5.4 export JRE_HOME CATALINA_HOME |
設定を反映させます。
1 |
$source /etc/profile |
そして、Tomcat 自動起動用のスクリプトをセットします。この起動用スクリプトは以下のページからお借りしました m(_ _)m
http://homepage1.nifty.com/y-osumi/works/code/tomcat7/
1 |
$sudo vi /etc/init.d/tomcat |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
#!/bin/bash # # Startup script for the Tomcat Servlet Container # # chkconfig: 2345 35 65 # description: Tomcat is the servlet container that is used in the official \ # Reference Implementation for the Java Servlet and JavaServer \ # Pages technologies TOMCAT_USER=tomcat CATALINA_HOME=/opt/apache-tomcat/apache-tomcat-8.5.4 . /etc/rc.d/init.d/functions prog=tomcat start() { echo -n $"Starting $prog: " daemon --user $TOMCAT_USER $CATALINA_HOME/bin/startup.sh > /dev/null RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success else echo_failure fi echo [ $RETVAL = 0 ] && touch /var/lock/subsys/$prog return $RETVAL } stop() { echo -n $"Stopping $prog: " daemon --user $TOMCAT_USER $CATALINA_HOME/bin/shutdown.sh > /dev/null RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success else echo_failure fi echo [ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) INSTANCES=`ps --columns 512 -aef|grep java|grep tomcat|grep org.apache.catalina.startup.Bootstrap|wc -l` if [ $INSTANCES -eq 0 ]; then echo $prog is stopped RETVAL=3 else if [ $INSTANCES -eq 1 ]; then echo $prog is running 1 instance... else echo $prog is running $INSTANCES instances... fi RETVAL=0 fi ;; *) echo $"Usage: $prog {start|stop|restart|status|help}" exit 1 esac exit $RETVAL |
実行権限を付与してサービスに登録します。
1 2 |
$sudo chmod +x /etc/init.d/tomcat $sudo chkconfig --add tomcat |
3. Apache をインストールして Tomcat と連携
2. までの設定で、あとは knowledge の warファイルをセットすれば動きます。ただ、デフォルトだと 8080ポートで接続しにいきます。今回は 80ポートで接続できるようにしたかったので、Apache をプロキシとして経由させます。
1 |
$sudo yum install httpd |
インストール完了後、プロキシ設定を記述します(Apache側)
1 2 3 4 5 |
$sudo vi /etc/httpd/conf.d/httpd-proxy.conf # 以下を記述 <Location /knowledge> http://(接続したいIP or ドメイン)/knowledge ProxyPass ajp://localhost:8009/knowledge </Location> |
続いて、Tomcat側でもプロキシ設定を記述します(Tomcat側)
1 2 3 4 5 6 7 8 9 |
$sudo cp /opt/apache-tomcat/apache-tomcat-8.5.4/conf/server.xml /opt/apache-tomcat/apache-tomcat-8.5.4/conf/server.xml_yyyymmdd $sudo vi /opt/apache-tomcat/apache-tomcat-8.5.4/conf/server.xml # 以下のように編集 <!-- Apache - Tomcat 連携用 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> |
以上で設定は完了です。80ポートで Knowledge に接続できるようになるはずです。
4. Knowledge を起動
あとは、Knowledge の warファイルを配置するだけです。
1 2 3 4 5 |
$wget https://github.com/support-project/knowledge/releases/download/v1.5.0/knowledge.war $sudo mv knowledge.war /opt/apache-tomcat/apache-tomcat-8.5.4/webapps $sudo chkconfig httpd on $sudo service httpd start $sudo service tomcat start |
http://(接続したいIP or ドメイン)/knowledge にアクセスして以下のような画面が表示されればOKです。
初期設定をして一部の人で試用しているところですが、Qiitaのように気軽に投稿や編集ができ、通知を飛ばしたりコメントを付けたり、コード表記もできたりするので良いツールになるかもしれません。ただ、冒頭の「情報共有」は良いツールを用意するだけでは改善しないと思うので、導入/運用時の仕組みづくりも合わせて検討していきたいですね~。
こちらのらくがきもどうぞ。
関連記事
-
Serverless Framework を使えばサーバレス開発がもっと楽しくなりそう
前回、AWS Lambda を使って LINE の Bot を作ってみましたが、実は正直、L