【tech】【Movie】KVM環境のCentOS8にnginxでRedmine4を動かすメモ



CentOS8にRedmine4をインストールしてみました!(webrick)

https://kusomemo.tokyo/tech/centos8-redmine4-webrick/

apache版もあります!

【tech】CentOS8 (on KVM)にRedmine4をインストールするメモ(Apache版)

そして今回はnginxで動かします!

動画作りました!

・環境


CentOS 8.0 (minimal) on KVM
(IP:192.168.56.101)
WEB:Nginx
DB:MySQL 8
MariaDB rootユーザPW:RootPW123!
Redmine用DB名:redmine
RedmineDB ユーザ:redmine
Redmineuser PW:Redmine123!


私が使っているPC(のメモリが8GBの物)です!
私は今このPCのメモリを現在では32GBにアップグレードして使っています!笑
安くなりましたよねメモリ。SSDも安くなってるので買い換えたいです!笑

それでは手順です!

・Redmine関連PKGのインストール
dnf install -y zlib-devel patch curl-devel openssl-devel httpd-devel libtool apr-devel apr-util-devel bzip2 mysql-devel ftp wget gcc-c++ autoconf readline readline-devel zlib libffi-devel make automake bison subversion

・GPGキーのインポート
curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -

・rvmのダウンロード
curl -sSL https://get.rvm.io | bash -s stable

・rvmの展開
source /etc/profile.d/rvm.sh

・rvmのインストール
rvm install 2.6.0

・rvmのリロード
source /usr/local/rvm/scripts/rvm

・.bashrcへ追記
echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrc

・./bashrcのリロード
source ~/.bashrc

・ver確認
ruby -v
rvm -v

・MySQLのリポジトリ追加
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm

・MySQLをインストール
dnf install -y mysql-server

・MySQLを起動
systemctl start mysqld

・MySQLの自動起動
systemctl enable mysqld

・MySQLの初期設定
mysql_secure_installation
→何も入力せずに「Enter」
 PW:Root123!
 それ以降は4回全て「y」でOKです!

・MySQLモードへ以降
mysql -u root -p
→Root123!

・DBの作成
create database redmine;

・ユーザの作成
create user redmine@localhost identified by 'Redmine123!';

・権限設定
grant all privileges on redmine.* to redmine@localhost ;

・設定保存
flush privileges;

・mysqlを抜ける
exit

・Passengerのインストール
gem install passenger -N

・Nginxのインストール
passenger-install-nginx-module

→下記メッセージが表示されたら「Enter」


Welcome to the Phusion Passenger Nginx module installer, v6.0.2.

This installer will guide you through the entire installation process. It
shouldn't take more than 5 minutes in total.

Here's what you can expect from the installation process:

  1. This installer will compile and install Nginx with Passenger support.
  2. You'll learn how to configure Passenger in Nginx.
  3. You'll learn how to deploy a Ruby on Rails application.

Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.

Press Enter to continue, or Ctrl-C to abort.


→下記メッセージが表示されたら「!」を入力。
Ruby・Pythonにスペースキーでチェックをつけて「Enter」


Which languages are you interested in?

Use < space > to select.
If the menu doesn't display correctly, press '!'

(*) Ruby
> (*) Python
( ) Node.js
( ) Meteor


下記メッセージが表示されたら「1」→「Enter」
→ダウンロードが始まります。


Automatically download and install Nginx?

Nginx doesn't support loadable modules such as some other web servers do,
so in order to install Nginx with Passenger support, it must be recompiled.

Do you want this installer to download, compile and install Nginx for you?

  1. Yes: download, compile and install Nginx for me. (recommended)
    The easiest way to get started. A stock Nginx 1.15.8 with Passenger
    support, but with no other additional third party modules, will be
    installed for you to a directory of your choice.

  2. No: I want to customize my Nginx installation. (for advanced users)
    Choose this if you want to compile Nginx with more third party modules
    besides Passenger, or if you need to pass additional options to Nginx's
    'configure' script. This installer will 1) ask you for the location of
    the Nginx source code, 2) run the 'configure' script according to your
    instructions, and 3) run 'make install'.

Whichever you choose, if you already have an existing Nginx configuration file,
then it will be preserved.

Enter your choice (1 or 2) or press Ctrl-C to abort: 1


下記メッセージが表示されたら「Enter」


Downloading Nginx...
Verifying Nginx checksum...
Extracting Nginx source tarball...
# tar xzvf /tmp/passenger.1u3rsgk/nginx.tar.gz
nginx-1.15.8/
////////////////////////////
nginx-1.15.8/auto/cc/name
nginx-1.15.8/auto/cc/owc
nginx-1.15.8/auto/cc/sunc


Where do you want to install Nginx to?

Please specify a prefix directory [/opt/nginx]:


下記メッセージが表示されたら「Enter」で完了です。


--------------------------------------------

Nginx with Passenger support was successfully installed.

The Nginx configuration file (/opt/nginx/conf/nginx.conf)
must contain the correct configuration options in order for Phusion Passenger
to function correctly.

This installer has already modified the configuration file for you! The
following configuration snippet was inserted:

http {
...
passenger_root /usr/local/rvm/gems/ruby-2.6.0/gems/passenger-6.0.2;
passenger_ruby /usr/local/rvm/gems/ruby-2.6.0/wrappers/ruby;
...
}

After you start Nginx, you are ready to deploy any number of Ruby on Rails
applications on Nginx.

Press ENTER to continue.


・ディレクトリの移動
cd /opt/nginx/

・ディレクトリの移動
cd conf/

・configファイルの作成
vi nginx.conf
→23行目に下記設定追加


include vhost/*.conf;


・ディレクトリの作成
mkdir -p /opt/nginx/conf/vhost

・ディレクトリの移動
cd /opt/nginx/conf/vhost/

・redmine用のconfig作成
vi redmine.conf

→下記設定の記述

server {
listen 80;
server_name www.kusomemo.tokyo;

root /var/www/redmine/public;
passenger_enabled on;
client_max_body_size 10m; # Max attachemnt size

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

・ディレクトリ移動
cd /lib/systemd/system/

・サービスの定義
vi nginx.service
→下記設定を記述


[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target


・systemdのリロード
systemctl daemon-reload

・Nginxの起動
systemctl start nginx

・Nginxの自動起動設定
systemctl enable nginx

・portの確認
#netstat -plntu | grep nginx
ss -ltup | grep nginx


オプション
l:LISTEN状態にあるソケットのみ表示
t:TCPソケットを表示
u:UDPソケットを表示
p:ソケットを使用しているプロセスも表示


・ディレクトリの作成
mkdir -p /var/www/redmine

・ディレクトリの移動
cd /var/www

・Redmineのダウンロード
svn co http://svn.redmine.org/redmine/branches/4.0-stable redmine
→下記メッセージが表示されたら「T」→「Enter」
※まれにERRORになりましたが、もう一度同じコマンドを
入力したら何故かダウンロードできました。


Error validating server certificate for 'https://svn.redmine.org:443':
- The certificate is not issued by a trusted authority. Use the
fingerprint to validate the certificate manually!
Certificate information:
- Hostname: svn.redmine.org
- Valid: from Sun, 08 Jan 2017 00:00:00 GMT until Wed, 08 Jan 2020 23:59:59 GMT
- Issuer: Gandi, Paris, Paris, FR
- Fingerprint: ab:f1:c8:b7:69:a6:99:bd:20:c1:59:a4:5f:60:9e:27:2d:81:82:b7
(R)eject, accept (t)emporarily or accept (p)ermanently?


・ディレクトリの移動
cd redmine

・サンプルファイルのコピー
cp config/configuration.yml.example config/configuration.yml

・サンプルファイルのコピー
cp config/database.yml.example config/database.yml

・ymlファイルの編集
vi config/database.yml
→DB「redmine」のユーザ名・パスワードを編集

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "Redmine123!"
  encoding: utf8

・ディレクトリの作成
mkdir -p tmp tmp/pdf public/plugin_assets

・所有者の変更
sudo chown -R nobody:nobody files log tmp public/plugin_assets

・権限の変更
sudo chmod -R 775 files log tmp public/plugin_assets

・bundlerのインストール
gem install bundler

・bundleインストール
bundle install --without development rmagick test

・トークンの作成
bundle exec rake generate_secret_token

・DBの作成
RAILS_ENV=production bundle exec rake db:migrate

・デフォルトデータロード
RAILS_ENV=production bundle exec rake redmine:load_default_data
→「Enter」

・Nginxのリスタート
systemctl restart nginx

・firewallの許可
firewall-cmd --add-service=http --permanent

・firewallの再起動
firewall-cmd --reload

ブラウザを立ち上げ「192.168.100.101」へアクセス

画面右上の「ログイン」をクリック。

Login:admin
Password:admin

※初回のログインはパスワードの変更を求められます。

以上です、無事インストールできましたか?できなかった方はコメントください!

下のRedmineの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)



【tech】【Movie】CentOS8 (on KVM)にRedmine4をインストールするメモ(Apache版)



CentOS8がリリースされてから過去にインストールしたOSSのソフトウェアをインストールしていっています。
CentOS8からKVMで仮想化したサーバへインストールしています。
ホストサーバは昔使っていたノートPCにメモリ増設して、CentOS8をインストール、KVMで仮想化しているので、ホストサーバがなくて困っている方もヤフオクなどで古めのcore i7のクアッドコアのPCなどをゲットしてぜひ遊んでみて下さい!笑

ノートPCにKVM環境を構築した手順のメモです(動画もあります!)

【tech】【動画あり】CentOS8でKVMの仮想化環境構築vBridgeの作成メモ



それではさっそく

環境


・作業PC
OS:Win10
IPアドレス:192.168.100.2
GW:192.168.100.1

・ルータ
YAMAHA:RTX1200

・ホストPC(ノートPC DELL n5110)
OS:CentOS8 (minimal)
IPアドレス:192.168.100.10/24
GW:192.168.100.1

ゲストVM
OS:CentOS8 (minimal)
IPアドレス:192.168.100.101/24
GW:192.168.100.1
MW:Apache
Redmine:Ver4



手順

・firewallにhttpの許可を追加
firewall-cmd --zone=public --add-service=http --permanent

・firewallを再起動
firewall-cmd --reload

・SELINUXの状態を確認
getenforce
→Enforcing

・SELINUXをOFFにする
vi /etc/sysconfig/selinux
→SELINUX=disabledに編集

・開発ツールのインストール
dnf group install -y "Development Tools"

・その他のツールをインストール
dnf install -y openssl-devel readline-devel zlib-devel curl-devel libffi-devel subversion


・PostgreSQLのインストール
dnf install -y postgresql-server postgresql-devel

・Apacheのインストール
dnf install -y httpd httpd-devel

・アップデート
dnf update -y

・Rubyのインストール
curl -O https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.5.tar.gz

・Rubyの展開
tar xvf ruby-2.6.5.tar.gz

・ディレクトリの移動
cd ruby-2.6.5

・スクリプトの実行
./configure --disable-install-doc



・コンパイル
make

・インストール
make install

・ディレクトリ移動
cd ..

・インストール後の確認
ruby -v

・bundlerのインストール
gem install bundler --no-doc

・PostgresSQLの設定
postgresql-setup initdb

・redmineからアクセス設定
vi /var/lib/pgsql/data/pg_hba.conf
※viは「/Put」で検索できます。


# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records. In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.

host redmine redmine 127.0.0.1/32 md5
host redmine redmine ::1/128 md5




・PostgreSQLの自動起動設定
systemctl enable postgresql.service

・PostgreSQLの起動
systemctl start postgresql.service

・ディレクトリ移動
cd /var/lib/pgsql

・redmine用ユーザの作成
sudo -u postgres createuser -P redmine
→PW:Redmine123!

・redmine用DBの作成
sudo -u postgres createdb -E UTF-8 -O redmine -T template0 redmine

・ディレクトリ移動
cd

・redmineのダウンロード
svn co http://svn.redmine.org/redmine/branches/4.0-stable/ /var/lib/redmine
→拒否しますか (R)、一時的に承認しますか (t)、常に承認しますか (p)? t



・ディレクトリ移動
cd /var/lib/redmine

・設定ファイル作成
vi config/database.yml

production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: "Redmine123!"
  encoding: utf8

・gemパッケージのインストール
bundle install --without development test rmagick --path vendor/bundle



・REDMINE初期設定、初期データの作成
bundle exec rake generate_secret_token

・データベースのテーブル作成
RAILS_ENV=production bundle exec rake db:migrate

・デフォルトデータの登録
RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

・Passengerのインストール
gem install passenger -v 5.1.12 --no-doc

・PassengerのApache用モジュールのインストール
passenger-install-apache2-module --auto --languages ruby



・Apache用設定内容の確認
passenger-install-apache2-module --snippet
→ここで表示された結果を下記ファイルの「#ここから」「#ここまで」の間へ貼り付け

・Apacheの設定
vi /etc/httpd/conf.d/redmine.conf

<directory "/var/lib/redmine/public">

  Require all granted

</directory>

#ここから

LoadModule passenger_module /usr/local/lib/ruby/gems/2.6.0/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/lib/ruby/gems/2.6.0/gems/passenger-5.1.12
  PassengerDefaultRuby /usr/local/bin/ruby
</IfModule>

#ここまで

・Apacheの自動起動設定
systemctl enable httpd.service

systemctl start httpd.service

・所有者/グループの変更
chown -R apache:apache /var/lib/redmine

・サブディレクトリでredmineを実行する
※ここではサブディレクトリ手順にしています。
専用サーバの場合はオフィシャルをご確認ください!
vi /etc/httpd/conf.d/redmine.conf



Alias /redmine /var/lib/redmine/public
<location /redmine>

PassengerBaseURI /redmine

PassengerAppRoot /var/lib/redmine

</location>

・httpの再起動
systemctl restart httpd

・SELINUXの変更を更新させるため再起動
reboot

・Redmineへアクセス
ブラウザから「http://192.168.100.101/redmine」へアクセスする。

初期ID:admin
初期PW:admin

インストールできましたか?
もしできなかったらコメントください!





久しぶりにみてみると、モバイルバッテリーもずいぶん安くなってるんですね!

皆さん既にやってると思いますが、 AmazonPrimeだとAmazon Music Unlimitedが月額780円でできるんですね!
最近知ってapple musicから乗り換えました。(200円ですが安い方がいいに越したことはないです笑)

下のPythonの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)



【tech】【動画あり】CentOS8でKVMの仮想化環境構築vBridgeの作成メモ



動画作りました!
CentOS8がリリースされて、早いものでもう一か月たちましたね!
自宅のワークステーションにインストールしようとしていたのですが、
CentOS8からHDDを認識できず、知らべてみると、SASのハードディスクは
認識しなくなっているようです。

CentOS7シリーズからはハードディスクを認識できるのに、
CentOS8からHDDを急に認識しなくなったので何かおかしいなと思っていました。
そんなこんなでCentOS8の波に乗り遅れてしまっていたのですが、
その間に使っていなかった昔ヤフオクで買ったレノボのノートPCにCentOS8を
インストールしてみたので、そのメモです。

インストールしてCentOS8をインストールしてKVMで仮想化基盤化したので、
ここにZabbixや最近勉強中のPostgresSQLをいれて勉強しようと思います。

まずはKVMで仮想化して、VMからインターネットへ接続するところまでを
手順のメモとして書き残したので、興味がある方はぜひやってみて下さい!


環境


作業PC
OS:Win10
IPアドレス:192.168.100.2
GW:192.168.100.1

ホストPC(ノートPC DELL n5110)
OS:CentOS8 (minimal)
IPアドレス:192.168.100.10/24
GW:192.168.100.1
IFファイル:ifcfg-enp5s0
※「自動的に接続する」のcheckは外す

ゲストVM
OS:CentOS8 (minimal)
IPアドレス:192.168.100.101/24
GW:192.168.100.1
IFファイル:ifcfg-enp1s0




前提条件

1.ホストOSのネットワーク設定は済ませておく。
2.作業PCからssh接続しての操作手順となっています。
※ホストPCのコンソールから直接操作しても問題ないと思いますが、
ブリッジの工程がリンクアップせずうまくいかないと思います
3.作業PCからteratermを使用してホストPCへSSH接続

手順

・teratermの機能を使用してISOファイルをホストPCに転送しておく
ファイル→sshscp→ISOファイル選択

・仮想化支援PKGのインストール
dnf -y install libguestfs libvirt libvirt-client qemu-kvm qemu-img virt-manager virt-top virt-viewer virt-who virt-install

・インターフェース状態の確認
ip a

・vBridge作成の為のsh作成
sudo vi make_vbridge.sh
下記の構文をコピペする
 ※利用中のDEVICEに値を合わせてください
  「nmcli c s」コマンド出力のDEVICEの値です。




#!/bin/bash
nmcli connection add type bridge con-name br0 ifname br0
nmcli connection add type bridge-slave ifname enp5s0 master br0

nmcli connection modify br0 ipv4.address 192.168.100.10/24 ipv4.method manual
nmcli connection modify br0 ipv4.gateway 192.168.100.1

nmcli connection down enp5s0
nmcli connection up br0


「:wq」で保存する

・シェルスクリプトの実行
sh make_vbridge.sh
→teratermが落ちます。ブリッジが構成されるまでしばらく待ちます。
※pingなどを打って疎通がとられるようになるまで待ちましょう

pingがかえってきたらteratermでSSH接続します。


ゲストVMの作成

・ゲストVMのDISK作成
qemu-img create -f qcow2 /var/lib/libvirt/images/template.img 20G

・libvirtdのステータス確認
systemctl status libvirtd
systemctl enable libvirtd
systemctl start libvirtd

・ディレクトリ移動
cd ~

・IOSファイルを移動させる
mv CentOS-8-x86_64-1905-dvd1.iso /tmp/CentOS-8-x86_64-1905-dvd1.iso

・ゲストVMの作成

virt-install \
--name template \
--memory 2048 \
--vcpus 2 \
--disk /var/lib/libvirt/images/template.img \
--location /tmp/CentOS-8-x86_64-1905-dvd1.iso \
--os-variant rhel8.0 \
--network bridge=br0 \
--graphics none \
--extra-args='console=tty0 console=ttyS0,115200n8' \
--hvm



インストーラが動き出します


オプション解説
・name
ゲストインスタンスの名前です

・memory
ゲストのメモリー割り当てを設定します
RAMの容量です。上記の場合2GBです

・vcpus
ゲストに設定する仮想 CPU 数

・disk
今回の手順のように事前にDISKを作成していた場合、
DISKパスを指定します。

・location
ISOファイルの場所です。URLでもいいです。その場合、

・os-variant
Linuxやwindowsであることを指定します

・network
ゲストのネットワークインターフェースを設定します。

・gaphics
ゲストのディスプレイ設定を設定します。

・extra-args='console=tty0 console=ttyS0,115200n8'
コンソール接続の指定

・hvm
完全仮想化の指定




5.Installation Destination
※設定値は任意で設定お願いします。下記は参考です。
「5」→「Enter」→「c」→「Enter」→「3」→「Enter」→「c」→「Enter」→「3」→「Enter」→「c」→「Enter」

4.Software selection
「4」→「Enter」
「3」→「Enter」→「c」→「Enter」→「c」→「Enter」

7.Network configuration
「7」→「Enter」→「2」→「Enter」→「7」→「Enter」→「c」→「Enter」→「c」→「enter」

8.Root password
「8」→「Enter」
任意のPWを設定

インストール開始

「b」

インストールが始まるので起動するまで待つ
下記画面がでたら「Enter」


....
Configuring addons
Executing org_fedora_oscap addon
Executing com_redhat_kdump addon
.
Generating initramfs
.
Running post-installation scripts
.
Storing configuration files and kickstarts
.
Installation complete. Press ENTER to quit:
\=============================================================================================================================================================


・NWの設定
nmtui

IPアドレスを192.168.100.101/24に設定、自動接続にする
ping 8.8.8.8でインターネットに疎通がとられるかどうかを確認する。

・VMのクローン

virt-clone --original template --auto-clone

以上で終わりです!
今度はKVM上の仮想サーバにZabbix4やRedmine4を構築していってその手順をメモしようと思います!ぜひお楽しみに!

・Redmine4の構築手順メモです!

【tech】【動画あり】CentOS8.0(on KVM)にRedmine4インストールしたメモ(WEBrick版)



久しぶりにみてみると、モバイルバッテリーもずいぶん安くなってるんですね!

皆さん既にやってると思いますが、 AmazonPrimeだとAmazon Music Unlimitedが月額780円でできるんですね!
最近知ってapple musicから乗り換えました。(200円ですが安い方がいいに越したことはないです笑)

下のPythonの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)



【tech】KVMの2つの物理ポートを1つのvBridgeへ接続した手順メモ

KVMを使用した仮想化環境を構築した時のメモです!
わたしが使用しているワークステーションはイーサポートが二つ付いているので、2つのポートをKVMのvBrdigeにブリッジ接続するという構成で作成しました。今後はNICを追加してスイッチやルータももう少し買い足してもっと遊んでみたいと思います!笑

環境

ホストサーバ:HP z800ワークステーション
IF1:ifcfg-enp1s0
ifcfg-enp1s0の接続先vBridge:br0
IF2:ifcfg-enp2s0
ifcfg-enp2s0の接続先vBridge:br0

ホストOS:CentOS7.5
インストールPKG:minimal
接続方式:ブリッジ
ホストにアクセスするIP:192.168.100.101
→このアドレスはvBrdigeに割り当てます。

手順

・仮想化支援関連PKGのインストール
yum -y install libguestfs libvirt libvirt-client python-virtinst qemu-kvm virt-manager virt-top virt-viewer virt-who virt-install bridge-utils

・アップデート
yum -y update

・インターフェースの設定ファイルディレクトリへ移動
cd /etc/sysconfig/network-scripts/

・vBridgeの作成の為IF1のファイルをコピー
cp -p ifcfg-enp1s0 ifcfg-br0

・IF1のファイルを編集
vi ifcfg-enp1s0

→IPアドレス、ネットマスク(PREFIX)、UUID、GATEWAYの設定をコメントアウト
「BRIDGE=br0」を最終行に追記する

・IF2のファイルを編集
vi ifcfg-enp2s0

→IPアドレス、ネットマスク(PREFIX)、UUID、GATEWAYの設定をコメントアウト
「BRIDGE=br0」を最終行に追記する

・br0のファイルを編集
vi ifcfg-br0
下記設定を記述(既にある項目は編集)

DEVICE=br0
NAME=br0
TYPE=Bridge
IPADDR=192.168.100.101
NETMASK=255.255.255.0
GATEWAY=192.168.100.1

・networkの再起動
systemctl restart network

これで二つの物理ポートが繋がったvBrdigeが作成できます。
この手順は分かりにくいと思うので、後日動画化しようと思います!
リクエストあれば急ぎます!笑