チケット登録画面に、カスタムフィールドを追加する
工数とか、入れたいけどフィールドがないってことありますよね。そんなわけで、カスタムフィールドを追加することにしました。
最初、WebAdmin から追加できるのかなーと思ったんですが、探しても追加できるところがなさそう…。ググると、trac.ini を直接いじればいいとか。
そんなわけで、下記のように設定しました。
ticket-custom というところに、入力フィールドの形式(今回は text)、表示名(今回は工数)を設定すれば OK。フィールド名は man-hour にしてあります。
[root@hoge 0.11]# vim trac.ini [ticket] ・・・ # ここに書く↓ [ticket-custom] man-hour = text man-hour.label = 工数
べつに text じゃなく、selectbox とかも使えるみたい。まぁ使うときになったらまた調べよう。
Trac Wiki で、文字に色をつける
忘れる前にブログ更新しておきます。
ちょっと前に、Trac Wiki で手順書とか書いてたとき、文字色を変えたいなーと思って方法を探してました。気の向くままに・・・: 文字色をセットするマクロ(Trac0.11.1) を参考にやってみましたが、今回もありえないところではまりました。
Trac は /home/trac/ 配下に、hoge プロジェクトを作ることにします。(OS は Cent OS 5.4 あたりを使ってます。)
上記サイトにあったマクロを、wiki-macros フォルダにおきます。ただ、私が使ってる Trac サーバにはなかったので、/home/trac/hoge/plugins/ 配下に格納しました。
あとは、Wiki を書くときに、こんな感じで書けば、青かったり赤かったりする文字で表示されます。
[Color(blue::青色の文字で出力)]] Color(#ff0000::赤色の文字で出力) →青色の文字で出力 →赤色の文字で出力
でも、色、変わらない…。ちゃんとマクロおいたのになんで…?と思いながら Trac のログを見ると、シンタックスエラー的なことが。
格納したマクロを開いてみると、なんとコピペミス。# -*- coding: utf-8 -*- の最初の # をはずしてスクリプトを保存していました。
もう一度マクロがちゃんと機能してるか確認すると、今度は OK でした。ログは大事だと感じた一件でした。
Trac のチケットに親子関係を持たせるプラグインをインストール
今やってる案件で、チケットに親子関係を持たせたくて、プラグインを探していました。探したところ、MasterTicketsPlugin というプラグインを入れれば、各チケットに関連するチケットへのリンクを貼ることができるみたいです。早速入れてみました。
GraphvizPlugin のインストール
GraphvizPlugin もインストールすると、依存関係のグラフが見れるようになるそうなので入れてみました。詳細は GraphvizPlugin のページで。
前提として、/home/trac/hoge に、hoge プロジェクトがあることにします。Trac のバージョンは、0.11 系です。
- インストールは、trac/plugin のところで行うので移動。
- 上記のページの通り、easy_install でインストール開始。
cd /home/trac/hoge/plugin easy_install http://trac-hacks.org/svn/graphvizplugin/0.11 # 問題なければ再起動。 service httpd restart
# こうなってれば OK [components] ... graphviz.* = enabled ...
- ステータスとか確認して、OK そうなら trac.ini をコミット。
# ステータスとか Diff を確認 svn diff svn status # trac.ini だけ指定して svn commit --username=yunkichi trac.ini -m 'refs #168;MasterTicketsPlugin の導入に必要な、Graphviz Plugin をインストールし、有効化'
MasterTicketsPlugin のインストール
今度は実際に親子関係を作ってくれるプラグインをインストールします。
svn 管理の状態で公開さrているので、checkout で取得します。
- インストールは、trac/plugin のところで行う。(ソースの取得も同じ所で)
# Trac 0.10 用と 0.11 用があるけど、とりあえずディレクトリごと取得 svn co http://trac-hacks.org/svn/masterticketsplugin/
- masterticketsplugin というディレクトリ名で取得できているはずなので、その中に移動。
- Trac のバージョンは、0.11 なので、そちらに。
- mastertickets というディレクトリと setup.py というファイルがあるのを確認。
cd masterticketsplugin/0.11 [root@hoge 0.11]# ls mastertickets setup.py # setup.py があるので、egg ファイルを作成。下記コマンドをそのまま実行 python setup.py bdist_egg
- すると、いろいろファイルとかディレクトリが作成されるので、egg ファイルが生成された場所に移動。
- たぶん dist の中なのでそこに移動。
- easy_install コマンドで、インストール
[root@hoge 0.11]# ls TracMasterTickets.egg-info build dist mastertickets setup.py [root@hoge 0.11]# cd dist [root@wsasr dist]# ls TracMasterTickets-2.1.3-py2.4.egg easy_install TracMasterTickets-2.1.3-py2.4.egg # 問題なければ再起動。 service httpd restart
- Trac のブラウザから 管理>プラグインから選択して有効化。
- blockedby や blocking だとわかりにくいので、親チケット、子チケットのように名称を変更。
- ticket-custom の部分の日本語化は、直接 trac.ini をいじった方がいいかも。
# こうなってれば OK [components] mastertickets.api.masterticketssystem = enabled mastertickets.web_ui.masterticketsmodule = enabled ... # [ticket-custom] blockedby = text blockedby.label = 子チケット blocking = text blocking.label = 親チケット
- ステータスとか確認して、OK そうなら trac.ini をコミット。
# ステータスとか Diff を確認 svn diff svn status # trac.ini だけ指定して svn commit --username=yunkichi trac.ini -m 'refs #168:MasterTicketsPlugin を有効化'
ここまで来て気づきました。グラフが見れない。
よく考えたら、graphviz のプラグインはインストールしてたけど、graphviz 自体はインストールしてなかったんですね。ちゃんと GraphvizPlugin を見ていなかった私が悪いんですけど。
これをインストールしてからじゃないと、graphvizplugin は機能しません。(当たり前)
- ここ から、 Download>agree>Linux をたどって、Stable and development rpms for Redhat Enterprise, or Centos systems を選択
- Graphviz - Graph Visualization Software どおり、設定ファイルを /etc/yum.repos.d に取得
cd /etc/yum.repos.d/ wget http://www.graphviz.org/graphviz-rhel.repo
- yum list でインストールできるものを確認して、インストール
[root@wsasr yum.repos.d]# yum list graphviz Loaded plugins: fastestmirror, priorities Repository rpmforge is listed more than once in the configuration Loading mirror speeds from cached hostfile * addons: www.ftp.ne.jp * base: www.ftp.ne.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp 0 packages excluded due to repository priority protections Available Packages graphviz.i386 [root@wsasr yum.repos.d]# yum install graphviz.i386
これで親子関係を設定したチケットを開くと、右上に Depgraph というリンクがあるので、そこからグラフも見れるようになったはずです。よかった。
Redmine のバージョンアップをアーカイブではなく SVN で行うよう変更
以前、Redmine のバ−ジョンアップ方法(Redmine 0.8.7 から 0.9.0 にバージョンアップする方法)を書いたのですが、アーカイブでインストールしていたので、バージョンアップがめんどくさくって困りました。
なので、今回アーカイブ形式でインストールしてたものを SVN で管理することにしました。(バージョンは、0.9.0 から 0.9.2 に)
大まかな手順
ひと通りやったコマンド
これで一通りできました。
前提として、Redmine を /home/www/hoge にインストールしていることにします。また、SVN からチェックアウトするディレクトリを、tmp-0.9.0 とします。
cd /home/www/hoge svn checkout http://redmine.rubyforge.org/svn/tags/0.9.0/ tmp-0.9.0 /bin/cp -f redmine/* tmp-0.9.0/ cd tmp-0.9.0 svn switch http://redmine.rubyforge.org/svn/tags/0.9.2/ vim .gitignore ## .svn を追加 cp -rp ../redmine-0.9.0/.git ./
1つの IPアドレスで複数のサイトを利用する
今使用しているサーバに、もう 1つ別のアプリをおくことになりました。すでに、http://localhost/ のような URL で動いちゃってるのがあるので、ポートを指定して別のサイトを表示させるようにします。また、アクセスログも別にはかれるようにしたいです。
1つのIPで複数のSSLサイトを運用する方法 を参考にすると、Apache の設定で VirtualHost を新しく作成すればできそうです。
今回設定したいのはSSL サイトなので、/etc/httpd/conf/httpd.conf ではなく、/etc/httpd/conf.d/ssl.conf をいじります。ポートは 443 が使用済みなので、444 として作成します。(あいてそうなポートを適当に。)
Listen 443 # この行はもともとあるので、下に追加。 Listen 444 NameVirtualHost 192.168.XX.XX:443 NameVirtualHost 192.168.XX.XX:444
あとは、もともとあった VirtualHost ディレクティブをコピーして、DocumentRoot と出力されるアクセスログの設定を変更すれば OK です。ssl.conf の一番下に追加してください。デフォルトだと、
- ログのファイル名は先頭に hoge_ をつけることにします。
- DocumentRoot は /var/www/hoge/public とします。
- デフォルトの設定から変更したところを赤字にしておきます。
DocumentRoot "/var/www/hoge/public" ErrorLog logs/hoge_ssl_error_log LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" TransferLog logs/hoge_ssl_access_log LogLevel warn SSLEngine on SSLProtocol -ALL +SSLv3 +TLSv1 SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key SSLOptions +StdEnvVars SSLOptions +StdEnvVars SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/hoge_ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
それぞれのサイトで別のドメインを持っている場合は、VirtualHost ディレクティブの中に、ServerName の設定も必要です。今回は、公開しているサーバじゃないので IP そのまま表示しちゃってます。なので、アクセスするときは、http://192.168.XX.XX/ (既存サイト。:443 をつけても同じ。)か、http://192.168.XX.XX:444/ (追加したサイト)のような感じでできます。
Linux サーバで、ユーザアカウントを追加する
この前、会社で使ってる Linux サーバでユーザの新規追加をしました。実はやったことなかったので手順書いておきます。Linux 新規ユーザの作成 - useradd を参考にしました。
ユーザを追加
- useradd で、ユーザを作成できる。root ユーザじゃないとできないよ。
- オプションを指定しない場合はデフォルト値が適用される。
- たとえば下の例だと、ホームディレクトリは /home/hoge にできる。
useradd hoge # ユーザの作成(useradd ユーザ名) useradd -D # 設定条件を確認 ## 出力結果 ## GROUP=100 # グループの ID ここでは 100 らしい。 HOME=/home # ホームディレクトリのできる場所。 INACTIVE=-1 # パスワードの期限で、-1 だと無期限。 EXPIRE= # ユーザアカウントの期限で、値がない場合は無期限。 SHELL=/bin/bash # ログインシェル。 SKEL=/etc/skel # 新規ユーザのホームディレクトリのテンプレート。 CREATE_MAIL_SPOOL=yes # わかんない。メールスプールするかどうかとか…。
パスワードを設定(変更)
- useradd でアカウントを作成しただけだとパスワードがない状態なので、設定する。
passwd hoge # passwd パスワードを設定するユーザ名 (New Password : と聞かれるので新しいパスワードを打ち込む。) (Retype new password : と聞かれるので、確認としてもう一度新しいパスワードを打ち込む。)
ユーザ一覧の確認
- /etc/passwdで確認可能
cat /etc/passwd
という感じで一通りできました。
Redmine 0.9.0 を Windows XP にインストール
下書きにずっと残ってたので…。結構前に XP に Redmine 0.9.0 をインストールしました。手順メモです。
- version: 0.9.0
- OS: Windows XP
- インストール方法: アーカイブを展開
1.config/database.yml の設定を変更します。database.yml.sample というファイルをコピーして使います。production の設定のみでよいです。(DB は SQLite3 を使用)
production: adapter: sqlite3 dbfile: db/redmine.db
2.db ファイルの設定を書いたので、db/ 配下に redmine.db を作成します。(空ファイル)
3.config/enviroment.rb に、session 関係の設定するため、下記を追記します。
config.action_controller.session = { :key => "_myapp_session", :secret => "91a5f0e0f6ac90fb897a76513b9b560b" }
4.メールを飛ばしたいのであれば、config/email.yml に設定をします。email.yml.sample というファイルをコピーして使います。
production: delivery_method: :smtp smtp_settings: address: localhost # smtp サーバを記入 port: 25
これで、production 環境でスクリプトサーバを起動すれば OK 。最初はユーザ作っても admin/admin でしかログインできないので注意です。(admin 出ログイン後、作成したユーザを有効にしてあげないとだめ。)
ruby script/server RAILS_ENV="production"