VMwareにAlma Linuxをインストールし、Flaskアプリをデプロイ（前編）

## VMwareにAlma Linuxをインストールし、Flaskアプリをデプロイする。
題名を簡単に言うと、自分のPCの仮想環境に、Linuxを入れて、アプリを使える状態で設置することを試みたということです。
趣旨は、Linuxのディレクトリ（フォルダ）の操作などをCLIで行うための初歩的な技術を身に付ける。アプリのデプロイは、続編で記事にしたいと思います。

インフラエンジニアを目指してひたすらに必要な知識と経験を積むべく、不器用に学習を進めているところであるが、今回は、事あるごとに勧めて下さる先輩の方々のアドバイスを取り入れ、「Linuxの操作」を主として学習した記録を残します。記事にしたのは、VMwareにLinuxをインストールするといったある意味当たり前の環境設定記事があまりなかったように感じたためです。

はじめに申し上げますが、上級者から見ると説明に抜けなどが散見されるかもしれませんが、ご容赦ください（泣）

### 前提（環境）
※₁ディスク容量20GBに設定したりなど、多少PCの容量が必要になります。
※₂VMware自体のインストール及びFlaskアプリの作成は、多くのwebサイトなどで説明されていますので、こちらでは割愛させていただきます！
※₃LinuxのうちCentOSが今後サポート終了になるとのことで、AlmaLinuxを選択しております。
・windows11（ホストマシン（自分のPC））
・Alma Linux（ゲストマシン（仮想マシン））https://almalinux.org/ja/?_fsi=SwuDYqHM
・VMware Workstation 16 Player（非営利目的用）https://www.vmware.com/jp/products/workstation-player/workstation-player-evaluation.html
・Python 3.11.4
・Flask 3.0.0

### 仮想環境の構築
１　AlmaLinuxをインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/34d318e9-0fa3-2509-54b4-0ccd3d3a8900.png)
２　VMwareを立ち上げ、「新規仮想マシンの作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/741e4327-c8c9-4377-41da-a9375cad2c8d.png)
３　イメージファイルを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/296f6df8-3335-385b-49d4-a6d2b5b625c5.png)
４　仮想マシン名を決めます。（AlmaLinuxがないため、適当に命名しました。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/3f05946c-8cfb-7dde-a179-399c7e3e14b8.png)
５　ディスク容量を指定します。無難にデフォルトの２０でいきました。簡単なアプリのデプロイや、コマンド操作に限った内容ですので十分と思います。
この画面の後に、確認ウィザードが表示されますので、良ければ完了をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/21ed9183-e614-0a54-d63a-56583c9a136d.png)
６　VMwareを開き、該当のOSをクリック、そして仮想マシンの再生をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/dbe0464f-d869-dada-5e95-0139a4d6c27e.png)
７　AlmaLinuxをインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/86e83853-b151-dbec-2cd0-9ce01eb465f2.png)
８　日本語を選択し、次へ進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/62758c5b-66ef-6ba6-a628-3a658dba47b4.png)
９　インストール先を選択します。デフォルトのままでOK
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/ece626bf-3a29-c5e8-aa9c-a9649c6c5f1e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/e361eced-7ee1-a5d1-566f-1b6157231df3.png)
10　rootパス（windowsでいう管理者権限に移行するためのパス）を決定する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/baa075a2-21ca-e059-ac73-981d8a40bb43.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/57ca610d-cdfd-073d-cb78-02e1b1db2da6.png)
11　ユーザーの作成、ソフトウェアの選択をします。
ユーザーの作成の際に、「このユーザーを管理者にする」「このアカウントを使用する場合にパスワードを設定する。」の2択がありますが、「このアカウントを使用する場合にパスワードを設定する。」を選択し、パスを選択します。
ソフトウェアの選択において「最小限のインストール」を選択した場合、CLIでコマンドを叩いてLinuxを操作することとなります。当然私はこちらを選択。
最小限のインストールを選択した後、完了をクリック。インストールの開始をします。
一方、GUIで操作したい場合は、ユーザーの作成を行った後、インストールの開始をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/8f99e0c7-4e23-fdb4-5559-98ed7675b7a7.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/c0cb661f-7f38-9f97-d27c-303e6e1ef501.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/a1501f96-9820-fb2a-0f5e-91a3d632431b.png)
12　インストールが開始されますので、完了したらシステムの再起動をクリックします。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/30a2642a-4371-5517-0022-548229d2314f.png)

ここまでで仮想環境の構築完了です！

### 接続確認
１　はじめに、VMwareからログインできるか試します。
VMwareを立ち上げ、該当のOSを選択し、仮想マシンの再生をクリックします。
すると立ち上がるまで多少時間がかかり、次のような文字が出現しますので、先ほど設定したユーザー名を入力し（ここで、VMwareの画面にカーソルがは入っていないと、文字が入力できません！一度VMwareの画面をクリックしましょう）、Enterを押下。パスワードを入力し（ここでは、保全上画面にパスは表示されませんので、びっくりしますが大丈夫です！）、Enterを押下。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/22a84e91-ba7d-bb53-f1d3-0ecf5c9b2a66.png)
試しにローカルのIPアドレスを確認！

```
nmcli device show
```
これで認識されているデバイスが表示されます。
ここに「IP4 ADDRESS[1]」という表示の横に、「192.168.0.20」といったようなプライベートアドレスがあるかと思います。

２　続いて、TeraTermを使用したSSH接続が可能かどうか確認を行います。
理解しやすく訳すと、遠隔操作を行うソフトを使って、telnetに比べて安全な暗号化通信をするSSH接続を行う。ということです。

TeraTermをインストールされていない方は、webサイトを検索していただけると、わかりやすい説明がいっぱい出てきますので参考にインストールしてみてください！
インストールは割愛します！

まず、VMwareを立ち上げておいてください。これを忘れるとずっと繋がりません(´;ω;｀)
そして、TeraTermを立ち上げ、先ほどVMwareにコマンドを入力して確認したIPアドレスを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/10386087-ccf0-303a-f57b-2b1f7733505b.png)
OKをクリックすると接続され、仮想環境にSSH接続がされた状態となります！
再びIPアドレスを確認し、通信完了を再確認します。

```
nmcli device show
```
これで再びVMで直接確認したアドレスを同じアドレスが表示されているはず！

### SSH接続で知っておかなければ困ること
死活監視（keep alive）の設定を適切に行わないと、time outになったりと何かと時間を取られます。。。
個人で設定などを学習している最中にtime outになることを防ぐため、私は次の設定を行っています。

①TeraTermを起動
②メニューの設定をクリックし、「SSH...」をクリック。
③keep-aliveの間隔を設定し、OK
④再び設定をクリックし、設定の保存をクリック。

これで離席時間（喫煙・・・）を気にせず学習できます(笑)
冗談はさておき、本題のLinuxの基本的なディレクトリ（フォルダ）などの操作に移ります。

## AlmaLinuxの操作（CLI）
早速、手を動かします。
まずログインし、localのまま次のコマンドを打ちこみます。

```
pwd
```
すると、「/home/ユーザー名」と表示されるはずです。つまり現在位置が表示されます。ディレクトリ間を移動することを繰り返したり、他の作業を少ししたりなどで、現在位置が分からなくなった場合に有効です。また、ディレクトリのパスを取得する時に使用するので、記憶した方が良いです。


続いて、ディレクトリ（フォルダ）を作成します。
```
mkdir ディレクトリ名
```
これでディレクトリが作成完了！


そして今作成したディレクトリの中に入ります（ディレクトリ間の移動も同じコマンド）。
```
cd ディレクトリ名
```
そのままディレクトリ内で、ファイルを作成します。少し複雑になるが、慣れるので問題なし！ちなみにファイルを作成する時とファイルを開く時のコマンドは同じです。
次のコマンドを打ちこみます。
```
vi ファイル名.txt
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/c2674058-da0e-c0c1-8fc8-38eaf23c707d.png)
すると、このような表示（「こんにちは！！」は入っていない状態です。）になるので、これではまだ編集できないため、「i」を押下すると次のようなインサート（文字を入れることができる画面）にすることができる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/de27555e-ee7a-4e51-9948-8e569cb17efa.png)
この画面になると、デスクトップ上のテキストファイルの様に編集することができます。
そして、入力が完了したら「esc」を押下し、「:wq」と入力して「Enter」を押下することでファイルを保存することができます。
ちなみに、保存せずインサート画面を閉じるコマンドは、「esc」を押下、「:q!」を入力、「Enter」を押下することで閉じることができます。
なお、全角にしていると「:wq」や「:q!」コマンドを入力することができないため、必ず半角にしてコマンドを入力しましょう！

どんどん行きます。今の画面を維持したままの状態で、ファイルが作成できているか確認してみる。次のコマンドで、現在のディレクトリ内にどんなファイルやディレクトリがあるか一目でわかる。
```
ls
```
これで「ファイル名.txt」と表示されればOK！


次は、ディレクトリ間を移動していきます。
一つ上の階層に移動する場合、次のようにコマンドを打ちこみます。
```
cd ..
```

最後に、ディレクトリの削除、ファイルの削除を行います。

ファイルの削除
```
rm ファイル名.txt
```


ディレクトリの削除
```
rm -r ディレクトリ名
```
ファイルやディレクトリを削除するなかで、ユーザー権限では削除できないものもあります。その際は、次のコマンドを打ちこみ、root権限に移行します。
```
su
```
これで、root権限で好きに操作できますが、重要なデータを削除してしまいかねないので、十分注意しましょう。

なお、ユーザー権限に復帰する場合は「exit」で移行できます。

これで基礎中の基礎は理解できたはずです。
このLinuxの仮想環境にアプリをデプロイすることで、更にコマンドなどについて理解が深まります！
後編へ続きます。