AzureストレージとSnapを使用したNextcloud構築


はじめに

メモ書きです。
Azureのファイルストレージをマウントし、NextCloudで利用します。
Snapを使用しようします。個人使用です。ちゃんとやる人はマニュアルでお願いします。

サーバ環境

今回の手順は、以下の環境で実施。

  • Ubuntu 18.04

手順

AzureVMを作成後

ログイン後ルートで作業を実施します。

$ sudo -i

インストール

1. snapでインストール

$ snap install nextcloud

2.ファイアウォールの設定

F/Wを設定します。
※作業後はAzure側で22番ポートをDenyにしておく。SSHで作業するときだけAllowにする。

$ ufw enable
$ ufw allow 22
$ ufw allow 80
$ ufw allow 443
$ ufw reload

3.nextcloudのポートを指定し、SSL化します。

snap set nextcloud ports.http=80 ports.https=443
nextcloud.enable-https lets-encrypt

4. 外付けマウントの記憶媒体を許可します。

snap connect nextcloud:removable-media

5. Azureポータルにログインし、マウントコマンドをコピーし修正。

※以下例
※ディレクトリを0770としないとログイン画面がでてきません。

mkdir /mnt/<ストレージアカウント名>
 if [ ! -d "/etc/smbcredentials" ]; then sudo mkdir /etc/smbcredentials; fi
 if [ ! -f "/etc/smbcredentials/<ストレージアカウント名>.cred" ]; then     sudo bash -c 'echo "username=<ストレージアカウント名>" >> /etc/smbcredentials/<ストレージアカウント名>.cred';     sudo bash -c 'echo "password=<固有>" >> /etc/smbcredentials/<ストレージアカウント名>.cred'; fi
chmod 600 /etc/smbcredentials/<ストレージアカウント名>.cred
bash -c 'echo "//<ストレージアカウント名>.file.core.windows.net/nextcloud /mnt/<ストレージアカウント名> cifs nofail,vers=3.0,credentials=/etc/smbcredentials/<ストレージアカウント名>.cred,dir_mode=0770,file_mode=0777,serverino" >> /etc/fstab'
mount -t cifs //<ストレージアカウント名>.file.core.windows.net/nextcloud /mnt/<ストレージアカウント名> -o vers=3.0,credentials=/etc/smbcredentials/<ストレージアカウント名>.cred,dir_mode=0770,file_mode=0777,serverino

6. データ保存場所をNextcloud側で変更します。

こんな風にしなくても、管理者メンバー作成する前であればとあるコンフィグで変更が可能らしい。

mkdir /mnt/<ストレージアカウント名>/data
nano /var/snap/nextcloud/current/nextcloud/config/config.php
  'datadirectory' => '/mnt/<ストレージアカウント名>/data',
snap disable nextcloud

すでに作成されたデータをコピーまた移動してあげます。ちょっとgdgdな手順。

cp -r /var/snap/nextcloud/common/nextcloud /mnt/<ストレージアカウント名>/data
snap enable nextcloud
touch .ocdata
snap restart nextcloud

あとがき

本来はBlobストレージに挑戦していましたが、うまくいきませんでした。
SMBならうまくいくかもと思いやってみました。

8/15追記 BlobfuseでマウントしたAzure Blobストレージは
permissionが変更できず、0777?0770?しか付与できないっぽいので、ログイン画面に遷移しません。
初回ログインはいけるんですよね。残念。

注意点はsnapではwebサーバのコンフィグはいじれません。※たぶん

参考