AmazonLinux2023の初期設定をする

# 概要
これのAmazonLinux2023版です。

https://qiita.com/tamorieeeen/items/aa8c01feaea50afdc3cd

AmazonLinux2→AmazonLinux2023に乗り換えるにあたってローカルにAL2023を立てて検証中なのでEC2で立てたとき用にメモ。

# 環境
- Windows 11 Pro
- VirtualBox 7.0.12
- Amazon Linux 2023
  - Operating System: Amazon Linux 2023.4.20240319
  - Kernel: Linux 6.1.79-99.167.amzn2023.x86_64

# 1. タイムゾーンを変更する
- デフォルトはUTCなのでAsia/Tokyoに変更してJSTにする
- AL2023はcronが入ってないのでcrondの再起動は不要

```console
$ timedatectl status
               Local time: Wed 2024-04-03 06:12:30 UTC
           Universal time: Wed 2024-04-03 06:12:30 UTC
                 RTC time: Wed 2024-04-03 06:12:30
                Time zone: n/a (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

$ sudo timedatectl set-timezone Asia/Tokyo

$ timedatectl status
               Local time: Wed 2024-04-03 15:13:18 JST
           Universal time: Wed 2024-04-03 06:13:18 UTC
                 RTC time: Wed 2024-04-03 06:13:18
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

$ date
Wed Apr  3 15:13:35 JST 2024
```

# 2. ロケールの変更
- System Localeを日本語に変更する
  - インストール時のメッセージなどが日本語になる
  - 個人的には気持ち悪いので変えなくて良いと思う
- Keymapをjp-OADG109Aに設定する

```console
$ localectl status
System Locale: LANG=C.UTF-8
    VC Keymap: (unset)
   X11 Layout: (unset)

$ sudo localectl set-locale LANG=ja_JP.UTF-8

$ localectl list-keymaps | grep jp
jp
jp-OADG109A
jp-dvorak
jp-kana86

$ sudo localectl set-keymap jp-OADG109A

$ localectl status
System Locale: LANG=ja_JP.UTF-8
    VC Keymap: jp-OADG109A
   X11 Layout: (unset)
```

# 3. プロンプトの変更
- デフォルトだと情報が少ないので変更する
  - 変更前：`[ec2-user@amazonlinux ~]$`
  - 変更後：`[15:30:23 ec2-user@amazonlinux ~]$`

```console
$ vi .bashrc

# User specific aliases and functions
export PS1='\[\033[37m\][\t \[\033[36m\]\u\[\033[37m\]@\h \[\033[32m\]\W\[\033[37m\]]$ '

$ source .bashrc
```

後述する方法([プロンプトだけ変える場合](#プロンプトだけ変える場合))でホスト名を変更せずにプロンプト上だけホスト名の表示を変えるなら`\h`を`$NICKNAME`にしておくと二度手間が省けます。

# 4. ホスト名の変更
- 別にやらなくても良い
- 見やすさだけならホスト名は変えずにプロンプトだけ変える

```console
$ hostname
amazonlinux.onprem

$ sudo hostnamectl set-hostname dev-web02

$ hostname
dev-web02
```

## プロンプトだけ変える場合

`/etc/profile.d/prompt.sh`で`NICKNAME`を環境変数として登録して`bashrc`のPS1を変更すればホスト名を変えずにプロンプトだけ変更できます。

```console
sudo sh -c 'echo "export NICKNAME=dev-web02" > /etc/profile.d/prompt.sh'
```

どのユーザーでもこの`NICKNAME`を使いたい場合は`/etc/bashrc`のPS1を、今ログイン中のユーザーだけで良いなら`.bashrc`のPS1を変更すればOKです。

# 5. rsyslogのインストール
- デフォルトだとrsyslogが入っていないので今まで通り`/var/log/messages`や`/var/log/secure`を使いたければ入れる
- `journalctl`で確認できるので入れなくても良い

```console
$ sudo dnf -y install rsyslog
Dependencies resolved.
=============================================================================================================================================
 Package                             Architecture             Version                                    Repository                     Size
=============================================================================================================================================
Installing:
 rsyslog                             x86_64                   8.2204.0-3.amzn2023.0.4                    amazonlinux                   784 k
Installing dependencies:
 libestr                             x86_64                   0.1.11-1.amzn2023.0.2                      amazonlinux                    26 k
 libfastjson                         x86_64                   0.99.9-1.amzn2023.0.3                      amazonlinux                    39 k
Installing weak dependencies:
 rsyslog-logrotate                   x86_64                   8.2204.0-3.amzn2023.0.4                    amazonlinux                    10 k

Transaction Summary
=============================================================================================================================================
Install  4 Packages

$ sudo systemctl enable rsyslog
$ sudo systemctl start rsyslog
$ sudo systemctl status rsyslog
● rsyslog.service - System Logging Service
     Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; preset: enabled)
     Active: active (running) since Wed 2024-04-03 16:07:02 JST; 8s ago
       Docs: man:rsyslogd(8)
             https://www.rsyslog.com/doc/
   Main PID: 3141 (rsyslogd)
      Tasks: 3 (limit: 1099)
     Memory: 5.4M
        CPU: 707ms
     CGroup: /system.slice/rsyslog.service
             └─3141 /usr/sbin/rsyslogd -n

$ ls -l /var/log/
total 7000
lrwxrwxrwx. 1 root   root                 39 Mar 21 11:01 README -> ../../usr/share/doc/systemd/README.logs
drwxr-xr-x. 2 root   root                  6 Mar 21 11:02 amazon
drwx------. 2 root   root                 23 Mar 27 16:57 audit
-rw-rw----. 1 root   utmp                384 Apr  2 16:15 btmp
-rw-rw----. 1 root   utmp                  0 Mar 21 11:01 btmp-20240401
drwxr-x---. 2 chrony chrony            16384 Apr  3 14:54 chrony
-rw-r-----. 1 root   adm               59460 Apr  3 14:53 cloud-init-output.log
-rw-r-----. 1 root   adm             1984008 Apr  3 14:53 cloud-init.log
-rw-r--r--. 1 root   root             862246 Apr  3 16:06 dnf.librepo.log
-rw-r--r--. 1 root   root             333692 Apr  3 16:06 dnf.log
-rw-r--r--. 1 root   root              84668 Apr  3 16:06 dnf.rpm.log
-rw-r--r--. 1 root   root               4399 Apr  3 16:06 hawkey.log
drwxr-sr-x+ 3 root   systemd-journal      46 Mar 27 16:57 journal
-rw-rw-r--. 1 root   utmp             293168 Apr  3 15:00 lastlog
-rw-------. 1 root   root                  0 Apr  3 16:06 maillog
-rw-------. 1 root   root            2320936 Apr  3 16:07 messages
drwx--x--x. 2 root   root                 41 Apr  3 15:01 nginx
drwx------. 2 root   root                  6 Mar 21 11:01 private
drwxr-xr-x. 2 root   root                 78 Apr  3 14:53 sa
-rw-------. 1 root   root              23243 Apr  3 16:07 secure
-rw-------. 1 root   root                  0 Apr  3 16:06 spooler
-rw-------. 1 root   root                  0 Mar 21 11:01 tallylog
-rw-rw-r--. 1 root   utmp              44544 Apr  3 15:00 wtmp
```

# 参考
- [Amazon Linux 2023とAmazon Linux2のデフォルトで起動しているサービスやインストールされているパッケージを比較してみた](https://amazondev.classmethod.jp/articles/diff-al-2023-and-al-2-packages-and-services/)
- [Amazon Linux 2023 初期設定をする](https://note.com/hiroyu0510/n/naf42689573f0)