前書き

DigitalOceanのhttps://www.digitalocean.com/docs/images/custom-images/[Custom Images]機能を使用すると、オンプレミス環境または別のクラウドプラットフォームからDigitalOceanに仮想ディスクイメージを持ち込み、それらを使用してDigitalOceanを起動できます。しずく。

https://www.digitalocean.com/docs/images/custom-images/overview/ [カスタム画像のドキュメント]で説明されているように、カスタム画像アップロードツールでは次の画像タイプがネイティブにサポートされています。

ISOは、カスタム画像で使用したい別の一般的な画像形式です。 ISOイメージは、Linuxをインストールする便利な方法として、Linuxディストリビューションによって頻繁に提供されます。 残念なことに、ISOイメージは現在、アップロードツールでサポートされていませんが、サポートは2018年末に予定されています。

このチュートリアルでは、無料でオープンソースのhttps://www.virtualbox.org/[VirtualBox]仮想化ツールを使用して、Ubuntu 18.04 ISOからDigitalOcean互換のVDIイメージ(VirtualBoxディスクイメージ)を作成する方法を示します。 。 このガイドの手順は、希望するディストリビューションのISOイメージで動作するように調整できます。

前提条件

開始する前に、次のものが必要です。

  • VirtualBoxをインストールして使用するローカルマシンまたはリモートサーバー(GUIアクセス付き)。 このチュートリアルでは、Mac OS Xローカルマシンを使用しますが、VirtualBoxでサポートされている任意のシステムを使用できます。 サポートされているシステムの詳細については、https://www.virtualbox.org/manual/ch01.html#hostossupport [VirtualBox Manual]をご覧ください。 GUIメニューオプションはオペレーティングシステム間で類似している必要がありますが、同一ではない場合があります。

  • ISO形式http://releases.ubuntu.com/18.04/[Ubuntu 18.04サーバーOSイメージ]。 `+ ubuntu-18.04.1-live-server-amd64.iso +`イメージは、カスタムイメージhttps://www.digitalocean.com/docs/images/custom-images/overview/#image-にリストされている2つの要件を満たしています要件[画像要件]:

  • 画像はext3またはext4ファイルシステムをサポートする必要があります

  • イメージには、 + cloud-init + 0.7.7、 + cloudbase-init ++ coreos-cloudinit ++ iginition +、または `+ bsd-cloudinit `がインストールされている必要があります(Ubuntu 18.04サーバーには ` cloud -init + `インストール済み)

これらの手順を別のディストリビューションのISOに適応させ、イメージに「+ cloud-init +」がインストールおよび設定されていない場合、OSのインストール後に手動でインストールおよび設定する必要があります。

これらの前提条件を利用できるようになったら、このガイドを開始できます。

ステップ1-VirtualBoxのインストールと仮想マシンの作成

このガイドでISO形式のイメージを変換するために使用するツールは、x86ハードウェア用の無料のオープンソースバーチャライザーであるhttps://www.virtualbox.org/[VirtualBox]です。 デフォルトでは、VirtualBoxはGUIを使用します。GUIは、このガイドでVDIイメージを作成するために使用します。

まず、https://www.virtualbox.org/wiki/Downloads [downloads]ページからVirtualBoxをダウンロードしてインストールします。 ホストオペレーティングシステムに応じて、* VirtualBox 5.2.20プラットフォームパッケージ*セクションの適切なリンクをたどります。 このガイドでは、OSXシステムを使用するため、提供されているDMGを使用してVirtualBoxをダウンロードしてインストールします。

VirtualBoxをインストールしたら、アプリケーションを開きます。

次のようこそ画面が表示されます。

image:https://assets.digitalocean.com/articles/iso_custom_images/vbox_welcome.png [VirtualBox Welcome Screen]

*新規*をクリックして、Ubuntu仮想マシンの作成を開始します。

次のウィンドウが表示され、仮想マシン(VM)に名前を付けてそのOSを選択できます。

image:https://assets.digitalocean.com/articles/iso_custom_images/name_os.png [仮想マシン名ウィンドウ]

このチュートリアルでは、VMに「+ Ubuntu 18.04+」という名前を付けますが、VMにもっとわかりやすい名前を付けてください。

  • Type には Linux を選択し、 Version には Ubuntu(64ビット)を選択します。 次に、 Continue *を押します。

次の画面が表示され、仮想マシンに割り当てるメモリの量を指定できます。

image:https://assets.digitalocean.com/articles/iso_custom_images/memory.png [メモリ割り当てウィンドウ]

より複雑なユースケースがない限り、1024 MBが仮想マシンに十分なメモリであるはずです。 メモリサイズを調整する必要がある場合は、VMに割り当てるメモリの量を入力して、* Continue *を押します。

次の画面が表示されます。

image:https://assets.digitalocean.com/articles/iso_custom_images/hard_disk.png [ハードディスクウィンドウの作成]

このウィンドウでは、VMの仮想ハードディスクを作成できます。 この仮想ハードディスクは、後の手順でDigitalOceanにアップロードする画像です。 Ubuntuオペレーティングシステムは、この仮想ハードディスクにダウンロードしたISOからインストールされます。 [今すぐ仮想ハードディスクを作成する]が選択されていることを確認し、[作成]をクリックします。

次の[ハードディスクファイルタイプ]ウィンドウが表示され、画像に使用する形式を選択できます。

image:https://assets.digitalocean.com/articles/iso_custom_images/hard_disk_type.png [ハードディスクタイプの選択ウィンドウ]

3つのタイプはすべてDigitalOceanカスタムイメージでサポートされているため、特に優先度が高い場合を除き、* VDI(VirtualBox Disk Image)*を選択してください。 * Continue *を押します。

次のウィンドウが表示されます。

image:https://assets.digitalocean.com/articles/iso_custom_images/storage_option.png [ハードディスクオプション]

このウィンドウでは、*動的に割り当てられた*または*固定サイズ*のハードディスクファイルを選択できます。 デフォルトの*動的に割り当てられた*オプションを使用し、Ubuntu OSおよびパッケージをインストールするときにファイルが大きくなるようにします。 * Continue *を押します。

次のウィンドウでは、ハードディスクファイルに名前を付け(保存先のパスを選択)、その最大サイズを指定できます。

image:https://assets.digitalocean.com/articles/iso_custom_images/disk_file.png [ハードディスクサイズ]

オペレーティングシステムと必要な追加パッケージをインストールするのに十分なディスク容量を確保してください。 ほとんどの場合、デフォルトの10 GBで十分ですが、多数のパッケージをインストールしたり、イメージに大量のデータを保存したりする場合は、予想されるディスク使用量に引き上げる必要があります。

仮想ハードディスクのサイズを選択したら、[作成]をクリックします。

この時点で、最初のようこそ画面に戻り、作成した仮想マシンが表示されます。

image:https://assets.digitalocean.com/articles/iso_custom_images/vm_start.png [VM Welcome Screen]

これで、Ubuntuの仮想マシンへのインストールを開始できます。

手順2-Ubuntu 18.04を仮想マシンにインストールする

この手順では、Ubuntuオペレーティングシステムを仮想マシンにインストールして構成します。

開始するには、VirtualBoxのようこそ画面から仮想マシンを選択し、ツールバーの*開始*ボタンを押します。

次の仮想マシンウィンドウが表示され、システムを起動するISOファイルを選択するよう求められます。

image:https://assets.digitalocean.com/articles/iso_custom_images/vm_install.png [Select ISO]

ダウンロードしたUbuntu 18.04サーバーISOを選択し、*開始*を押します。

VMで、UbuntuインストーラーがISOからの起動を開始し、次のメニューが表示されます。

image:https://assets.digitalocean.com/articles/iso_custom_images/ubuntu_language.png [Ubuntu Select Language]

矢印キーを使用して好みの言語を選択し、続行するには `+ ENTER`を押します。

その後、次の*キーボード設定*画面が表示されます。

image:https://assets.digitalocean.com/articles/iso_custom_images/keyboard.png [Ubuntu Keyboard Config]

お好みのキーボード設定を選択し、*完了*を選択して、「+ ENTER +」を押します。

次に、次のインストーラー選択画面が表示されます。

image:https://assets.digitalocean.com/articles/iso_custom_images/ubuntu_install.png [Ubuntu Installer Selection]

[* Ubuntuのインストール]を選択し、 `+ ENTER +`を押します。

次の*ネットワーク接続*画面が表示されます。

image:https://assets.digitalocean.com/articles/iso_custom_images/network_connections.png [Ubuntu Network connections]

この画面では、Ubuntuサーバーのネットワークインターフェイスを構成できます。 仮想マシンでインストールを実行しているため、DigitalOceanプラットフォームでイメージを起動すると構成されたインターフェイスが上書きされるため、デフォルトのオプションを使用します。

*完了*を選択して、 `+ ENTER +`を押します。

その後、次の[プロキシの設定]画面に移動します:

image:https://assets.digitalocean.com/articles/iso_custom_images/configure_proxy.png [Ubuntu Configure Proxy]

プロキシが必要な場合は、ここに入力してください。 次に、* Done *を選択し、 `+ ENTER +`を押します。

次の画面では、Ubuntuアーカイブミラーを選択できます。

image:https://assets.digitalocean.com/articles/iso_custom_images/ubuntu_mirror.png [Ubuntu Archive Mirror]

特定のミラーが必要な場合を除き、デフォルトはここで問題ありません。 *完了*を選択して、 `+ ENTER +`を押します。

次に、仮想ディスクをパーティション分割するように求められます。

image:https://assets.digitalocean.com/articles/iso_custom_images/partition.png [Ubuntu Partition Disk]

Logical Volume Manager(LVM)をセットアップするか、仮想ディスクを手動でパーティション分割する場合を除き、* Use An Entire Disk *を使用して全体を使用します。接続された仮想ディスク、および「+ ENTER +」を押します。

次の画面では、パーティション化する仮想ディスクを選択できます。

image:https://assets.digitalocean.com/articles/iso_custom_images/filesystem_setup.png [Ubuntu Filesystem setup]

プロンプトテキストで説明されているように、インストーラーはブートローダーのパーティションを作成し、残りの仮想ディスクスペースを使用して、Ubuntu OSのインストール先となる「+ ext4 +」パーティションを作成します。

接続された仮想ディスクを選択し、「+ ENTER +」を押します。

次の画面には、パーティション化する前のファイルシステムインストーラーオプションの概要が表示されます。

image:https://assets.digitalocean.com/articles/iso_custom_images/filesystem_summary.png [Ubuntu Filesystem Summary]

`+ ext4 `パーティションは ` / `にマウントされ、2番目のパーティション(1 MB)がhttps://en.wikipedia.org/wiki/GNU_GRUB[GRUBブートローダー]用に作成されます。 仮想ディスクのパーティション構成を確認して確認したら、[完了]を選択して[ ENTER +]を押します。

表示される確認画面で、* Continue *を選択し、 `+ ENTER +`を押します。

次の画面では、システムのホスト名とUbuntuユーザーを構成できます。

image:https://assets.digitalocean.com/articles/iso_custom_images/profile_setup.png [Ubuntu Create User]

この画面に入力すると、インストーラーはファイルをバックグラウンドで仮想ディスクにコピーし続けることに注意してください。

このチュートリアルでは、* sammy という名前のユーザーを作成し、サーバーを ubuntu *と呼びます。 このイメージがDigitalOceanプラットフォームで実行されると、サーバー名が上書きされる可能性が高いため、ここで一時的な名前を指定してください。

SSHキーをDigitalOceanにアップロードして、作成されたドロップレットに自動的に埋め込むことができるため、現時点では* SSH IDをインポート*しません。 SSHキーをDigitalOceanにアップロードする方法については、https://www.digitalocean.com/docs/droplets/how-to/add-ssh-keys/to-account/ [Droplet Product Documentation]をご覧ください。

すべての必須フィールドに入力すると、プロンプトは次のようになります。

image:https://assets.digitalocean.com/articles/iso_custom_images/profile_setup_complete.png [Ubuntu Profile Complete]

*完了*を選択して、 `+ ENTER +`を押します。

次の画面では、Ubuntuサーバーの一般的なスナップを選択するように求められます。 スナップは、アプリケーション、その依存関係、および構成を含むソフトウェアのパッケージ済みバンドルです。 スナップの詳細については、https://docs.snapcraft.io/snap-documentation/ [Snap Documentation]を参照してください。

image:https://assets.digitalocean.com/articles/iso_custom_images/ubuntu_snaps.png [Ubuntu Select Snaps]

このガイドではスナップをインストールせず、後の手順でパッケージを手動でインストールします。 スナップをインストールする場合は、「+ SPACE 」を使用してスナップを選択または選択解除し、「完了」までスクロールします。 次に、「 ENTER」を押します。

スナップ画面での選択に関係なく、インストールの進行状況と概要画面が表示されます。

image:https://assets.digitalocean.com/articles/iso_custom_images/install_progress.png [Ubuntuインストールの進行状況]

インストールが完了したら、*今すぐ再起動*を選択し、「+ ENTER」を押します。

インストーラーがシャットダウンし、インストールメディアを削除するように求められます(この場合、これは以前に選択したISOイメージです)。 ほとんどの場合、ISOは再起動時に自動的に切り離されるため、単に「+ ENTER +」を押すことができます。

再確認するには、VirtualBox GUIメニューで、* Devices に移動してから、 Optical Drives *に移動します。 [仮想ドライブからディスクを削除する]オプションが使用可能な場合は、それをクリックして、仮想マシンからISOを切り離します。 次に、仮想マシンウィンドウに戻り、「+ ENTER」を押します。

システムは、今度はUbuntuをインストールした仮想ディスクから仮想マシンで再起動します。

Ubuntu 18.04サーバーにはデフォルトで `+ cloud-init `がインストールされているため、Ubuntuの初回起動時に、 ` cloud-init `が実行され、自身が設定されます。 仮想マシンのウィンドウに、いくつかの ` cloud-init `ログアイテムが表示され、プロンプトが表示されます。 「 ENTER」を押します。

その後、インストーラーで作成したユーザーを使用してUbuntuサーバーにログインできます。

ユーザー名を入力して「+ ENTER 」を押し、次にパスワードを入力して「 ENTER +」を押します。

これで、Ubuntu 18.04のインストールが正常に完了し、以前に作成したユーザーとしてログインしたことを示すコマンドプロンプトにアクセスできるようになります。

このガイドの次のステップでは、 `+ cloud-init +`を再構成し、UbuntuイメージがDigitalOceanプラットフォームでドロップレットとして起動されるときに実行されるように設定します。

ステップ3-`+ cloud-init`を設定する

Ubuntu 18.04を仮想ディスクにインストールし、システムを稼働させたので、DigitalOceanプラットフォームに適切なデータソースを使用するように `+ cloud-init `を再設定する必要があります。 ` cloud-init `データソースは、 ` cloud-init `の設定データのソースであり、通常はユーザーデータ(シェルスクリプトなど)またはサーバーメタデータ(ホスト名、インスタンスIDなど)で構成されます。 ` cloud-init `データソースの詳細については、https://cloudinit.readthedocs.io/en/latest/topics/datasources.html [公式の ` cloud-init +`ドキュメント]を参照してください。

デフォルトでは、Ubuntu 18.04では、 `+ cloud-init `は ` DataSourceNoCloud `データソースを使用するように自身を設定します。 これにより、DigitalOceanでイメージを実行するときに問題が発生するため、 ` ConfigDrive `データソースを使用するように ` cloud-init `を再構成し、DigitalOceanでイメージを起動したときに ` cloud-init +`が再実行されるようにする必要があります。

まず、Ubuntu 18.04仮想マシンを起動し、以前に作成したユーザーとしてログインしていることを確認してください。

コマンドラインから、 `+ / etc / cloud / cloud.cfg.d +`ディレクトリに移動します:

cd /etc/cloud/cloud.cfg.d

`+ ls `コマンドを使用して、ディレクトリにある ` cloud-init +`設定ファイルを一覧表示します。

ls
Output05_logging.cfg  50-curtin-networking.cfg  90_dpkg.cfg  curtin-preserve-sources.cfg  README

最初に、 `+ 50-curtin-networking.cfg `ファイルを削除します。これにより、Ubuntuサーバーのネットワークインターフェースが設定されます。 イメージがDigitalOceanで起動されると、 ` cloud-init +`が実行され、これらのインターフェースが自動的に再構成されます。 このファイルが削除されない場合、このUbuntuイメージから作成されたDigitalOcean Dropletのインターフェイスは誤って設定され、インターネットからアクセスできなくなります。

sudo rm 50-curtin-networking.cfg

次に、 `+ dpkg-reconfigure cloud-init `を実行して ` NoCloud `データソースを削除し、 ` cloud-init `がDigitalOceanで使用されている ` ConfigDrive +`データソースを検索して検出するようにします。

sudo dpkg-reconfigure cloud-init

次のグラフィカルメニューが表示されます。

image:https://assets.digitalocean.com/articles/iso_custom_images/cloud_init.png [Cloud Init dpkgメニュー]

`+ NoCloud `データソースが最初に強調表示されます。 「 SPACE」を押して選択を解除し、「+ ENTER」を押します。

最後に、 `+ / etc / netplan +`に移動します。

cd /etc/netplan

`+ 50-cloud-init.yaml `ファイルを削除します(これは以前に削除した ` cloud-init +`ネットワークファイルから生成されました):

sudo rm 50-cloud-init.yaml

最後のステップは、DigitalOceanでイメージが起動されたときに再実行されるように、最初の `+ cloud-init`実行から構成をクリーンアップすることを確実にすることです。

これを行うには、 `+ cloud-init clean +`を実行します:

sudo cloud-init clean

この時点で、画像はDigitalOceanプラットフォームで起動する準備ができています。 追加のパッケージとソフトウェアをイメージにインストールできます。 完了したら、仮想マシンをシャットダウンします。

sudo shutdown -h now

これで、DigitalOceanプラットフォームでのこのカスタムイメージのアップロードと起動に進むことができます。

ステップ4-カスタムイメージのアップロードとドロップレットの作成

Ubuntu 18.04 VDIイメージを作成し、DigitalOceanで使用するように構成したので、カスタムイメージhttps://www.digitalocean.com/docs/images/custom-images/quickstart/ [アップロードツールを使用してアップロードできます]。

macOSでは、作成および構成したUbuntu仮想ディスクイメージは、デフォルトで `+〜/ VirtualBox VMs //。vdi +`に配置されます。 このパスは、VirtualBoxで使用しているOSによって若干異なる場合があります。

画像をアップロードする前に、圧縮してDigitalOceanへのファイル転送を高速化します。

ホストOS(仮想マシン内ではない)で、VDIイメージファイルを含むディレクトリに移動します。

cd ~/VirtualBox\ VMs//

次に、 `+ gzip +`を使用してファイルを圧縮します。

gzip <  > .gz

このコマンドでは、ソースの「+ Ubuntu 18.04.vdi 」ファイルを「 gzip 」にパイプし、出力として「 Ubuntu 18.04.gz +」圧縮ファイルを指定します。

`+ gzip `がファイルの圧縮を完了したら、https://www.digitalocean.com/docs/images/custom-images/quickstart/ [Custom Images Quickstart]の指示に従って、 ` .gz +`ファイルをDigitalOceanにアップロードします。

これで、カスタムUbuntu 18.04サーバーイメージからDropletを作成して使用できるようになります。

結論

このチュートリアルでは、VirtualBox仮想化ツールを使用して、バニラUbuntu 18.04 ISOからカスタムVDIイメージを作成する方法を学びました。 DigitalOceanでDropletネットワークを適切に構成できるように「+ cloud-init +」を調整し、最終的にカスタム画像アップロードツールを使用して画像を圧縮およびアップロードしました。

このチュートリアルの手順を調整して、好みのLinuxディストリビューションISOイメージを操作できます。 SSHサーバーがインストールされ、起動時に起動するように設定されていること、および `+ cloud-init `がインストールされ、 ` ConfigDrive +`データソースを使用するように適切に設定されていることを確認します。 最後に、古いネットワーク構成ファイルが削除されていることを確認します。

また、https://www.packer.io/ [Packer]などのツールを使用して、マシンイメージの作成を自動化することもできます。

DigitalOceanカスタムイメージの詳細については、カスタムイメージhttps://www.digitalocean.com/docs/images/custom-images/[product docs]を参照し、https://blog.digitalocean.com/custom-images/を起動してください。 [ブログ投稿]。