この記事の目的は以下。
- hyper-vを利用し、まっさらなFedora 35の仮想環境を作成する
- その上にデスクトップ環境を作り、python djangoの実行環境、Visual Studio CodeのLinux版をインストールして開発環境も作る
- 家のどこのPCからでも接続して作業ができるようにする
- djangoで作るアプリのコードはgithubで管理できるようにする
Fedoraをインストール
https://getfedora.org/ja/server/download/
netinstallのISOイメージを落としてくる。そのあとhyper-vでクイック作成で新規マシンを作成

メモリのサイズを4096MBに調整して起動。しばらく待つとインストール画面に来る。構成を選ぶことができるけど、おそらくGNOMEが入ってくるFedora Workstationを選んでLibre Officeだけは追加しておく。ほかのを選んでもあとでいまいちなー、ってなりそうですし。


「インストール開始」を押したら、他のことをしながらしばらく放置。やがてデスクトップ環境にログインできました。

ルートボリューム(ディスク)サイズの調整


デフォルトのインストーラがあまり賢くないのか、ちゃんとやらなかったから悪いのか、なぜかルートにマウントされているパーティションが125Gのうち15Gしか使ってない。とりあえず30GBくらいは割り当ててる状態にしたいところ。ネットで調べて、以下のコマンドで拡張できた。結果の記載は省略。
$ df -h
$ pvscan --cache
$ sudo vgdisplay
$ sudo lvdisplay
$ sudo lvextend -L +20G /dev/fedora/root
$ sudo xfs_growfs /dev/fedora/root
$ df -h
SELinux無効化
特に不要なので無効化。以下の設定ファイル変更後に再起動。
$ sudo vim /etc/selinux/
SElinux=disabled
リモートデスクトップ接続
TigerVNCとXRDPを使って、Windows PCからリモートデスクトップ接続を可能にする。
$ sudo dnf insatll xrdp tigervnc-server
$ sudo systemctl start xrdp.services
$ sudo systemctl enabled xrdp.services
$ sudo firewall-cmd --permanent --add-port=3389/tcp
$ sudo firewall-cmd --reload
Visual Studio Code のインストール
$ sudo vim /etc/yum.repos.d/vscode.repo
[vscode]
name=Visual Studio Code
baseurl=https://packages.microsoft.com/yumrepos/vscode
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc
$ sudo dnf update
$ sudo dnf install code
MySQLサーバーのインストール
dnf でインストールしたあとにデフォルトでできているデータベースを確認して、新規にユーザを作成して、新規にテストアプリ用のデータベースも作成して権限も付与する。DB名、ユーザ名、パスワードなどは適宜書き換えて使う。
$ sudo dnf install community-mysql-server community-mysql-libs community-mysql-devel
$ mysql --version
mysql Ver 8.0.27 for Linux on x86_64 (Source distribution)
$ sudo systemctl start mysqld
$ sudo systemctl enable mysqld
$ sudo mysql
> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
> CREATE DATABASE testapp;
> CREATE USER '<user>'@'localhost' IDENTIFIED BY '<password>';
> GRANT ALL PRIVILEGES ON testapp.* TO '<user>'@'localhost';
> quit
Python djangoのインストール
pipでpython djangoをインストールする最短手順。最初にgccとpython3-develをインストールするのはpipでmysqlクライアントをインストールするときになぜか必要になるため。
$ sudo dnf install gcc python3-devel
$ cd ~
$ sudo dnf install python3-pip python3-mysqlclient
$ mkdir py
$ cd py
#venvする
$ python -m venv testappenv
$ source testappenv/bin/activate
#pipを最新バージョンにする
$ pip install -U pip
$ pip install mysqlclient
$ django-admin startproject testapp
$ cd testapp
$ vim ./testapp/settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'testapp',
'USER': '<USER>',
'PASSWORD': '<PASSWORD>',
'HOST': 'localhost',
'PORT': '3306',
}
}
$ python manage.py makemigrations
$ python manage.py migrate
$ python manage.py runserver 0.0.0.0:8001
ここまで来たら、一旦Djangoが動いていることを確認できる。

何やかや使うのがDjangoの標準のAdmin画面。これを使えるようにする。runserverはいったんCtrl+Cで閉じる。
$ python manage.py createsuperuser
Username (leave blank to use xxxxx: admin
Email address:
Password:
Password (again):
Superuser created successfully.
もう一度 runserver したらここに来れる。

いったんここまで。