AWS(AmazonLinux2)にsnapをインストールする方法

AWS 未分類

2020年までは、無料のSSL証明書「Let’s Encrypt」を利用するためには「certbot-auto」というプログラムが利用されていたのですが、2021年1月以降すべてのディストリビューションにおいて非推奨となり現在は以下のエラーが表示され利用できなくなっています。

Skipping bootstrap because certbot-auto is deprecated on this system.
Your system is not supported by certbot-auto anymore.
Certbot cannot be installed.
Please visit https://certbot.eff.org/ to check for other alternatives.

2021年1月以降は「snap」を利用した「certbot」のインストールが推奨されています。ただし、「Amazon Linux2」に「snap」をインストールするには、ひと手間が必要なためその手順を紹介します。

単純にyumを実行するとエラー

snapを利用するためのsnapdはyumでインストールすることができるのですが「Amazon Linux2」で実行すると、以下のようなエラーが発生しインストールすることができません。

$ yum install snapd

読み込んだプラグイン:langpacks, priorities, update-motd
amzn2-core                                               | 3.7 kB     00:00
・・・・・
43 packages excluded due to repository priority protections
パッケージ snapd は利用できません。
エラー: 何もしません

snapdのリポジトリを取得

まずは、wgetコマンドを実行してsnapdのリポジトリをダウンロードします。
※以降はrootユーザーで実行してください。

$ cd /etc/yum.repos.d/
$ wget https://people.canonical.com/~mvo/snapd/amazon-linux2/snapd-amzn2.repo

--2021-07-03 10:26:57--  https://people.canonical.com/~mvo/snapd/amazon-linux2/snapd-amzn2.repo
・・・・・
2021-07-03 10:26:59 (7.63 MB/s) - `snapd-amzn2.repo' へ保存完了 [309/309]

yumの設定ファイルを編集

yum.confの最後に1行設定(exclude=snapd-*.el7 snap-*.el7)を追加します。

$ vi /etc/yum.conf

・・・・・
exclude=snapd-*.el7 snap-*.el7

snapdをインストール

yumを利用してsnapdのインストールを行います。

$ yum install snapd

読み込んだプラグイン:langpacks, priorities, update-motd
amzn2-core                                               | 3.7 kB     00:00
・・・・・
依存性関連をインストールしました:
  lzo.x86_64 0:2.06-8.amzn2.0.4
  snap-confine.x86_64 0:2.51-1.amzn2.1
  squashfs-tools.x86_64 0:4.3-0.21.gitaae0aff4.amzn2.0.1

完了しました!

snapdの起動と自動起動の設定

snapdを起動するのと同時に、自動起動設定を行います。

$ systemctl enable --now snapd.socket

Created symlink from /etc/systemd/system/sockets.target.wants/snapd.socket to /usr/lib/systemd/system/snapd.socket.

snapをインストール

以下のコマンドでsnapのインストールを行います。

$ snap install core

タイミングにより以下のエラーが出ることがあるので、もし発生した場合は何度か実行してみてください。

error: too early for operation, device not yet seeded or device model not acknowledged

正常にインストールが完了したら、最新バージョンにアップデートして完了です。

$ snap refresh core

snap "core" has no updates available

$ snap --version

snap    2.51-1.amzn2.1
snapd   2.51-1.amzn2.1
series  16
amzn    2
kernel  4.14.186-146.268.amzn2.x86_64

これで「Let’s Encrypt」に必要な「certbot」をsnapでインストールできるようになります。

それではみなさん、自由なWEBライフをお過ごしください!

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