- 追加された行はこの色です。
- 削除された行はこの色です。
参照先~
[[ここ:http://www.risewill.co.jp/blog/archives/6793]]~
redmine&Postgresを公式イメージで構築し、ActiveDirectoryでユーザ認証するまで。
* インストール作業 [#e82ab510]
** docker [#cfbb28fa]
# yum install docker
# systemctl start docker
# systemctl eneble docker
# systemctl status docker
** イメージ取得 [#g2acd18f]
** 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
# docker pull sameersbn/redmine:3.4.4-2
# docker pull sameersbn/mysql:latest
# mkdir -p /srv/docker/redmine/mysql
** イメージ取得~コンテナ構築~起動 [#g2acd18f]
# docker pull redmine
# docker pull postgres
# mkdir -p /srv/docker/redmine/postgres
# mkdir -p /srv/docker/redmine/redmine
# docker run --name=mysql-redmine -d --env='DB_NAME=redmine' --env='DB_USER=redmineuser' --env='DB_PASS=redminepwd' -v /srv/docker/redmine/mysql:/var/lib/mysql sameersbn/mysql:latest
# docker run --name=redmine -d -p 81:80 --link=mysql-redmine:mysql -v /srv/docker/redmine/redmine:/home/redmine/data sameersbn/redmine:3.4.4-2
※docker内の80番ポートをホストの81番ポートに転送しています。
# 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