Proxmox上のUbuntu ServerでNextcloudを構築する方法 【NASを作ろう!】

Nextcloudはオープンソースのオンラインストレージソフトウェアです。Nextcloudを構築することでOneDriveやGoogle Driveのようなクラウドストレージを自前で作ることができます。NASとしていろいろなデータを保管するといった使い方ができるほか、用意されている様々なプラグインを利用することでさらに便利な使い方ができるのが魅力です。今回はそんなNextcloudの構築方法を紹介します。

ちなみに、この記事ではRaspberry Pi4の8GBにProxmoxを導入し、仮想化したUbuntu Server上で環境構築をしていますが、違う環境の場合は適宜読み替えてください。

VM上のUbuntu Serverのセットアップ

ここの作業のみProxmox上のプロンプトで操作します。Ubuntu Serverを導入後、画面に従って初期設定を済ませてください。その後、以下のコマンドを実行します。

//aptのアップデート
sudo apt update

//ifconfigを使うためnet-toolsをインストール
sudo apt install net-tools

//IPアドレスの確認
ifconfig

IPアドレスを確認したら、SSHでUbuntu Serverに接続します。以下の操作からは全てSSHで行っています。

タイムゾーンの変更

おそらくデフォルトではタイムゾーンが日本以外の国になっているため、日本であるJSTに変更します。

>timedatectl set-timezone Asia/Tokyo
==== AUTHENTICATING FOR org.freedesktop.timedate1.set-timezone ===
Authentication is required to set the system timezone.
Authenticating as: ,,, (<username>)
Password: //パスワードを入力

変更されているかどうかを2種類のコマンドで確認します。

>cat /etc/timezone
Asia/Tokyo

>date
Fri 01 Jul 20:30:00 JST 2022

IPアドレスの固定

以下のコマンドを実行します。

cd /etc/netplan

cat 00-installer-config.yaml

以下ような内容が取得できるので、作業用にメモしておいてください。

# This is the network config written by 'subiquity'
network:
  ethernets:
    enp0s18:
      dhcp4: true
  version: 2

新たに設定ファイルを作るため以下のコマンドを実行。

sudo nano 99-netcfg.yaml //数字(この場合は99)は重複しなければ何でも良い

以下の内容をコピペします。コメントが入っている行の部分は固定したいIPアドレスに設定します(今回は192.168.1.201)。ルーターのIPは違う可能性があるので、確認して下さい。

network:
  version: 2
  ethernets:
    enp0s18:
      addresses: [192.168.1.201/24] //ここを任意のアドレスに変更
      nameservers:
        addresses: [192.168.1.1] //たいていルーターのアドレスと同じ
      routes:
      - {to: default, via: 192.168.1.1}

設定を反映させます。

sudo netplan apply

(補足)

古い記事だと設定ファイルとして以下のような書き方をしていることがあります。

//古い書き方
network:
version: 2
ethernets:
enp0s18:
addresses: [192.168.1.201/24]
gateway4: 192.168.1.1
nameservers:
addresses: [192.168.1.1]
search: []
optional: true

Ubuntu20系から上記の書き方は非推奨になったらしく、設定すると以下のようなワーニングが出ます。

** (generate:2110): WARNING **: 09:53:23.494: `gateway4` has been deprecated, use default routes instead.
See the 'Default routes' section of the documentation for more details.

** (process:2108): WARNING **: 09:57:23.473: `gateway4` has been deprecated, use default routes instead.
See the 'Default routes' section of the documentation for more details.
client_loop: send disconnect: Connection reset

が、無視しても一応設定は完了しています。(特に理由がなければ最初の書き方を採用しましょう)

(補足終わり)

古い設定ファイルの名前を変更して見分けがつくようにしておきましょう。

sudo mv 00-installer-config.yaml 00-installer-config.yaml.disabled

自動的にマシンが再起動してSSHのコネクションが切れるので、改めてSSH接続し直します。

Proxmoxのディスクパススルー設定

ここでHDDを繋げます。ラズパイの方にSSH接続し、以下のコマンドを実行します。(VMのUbuntu Serverではないです)。

>ls /dev/disk/by-id
ata-○○○        usb-△△△
ata-○○○-part1  usb-△△△-part1
ata-○○○-part2  usb-△△△-part2

>sudo qm set 100 -sata1 /dev/disk/by-id/ata-○○○ //-part...と書いていないものを入力
update VM 100: -sata1 /dev/disk/by-id/ata-○○○

ProxmoxでVMのハードウェア見るとハードディスクが追加されているのが分かります。

次に、VM上でHDDをマウントします。マウント前にVMを再起動してください。しないとHDDの接続が反映されません。

VMでの作業です。ProxmoxでVMを再起動してSSH接続したら、以下のコマンドを実行します。

>sudo fdisk -l
Disk /dev/sdb: 3.64 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: ○○○

Device     Start        End    Sectors  Size Type
/dev/sdb1     34      32767      32734   16M Microsoft reserved
/dev/sdb2  32768 7814033407 7814000640  3.6T Microsoft basic data

本当はもっとずらずら表示されますが、今回使うHDDの部分のみ記載しています。

次に、以下のコマンドを実行します。

sudo mkdir /media/hdd1 //hdd1の部分は任意の名前
sudo mount /dev/sdb2 /media/hdd1 --types=ntfs --options=rw

Nextcloudのインストール

いよいよNextcloudをインストールします。以下のコマンド3つを実行します。

sudo apt install snapd
sudo snap install nextcloud
sudo snap connect nextcloud:removable-media //外部ストレージにアクセスさせるために必要。2台目以降のストレージ追加時にはしなくていい

以上が終わったらブラウザでの作業になります。

Nextcloudで外部ストレージの接続

1.ブラウザのアドレスバーから固定したIPにアクセスすると、rootアカウントの設定画面になるので、設定します。

2.推奨アプリは使いそうならインストールしてください。無視でも結構です。

3.右上のアイコン>アプリ>無効なアプリ>External storage supportを有効にします。

4.右上のアイコン>設定>管理>外部ストレージにて、外部ストレージをローカル、場所を/media/hdd1にしてチェックマークを押して保存します。

5.最後にファイルに戻ってローカルを押してください。そこに保存されているファイルにアクセスできる、もしくはそこにファイルをアップロードしてエラーが出なければ成功です。

HDDの自動マウント

以下のコマンドでマウント場所を確認します。(該当箇所のみ記載)

>lsblk
sdb                         8:16   0   3.6T  0 disk
├─sdb1                      8:17   0    16M  0 part
└─sdb2                      8:18   0   3.6T  0 part /media/hdd1

今回はsdb2でした。

>ls /dev/disk/by-uuid/ -l
total 0
lrwxrwxrwx 1 root root  9 Jul 16 12:01 2022-04-21-06-14-55-00 -> ../../sr0
lrwxrwxrwx 1 root root 10 Jul 16 12:01 ○○○ -> ../../sda2
lrwxrwxrwx 1 root root 10 Jul 16 12:01 ××× -> ../../sdb2
lrwxrwxrwx 1 root root 10 Jul 16 12:01 ****** -> ../../dm-0
lrwxrwxrwx 1 root root 10 Jul 16 12:01 ******* -> ../../sda1

sda2を探して、その左に書いてあるUUIDをコピーしてください。上記の場合○○○

そしたら、以下のコマンドでfstabを開き…

sudo nano /etc/fstab

以下のように追記します。

#hdd1 //分かりやすいように書く
/dev/disk/by-uuid/○○○ /media/hdd1 ntfs defaults 0 0

以上でNextcloudの構築は終了です。

最後に

NextcloudにはPC版とスマホ版のクライアントアプリが用意されており、作成したアカウントでログインすることでストレージにアクセスすることができます。また、ユーザーごとに権限を設定できるので、複数人でストレージを共有するといった使い方ができます。

クライアントのダウンロードはNextcloudの管理画面から行えます。

タイトルとURLをコピーしました