docker上でQiita風ツール「 Knowledge 」を動かす
引き続き、dockerに関する備忘録。
下記の書籍の「Docker実践活用術」の章で、 Qiitaクローンの「Lodge」での利用例が紹介されていたが、
Dockerエキスパート養成読本[活用の基礎と実践ノウハウ満載!] (Software Design plus)
- 作者: 杉山貴章,大瀧隆太,Yugui(Yuki Sonoda),中津川篤司,前佛雅人,松原豊,米林正明,松本勇気
- 出版社/メーカー: 技術評論社
- 発売日: 2015/06/18
- メディア: 大型本
- この商品を含むブログ (2件) を見る
ここでは、もうひとつのQiita風のナレッジツール「Knowledge 」を 後述の参照URLを参考に動かしてみる。
目次
参照書籍
いろいろな記事を参考に、dockerをとりあえず使ってみるというこれまでのスタンスだとさすがに、 限界がきたので、下記の書籍がAmazonの技術書フェアで半額になっていたので、購入して、体系的にお勉強中。
Docker実践ガイド impress top gearシリーズ
- 作者: 古賀政純
- 出版社/メーカー: インプレス
- 発売日: 2015/12/17
- メディア: Kindle版
- この商品を含むブログ (1件) を見る
参照URL
手順においては、下記のURLの通り。
https://github.com/support-project/docker-knowledge
docker imageの取得
[root@docker ~]# docker pull koda/docker-knowledge
docker imageの確認
[root@docker ~]# docker images docker.io/koda/docker-knowledge latest b94b7b9e8ded 3 weeks ago 490.3 MB [root@docker ~]#
データ保存場所の作成
データをホスト側のファイルシステムに永続化するため、下記のディレクトリを作成し、パ^ミッション変更
[root@docker ~]# mkdir -p ~/knowledge [root@docker ~]# chmod a+w ~/knowledge
knowledgeのコンテナ起動
[root@docker ~]# docker run -d -p 9090:8080 -v ~/knowledge:/root/.knowledge --name knowledge koda/docker-knowledge
knowledgeにアクセス
http://dockerホストのIP:9090/
にアクセスし、knowledgeにアクセスする すると、トップ画面が起動しているので、[GetStarted]を押す
いくつか投稿ができることを 確認してみる。下記が投稿一覧画面。
コードのシンタックスハイライトなんかもばっちり利いてます。
雑感
qiita自体は、会社的にNGとなりそうだが、こちらなら無償で 社内環境でも使えそう。
今風の色味で、ナレッジ共有ツールとしてさらに検証してみたいところ。
docker上でwekanを動かす
こちらで、セットアップした環境で、wekanを動かした際の備忘録。
後述の参照URLを参考に、wekanを動かしてみる。
目次
参照書籍
いろいろな記事を参考に、dockerをとりあえず使ってみるというこれまでのスタンスだとさすがに、限界がきたので、下記の書籍がAmazonの技術書フェアで半額になっていたので、購入して、体系的にお勉強中。
Docker実践ガイド impress top gearシリーズ
- 作者: 古賀政純
- 出版社/メーカー: インプレス
- 発売日: 2015/12/17
- メディア: Kindle版
- この商品を含むブログ (1件) を見る
参照URL
手順においては、下記のURLの通り。
ここでは、上記の通り、docker-composeを使ってみることに。
データ保存場所の作成
データをホスト側のファイルシステムに永続化するため、下記のディレクトリを作成
[root@docker ~]# mkdir -p ~/docker/wekan/
docker-composeのyml を用意する。
とりあえず、よくわからないが、参照URLの通り、ymlファイルを 環境に合わせて微調整したのが、下記。
[root@docker ~]# cat ~/docker/wekan/docker-compose.yml wekan: image: mquandalle/wekan links: - wekandb environment: - MONGO_URL=mongodb://wekandb/wekan - ROOT_URL=http://192.168.3.72:8181 ports: - 8181:80 # ポートは好きなポートに restart: always wekandb: image: mongo volumes: - /mnt/sda1/docker/wecan/data:/data/db # tmpfsでない位置を指定 - /mnt/sda1/docker/wecan/configdb:/data/configdb # tmpfsでない位置を指定 restart: always
wekanのコンテナ起動
[root@docker ~]# cd ~/docker/wekan [root@docker wekan]# docker-compose up -d
wekanにアクセス
ROOT_URLに記載したURL(ここではhttp://192.168.3.72:8181)にアクセス
例のように、ログイン画面が起動している。 (個人的に、この瞬間が、一番dockerのメリットを感じるところ。)
雑感
クラウドなんてけしからん!ってな会社のため、 参照URLの記載の通り、「Trello使いたいけど会社が使わせてくれない」状況にある。
あるチームによっては、なんとExcelをかんばんツールに見立てて利用しているなんてところもあるため、 dockerでの手軽さを紹介して、そんなチームを助けてあげたいと思う。
docker上でgitLabを動かす
こちらで、セットアップした環境で、gitLabを動かした際の備忘録。
下記の書籍の「Docker実践活用術」の章で、 いろいろなアプリケーションのdockerでの利用例が紹介されていたので、
Dockerエキスパート養成読本[活用の基礎と実践ノウハウ満載!] (Software Design plus)
- 作者: 杉山貴章,大瀧隆太,Yugui(Yuki Sonoda),中津川篤司,前佛雅人,松原豊,米林正明,松本勇気
- 出版社/メーカー: 技術評論社
- 発売日: 2015/06/18
- メディア: 大型本
- この商品を含むブログ (2件) を見る
後述の参照URLを参考に、gitLabを動かしてみる。
目次
参照URL
手順においては、下記のURLの通り。 (※説明がシンプルで手っ取り早く、試してみたい人はおすすめのエントリ) yoru9zine.hatenablog.com
Dockerを使って、RedmineとGitLabを構築する
docker image の取得
まずは、gitlabのイメージを取得する。
[root@docker ~]# docker pull sameersbn/gitlab:9.0.3
データ保存場所の作成
データをホスト側のファイルシステムに永続化するため、下記のディレクトリを作成
[root@docker ~]# mkdir -p ~/docker-data/gitlab [root@docker ~]# mkdir -p ~/docker-data/gitlab-redis [root@docker ~]# mkdir -p ~/docker-data/gitlab-pgdata
gitLabを起動する。
とりあえず、よくわからないが、参照URLの通り、起動してみる。
まずは、DBから。
[root@docker ~]# docker run -d --name my-gitlab-postgres -v ~/docker-data/gitlab-pgdata:/var/lib/postgresql -e 'DB_NAME=gitlabhq_production' -e 'DB_USER=gitlab' -e 'DB_PASS=password' -e 'DB_EXTENSION=pg_trgm' sameersbn/postgresql:9.6
つぎに、key-valueデータストア?(らしい)を起動。
[root@docker ~]# docker run -d --name my-gitlab-redis -v ~/docker-data/gitlab-redis:/var/lib/redis sameersbn/redis:latest
最後に、gitLabを起動。
[root@docker ~]# docker run -d --name my-gitlab -v ~/docker-data/gitlab:/home/git/data --link my-gitlab-postgres:postgresql --link my-gitlab-redis:redisio --publish 10022:22 --publish 10080:80 -e 'GITLAB_PORT=10080' -e 'GITLAB_SSH_PORT=10022' -e 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' -e 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' -e 'GITLAB_TIMEZONE=Tokyo' -e 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' sameersbn/gitlab:8.15.3
gitLabの管理画面にアクセス
ここまで、訳も分からず、先述の参照URLのまんまパクリ、 以下にアクセスしてみる。
http://dockerホストのIP:10080
基本的にここまでの作業は、先述の参照URLのパクリのため、自分でも深くはよくわかっておりません。。。
そんなんで、うまくいくはずないだろ!っとタカをくくっていると・・・・
当然、どうやってgitLabを使ってよいかもわかっていないので、 とりあえず、登録。
以上のように、良いか悪いかは別として、よくわかっていない自分でも、 gitHubクローンな環境が手元にできるところは凄いところ。
所属する会社は、クラウドなんてけしからん!ってな会社のため、 イントラ環境で、バージョン管理したいなんてシーンを想定して、 こちらの環境で、いろいろ学習していく予定。
docker上でRedmineを動かす
こちらで、セットアップした環境で、Redmineを動かした際の備忘録。
下記の書籍で「Docker実践活用術」の章で、 いろいろなアプリケーションのdockerでの利用例が紹介されていたので、
Dockerエキスパート養成読本[活用の基礎と実践ノウハウ満載!] (Software Design plus)
- 作者: 杉山貴章,大瀧隆太,Yugui(Yuki Sonoda),中津川篤司,前佛雅人,松原豊,米林正明,松本勇気
- 出版社/メーカー: 技術評論社
- 発売日: 2015/06/18
- メディア: 大型本
- この商品を含むブログ (2件) を見る
そのノリで、まずは、お約束のRedmineを動かしてみる。
目次
- 目次
- 参照URL
- docker image の取得
- docker image の確認
- データ保存場所の作成
- postgresを起動する。
- redmineを起動する。
- dockerコンテナの確認
- redmineの管理画面にアクセス
参照URL
手順においては、下記のURLの通り。 (※説明がシンプルで手っ取り早く、試してみたい人はおすすめのエントリ)
Dockerを使って、RedmineとGitLabを構築する
docker image の取得
まずは、Redmineとpostgressのイメージを取得する。
[root@docker ~]# docker pull postgres:9.5.0 [root@docker ~]# docker pull redmine:3.0.7
docker image の確認
取得したdockerイメージを確認する。
[root@docker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/redmine 3.0.7 fd0638cb07ab 9 months ago 588.6 MB docker.io/postgres 9.5.0 b2b0df88a221 14 months ago 263.8 MB [root@docker ~]#
データ保存場所の作成
データをホスト側のファイルシステムに永続化するため、下記のディレクトリを作成
[root@docker ~]# mkdir -p ~/docker-data/redmine [root@docker ~]# mkdir -p ~/docker-data/redmine-pgdata
postgresを起動する。
取得したpostgresのイメージを下記の通り実行し、起動する。
[root@docker ~]# docker run -d --name my-redmine-postgres -v ~/docker-data/redmine-pgdata:/var/lib/postgresql/data/pgdata -e PGDATA=/var/lib/postgresql/data/pgdata -e P \ OSTGRES_PASSWORD=secret -e POSTGRES_USER=redmine postgres:9.5.0
redmineを起動する。
取得したredmineのイメージを下記の通り実行し、起動する。
[root@docker ~]# docker run -d -p 3000:3000 --name my-redmine -v ~/docker-data/redmine:/usr/src/redmine/files --link my-redmine-postgres:postgres redmine:3.0.7
dockerコンテナの確認
下記の通り、dockerコンテナの状態を確認する。
[root@docker ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c1664f838e88 redmine:3.0.7 "/docker-entrypoint.s" 13 seconds ago Up 4 seconds 0.0.0.0:3000->3000/tcp my-redmine d05693c5a8ed postgres:9.5.0 "/docker-entrypoint.s" 34 seconds ago Up 25 seconds 5432/tcp my-redmine-postgres [root@docker ~]#
redmineの管理画面にアクセス
以下で、アクセスすると、 http://dockerホストのIP:3000
下記の通り、画面表示され、
あとは、通常通り利用するredmineを利用していくだけ。
所要時間、正味10分程度で環境がredmine環境出来上がり。う~ん、便利。
CentOS7にdockerをインストールする
dockerにソフトウェアをインストールして、 いろいろ試す必要があったため、CentOS7に dockerをインストールを行った際の備忘録。
目次
OSの前提は、以下の通り。
[root@docker ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) [root@docker ~]#
参考書籍
以下を参考にした。
- 作者: 古賀政純
- 出版社/メーカー: インプレス
- 発売日: 2015/03/26
- メディア: Kindle版
- この商品を含むブログ (1件) を見る
yumでdockerインストール
[root@docker ~]# yum install -y docker
dockerの起動と自動起動設定
[root@docker ~]# systemctl start docker [root@docker ~]# systemctl enable docker Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. [root@docker ~]#
dockerのバージョン確認
[root@docker ~]# docker -v Docker version 1.12.6, build 96d83a5/1.12.6 [root@docker ~]#
docker-composeのダウンロードと実行権限付与
[root@docker ~]# curl -L https://github.com/docker/compose/releases/download/1.3.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 600 0 600 0 0 226 0 --:--:-- 0:00:02 --:--:-- 226 100 7968k 100 7968k 0 0 657k 0 0:00:12 0:00:12 --:--:-- 909k [root@docker ~]# chmod +x /usr/local/bin/docker-compose [root@docker ~]#
こちらのコンテナ環境で、いろいろなソフトウェアの検証を行っていく。
Redmineを使ったITIL的な運用プロセス管理
に続き、日常の運用にまつわる課題をRedmineで解決できるかの検証備忘録。
目次
- 目次
- 背景など
- やりたいこと
- Redmineでの設定方針について
- 設定するプロセスのイメージ図
- 登場人物
- ユースケース
- ヘルプデスク(oahelp)の問合せ登録
- インフラ部門担当(staff)の「インシデント管理」
- インフラ部門担当(staff)の「課題管理」
- インフラ部門担当(staff)の「変更管理(承認依頼)」
- 管理者 太郎(manager)の「変更管理(承認)」
- インフラ部門担当(staff)の「変更管理(対応待ち)」
- インフラ部門担当(staff)の「変更管理(完了)」
背景など
所属する会社(一応システム会社の情シス)では、 日々ヘルプデスク業務や問合せ業務が頻繁に発生するが、 概ね、どこにでもあるような以下の課題が発生している。
当事者同士の口頭・メールベースでやり取りが可視化・蓄積化されずらい。 (しかも、個人に割り当てされるメール容量が少ないため、メールを最終的には削除せざるを得ない。)
問い合わせに端を発し、課題管理・ 変更管理といった形でプロセス遷移していった場合、その遷移が事後的に追いづらい。 (あの件どうだったっけ?が頻発する。)
以下の参考書籍には、顧客サポート業務をRedmineを使用して行っている好例があっため、先述の課題をRedmineで改善できないかと考えたのがそもそもの発端。
- 作者: 前田剛
- 出版社/メーカー: 秀和システム
- 発売日: 2016/12/02
- メディア: 単行本
- この商品を含むブログ (2件) を見る
やりたいこと
概ね以下のような感じでやりたいことは、とてもシンプルなもの。
問合せ履歴の蓄積
ITILをイメージしたプロセス遷移
Redmineでの設定方針について
- ITILのプロセスを「トラッカー」で表現し、それぞれステータス更新させる。
ITILにでてくるようなプロセスをすべて表現せずに、必要最小限のプロセスを実装するため、問合せ管理・インシデント管理、課題管理・変更管理プロセスをベースとする。
変更管理では、マネージャー承認が行われるように、ワークフロー承認(もどき)を入れる。
設定するプロセスのイメージ図
一つのチケットを様々なプロセス(Redmine上はトラッカーとして表現)遷移させる システム変更が必要な対応においては、変更管理プロセスに基づく、ワークフロー承認後、システム変更対応を実施し、完了させる。
プロセスのイメージは、下記ような感じ。
登場人物
ここで、検証するために以下のユーザーを用意する。
ユーザーID | ユーザー名称 | 権限 |
---|---|---|
manager | 管理者 太郎 | 承認者 |
staff | 担当者 次郎 | 申請者 |
oahelp | OAヘルプ隆司 | ヘルプデスク |
ユースケース
検証を行うにあたり、以下のユースケースを前提とする。
①ヘルプデスク(oahelp)にエンドユーザーからあるアプリケーションが利用できないとの問い合わせが入る。
②ヘルプデスク(oahelp)は、問合せ内容をインフラ部門担当(staff)にエスカレーションするため、Redmineの「問合せ管理トラッカー」に問合せ内容を登録する。
③インフラ部門担当(staff)は、当該問い合わせを「インシデント管理トラッカー」にプロセス遷移させ、一次切り分けを実施する。
④インフラ部門担当(staff)は、原因をアプリケーションのメーカに問い合わせるとともに、当該チケットを「課題管理トラッカー」にプロセス遷移させ、課題管理する。
⑤インフラ部門担当(staff)は、本事象の原因がメーカ問い合わせにてわかったため、変更計画をたて、管理者(manager)の承認を得るために、「変更管理トラッカー」にプロセス遷移させ、承認依頼を行う。
⑥管理者(manager)は、変更内容を承認し、対応日を指示する。
⑦インフラ部門担当(staff)は、管理者(manager)から指示を受けた期日に対応を行う。予定通り作業を完了したため、チケットを「完了」させる。
ヘルプデスク(oahelp)の問合せ登録
①ヘルプデスク(oahelp)にエンドユーザーからあるアプリケーションが利用できないとの問い合わせが入る。
②ヘルプデスク(oahelp)は、問合せ内容をインフラ部門担当(staff)にエスカレーションするため、Redmineの「問合せ管理トラッカー」に問合せ内容を登録する。
問合せ登録を行うプロジェクトは「ITILプロセス」として、 トラッカーはこんな感じで、ITILプロセスをイメージしたもの。
ここでは、ヘルプデスク(oahelp)でログインし、「問合せ管理トラッカー」上に問合せ内容をエスカレーションのために登録する。
インフラ部門担当(staff)の「インシデント管理」
③インフラ部門担当(staff)でログインし、当該問い合わせを「インシデント管理トラッカー」にプロセス遷移させ、一次切り分けを実施する。
ヘルプデスクからエスカレーションされたチケットを「問合せ管理」⇒「インシデント管理」トラッカーにプロセス遷移させ調査を開始する。
インフラ部門担当(staff)の「課題管理」
調査が難航したため、メーカーに問合せを行うとともに、 「インシデント管理」トラッカーに登録されたチケットを 「課題管理」トラッカーにプロセス遷移し、課題管理を行う。
インフラ部門担当(staff)の「変更管理(承認依頼)」
メーカーからの回答を受領し、事象の原因が分かったため、 「変更管理」トラッカーにプロセス遷移させ、管理者 太郎(manager)に 変更の承認依頼を行う。
「変更管理」トラッカーに変更すると、ステータス制限のため、 承認が完了しないと、ステータス変更できない。
登録後、プロセス遷移の履歴とコメントがさらに履歴化される。
管理者 太郎(manager)の「変更管理(承認)」
管理者 太郎(manager)がログインし、インフラ部門担当(staff)からの承認依頼を承認するため チケットをクリックする。
管理者 太郎(manager)は、「変更管理」トラッカーのステータスを「承認」できるので、 承認する。さらに、対応日を3/10として指示する。
登録後、プロセス遷移の履歴とコメントがさらに履歴化される。ステータスも「承認」となる。
プロジェクトのカレンダーに対応予定日(3/10)が登録される。
インフラ部門担当(staff)の「変更管理(対応待ち)」
改めて、インフラ部門担当(staff)でログインし、承認が行われたので、 「対応待ち」ステータスに変更できるようになる。
インフラ部門担当(staff)の「変更管理(完了)」
最終的に、対応が完了したら、ステータスを「完了」に変更し、 チケットもクローズさせる。
チケットがクローズし、
いままでの登録内容が履歴化される。
以上の感じで、問合せに端を発した1つのチケットが様々なプロセス(ここではトラッカー)遷移を経ながら、 最終的には、クローズされ、その経緯もバッチリ履歴化されるため、 内容をよりシャープにさせていけば、より高精度な業務が実現できそう。
※こんな高機能のソフトウェアを無償で利用できるようにしてくれた 開発者・コミュニティの人たちに唯々感謝するばかり。
Redmineで残業申請ワークフロー
目次
参考書籍
引き続き、以下を参照。
- 作者: 前田剛
- 出版社/メーカー: 秀和システム
- 発売日: 2016/12/02
- メディア: 単行本
- この商品を含むブログ (2件) を見る
背景など
勤務管理の厳正化が叫ばれる昨今、所属する会社でも残業申請が行わている。 概ね、以下のような残業申請の形態(一応システム会社)。
- 基本Excelでの申請台帳形式
- 申請者が事前にExcelに以下の内容を入力する。
- ①申請日・②時間・③残業予定時間・④概要・⑤内容。
- 申請者が上司にメールする。
- 上司が内容を確認し、承認/却下とその理由も添えてExcelに記載し、回答する。
- 事後申請の場合は、申請者がその旨記載し、入力する。
上記は、いろいろな問題をはらんでいるものの最大の問題が、
「Excelの台帳を誰かが開きっぱなしにすると、申請自体ができない」
という最も単純かつ根本的な問題に行きつき、そのわずらわしさから、申請自体がおざなりになるという事態が頻発。
改善点
上述の申請方法の改善を踏まえ、やりたいのは、概ね以下のようなもの。
- Excelに変わるいつでも申請できるインターフェースを備えている。
- 凝ったことではなく、手軽さ・シンプルさを優先する。
- 基本的に、無料。
- ちょっとしたワークフロー(もどき含む)を回せる。
- 申請の状況を一覧で把握できる。
- 事後的に、申請状況を統計・レポート化できる。
Redmineで残業申請
当初、BPMN 製品である以下の製品を調査したものの、
Bonita BPMの概要 – Bonita BPM 日本語ドキュメント
どれも、機能豊富すぎて、少し手軽さに欠けたのと、 自分自身使い方もよくわからなかったため、断念。
そんな折、まさに、求めていることをやっている偉大な先人の記事を 見つけたので、記事を参考にRedmineを使い、検証をしてみることに。
Redmineの設定について
以下の設定を行う。
- プロジェクトは「勤務管理」プロジェクト
- トラッカーとして、「残業申請(事前)」・「残業申請(事後)」を設定
- 「残業申請(事前)」のステータス遷移は基本的に下記の通り。
- ①[申請者]新規
- ②[申請者]申請中
- ③[承認者]承認or却下
- ④[申請者]完了
- ⑤[承認者]確認
- 「残業申請(事後)」のステータス遷移は基本的に下記の通り。
- ①[申請者]新規
- ②[申請者]事後申請
- ③[承認者]確認
申請/承認画面
申請/承認画面は若干のカスタムフィールドを追加したうえで、以下のよう感じ。
登場人物
ここで、検証するために以下のユーザーを用意する。
ユーザーID | ユーザー名称 | 権限 |
---|---|---|
manager | 管理者 太郎 | 承認者 |
staff | 担当者 次郎 | 申請者 |
承認のワークフロー(もどき)
- 事前申請用のトラッカーに申請者用のステータス設定を行い、初期値は「申請中」・管理者の承認後は、「完了」ステータスに変更可能。
- 事後申請用のトラッカーに申請者用のステータス設定を行い、「事後申請」ステータスのみ変更可能。
- 事前申請用のトラッカーおよび事後申請用のトラッカーについて、承認者はすべてのステータス変更が可能。
ステータスマトリックスは、下記の感じ。
事前申請(例)
まずは、申請者でログインする。
事前申請のフォームに事前申請内容を登録し、チケット作成
予定通り、作業が完了して旨の理由及び、作業実績時間を 入力し、「完了」ステータスに変更する。