Redmine



Sitemap | Profile | タグ一覧
最近の更新
ドライランのありがたみを改めて知る
2024/04/04
伊豆半島
2024/03/31
お出かけチェックリスト
2024/03/29
Ruby
2024/03/27
Kubernetes
2024/03/22
音楽データをDisplayAudioで聞く
2024/03/09
Redmine
2024/02/05
git
2024/02/02
経済
2024/01/08
どうする家康
2023/12/17
MX-Linux
2023/11/06
國體関連学-休学のご連絡
2023/08/13
Debian
2023/08/02
CentOS
2023/06/13
Dell-XPS13
2023/05/23
ベルト
2023/05/18
SourceForge
2023/04/17
確定申告
2023/02/19
さらば「まぐまぐ」
2023/01/09
風猷縄学
2022/11/23


[-] 1. チートシート

いつも忘れるので、メモφ(..)

[-] 1.1. 参考になるサイト

[-] 2. インストール

[-] 2.1. v3.4 (2017-07-29)

  1. DB 作成
    $ psql -U [AdminUser] postgres
    # CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD '**********' NOINHERIT VALID UNTIL 'infinity';
    # CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
    なお、ここで
    [AdminUser]:postgres の任意の管理者ユーザ
    **********:任意のパスワード
    #:psql プロンプト
  2. ダウンロード
  3. インストール
    $ sudo mkdir /home/app
    $ sudo chown MYNAME:MYNAME /home/app
    $ cd /home/app
    $ umask 027
    $ tar zxvf /tmp/redmine-3.4.2.tar.gz
    $ sudo chmod g=rxs,o=x redmine-3.4.2                          # NOTE 1.
    $ cd redmine-3.4.2
    $ bundle install --path vendor/bundle --without development test
  4. secret
    $ bundle exec rake generate_secret_token
  5. migration
    $ RAILS_ENV=production bundle exec rake db:migrate
  6. seeding
    $ RAILS_ENV=production bundle exec rake redmine:load_default_data
    Select language: ...: ja

[-] 2.1.1. gitolite3 設定

  1. gitolite3 を redmine が読めるよう、umask 調整: /etc/gitolite3/gitolite.rc
    < UMASK =>  0077,
    ---
    > UMASK =>  0027,
  2. passenger 実行ユーザ [U] を gitolite3 グループに追加
    $ sudo adduser [U] gitolite3
  3. passenger プロセスの実行ユーザ [U] が gitolite3 グループに所属している ようにする。サーバ再起動か passenger 再起動か分からない。 今回はサーバ再起動とした:
    $ sudo shutdown -r 0

[-] 2.2. 設定

  1. 設定 > 認証
    RESTによるWebサービスを有効にする:on
    有効期間の最大値:7日
    無操作タイムアウト:48時間
  2. 設定 > プロジェクト
    デフォルトで新しいプロジェクトは公開にする:off
    新規プロジェクトにおいてデフォルトで有効になるモジュール:(文書・ファイルをoffに)
  3. 設定 > リポジトリ
    リポジトリ管理用のWebサービスを有効にする:on
    APIキー:(生成)

[-] 2.2.1. git push してすぐ redmine に反映させる

redmine はデフォルトでは「リポジトリ」タブを表示させないと、 チケットページの「関係しているリビジョン」の項が更新されない。

で、git push 時に反映させる小技があるので、それを実装する。

  1. redmine の参照するリポジトリの post-receive を以下に:
    #!/bin/sh
    
    _apikey=XXXXXXXXXXXXX
    _projectid=XXXXX
    
    echo '===== git hook post-receive ====='
    curl --insecure "https://localhost/redmine/sys/fetch_changesets?key=$_apikey&id=$_projectid" &
  2. post-receive の permission と u+x とする。

ここで、ちょっとハマったのでメモ。

  1. _projectid は、もともとは http://www.redmine.org/projects/redmine/wiki/HowTo_setup_automatic_refresh_of_repositories_in_Redmine_on_commit にあるように $PWD から取得させていたが、動作しない。 原因は、リポジトリ名と _projectid が一致していなかったため。 _projectid をハードコードすることで対応。 _projectid は redmine を rails console して Project モデルの identifier カラムから分かる。
  2. 証明書無しの https なので、curl に --insecure オプションが必要だった。

[-] 2.3. v3.0

Chili が長らく更新されてないので、 redmine を使うことにする(2014/03時点)。

Passenger4 が複数の ruby バージョンをサポートするとのことだけど、 なぜかうまくいかない。

とりあえず、redmine を最新版にすることでこの問題を切り抜けたい。

  • Rails.root/{files,log,public,tmp} は o+rx として www-data が アクセスできる必要がある。
  • その他は以下とすることで、 v2.5 方針を満たすようにしている:
drwxr-s--- redmine git [size] [date] [directory]
-rw-r----- redmine git [size] [date] [file]

http://www.redmine.org/projects/redmine/wiki/RedmineUpgrade でアップグレード

[-] 2.4. gitolite3 連携

[-] 2.5. v2.5

[-] 2.5.1. 方針

  • gitolite による git のアクセス制御を考えている。
  • redmine から git リポジトリへのアクセスは gitolite リポジトリへの read権を与えることで対応する。
    • redmine で閲覧させたくないリポジトリは、そのディレクトリのpermissionを rwx------ (git グループに read 権を与えない)とすることで対応。
    • redmine以外のwebサーバプロセス(www-dataユーザ)から gitolite リポジトリを 閲覧出来ないよう、redmine は別ユーザ:グループである redmine:git で稼働させる。

前提

  1. apache & passenger が稼動している。
  2. gitolite が user:group = git:git で稼動している。
  3. redmine を user:group = redmine:git で稼働する。

凡例

RAILS_ROOT:/home/redmine/redmine-N.N.N

[-] 2.5.2. 手順

  1. ダウンロード
  2. インストール
    $ sudo adduser redmine --ingroup git
    $ sudo chmod g=rxs,o-rw /home/redmine/                              # NOTE 1.
    $ su - redmine
    $ cd                                    # to home(/home/redmine)
    $ umask 027
    $ tar zxvf /tmp/redmine-2.5.1.tar.gz
    $ cd redmine-2.5.1
    $ bundle install --path vendor/bundle --without development test    # NOTE 2.
  3. config/database.yml
    1. config/database.yml を作成
    2. db create
      $ RAILS_ENV=production bundle exec rake db:create
  4. セッションストア秘密鍵を生成
    $ RAILS_ENV=production bundle exec rake generate_secret_token
  5. migrate
    $ RAILS_ENV=production bundle exec rake db:migrate
  6. シードデータのロード
    $ RAILS_ENV=production rake redmine:load_default_data
  7. file permission
    $ mkdir -p tmp tmp/pdf public/plugin_asets
    $ chown -R redmine:git files log tmp public/plugin_asets
    $ chmod -R 755         files log tmp public/plugin_asets
  8. テスト run
    1. server
      $ ruby script/rails server webrick -e production
    2. http://[MYHOST]:3000/ にアクセスしてみる。
  9. apache & passenger 設定
    1. symlink
      $ cd /var/www
      $ ln -s /home/redmine/redmine-2.5.1/public redmine
    2. /etc/apache2/sites-enabled/default-ssl
      RailsBaseURI /redmine
      
        Options -MultiViews
      
      ※ config/environment.rb の user:group が redmine:git になっていれば、 ここでの PassengerUser, PassengerGroup の設定は不要。
    3. permission
      RAILS_ROOT/public を other=r とすることで対応する。
      $ cd RAILS_ROOT/public
      $ find . -type d -exec chmod o=rx {} \;
      $ find . -type f -exec chmod o=r {} \;
    4. apache ユーザ(www-data)では config/database.yml (DBパスワードが格納されている!)等にアクセスできないことを確認:
      $ sudo cat RAILS_ROOT/config/database.yml              # 存在する
      $ sudo -u www-data cat RAILS_ROOT/config/database.yml  # www-data ではアクセスできない
  10. 本番環境準備
    $ RAILS_ENV=production bundle exec rake assets:precompile
  11. ログイン
    admin admin
  12. password 変更

NOTE:

  1. /home/redmine, /home/redmine/redmine-2.5.1 に、other に x 権だけ付ける。 理由は、 (後の /home/redmine/redmine-2.5.1/public/* に other に rx 権だけ付ける 作業と合わせ) www-data に /home/redmine/redmine-2.5.1/public/* だけは アクセスする必要があるため。 それ以外のファイル、特に DB へのパスワードの入った config/database.yml には www-data は読めないことを後のテストで検証している。
  2. --path vendor/bundle は必要。これがないと、/home/ruby/ に書き込めない、 と文句を言ってくる。redmine ユーザは当然書き込めないので、 このオプションを指定して vendor/bundle 下に置く作業が必要。

[-] 2.6. 参考






Generated by juli 2.3.2