Oracle Cloud のAlways Free枠を活用して構築したNextcloudサーバは、httpsのみの利用を前提として最後にhttp/80を閉じていました。実はこれが、 Let’s Encrypt による3ヶ月毎の SSL証明書更新 の弊害になる、とのご指摘いただき(有り難うございます!)まして、今回はその対策に当たり、 Snap 版 Nextcloud パッケージの要点を Snap の基本と共にまとめた、これは純粋な作業メモです。
Snapの基本
先ず、コンピュートインスタンスに現在インストールされている、Snapパッケージの一覧を確認してみます。インスタンスに元々入っているoracle-cloud-agentもSnapパッケージでした。
$ snap list Name Version Rev Tracking Publisher Notes core18 20210722 2127 latest/stable canonical✓ base lxd 4.0.7 21032 4.0/stable/… canonical✓ - nextcloud 21.0.3snap2 28426 latest/stable nextcloud✓ - oracle-cloud-agent 1.8.3.2781 15 latest/stable/… oci.osi classic snapd 2.51.4 12886 latest/stable canonical✓ snapd
続いてSnapベースのデーモンの稼働状況を一覧表示します。
$ sudo snap services Service Startup Current Notes lxd.activate enabled inactive - lxd.daemon enabled inactive socket-activated nextcloud.apache enabled active - nextcloud.logrotate enabled inactive timer-activated nextcloud.mdns-publisher enabled active - nextcloud.mysql enabled active - nextcloud.nextcloud-cron enabled active - nextcloud.nextcloud-fixer enabled inactive - nextcloud.php-fpm enabled active - nextcloud.redis-server enabled active - nextcloud.renew-certs enabled active - oracle-cloud-agent.oracle-cloud-agent enabled active - oracle-cloud-agent.oracle-cloud-agent-updater enabled active -
Snapでインストールされたパッケージは、
/snap/bin
にシンボリックリンクが配されていて、インスタンス内では既に
/snap/bin
へのパスは通っています。
$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin $ ls -l /snap/bin lrwxrwxrwx 1 root root 7 Jul 21 15:26 lxc -> lxd.lxc lrwxrwxrwx 1 root root 13 Jul 21 15:26 lxd -> /usr/bin/snap lrwxrwxrwx 1 root root 13 Jul 21 15:26 lxd.benchmark -> /usr/bin/snap lrwxrwxrwx 1 root root 13 Jul 21 15:26 lxd.buginfo -> /usr/bin/snap lrwxrwxrwx 1 root root 13 Jul 21 15:26 lxd.check-kernel -> /usr/bin/snap lrwxrwxrwx 1 root root 13 Jul 21 15:26 lxd.lxc -> /usr/bin/snap lrwxrwxrwx 1 root root 13 Jul 21 15:26 lxd.lxc-to-lxd -> /usr/bin/snap lrwxrwxrwx 1 root root 13 Jul 21 15:26 lxd.migrate -> /usr/bin/snap lrwxrwxrwx 1 root root 13 Aug 11 13:36 nextcloud.disable-https -> /usr/bin/snap lrwxrwxrwx 1 root root 13 Aug 11 13:36 nextcloud.enable-https -> /usr/bin/snap lrwxrwxrwx 1 root root 13 Aug 11 13:36 nextcloud.export -> /usr/bin/snap lrwxrwxrwx 1 root root 13 Aug 11 13:36 nextcloud.import -> /usr/bin/snap lrwxrwxrwx 1 root root 13 Aug 11 13:36 nextcloud.manual-install -> /usr/bin/snap lrwxrwxrwx 1 root root 13 Aug 11 13:36 nextcloud.mysql-client -> /usr/bin/snap lrwxrwxrwx 1 root root 13 Aug 11 13:36 nextcloud.mysqldump -> /usr/bin/snap lrwxrwxrwx 1 root root 13 Aug 11 13:36 nextcloud.occ -> /usr/bin/snap
次に、インストールされているSnapパッケージの手動更新チェックと自動更新を確認してみると、デフォルトで4時間に一度の更新チェックがスケジューリングされていることが分かります。
$ sudo snap refresh --list All snaps up to date. $ snap refresh --time timer: 00:00~24:00/4 last: today at 20:34 HKT next: tomorrow at 04:30 HKT
それでは前回インストールしたSnap版Nextcouldのパッケージの詳細を確認します。
$ snap info nextcloud name: nextcloud summary: Nextcloud Server - A safe home for all your data publisher: Nextcloud✓ store-url: https://snapcraft.io/nextcloud contact: https://github.com/nextcloud/nextcloud-snap license: unset description: | Where are your photos and documents? With Nextcloud you pick a server of your choice, at home, in a data center or at a provider. And that is where your files will be. Nextcloud runs on that server, protecting your data and giving you access from your desktop or mobile devices. Through Nextcloud you also access, sync and share your existing data on that FTP drive at school, a Dropbox or a NAS you have at home. commands: - nextcloud.disable-https - nextcloud.enable-https - nextcloud.export - nextcloud.import - nextcloud.manual-install - nextcloud.mysql-client - nextcloud.mysqldump - nextcloud.occ services: nextcloud.apache: simple, enabled, active nextcloud.logrotate: simple, enabled, inactive nextcloud.mdns-publisher: simple, enabled, active nextcloud.mysql: simple, enabled, active nextcloud.nextcloud-cron: simple, enabled, active nextcloud.nextcloud-fixer: simple, enabled, inactive nextcloud.php-fpm: simple, enabled, active nextcloud.redis-server: simple, enabled, active nextcloud.renew-certs: simple, enabled, active snap-id: njObIbGQEaVx1H4nyWxchk1i8opy4h54 tracking: latest/stable refresh-date: 20 days ago, at 13:36 HKT channels: latest/stable: 21.0.3snap2 2021-08-06 (28426) 306MB - latest/candidate: ↑ latest/beta: 21.0.3snap2+git4.1c73b86 2021-08-24 (28436) 317MB - latest/edge: master-2021-06-15 2021-06-15 (28366) 232MB - 21/stable: 21.0.3snap2 2021-08-06 (28426) 306MB - 21/candidate: ↑ 21/beta: ↑ 21/edge: 21-2021-06-15 2021-06-15 (28368) 228MB - 20/stable: 20.0.11snap1 2021-07-09 (28395) 220MB - 20/candidate: ↑ 20/beta: 20.0.11snap1+git5.eea5f18 2021-08-24 (28434) 298MB - 20/edge: 20-2021-06-15 2021-06-15 (28367) 220MB - -略- 9/stable: 9.0.53snap4 2020-06-26 (101) 134MB - 9/candidate: ↑ 9/beta: ↑ 9/edge: ↑ installed: 21.0.3snap2 (28426) 306MB -
Snapパッケージの自動更新によって、最新パッケージへのアップデートが既に適用されていました。
Snapパッケージはその設定もSnapを通じて行うのが流儀らしく、Nextcloudパッケージの設定も次のようなJSON形式になっています。
$ sudo snap get -d nextcloud { "mode": "production", "nextcloud": { "cron-interval": "5m" }, "php": { "memory-limit": "512M" }, "ports": { "http": 80, "https": 443 }, "private": { "mode": "production", "nextcloud": { "cron-interval": "5m" }, "php": { "memory-limit": "512M" }, "ports": { "http": 80, "https": 443 }, "snap": { "version": "21.0.3snap2" } } }
ここまでSnapの基礎を一通りおさえてみましたが、次ページではSnap版Nextcloudに含まれるSSL証明書更新サービスを掘り下げてみます。
投稿 Snap版Nextcloudの保守とSSL証明書更新 は Fun Scripting 2.0 に最初に表示されました。