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認定クラウドプラクティショナー 改訂第2版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
T3.nanoで仮想メモリ割当をユーザーデータで実行する
T3.nanoはメモリがだいたい500MBです。 実行する処理によってはメモリエ …
-
AWS Trusted Advisorの2023/11/17発表のAPI
2023/11/17に発表されたAWS Trusted Advisor の新しい …
-
slackのbotに天気を教えてもらう(Python on AWS Lambda + API Gateway)
slackのbotにAPIの定番ともいえる天気情報を教えてもらいました。 環境は …
-
AWS WAF Web ACLとルールをv1(Classic)からv2に自動移行しました
新しいものは、課題が解決されていたり、機能追加されたりするのでいいものです。 長 …
-
Amazon Timestreamのサンプルデータベースを起動しました
マネジメントコンソールTimestreamにアクセスして、[データベースを作成] …
-
X-Ray SDK for Python でライブラリへのパッチ適用
boto3でのAWS呼び出しとrequestsでの外部API呼び出しにパッチ適用 …
-
EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効期限は短くできるのでしょうか
「EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効 …
-
VyOSでssm-userからvyosユーザーに切り替える
EC2 VyOSで/etc/resolv.confを設定しました VyOSにSS …
-
AWS CloudFormationでAmazon DynamoDBテーブルを作ってアイテムを追加する
デモ用にDynamoDBテーブルを作って消して、ということをたまにするので、Cl …
-
AWS認定ソリューションアーキテクトアソシエイトのサンプル問題
AWS認定ソリューションアーキテクトアソシエイトのサンプル問題の解説を会社のブロ …