redmine&Postgresを公式イメージで構築し、ActiveDirectoryでユーザ認証するまで。

* インストール作業 [#e82ab510]

** docker [#cfbb28fa]

 # yum install docker
 # systemctl start docker
 # systemctl eneble docker
 # systemctl status docker

** Proxy環境設定 [#tb02631a]
CentOS7 の 場合
 
 # export http_proxy=http://192.168.10.251:8080/
 # cp /usr/lib/systemd/system/docker.service /etc/systemd/system/
 # vi /etc/systemd/system/docker.service
 
 --------------
 [Service]
 ......
 Environment="HTTP_PROXY=http://192.168.10.251:8080"
 Environment="HTTPS_PROXY=http://192.168.10.251:8080"
 --------------
 
 # systemctl restart docker

** イメージ取得~コンテナ構築~起動 [#g2acd18f]

 # docker pull redmine
 # docker pull postgres
 # mkdir -p /srv/docker/redmine/postgres
 # mkdir -p /srv/docker/redmine/redmine
 # docker run -d --name=postgres-redmine  -v /srv/docker/redmine/postgres:/var/lib/postgresql/data/pgdata -e PGDATA=/var/lib/postgresql/data/pgdata  -e POSTGRES_PASSWORD=redminepwd -e POSTGRES_USER=redmineuser postgres
 # docker run -d --name=redmine  -p 81:3000 --link=postgres-redmine:postgres -v /srv/docker/redmine/redmine:/usr/src/redmine/files redmine
 ※docker内の3000番ポートをホストの81番ポートに転送しています。

** DockerコンテナのNAT追加 [#vbfdbf3e]

後述するLDAP認証する場合に、Docker内部のコンテナから外部サーバへアクセスするためNAT設定を追加する。~
CentOS7なのでfirewalldが動作しているのだが、Dockerはこれを迂回して直接iptablesをたたいているぽいのです。~

 iptables -t nat -A POSTROUTING -s 172.17.0.0/16 -j MASQUERADE


* 環境設定 [#v5aef778]

** 初期ログイン [#p851f01b]

初期アカウントはadmin/adminになっている~

** デフォルト設定の変更 [#k4874e28]

管理 -> 設定 -> 表示 -> デフォルトの言語:日本語~
管理 -> 設定 -> 認証 -> 認証が必要にチェック~

** LDAP認証 [#h5fa58c6]

以下の前提で設定する~
- ドメイン:prosper2.local
- ADサーバ:192.168.10.231
- 情報システム部に所属するユーザのみRedmineにログイン可能

#ref(ad.png,nowrap,有効化,75%)

*** ldapsearchによる事前確認 [#e1211380]
したいんだけど、マルチバイトをldapsearchに引き渡すにはかなり面倒らしい。~
ので、OUはすっとばして、ユーザ名だけ取得できるか確認します。~
チェックしたいのは、下記の方です。

#ref(user.png,nowrap,有効化,75%)

 # ldapsearch  -x -D SEARCHUSER@prosper2.local -w SEARCHUSERPASSWORD -h 192.168.10.231 -b "dc=prosper2,dc=local" "sAMAccountName=inshi.dento" | grep -v ^# | grep inshi.dento
 sAMAccountName: inshi.dento
 userPrincipalName: inshi.dento@prosper2.local
 mail: inshi.dento@prosper2.local


*** redmineでの設定 [#mb1bf19e]

管理 -> LDAP認証 -> 新しい認証方式 を選択

|名称|ドメイン名|
|ホスト|192.168.10.231|
|ポート|389|
|アカウント|検索ユーザ@ドメイン名|
|パスワード|検索ユーザのパスワード|
|ベースDN|OU=情報システム部,OU=本社,DC=prosper2,DC=local|
|あわせてユーザを作成|チェックする|
|ログインIDの属性|sAMAccountName|
|名の属性|givenName|
|性の属性|sn|
|メールアドレスの属性|mail|

保存して、「テスト」をクリックし、上部メッセージが「接続しました」となればOK

#ref(redmine.png,nowrap,有効化,75%)

なんの疑いもなく日本語でDN指定してるけど、完璧に動いてる!すごい!


* REST API [#ibb60758]

** cURL [#e2c5473d]

https://curl.haxx.se/download.html


** チケット登録 [#nd6e6f5d]

以下、WindowsでもLinuxでも同じだが、Windowsは文字コードの問題で、
Internal Server Error 500 がでてしまう。

 # curl -v -H "Content-Type: application/json"  -d "{\"issue\":{\
 \"project_id\": 2, \
 \"subject\": \"APIテスト\", \
 \"description\": \"ここに内容が\n入るよ。\", \
 \"tracker_id\": 1, \
 \"status_id\": 1,\
 \"custom_fields\":[\
 {\"id\":1,\"name\":\"通知元\",\"value\":\"システム通知\"},\
 {\"id\":2,\"name\":\"重要度\",\"value\":\"重要\"},\
 {\"id\":5,\"name\":\"ホスト名\",\"value\":\"Rgateway01\"},\
 {\"id\":7,\"name\":\"業務影響範囲\",\"value\":\"\"},\
 {\"id\":6,\"name\":\"業務停止時間\",\"value\":\"\"},\
 {\"id\":3,\"name\":\"発生日時\",\"value\":\"2018/07/11 09:33:42\"},\
 {\"id\":9,\"name\":\"復旧日時\",\"value\":\"\"},\
 {\"id\":8,\"name\":\"障害レベル\",\"value\":\"C\"}\
 ]}}" \
 http://<redmine>/issues.json?key=<API KEY>


#counter



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS