Amazon EC2(Amazon Linux 2)にRedmine3.4をインストール
2018/08/16
久しぶりに新しい環境でRedmineを構築したくなり、せっかくなのでAmazon Linux 2を使って構築してみました。
こちらの記事を大変参考にいたしました。
Redmine 3.4をCentOS 7.3にインストールする手順
いつもありがとうございます!
また別の記事にも書いていますが、これもせっかくなので、データベースには一般利用が始まったばっかりのAmazon RDS Aurora Serverless、ファイルシステムは東京リージョンに来たばっかりのAmazon EFSを使ってみてます。
Amazon Aurora Serverlessを使い始めてみました(1日経過しての課金結果も)
EFSをEC2(Amazon Linux 2)からマウントする
目次
高可用なRedmine
EC2の起動
t2.smallのAmazon Linux 2を起動しました。
Redmineのインストール
rootで操作したいので環境変数のパスだけ渡してユーザーを切り替えます。
1 2 3 4 |
export ORIG_PATH=$PATH $ sudo -s -E export PATH=$ORIG_PATH |
必要なモジュールをインストールします。
1 2 3 4 5 6 7 |
yum -y update yum -y groupinstall "Development Tools" yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel yum -y install mysql mysql-devel yum -y install httpd httpd-devel yum -y install ImageMagick ImageMagick-devel ipa-pgothic-fonts |
Ruby2.4をインストールしました。
1 2 3 4 5 6 7 8 9 10 11 |
curl -O https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.1.tar.gz tar xvf ruby-2.4.1.tar.gz cd ruby-2.4.1 ./configure --disable-install-doc make make install cd .. ruby -v ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux] |
bundleをインストールします。
1 2 |
gem install bundler --no-rdoc --no-ri |
Auroraにアクセスして、Redmine用のデータベースとユーザを作成します。
1 2 3 4 5 |
mysql -h (Auroraのクラスタendpoint) -u user -p create database db_redmine default character set utf8; grant all on db_redmine.* to redmine_user@’%’ identified by '************'; flush privileges; |
Redmineをインストールします。
1 2 |
svn co https://svn.redmine.org/redmine/branches/3.4-stable /var/lib/redmine |
データベースの接続設定を作成します。
1 2 |
vim /var/lib/redmine/config/database.yml |
今回はProductionの環境だけ作成しましたので下記のみを記載するようにしました。
1 2 3 4 5 6 7 8 |
production: adapter: mysql2 database: db_redmine host: (Auroraのクラスタendpoint) username: redmine_user password: *************** encoding: utf8 |
Redmineの設定ファイルを作成します。
1 2 |
vim /var/lib/redmine/config/configuration.yml |
こちらもProductionのみです。
メールの設定はとりあえずです。
attachments_storage_pathを使ってEFSをマウントしているパスに添付ファイルの保存先を変更します。
1 2 3 4 5 6 7 8 9 10 11 |
production: email_delivery: delivery_method: :smtp smtp_settings: address: "localhost" port: 25 domain: "example.com" rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf attachments_storage_path: /var/efs |
必要なモジュールをインストールします。
1 2 |
bundle install --without development test --path vendor/bundle |
シークレットトークンを作成します。
1 2 |
bundle exec rake generate_secret_token |
データベースにテーブルを作成します。
1 2 |
RAILS_ENV=production bundle exec rake db:migrate |
初期データを作成します。
1 2 |
RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data |
passengerをインストールします。
1 2 3 4 |
gem install passenger -v 5.1.12 --no-rdoc --no-ri passenger-install-apache2-module --auto --languages ruby passenger-install-apache2-module --snippet |
LoadModule以降が表示されるのでこれを/etc/httpd/conf.d以下に設定ファイルを作って記述します。
1 2 |
vim /etc/httpd/conf.d/redmine.conf |
1 2 3 4 5 6 7 8 9 10 |
<Directory "/var/lib/redmine/public"> Require all granted </Directory> LoadModule passenger_module /usr/local/lib/ruby/gems/2.4.0/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /usr/local/lib/ruby/gems/2.4.0/gems/passenger-5.1.12 PassengerDefaultRuby /usr/local/bin/ruby </IfModule> |
apacheのドキュメントルートをredmineのディレクトリに変更します。
1 2 3 |
vim /etc/httpd/conf/httpd.conf DocumentRoot "/var/lib/redmine/public" |
apache webサーバを自動起動にしてサーバをスタートします。
1 2 3 4 |
systemctl enable httpd.service service httpd configtest systemctl start httpd.service |
起動しました!
証明書を発行してALB経由にするのはまた次のお話で。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
ALBにWAFを関連付けて特定のヘッダー以外はブロックする
おかげさまで、ブログのアクセスも増えてきて、t3.nano EC2インスタンス単 …
-
NGINXで500と502のエラーが実は頻発していたらしい
先日Mackerelで当ブログの外形監視を始めたのですが、500と502のエラー …
-
CUSTOMINEを使ってkintoneからAWS Lambdaを実行する(Cognito認証付き)
先日の記事「kintoneのカスタマイズ開発を超速にするCUSTOMINE」で書 …
-
WordPress、プラグインのアップデートしてBlue/Greenデプロイ
現在のブログの構成です。 WordPressとプラグインのアップデートをして、デ …
-
「関西AWSスタートアップ勉強会」に行ってきました
第2回 関西スタートアップAWS勉強会に行ってきました。 akippa 拠点数コ …
-
AWS Lambda(Python)からTwitterに投稿する
「GoogleフォームからAPI Gatewayで作成したREST APIにPO …
-
特定のIAMロールをLambda(Python)で削除する
やりたいこと 特定アカウントの特定の名前が含まれるIAMロールをまとめて削除した …
-
Amazon S3オブエジェクトへのリクエストをCloudTrail, Athenaで識別
こちらCloudTrail を使用した Amazon S3 リクエストの識別に書 …
-
EC2にSystems MangerからCloudWatchエージェントをインストール
CloudWatchエージェント EC2の標準メトリクスでは収集できないメモリの …
-
Amazon CloudSearchからAmazon Elasticsearch Serviceへ変えました
全文検索をする必要がありまして、本当はCloudSearchを使い続けたいのです …