[備忘]HyperVで新しくOS導入するときのポイント集

自分のための備忘です

# localからsshできるようになるまで

### 仮想スイッチを用意する

これは仮想スイッチを用意しなくても、デフォルトのスイッチを使えばOK

### isoイメージからインストールする際にネットワーク設定を入れる

### ip aで確認（ifconfigは最小構成のインストールだとデフォルトで入ってない）

### nmcliコマンド

```
nmcli c mod eth0 connection.autoconnect yes
nmcli c up eth0
ip a
```

nmtuiコマンドでいろいろ設定できるのでそっちを使うでもOK
その場合、最後に`systemctl restart network`を必ず実施

### firewall-cmd

```
firewall-cmd --list-all
firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload
systemctl restart firewalld
```

この辺まで確認すればいけるはず（centos7はインストールできた)

### nginxインストール

```
yum update
yum install -y epel-release
yum install -y nginx
systemctl start nginx
systemctl enable nginx
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
```
### nvm&nodejsインストール

curlとかを使おうとしたら、nmtuiでipv6を無効にしないとダメだった。
nmtuiでipv6使わないみたいなやつにチェックをいれる（スペースキー）

そのうえで以下コマンドを実施
node.jsはv18以上だとエラーになる模様なので16をインストールした。

```
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
source .bashrc
nvm install 16
```

最新は[Github上の説明](https://github.com/nvm-sh/nvm)で確認する

### nginxまわり

/etc/nginx/conf.d/配下に`proxy.conf`ファイルを作り、以下を書き込む

```:proxy.conf
server {
        server_name 192.168.11.21;
        location / {
                proxy_pass http://192.168.11.21:3000/;
        }
}
```

その後、`systemctl restart nginx`するが502 bad gateway。
selinux無効化が必要だった。(/var/log/nginx/error.logを確認した結果）

`vi /etc/selinux/config`で`SELINUX=permissive`にして、`setenforce 0`も。
以下のとおりpermissive状態であることが確認できればOK

あと、ブラウザで開くときはキャッシュに要注意。
プライベートウィンドウで開いたほうが良い。

```
[root@localhost nginx]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28
```

### node.jsのサービス登録

```
[root@localhost bin]# cat /etc/systemd/system/test0104.service
[Unit]
Description=sample server
After=syslog.target network.target

[Service]
Type=simple
ExecStart=/root/.nvm/versions/node/v16.19.0/bin/node /root/node/test20220104/app.js
WorkingDirectory=/root/node/test20220104
KillMode=process
Restart=always
User=root
Group=root

[Install]
WantedBy=multi-user.target
[root@localhost bin]# systemctl enable test0104
Created symlink from /etc/systemd/system/multi-user.target.wants/test0104.service to /etc/systemd/system/test0104.service.
[root@localhost bin]# systemctl start test0104
[root@localhost bin]# systemctl status test0104
● test0104.service - sample server
   Loaded: loaded (/etc/systemd/system/test0104.service; enabled; vendor preset: disabled)
   Active: active (running) since 水 2023-01-04 23:20:09 JST; 6s ago
 Main PID: 6432 (node)
   CGroup: /system.slice/test0104.service
           └─6432 /root/.nvm/versions/node/v16.19.0/bin/node /root/node/test20220104/app.js

 1月 04 23:20:09 localhost.localdomain systemd[1]: Started sample server.
[root@localhost bin]# systemctl list-unit-files | grep test0104
test0104.service                              enabled
```

# MIRACLE Linuxインストール

CentOSが8で終わってしまったので今後何にするか探していたら、RockyとかAlmaとかが出てきた。
けど、せっかくなので国産のMIRACLEに挑戦してみることに。

ちなみにWSLつかってOracle Linuxもインストールしてみたりしました。