UbuntuISOフォーマットイメージからDigitalOceanドロップレットを作成する方法

提供:Dev Guides
移動先:案内検索

序章

DigitalOceanのカスタムイメージ機能を使用すると、仮想ディスクイメージをオンプレミス環境または別のクラウドプラットフォームからDigitalOceanに移動し、それらを使用してDigitalOceanドロップレットを起動できます。

カスタム画像のドキュメントで説明されているように、次の画像タイプはカスタム画像アップロードツールによってネイティブにサポートされています。

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

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

前提条件

始める前に、次のものを利用できるようにする必要があります。

  • VirtualBoxをインストールして使用するローカルマシンまたはリモートサーバー(GUIアクセス付き)。 このチュートリアルでは、Mac OS Xローカルマシンを使用しますが、VirtualBoxでサポートされている任意のシステムを使用できます。 サポートされているシステムの詳細については、 VirtualBoxManualを参照してください。 GUIメニューオプションはオペレーティングシステム間で類似している必要がありますが、同一ではない場合があります。
  • ISO形式のUbuntu18.04サーバーOSイメージubuntu-18.04.1-live-server-amd64.isoイメージは、カスタムイメージイメージ要件にリストされている2つの要件を満たしています。
    • イメージはext3またはext4ファイルシステムをサポートしている必要があります
    • イメージにはcloud-init0.7.7、cloudbase-initcoreos-cloudinitiginition、またはbsd-cloudinitがインストールされている必要があります(Ubuntu18.04サーバーには[ X126X] がインストールされています)

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

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

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

このガイドでISO形式のイメージを変換するために使用するツールは、x86ハードウェア用の無料のオープンソース仮想化ツールであるVirtualBoxです。 デフォルトでは、VirtualBoxはGUIを使用します。このガイドを使用して、このガイドでVDIイメージを作成します。

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

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

次のウェルカム画面が表示されます。

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

次のウィンドウがポップアップ表示され、仮想マシン(VM)に名前を付けて、そのOSを選択できるようになります。

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

タイプの場合はLinuxを選択し、バージョンの場合は Ubuntu(64ビット)を選択します。 次に、続行を押します。

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

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

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

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

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

3つのタイプはすべてDigitalOceanカスタムイメージでサポートされているため、特に強い設定がない限り、 VDI(VirtualBoxディスクイメージ)を選択してください。 続行を押します。

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

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

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

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

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

この時点で、最初のウェルカム画面に戻り、作成した仮想マシンが表示されます。

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

ステップ2—仮想マシンへのUbuntu18.04のインストール

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

まず、VirtualBoxのウェルカム画面から仮想マシンを選択し、ツールバーのStartボタンを押します。

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

ダウンロードしたUbuntu18.04サーバーISOを選択し、Startをクリックします。

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

矢印キーを使用して希望の言語を選択し、ENTERを押して続行します。

次に、次のキーボード構成画面が表示されます。

好みのキーボード構成を選択し、完了を選択して、ENTERを押します。

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

Ubuntuのインストールを選択し、ENTERを押します。

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

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

完了を選択し、ENTERを押します。

次に、次のプロキシの構成画面が表示されます。

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

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

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

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

論理ボリュームマネージャー(LVM)をセットアップするか、仮想ディスクを手動でパーティション分割する場合を除き、ディスク全体を使用を選択して、接続されている仮想ディスク全体を使用し、ENTER

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

プロンプトテキストで説明されているように、インストーラーはブートローダー用のパーティションを作成し、残りの仮想ディスク領域を使用して、UbuntuOSがインストールされるext4パーティションを作成します。

接続されている仮想ディスクを選択し、ENTERを押します。

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

ext4パーティションは/にマウントされ、 GRUBブートローダー用に2番目のパーティション(1 MB)が作成されます。 仮想ディスクのパーティションスキームを確認したら、完了を選択してENTERをクリックします。

表示される確認画面で、続行を選択し、ENTERを押します。

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

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

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

SSHキーをDigitalOceanにアップロードし、作成されたドロップレットに自動的に埋め込むことができるため、現時点ではSSHIDのインポートは行いません。 SSHキーをDigitalOceanにアップロードする方法については、ドロップレット製品ドキュメントを参照してください。

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

完了を選択し、ENTERを押します。

次の画面では、Ubuntuサーバーで人気のあるスナップを選択するように求められます。 スナップは、アプリケーション、その依存関係、および構成を含む、事前にパッケージ化されたソフトウェアのバンドルです。 スナップの詳細については、スナップドキュメントを参照してください。

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

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

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

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

再確認するには、VirtualBox GUIメニューで、デバイスオプティカルドライブの順に移動します。 仮想ドライブからディスクを削除するオプションを使用できる場合は、それをクリックして仮想マシンからISOをデタッチします。 次に、仮想マシンウィンドウに戻り、ENTERを押します。

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

cloud-initはデフォルトでUbuntu18.04サーバーにインストールされているため、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データソースの詳細については、公式cloud-initドキュメントを参照してください。

デフォルトでは、Ubuntu 18.04では、cloud-initDataSourceNoCloudデータソースを使用するように構成されています。 これにより、DigitalOceanでイメージを実行するときに問題が発生するため、cloud-initを再構成してConfigDriveデータソースを使用し、イメージが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

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

sudo rm 50-curtin-networking.cfg

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

sudo dpkg-reconfigure cloud-init

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

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

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

cd /etc/netplan

50-cloud-init.yamlファイルを削除します(これは、前に削除したcloud-initネットワーキングファイルから生成されました)。

sudo rm 50-cloud-init.yaml

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

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

sudo cloud-init clean

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

sudo shutdown -h now

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

ステップ4—カスタム画像のアップロードとドロップレットの作成

Ubuntu 18.04 VDIイメージを作成し、DigitalOceanで使用するように構成したので、カスタムイメージアップロードツールを使用してアップロードできます。

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

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

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

cd ~/VirtualBox\ VMs/Ubuntu\ 18.04/

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

gzip < Ubuntu\ 18.04.vdi > Ubuntu\ 18.04.gz

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

gzipでファイルの圧縮が完了したら、カスタムイメージクイックスタートの手順に従って、.gzファイルをDigitalOceanにアップロードします。

これで、カスタムUbuntu18.04サーバーイメージからドロップレットを作成して使用できるようになります。

結論

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

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

Packer などのツールを使用して、マシンイメージの作成を自動化することもできます。

DigitalOceanカスタムイメージの詳細については、カスタムイメージ製品ドキュメントを参照し、ブログ投稿を起動してください。