無償ライセンスを使った Red Hat Enterprise Linux 8 のインストール方法

# 無償ライセンスを使って VirtualBoxに Red Hat Enterprise Linux 8 のインストールします。

2021年1月21日
個人開発者は、[Red Hat Developer program](https://developers.redhat.com/)　経由で最大16のRHELを利用出来るようになると発表されました。
また、開発ではなく本番環境での利用も認められています。
で、この変更は2021年2月1日までに有効になるようです。

※間違ってるといけないので、以下の原文をよく確認してください。
[New Year, new Red Hat Enterprise Linux programs: Easier ways to access RHEL](https://www.redhat.com/en/blog/new-year-new-red-hat-enterprise-linux-programs-easier-ways-access-rhel)

## この記事に書いてある事

* Red Hat Developer サイトへのアカウント登録
* RHEL8 の入手方法
* VirtualBox へのRHEL8インストール手順
* Subscription登録方法
* VirtualBox GuestAdditons のインストール手順
* Red Hat Insights への接続  
出来なかった。無償のdeveloper subscripotionの場合[なんか手続きがいるっぽい](https://access.redhat.com/solutions/4358631)

## 準備が必要な情報

**アカウントの作成に必要な情報**

ユーザ名、メールアドレス、職務内容（選択式）、8文字以上のパスワード

**RHELのダウンロードに必要な追加情報**

氏名、会社、電話番号、国、住所
全て英語表記で準備しましょう。

**インストールに必要な情報**

|設定項目|このメモでの設定値|備考|
|:--|:--|:--|
|日付と時刻|地域：アジア／都市：東京||
|ソフトウェアの選択|サーバ（GUI使用）|初期値|
|hostname|rhel8.example.co.jp||
|rootパスワード||適当な物を考えておきましょう|
|一般ユーザID|user01||
|一般ユーザパスワード||適当な物を考えておきましょう|
|インストール先PC|VirtualBox 仮想マシン|VBoxGuestAdditions も導入する|
|日本語入力環境|日本語入力環境を設定||
|IPv6|無効化||
|virtbr0|無効化|仮想ブリッジ、不要なら無効化|

## Red Hat Developer へのアカウント登録

特に、説明は必要ない？？
以下のサイトにアクセスして適当にアカウントを作成します。
[RedHat Developer](https://developers.redhat.com)

* Log In をクリック
![スクリーンショット 2021-01-31 0.29.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/ab86bb3d-bd44-bc28-2866-07a5be8bb2d1.png)

* "今すぐ作成しましょう。"をクリックして登録を開始
もしくは、提示されているサービスのアカウントでサインインしてください。
![スクリーンショット 2021-01-31 0.29.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/bdb2c34d-c23c-8865-9d2b-8eee98d9da2d.png)

* 必要な情報を入力してアカウントを作成
![rhel8Inst00006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/ae0c65c0-a8e6-dd35-41a6-7739dc795205.png)

* メールアドレスの確認
登録したメールアドレス宛に**Red Hat アカウントのメールアドレスを確認します。**
と言う表題のメールが送られてきます。
メール内の**メールアドレス確認用リンク**をクリックしてメールアドレスの確認を完了します。

## RHEL8 の入手方法

[RedHat Developer](https://developers.redhat.com/) から入手します。

* Linux を選択
![rhel8Inst00002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/d08bd076-699f-dcc3-8207-09c3aaa4fb23.png)

* Download RHEL を選択
![rhel8Inst00002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/be0a5fa4-ea62-9c15-f75a-0e46e0f639a0.png)

* 必要なインストールイメージをダウンロード
ダウンロードを行う際に、追加情報を要求されます。
![rhel8Inst00003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/e02169f6-9c9b-a4e4-b323-e63b830c09af.png)

## VirtualBox へのRHEL8インストール

1. インストール開始
インストール先の仮想マシンにダウンロードしたRHEL8のisoイメージを光学ドライブに割り当てて、
仮想マシンを起動します。

1. 起動オプション設定（画面のはみ出し対策）
**Install Red Hat Enterprise Linux 8.3** を選択した状態で Tab を押して起動コマンドラインを表示し、
末尾に **vga=773** を追記、Enterを押してインストーラを起動します。
※この時点でシステムは英語キーボードモードです。日本語キーボードを使っている場合"**=**"を入力するには"**^**"を押してください。
[参考：GRUB VGA Modes](http://pierre.baudu.in/other/grub.vga.modes.html)
![rhel8Inst00012.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/0ff6e67d-1d74-9c86-0f5c-df4baa6630f8.png)


1. 言語選択
利用する言語を選択します。私は日本語を選択しました。
![rhel8Inst00013.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/b9e6e164-d54b-0059-e3e5-bf34c037d579.png)


1. インストール概要
インストールの開始をクリックする前に以下の設定をしてます。
  * 時刻と日付:タイムゾーンの指定 
  * インストール先：ディスク および 必要であればパーティション設定
  * KDUMP：無効化、自宅サーバならKDUMPが取れても解析しないよね？
  * ネットワークとホスト名（DHCPでもホスト名位設定しましょう）
  * rootパスワード：rootアカウントのパスワードを設定します。
  * ユーザーの作成：一般ユーザを作成します。  
![rhel8Inst00014.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/c70ad5d3-f8d2-2b9c-84d6-d3df650a64a7.png)

1. 時刻と日付を選択し地域を選択
アジア／東京 を選択しました
![rhel8Inst00015.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/dbce72f8-fba4-f758-c16a-d40b128a5a0f.png)


1. インストール先Diskを設定、必要であればパーティション設定
私は標準のディスク選択を受け入れました。
![rhel8Inst00016.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/51fc5843-dca1-2a5f-1581-a5adf452e916.png)


1. KDUMP 無効化
kdumpを有効にする のチェックを外す
必要な方はチェックを外さず、標準設定を受け入れてもいいと思います。
![rhel8Inst00017.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/327891ea-8872-d263-de72-68e620b88091.png)

1. ネットワークとホスト名
  * ホスト名の設定
  * Ethernet を オン に変更  
(IPアドレスを固定設定する場合、右下の”設定”->"IPv4設定"で指定します。)
![rhel8Inst00018.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/9214ade5-f187-cbc5-e75f-9746301ac4a2.png)

1. root パスワードの設定
![rhel8Inst00019.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/98c64164-2462-f85d-e58b-1f7af820683c.png)

1. ユーザの作成
作成するユーザの情報を指定
私は "このユーザを管理者にする" をチェックしてここで作成したユーザで作業してます。
![rhel8Inst00020.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/e2d688f5-68d2-1f17-a50c-a556e266e30f.png)

1. インストール概要の確認
設定が終わったら**インストールの開始**をクリックしてインストールを開始します。
![rhel8Inst00021.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/a59cc871-3140-af56-014c-ab246d579133.png)

1. 再起動
インストールが終わるのを待って 再起動 を行います。
![rhel8Inst00023.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/53848d0c-c83f-d781-c8a1-5cd1af3328c9.png)

1. ライセンスへの同意
![rhel8Inst00024.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/653b7715-e78b-f5cd-4bff-ab71628e6585.png)

1. ライセンスを確認し同意できる場合 ライセンスに同意する にチェックを付けてください。
![rhel8Inst00025.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/a218c5c7-e122-a548-26af-48c0f6411b0d.png)

1. 設定の完了
Subscriptionの割り当ては、あとで行います。
![rhel8Inst00026.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/b247fac2-5c3f-3537-f234-333b48b1e5cb.png)

## 初回ログイン

1. ログイン
![rhel8Inst00027.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/aa7e5278-7f1d-cb2c-ae92-5bf67f7b85dc.png)

1. 初回ログイン時の設定1：言語選択
![rhel8Inst00029.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/6cb894b1-afbb-5a60-22d0-cb7f6568401c.png)

1. 初回ログイン時の設定2：入力方法選択
![rhel8Inst00030.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/cc75528b-6296-b543-17d6-b82544f53426.png)

1. 初回ログイン時の設定3：プライバシー設定
![rhel8Inst00031.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/bf3376e5-2e0a-14e7-0bfe-301297876fe1.png)

1. 初回ログイン時の設定4：オンラインアカウントへの接続
任意で設定します。
ちなみに私は必要になりそうなサービスがあってもスキップして後で設定します。
![rhel8Inst00032.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/f7b2bbc5-03ac-f9fb-e2ed-f09186f196ee.png)

1. 初回ログイン時の設定5：準備完了
![rhel8Inst00033.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/8e573ac5-9996-47e2-45d1-da23aefc9987.png)

1. 初回ログイン時の設定6：GNOMEの**初めて使う方へ**画面
gnomeが久しぶりの場合は、ビデオを見ても良いかも知れません。
特に設定などはありません。右上の"✖︎"で閉じてください。
![rhel8Inst00034.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/69620bd4-3f26-cd6f-ed63-1e218f4fabad.png)

## Subscription の割り当て

アップデートや追加のパッケージを入手する為、サブスクリプションを割り当てます。
サブスクリプションの割り当ては Red Hat Development のアカウントで行えます。
割り当て方法は、基本的に自動割り当てで良いと思います。

1.サブスクリプションマネージャ起動
![rhel8Inst00037.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/cf19c32b-2536-4d4e-7ac8-ed11323e4bb6.png)

1.特権操作の認証
![rhel8Inst00038.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/c7f76356-7a05-a719-a1ec-a4d5bd6d5315.png)

1.サブスクリプション登録操作1
**登録**をクリック
![rhel8Inst00039.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/736eb1fe-76c0-9e71-e966-d705f7c437d3.png)

1.サブスクリプション登録操作2
Red Hat Development のアカウント を指定して登録を実行
![rhel8Inst00040.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/71fba665-b6e2-fc3b-fa27-fd5716decb26.png)

1.サブスクリプション登録操作3
登録が完了した時の画面表示はこんな感じです。
![rhel8Inst00041.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/9ac5764b-b818-cec6-b81b-9325c8c883ef.png)


## VirtualBox GuestAdditons のインストール

### 必要なパッケージ追加  
VirtualBox Guest Additions インストールの為に開発環境のインストールを行う
最初、VBoxGuestAdditions のインストールに失敗したのでsetup.logを見ると以下のモジュールを要求していたので、
開発環境と一緒にインストールしてます。
libelf-dev lebelf-devel or elfutils-libelf-devel

```r
[user01@rhel8 ~]$ sudo dnf group install -y "Development Tools"
[user01@rhel8 ~]$ sudo dnf install -y elfutils-libelf-devel
```

### アップデートの実施  
大抵の場合、追加インストールされた kernel-header と稼働中のkernelにずれが出来ます。
アップデートを実施してパッケージのバージョンを揃えましょう。

```r
[user01@rhel8 ~]$ sudo dnf clean all
[user01@rhel8 ~]$ sudo dnf check-update
[user01@rhel8 ~]$ sudo dnf -y upgrade
[user01@rhel8 ~]$ sudo shutdown -r now
```

### VirtualBox Guest Additions のインストール

**手順１**
Guest Additions CDイメージの挿入 **Insert Guest Addtions CD image** を選択
![rhel8Inst00043.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/fb2754ef-eb46-47fe-e817-f27e59c8c910.png)

**手順2**
VBox_GAs_XXX の画面が出たら **実行する** をクリックしてください。
![rhel8Inst00044.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/1b62cebe-47b7-9b38-d112-e46e66431146.png)

**手順3**
認証が要求された場合、認証情報を入力してください。
![rhel8Inst00045.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/5a2f4bed-baf0-5d75-4f2e-953b0b888753.png)

**手順4**
インストールが完了したら **enter** を押してウインドウを閉じます。
![rhel8Inst00047.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/a195840a-c600-c699-4227-5ac1288373c0.png)

**手順5**
OSを再起動して完了です。

```r
[user01@rhel8 ~] sudo shutdown -r now
```

## Red Hat Insights への登録（出来ないみたい）

こんなエラーが出ました。
無償のdeveloper subscripotionの場合[なんか手続きがいるっぽい](https://access.redhat.com/solutions/4358631)

```r
[user01@rhel8 ~]$ sudo insights-client --register
[sudo] user01 のパスワード:
Unable to fetch egg url. Defaulting to /release
Could not connect to the Insights API. Run insights-client --test-connection for more information.
[user01@rhel8 ~]$ 
```

## インストール直後のIP付与状況

仮想環境を利用しないサーバとして利用する場合、IPv6とvirbr0が邪魔ですね。
次の項目でIPv6とvirbrの無効化を行って行きます。

```r
[user01@rhel8 ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:88:c0:ae brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.117/24 brd 192.168.1.255 scope global dynamic noprefixroute enp0s3
       valid_lft 12875sec preferred_lft 12875sec
    inet6 240b:11:aae2:6200:4fd5:421b:6ab:98bc/64 scope global dynamic noprefixroute 
       valid_lft 14331sec preferred_lft 12531sec
    inet6 fe80::5060:ddc5:d871:b617/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:7c:7e:ad brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:7c:7e:ad brd ff:ff:ff:ff:ff:ff
[user01@rhel8 ~]$
```


## IPv6無効化

### 方法1：Kernel Boot Option での無効化（おすすめ）

* 設定ファイル編集  
GRUB_CMDLINE_LINUX 行の末尾に "ipv6.disable=1" を追記してください。

```r
[user01@rhel8 ~]$ sudo vi /etc/default/grub 
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet 　ipv6.disable=1"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
[user01@rhel8 ~]$ 
```

* Grub設定を反映  
ls で確認したgrub2.cfgのリンク先を指定して grub2-mkconfig を実行してください。  
リンク先が2カ所あった場合 grub2-mkconfig も二回実行してください。  
で、実行後システムの再起動を行います。

```r
[user01@rhel8 ~]$ ls -lh /etc/grub*.cfg
lrwxrwxrwx. 1 root root 22  8月 31 19:50 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
[user01@rhel8 ~]$
[user01@rhel8 ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
done
[user01@rhel8 ~]$ sudo shutdown -r now
```

### 方法2：sysctl での無効化

* sysctl.conf での IPv6無効化設定

```r
[user01@rhel8 ~]$ sudo vi /etc/sysctl.d/ipv6.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
[user01@rhel8 ~]$ sudo sysctl --load /etc/sysctl.d/ipv6.conf
```

* NetworkManager でのIPv6無効化設定  
NetworkManagerを利用している場合 OSを再起動したり コマンドでnicの再起動を行うと、  
IPv6が有効化されてしまいます。NetworkManagerがIPv6を有効化しないように設定しましょう。  
（enp0s3 の部分は自サーバのNIC名に置き換えてください）

```r
[user01@rhel8 ~]$ nmcli connection show enp0s3 |grep ipv6.method
ipv6.method:                            auto
[user01@rhel8 ~]$ sudo nmcli connection modify enp0s3 ipv6.method ignore
[user01@rhel8 ~]$ nmcli connection show enp0s3 |grep ipv6.method
ipv6.method:                            ignore
[user01@rhel8 ~]$
```

### 共通設定

sysctl/kernel boot option のどちらでIPv6を停止した場合でも共通で行う設定です。

* /etc/hosts から IPv6 エントリを削除  
IPv6 のエントリを削除するかコメントアウトしましょう。

```r
[user01@rhel8 ~]$ sudo vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
##::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[user01@rhel8 ~]$ 
```

* /etc/netconfig から IPv6 エントリを削除  
エラーメッセージの抑止です。
udp6/tcp6 の行削除するかコメントアウトしましょう。

```r
[user01@rhel8 ~]$ sudo vi /etc/netconfig
#
# The network configuration file. This file is currently only used in
# conjunction with the TI-RPC code in the libtirpc library.
#
# Entries consist of:
#
#       <network_id> <semantics> <flags> <protofamily> <protoname> \
#               <device> <nametoaddr_libs>
#
# The <device> and <nametoaddr_libs> fields are always empty in this
# implementation.
#
udp        tpi_clts      v     inet     udp     -       -
tcp        tpi_cots_ord  v     inet     tcp     -       -
##udp6       tpi_clts      v     inet6    udp     -       -
##tcp6       tpi_cots_ord  v     inet6    tcp     -       -
rawip      tpi_raw       -     inet      -      -       -
local      tpi_cots_ord  -     loopback  -      -       -
unix       tpi_cots_ord  -     loopback  -      -       -
[user01@rhel8 ~]$ 
```

## virbrの無効化

KVMなどの仮想環境を構築しない場合は、不要なので止めてしまいます。

```rb
[user01@rhel8 ~]$ sudo systemctl disable libvirtd
[user01@rhel8 ~]$ sudo shutdown -r now
```