🗻

Conoha VPSでAlpine Linux(3.18.4)のテンプレートイメージを自作する手順をまとめてみました。

2023/11/06に公開

Conoha VPSでAlpine Linuxのテンプレートイメージを作成して運用してみました。
その中の、自作テンプレートイメージ作成の方法を手順形式で紹介します。

最初に

ここで紹介する自作テンプレートイメージは全て自己責任で利用してください。

作成するイメージの目標

cloud-initをイントールして、スタートアップスクリプト(user_data.txt)の実行と、SSH公開鍵のインポートが可能なイメージにします。

1. ISOイメージをマウント

2. システムのセットアップ

ISOイメージがマウントできたら、VPSを起動し、以下の手順でシステムをセットアップしていきます。

  • ConohaVPSの管理画面から、Webコンソールを開きます。
  • rootユーザーに、パスワード入力無しでログインします。
  • 以下のセットアップコマンドを叩きます。
setup-alpine
  • すると、対話形式のセットアップが始まります。お好みの設定をしてください。
    • eh0のアドレスの設定方法は、DHCPにするとConoha VPSから割り当てられるIPアドレスが設定されます。
    • 利用するディスクは、"vda" (VPSに割り当てられているディスク)にします。
    • 次に、*sysを選択し、Alpine Linuxをディスクにインストールするようにします。
    • 起動したVPSの元のOSは必要ないので削除します。
Which disks(s) would you like to use? (or '?' for help or 'none') [none]: vda
How would you like to use it?('sys', 'data', 'crypt', 'lvm' or '?' for help)[?]: sys # As you need
Erase the above disk(s) and continue? (y/n) [n] y

3. システムのセットアップが完了したあと

セットアップが完了したら、VPSをシャットダウンします。
そして、下記の記事の内容に従って、ISOイメージをエジェクトします。
CLIツールで簡単にISOイメージをマウントする

4. cloud-initのインストール

  • /etc/apk/repositoriesを開いて、コミュニティリポジトリをからパッケージをインストールできるようにします。
vi /etc/apk/repositories
http://dl-cdn.alpinelinux.org/alpine/v3.18/community # <- Remove comment
  • パッケージリストをアップデートし、cloud-initと、py3-netifacesをインストールします。
  • py3-netifacesと、mountパッケージをインストールしないと、cloud-init実行時にエラーが生じます。
apk update
apk add cloud-init
apk add py3-netifaces
apk add mount

5. cloud-initの設定

  • Conoha VPSは特殊なドライブをアタッチする、OpenStackのConfigDriveを利用して、そこからSSH公開鍵やスタートアップスクリプトをVPS内部にインポートしています。これを使えるようにするには、サーバー内部での設定が必要になるため、以下の行を、/etc/cloud/cloud.cfgに追加します。
vi /etc/cloud/cloud.cfg
datasource_list: [ConfigDrive]
  • rootユーザーを有効にします。
disable_root: false
  • setup-cloud-initを実行します。
setup-cloud-init

6. イメージの保存

VPSをシャットダウンして、イメージを保存します。OS名とバージョンはしっかり明記しておきましょう。これでいつでもAlpine Linuxを起動できるようになりました。

最後に

Alipine Linuxには、他にもファイアーウォールを設定するawall(iptablesの設定ツール)コマンドなど、独自ツールもあるため、そちらも別の記事で紹介しようと思います。

Discussion