Warning: Invalid argument supplied for foreach() in /home/minamachijp/minamachi.jp/public_html/mnc/wp-content/themes/mnc/functions/menu.php on line 48

Redmineサーバーを構築しよう!

Redmineを利用することで、プロジェクトの進捗を管理したり、チームのタスクをメンバーと共有したり社内で情報を共有できます。これから、redmineの構築手順を説明していきます。

      1. SELinuxのステータスを確認し、disableにします。

        vi /etc/selinux/config でファイルを開き、ステータスをdisableにします。
        (viコマンドを使うことで、ファイル内の内容を編集できます。)
        (SELinuxとは、システムにアクセスできるユーザーを管理者がより詳細に制御できるようにします。)
        (/etc/selinux/configは、SELinuxの設定ファイルで、SELinux を有効、無効の設定をします。)

        変更後、設定を反映させるために再起動させます。

        reboot (OSを再起動させます。)

        httpdの設定

        httpd

        httpdとは、Webサーバーのプログラムの総称です。httpdは、Webブラウザなどからの要求に応じて、Webサーバー内コンテンツの送信をする役割を担っています。そのため、webサーバーを利用する為に、httpdを設定する必要があります。

        httpdをインストールします。

        dnf -y install httpd
        (dnfコマンドは、ソフトウェアをパッケージの形でインストールできます。)
        ウェルカムページはリネームします。
        mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.org

        httpdのステータスを確認します。

        systemctl status httpd
        (現在のhttpdの状況を確認します。)

        httpdの設定をします。サーバーの名前等は自身の環境に置き換えてください。

        vi /etc/httpd/conf/httpd.conf
        (/etc/httpd/conf/httpd.confには、httpdの設定が書かれているため、viコマンドで編集します。)
        # 89行目:管理者アドレス指定
        ServerAdmin root@srv.world
        # 98行目:コメント解除しサーバー名指定
        ServerName www.srv.world:80
        # 147行目:変更 (Indexes は削除)
        Options FollowSymLinks
        # 154行目:変更
        AllowOverride All
        # 167行目:必要に応じて追記 (ディレクトリ名のみでアクセスできるファイル名)
        DirectoryIndex index.html index.php index.cgi
        # 最終行に追記
        # サーバーの応答ヘッダ
        ServerTokens Prod

        httpdのステータスをactiveにします。(ステータスがinactiveの場合)

        systemctl enable –now httpd
        (httpdが利用できるように、systemctlコマンドでステータスをactiveにします。)
        systemctl restart httpd
        (変更した内容を反映させます。)
        sytemctl status httpd
        (設定できているか、確認します。)

        firewallのステータスを確認します。

        firewall-cmd –list-all
        (ファイアーウォールでhttpdを許可しなければ、利用できません。そのため、servicesの欄にhttpdが追加されているか確認し、なければ設定します。)

        httpdをfirewallで許可します。(永続的に)

        systemctl enable –now httpd
        (httpdを自動起動するようにします。)
        firewall-cmd –add-service=http –permanent
        (ファイアーウォールにhttpdを追加します。)
        firewall-cmd –reload
        (ファイアーウォールの設定を更新します。)
        firewall-cmd –list-all
        (設定が反映されているか確認します。)

        SMTPの設定

        SMTPとは、

        メールサーバーを利用する為に、postfixをインストールします。Postfixは、 メール転送エージェントサーバーのことです。

        Postfix をインストールして SMTP サーバーを構築します。

        dnf -y install postfix
        (dnfコマンドで、postfixをインストールします。)
        systemctl enable –now postfix
        (postfixを有効にします。)

        SMTPをfirewallで許可します。

        firewall-cmd –add-service=smtp –permanent
        (ファイアーウォールでsmtpを永続的に許可させます。)
        firewall-cmd –reload
        (設定を反映させます。)

        PostgresSQLの設定

        PostgresSQLとは、

        PostgreSQL(ポストグレスキューエル)は、コンピュータ上でデータベースを操作できるようにした管理システムのことです。

        PostgreSQL 10をインストールします。

        dnf install  https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
        (ダウンロードサイトを指定し、インストールします。)
        dnf -qy module disable postgresql
        (Yum は後継バージョンの DNFに置き換えられ、パッケージをモジュールとして管理するようになっています。そのため、postgresql10-server パッケージをインストールしようとすると、OS 標準の postgresql モジュールが優先されてしまい、パッケージが見つからずにエラーになってしまいます。そのため、postgresql モジュールを無効にした上で、パッケージをインストールするようにします。)
        dnf module -y install postgresql:10
        (postgresql モジュールを無効にした上で、パッケージをインストールします。)
        export PGSETUP_INITDB_OPTIONS=”–encoding=UTF-8 –no-locale”
        postgresql-setup –initdb
        (PostgreSQLは、サービス起動前にデータベースクラスタを作成する必要があります。データベースクラスタは、複数のデータベースがあつまったものだと思ってください。デフォルト文字コードをUTF-8として、データベースクラスタを作成します。)
        systemctl enable –now postgresql
        (PostgreSQL自動起動の設定を行います。)

        rubyの設定

        Ruby

        rubyを使用することで、Webサイトの業務システムを効率良く開発できるようになります。

        Rubyをインストールします。

        dnf module list ruby
        (バージョンを確認します。)
        dnf module -y install ruby:2.7
        (バージョン2.7のrubyをインストールします。)
        ruby -v
        (インストールされているか確認します。)

        Ansibleで、redmineを構築

        Ansible

        Ansibleの特徴は、ITインフラに係る様々な作業を自動化できます。

        Ansibleとgitのインストール

        yum update -y
        (すべてのパッケージをアップデートします。)
        yum install -y epel-release glibc-locale-source
        (epel-releaseというリポジトリの中から、日本語のロケールを利用できるようにインストールします。)
        yum install -y ansible git
        (ansibleとgitをインストールする。Gitは、ファイルの変更履歴を管理するツールです。)

        Dockerの場合は以下も実行。
        yum install -y policycoreutils selinux-policy-targeted firewalld sudo

        playbookのダウンロード

        git clone https://github.com/farend/redmine-centos-ansible.git
        (リポジトリからダウンロードします。)

        PostgreSQLに設定するパスワードを変更します。

        cd redmine-centos-ansible/group_vars/
        (cdコマンドで移動します。)
        vi group_vars/redmine-servers
        (PostgreSQLに設定するパスワードを変更します。)
        (注意! コロンとパスワードの間は一つ分の空白を入れること。 そうしないと正しく読み込まれません。)

        playbook実行(redmineの自動インストールが始まります。)
        cd redmine-centos-ansible
        (cdコマンドで移動します。)
        ansible-playbook -i hosts site.yml
        (redmineを自動インストールさせます。)
        20分ほどでインストールが完了します。
        完了後、http://サーバーipアドレス/redmineにアクセスして確認します。

        メモリ不足で、インストールできない場合・・・

        swap領域を作ります。

        swap領域とは、ハードディスクの中に、「スワップ」という領域を作ります。
        そこに、物理メモリ領域の内容を一時的に退避させて、物理メモリに書き戻すといった動作をしています。

        SWAP領域用のファイルを作成しておきます。

        cat /proc/swaps
        (スワップ領域とその使用状況を確認できます。)
        dd if=/dev/zero of=/swap.extended bs=1G count=8
        (スワップファイルを作成するため、swap領域用のファイルを作成します。)
        (ddは、デバイスの内容をそのままコピーできるコマンドです。)

        Linux のスワップ領域をデバイス上またはファイル上に準備します。

        mkswap /swap.extended
        (mkswapコマンドを使用することで、スワップ領域をデバイス上またはファイル上に準備することができます。)
        (通常スワップ領域は /etc/fstab にリストされます。)

        権限を変更します。

        chmod 0600 /swap.extended
        (swaponの実行時に、スワップファイルのパーミションについて次の様な警告が出ることがあります。そのため、スワップファイルを推奨のパーミッションである0600に変更します。)

        領域を有効後に確認します。

        swapon /swap.extended
        (swaponコマンドで、スワップ領域の利用を開始します。)
        swapon -s
        (sオプションステータスを確認できます。)

        /etc/fstabを編集する前に、バックアップを行います。

        mv -b /etc/fstab /etc/fstab.org1
        (mvコマンドで、バックアップをとっておきます。)

        /etc/fstabに/swap/extended記入

        vi /etc/fstab
        (/etc/fstabの下の欄に、/swap/extendedを記入します。)
        cat /etc/fstab
        (記入されているか確認します。)

        passengerを導入します。

        cd redmine-centos-ansible/
        (cdコマンドで移動します。)
        /usr/local/lib/ruby/gems/2.6.0/gems/passenger-6.0.17/bin/passenger-config compile-agent
        (Passengerとは、Apacheに組み込めるRailsアプリケーション実行のためのモジュールです。)

        httpdを再起動

        systemctl restart httpd
        (設定を反映させます。)

        最後に、ステータスを確認

        systemctl status httpd
        (設定されているか確認します。)

        最後に、エラー報告

        ・ansible-playbook -i hosts site.ymlを実行後、power toolインストールのところでエラーが発生。
        cd redmine-centos-ansible/roles/system/tasks/
        vi main.yml
        power toolの欄を削除することで解決。

        ・ansible-playbook -i hosts site.ymlを実行後、passengerダウンロードのところでエラーが発生。
        cd redmine-centos-ansible/
        usr/local/lib/ruby/gems/2.6.0/gems/passenger-6.0.17/bin/passenger-config compile-agent
        Checking for required software…を実行することで解決。

        ・Apache HTTP Server…
        ntax error on line 59 of /etc/httpd/conf/httpd.conf: Syntax error on line 1 of /etc/httpd/conf.modules.d/10-proxy_h2.conf: Cannot load>
        e: Main process exited, code=exited, status=1/FAILURE が発生。
        cd /etc/httpd/conf.modules.d/ に移動。
        vi /etc/httpd/conf.modules.d/10-proxy_h2.conf
        ファイルの中のLoadModule proxy_http2_module modules/mod_proxy_http2.soをコメントアウトし、httpdを再読み込みさせることで解決。

最近の情報

BLOG

BLOG

BLOG

コメント

この記事へのコメントはありません。

TOP
TOP