UbuntuISOフォーマットイメージからDigitalOceanドロップレットを作成する方法
序章
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イメージ。 The
ubuntu-18.04.1-live-server-amd64.iso
画像は、カスタム画像画像要件に記載されている2つの要件を満たしています。- イメージはext3またはext4ファイルシステムをサポートしている必要があります
- あなたの画像は持っている必要があります
cloud-init
0.7.7,cloudbase-init
,coreos-cloudinit
,iginition
、 またbsd-cloudinit
インストール済み(Ubuntu18.04サーバーにはcloud-init
インストール済み)
これらの手順を別のディストリビューションの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
.
次の画面では、パーティション化する仮想ディスクを選択できます。
プロンプトテキストで説明されているように、インストーラーはブートローダー用のパーティションを作成し、残りの仮想ディスクスペースを使用して作成します。 ext4
UbuntuOSがインストールされるパーティション。
接続されている仮想ディスクを選択して、 ENTER
.
次の画面には、パーティション分割する前のファイルシステムインストーラオプションの概要が表示されます。
The 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
Ubuntuが初めて起動するときにUbuntu18.04サーバーにデフォルトでインストールされます。 cloud-init
実行され、それ自体を構成します。 仮想マシンウィンドウに、いくつかが表示されます。 cloud-init
アイテムをログに記録し、プロンプトを利用できるようにします。 打つ ENTER
.
その後、インストーラーで作成したユーザーを使用してUbuntuサーバーにログインできます。
ユーザー名を入力して、 ENTER
、次にパスワードを入力して ENTER
.
これで、Ubuntu 18.04のインストールが正常に完了し、以前に作成したユーザーとしてログインしたことを示すコマンドプロンプトにアクセスできるようになります。
このガイドの次のステップでは、再構成します cloud-init
そして、UbuntuイメージがDigitalOceanプラットフォームでドロップレットとして起動されたときに実行されるように設定します。
ステップ3—再構成 cloud-init
Ubuntu 18.04を仮想ディスクにインストールし、システムを稼働させたので、再構成する必要があります cloud-init
DigitalOceanプラットフォームに適切なデータソースを使用します。 A cloud-init
datasourceは、の構成データのソースです。 cloud-init
これは通常、ユーザーデータ(シェルスクリプトなど)またはサーバーメタデータ(ホスト名、インスタンスIDなど)で構成されます。 詳細については cloud-init
データソースについては、公式cloud-initドキュメントを参照してください。
デフォルトでは、Ubuntu18.04では cloud-init
を使用するように自分自身を構成します DataSourceNoCloud
情報源。 これにより、DigitalOceanでイメージを実行するときに問題が発生するため、再構成する必要があります cloud-init
を使用するには ConfigDrive
データソースと cloud-init
画像がDigitalOceanで起動されると再実行されます。
まず、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ドロップレットのインターフェイスが誤って構成され、インターネットからアクセスできなくなります。
- sudo rm 50-curtin-networking.cfg
次に、実行します dpkg-reconfigure cloud-init
を削除するには NoCloud
データソース、 cloud-init
検索して見つけます ConfigDrive
DigitalOceanで使用されるデータソース:
- sudo dpkg-reconfigure cloud-init
次のグラフィカルメニューが表示されます。
The 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イメージを作成する方法を学びました。 調整しました cloud-init
そのため、DigitalOceanでDropletネットワークを適切に構成し、最後にカスタム画像アップロードツールを使用して画像を圧縮してアップロードできます。
このチュートリアルの手順を調整して、好みのLinuxディストリビューションのISOイメージを操作できます。 SSHサーバーがインストールされ、起動時に起動するように構成されていることを確認します。 cloud-init
を使用するようにインストールされ、適切に構成されている ConfigDrive
情報源。 最後に、古いネットワーク構成ファイルがすべて削除されていることを確認します。
Packer などのツールを使用して、マシンイメージの作成を自動化することもできます。
DigitalOceanカスタムイメージの詳細については、カスタムイメージ製品ドキュメントを参照し、ブログ投稿を起動してください。