EC2で無料タスク管理 〜マイクロインスタンスにRedmine1.1.2をセットアップ その2
前回の記事EC2で無料タスク管理 〜マイクロインスタンスにRedmine1.1.2をセットアップ その1
で作成したインスタンスにRedmine 1.1.2をセットアップしていきます。
今回、以下のステップで構築しています。
- EC2 マイクロインスタンス作成
- Redmine 1.1.2をインストール (今回ここ)
- GmailのSMTPサーバーを設定 (ここも)
- SVNのセットアップとRedmineプロジェクトと連携
- その他運用設定
Redmineのインストール方法は公式ブログに詳しく載っているのでこちらを参考にしてください。
http://blog.redmine.jp/articles/redmine-1_1-installation_centos/
以降、このドキュメントの手順に沿って、Amazon Linux AMI 64bitのインスタンスにセットアップをしていく上で足りなかった手順のみ説明しています。
想定環境
Redmineバージョン | 1.1.2 |
OS | |
データベース | MySQL |
webサーバ | Apache (Railsの実行にはPassengerを使用) |
Redmineを実行するのに必要なもの
そのまま
CentOSの設定
インスタンス作成後は、SELinuxもiptablesも無効になっている。
Amazon EC2はFireWallが設定可能なのでiptablesではなくて、Security Group(FireWall)を利用する。
RedmineはApache(Passenger)で動かすので、80ポートだけ開ける必要があるが、
前回の手順で、インスタンスに設定したSecurity Groupで80ポートを開けるように設定済みなのでここでは特になにもしない。
必要なパッケージのインストール
ApacheのKeepAliveはデフォルトOffなのでOnにしておく。
$ sudo vi /etc/httpd/conf/httpd.conf
# # KeepAlive: Whether or not to allow persistent connections (more than # one request per connection). Set to "Off" to deactivate. # # KeepAlive Off
KeepAlive Offをコメントにした。
Rubyのインストール
$ sudo ./ruby-enterprise-1.8.7-2011.03/installer --dont-install-useful-gems --no-dev-docs
を実行すると何もない言われる
Checking for required software... * C compiler... not found * C++ compiler... not found * The 'make' tool... not found * The 'patch' tool... not found * Zlib development headers... not found * OpenSSL development headers... not found * GNU Readline development headers... not found
C++の開発環境をインストールする。
gcc, c++ make patch
$ sudo yum install gcc gcc-c++ make patch
再度、Rubyのインストールを実行、結構時間かかります。
Ruby Enterprise Edition is successfully installed! If want to use Phusion Passenger (http://www.modrails.com) in combination with Ruby Enterprise Edition, then you must reinstall Phusion Passenger against Ruby Enterprise Edition, as follows: /usr/local/bin/passenger-install-apache2-module Make sure you don't forget to paste the Apache configuration directives that the installer gives you. If you ever want to uninstall Ruby Enterprise Edition, simply remove this directory: /usr/local If you have any questions, feel free to visit our website: http://www.rubyenterpriseedition.com Enjoy Ruby Enterprise Edition, a product of Phusion (www.phusion.nl) :-)
と表示されたらインストール終了
RubyGems1.4.2のインストール
sudoで実行する場合環境変数は引き継がれないので、gemを実行する場合、フルパス(/usr/local/bin/gem)で実行します。
(環境変数を引き継ぐように設定したかったのですがわからずじまい。)
$ sudo /usr/local/bin/gem --version
実行結果
[ec2-user@ip-10-117-90-xx ~]$ sudo /usr/local/bin/gem update --system 1.4.2 Updating rubygems-update Fetching: rubygems-update-1.4.2.gem (100%) Successfully installed rubygems-update-1.4.2 Installing RubyGems 1.4.2 RubyGems 1.4.2 installed File not found: README [ec2-user@ip-10-117-90-xx ~]$ sudo /usr/local/bin/gem --version 1.4.2
以降のgemの実行もフルパスで実行しました。。。
gemパッケージのインストール
特になし
MySQLの設定
特になし
Redmineのインストール
4. email.ymlの設定
会社のメールシステムはGoogle Appsを利用していますので、gmailのSMTPサーバーと連携する必要があります。
GMailはSMPTサーバーのポートが587で、またTLSで通信する必要があります。
@namikawa さんの記事
http://d.hatena.ne.jp/rx7/20080501/p2
本家ブログの記事
http://redmineblog.com/articles/setup-redmine-to-send-email-using-gmail/
本家ブログを参考にrailプラグインをインストールしようとしたらエラーが出た。
[ec2-user@ip-10-112-79-92 redmine]$ ruby script/plugin install git://github.com/collectiveidea/action_mailer_optional_tls.git Plugin not found: ["git://github.com/collectiveidea/action_mailer_optional_tls.git"]
方針を変えて、gem install tlsmailの方を試す。
$ sudo /usr/local/bin/gem install tlsmail $ vi config/environment.rb
ファイル末尾に以下を追加
require "tlsmail" Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
Redmineの設定ファイルを編集する。
$ sudo vi config/email.yml
大体、email.yml.exampleそのままです。
# === SMTP server at using TLS (GMail) # # This requires some additional configuration. See the article at: # http://redmineblog.com/articles/setup-redmine-to-send-email-using-gmail/ # production: delivery_method: :smtp smtp_settings: tls: true address: "smtp.gmail.com" port: 587 domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps authentication: :plain user_name: "xxxxx@co-meeting.com" password: "password"
ここでuser_nameはredmineから配信されるメールの送信元になります。
5. Redmineの初期設定とデータベースのテーブル作成
ここでは、rakeがなかったのでrakeも追加
[ec2-user@ip-10-117-90-237 redmine]$ sudo /usr/local/bin/gem install rake Fetching: rake-0.8.7.gem (100%) Successfully installed rake-0.8.7 1 gem installed Installing ri documentation for rake-0.8.7... Installing RDoc documentation for rake-0.8.7...
Passengerのインストール
特になし
PassengerのApache用モジュールのインストール
sudoで実行、パス通ってないのでとりあえずフルパスで実行
$ sudo /usr/local/bin/passenger-install-apache2-module
The Apache 2 module was successfully installed. Please edit your Apache configuration file, and add these lines: LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/ext/apache2/mod_passenger.so PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5 PassengerRuby /usr/local/bin/ruby After you restart Apache, you are ready to deploy any number of Ruby on Rails applications on Apache, without any further Ruby on Rails-specific configuration! Press ENTER to continue.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Apacheの設定
特になし
おまけ
メール設定の確認
設定が有効になったかは、RedmineのAdministration画面で確認できます。
[Administratoin]、[Settings]、[Email notifications]タブを開きます。
有効になってなかったので、一応Apache 再起動してみたら表示できた。Passengerがキャッシュしてる?
このページの右下にある[Send a test email]のリンクをクリックするとテストメールを送信できます。
sudoにパスを引き継ぐ
以下のサイトを参考に、PATHの設定を追加してみました。
http://d.hatena.ne.jp/pirosikick/20110226/1298687877
$ sudo visudo
以下を追加
Defaults env_keep+="PATH"
これは、EC2のインスタンスでは上手くいかなかった。
sudoersの復旧
また、一度visudo使わないで直接/etc/sudoersファイルを編集しようとしてchmodしたらsudoが実行できなくなった。
$ sudo chmod 777 /etc/sudoers
とかやると、以降以下のエラーが出てsudoが実行できなくなるものなのですね、知らなかった。
sudoers is mode 0777, should be 0440
rootのパスワードも変えてなかったのでどうしたもんかと。
しかし、こうなった場合でもEC2は以下のサイトに書いてある方法で復旧可能です。
http://www.vlent.nl/weblog/2010/09/06/locked-myself-out-root-account-ec2-ubuntu-instance/
つまりEBSを別のインスタンスにマウントしてchmodすると。
以下のように修復用インスタンスにEBSを二つセットします。
マウントする時のコマンドは以下のとおり。
$ mkdir /mnt/vol $ sudo mount -w /dev/sda2 /mnt/vol $ cd /mnt/vol $ sudo chmod 440 sudoers