はじめに
みなさま初めまして弐進(ニシン)と申します。長い1年間の社内研修を終えたぺーぺーのSEです。
今回は配属1週間目にしてAWSを用いてRedmineの構築を命じられ、四苦八苦しながらも達成したので構築に際して参考にした記事とそれ以外に詰まったところメモを自身の備忘録代わりに記事にしていきます。
目次
- 構築の条件
- 手順1 SSH接続
- 手順2 下準備
- 手順3 環境構築
構築の条件
今回はIaaSでイチからRedmineを構築していきます。AWSのAMIにはbitnamiのオールインワンパッケージが存在しますが今回はこれを使いません。上司からの指定+Linuxへの知見を深めるためです。(正直、できるなら楽をしたかったのですが……笑)その他指定された条件は以下の通りです。
- OS:RHEL8
- DB:MySQL8
- バックアップ:1回/日 7世代分をRedmineと同一インスタンス内にとる
- インスタンスは用意したプライベートサブネット内に作成してSSHは踏み台インスタンスからのみ許可
指定されたこと以外はなるべく楽をしました。
手順1 SSH接続
いきなりここで躓きました。単純なクライアントtoサーバーのSSH接続は経験があったのですが、踏み台サーバーを通して目的のサーバーに接続した試しはありません。最初は踏み台サーバーに鍵をおいて踏み台サーバー上でSSHコマンドぶっぱすればいいでしょとかいう、セキュリティホールの権化のような単純な発想になりかけたのですが思いとどまり、クライアントに鍵を置いた状態で接続する方法をさがしました。
ProxyCommandという便利なモノを発見。これを使えば楽に多段SSHができました。こちらの記事を参考させていただいたので、手順の説明に代えて記事のリンクを貼っておきます。
参考1: ProxyCommandでsshの多段接続をする - Qiita
参考2: 多段SSH, ポートフォワーディングの方法 - わくわくBank
手順2 下準備
RubyやMySQL、Redmineのインストールの前に必要なパッケージのインストールを済ませます。Apacheもあらかじめインストールしておきます。
SELinuxの無効化
AWSのRHEL8パッケージではSElinuxが有効化されていますので、こちら無効化しておきます。エディタで/etc/sysconfig/selinux
を開いて、SELINUX=disabled
に書き換えてください。
dnfのアップデート
のちのちのインストールでエラーが出ることがあったので、dnfをアップデートします。
$ dnf --releasever=8 -y update dnf
開発ツールやEPELなどのインストール
開発ツールのインストールをします。
$ dnf -y groupinstall "Development Tools"
続けてEPELのインストールをします。EPELのインストール前にDnf(yum) updateすると rhui-codeready-builder-for-rhel-8-rhui-rpm が codeready-builder-for-rhel-8-rhui-rpm として登録されてしまい、インストールに失敗するので注意してください。(私はここで詰まりました。。。)
$ dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
$ dnf config-manager --set-enabled rhui-codeready-builder-for-rhel-8-rhui-rpms
RubyとPassengerのインストールに必要なツールをインストールします。
$ dnf -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel
ImageMagickのインストールをします。
$ dnf -y install ImageMagick ImageMagick-devel
Redmineで使う日本語フォントをIPAからダウンロードして展開します。
$ curl -OL https://ipafont.ipa.go.jp/IPAexfont/ipaexg00401.zip
$ unzip ipaexg00401.zip -d /usr/share/fonts/
Apacheのインストールをして、下準備は完了です。
$ dnf -y install httpd httpd-devel
手順3 環境構築
環境構築とざっくりまとめましたが、RubyのインストールからRedmineのインストールに至るまで、(インストールするバージョンの違いはあれど)このあとに紹介する記事の手順に沿って行いました。ただ、Redmineの設定ファイル/opt/redmine-4.1.0/config/configuration.yml
の編集内容は、先にインストールしておいたIPAの日本語フォントを使うので以下のようになります。
production:
email_delivery:
delivery_method: :smtp
smtp_settings:
address: "localhost"
port: 25
domain: 'myhost.com'
rmagick_font_path: /usr/share/fonts/ipaexg00401/ipaexg.ttf
インスタンスサイズ(メモリサイズ)が小さいとPassengerのインストールが失敗することがあります。その場合はSWAP領域を用意するか、それでもダメな時はいっそのことスケールアップすることで解決します。(私はSWAPファイル作成してもうんともすんとも言わなかったので、スケールアップしました。初期はt2.microサイズでした。メモリは2GiBはあるほうがいいと思います)
参考4: Redmine 3.2 のインストール手順 (CentOS 7, Apache 2.4, MySQL) | WEB ARCH LABO
参考5: rbenv+ruby-buildをインストールする手順 (CentOS/RedHat) | WEB ARCH LABO
参考6: Rubyをrbenv+ruby-buildを利用してCentOSにインストールする手順 | WEB ARCH LABO
参考7: rbenv を使って ruby をインストールする(CentOS編) - Qiita
最後のひとこと
AWSのRHEL8にRedmineをインストールするにあたって詰まったところを補足する形で、参考にした記事をまとめました。最低限の備忘録にはなったと思います。なにかお気づきの点あればコメントくださると幸いです。