2.3.7.2. Red Hat Enterprise Linux Atomic Host インスタンスの起動
Red Hat Enterprise Linux Atomic Host イメージを GCE で使用する前に、qcow2 ファイルから RAW イメージに変換する必要があります。これは、qcow2 ファイルをダウンロードして tar ファイルに変換することで行います。このファイルは GCE にアップロードされ、インスタンスが作成されます。
Creating a Red Hat Enterprise Linux Atomic Host RAW File
GCE にアップロードできる RAW ファイルを作成するには、以下の手順を実行します。
- Red Hat Enterprise Linux のダウンロード から Red Hat Enterprise Linux Atomic Host qcow2 ファイルを ダウンロード します。
-
qcow2 イメージが
xz
で圧縮されている。イメージを展開するには、以下のコマンドを入力します。
$ xz -d rhel-atomic-cloud-7.1-0.x86_64.qcow2.xz
- GCE で使用するには、qcow2 イメージを RAW ディスクファイルに変換する必要があります。これは、qemu で行います。
$ qemu-img convert -S 4096 -f qcow2 -O raw rhel-atomic-cloud-7.1-0.x86_64.qcow2 disk.raw
- raw ディスクファイルは、GCE にアップロードする前に tar でパッケージ化する必要があります。raw ファイルの名前は disk.raw である必要があります。
$ tar -Szcf rhel-atomic-cloud-7.1-0.x86_64.tar.gz disk.raw
-
アップロードした raw ディスクファイルは Google Cloud Storage バケットに保存されます。バケットを作成していない場合は、
gsutil
を使用して作成できます。
$ gsutil mb gs://bucketname
- gsutil を使用して raw ディスクファイルをアップロードします。
$ gsutil cp rhel-atomic-cloud-7.1-0.x86_64.tar.gz gs://bucketname
- raw ディスクファイルを使用する前に、GCE イメージとして作成する必要があります。
$ gcloud compute images create GCE_IMAGE_NAME --source-uri gs://bucketname/rhel-atomic-cloud-7.1-0.x86_64.tar.gz
- イメージをアップロードして利用できるようにするには、gcloud compute images list の出力でイメージを探します。
Creating a Red Hat Enterprise Linux Atomic Host Instance
以下のコマンドを実行して Atomic Host インスタンスを作成します。
$ gcloud compute instances create my-atomic-instance --machine-type n1-standard-1 --image GCE_IMAGE_NAME --metadata-from-file startup-script=<your-statup-script>
ここでは、以下のようになります。
my-atomic-instance
は、この例のインスタンスの名前です。インスタンス名には、小文字、数字、ダッシュ(ダッシュは指定できない最後の文字を除く)のみを含めることができます。
--machine-type
は、必要なマシンタイプを設定します。マシンタイプは、インスタンスのメモリー、仮想コア数、および永続ディスクの制限を決定します。詳細は、https://developers.google.com/compute/docs/machine-types を参照してください。
--image
は、使用するイメージを設定します。イメージには、インスタンスの起動に必要なオペレーティングシステムとルートファイルシステムが含まれます。GCE は root 永続ディスクを自動的に作成し、ルートファイルシステムを保存します。GCE_IMAGE_NAME は、直前の手順で作成したイメージです。
--metadata-from-file
は、ローカルのメタデータサーバーを介してインスタンス環境で利用可能になるメタデータを指定します。このフラグを使用して、Red Hat Enterprise Linux Atomic Host インスタンスの初回起動時に自動的に実行されるスクリプトを指定します。詳細は、インスタンス作成時のカスタムスクリプトの実行セクションを参照してください。Red Hat Enterprise Linux Atomic Host インスタンスの起動スクリプトは GCE エージェントではなく cloud-init ユーティリティーで処理されるため、user-data
キーが必要で、カスタムキーに置き換えることができないことに注意してください。
このコマンドは、インスタンスが実行されるまでブロックします。インスタンスが最初に作成されると、インスタンスを起動してから自己設定する必要があります。これにはしばらく時間がかかり、インスタンスへのログインが遅延する可能性があります。
インスタンス作成時のカスタムスクリプトの実行
上記のように、--metadata-from-file
オプションを使用して、インスタンスの初回起動時にそのインスタンスで実行するカスタムスクリプトを指定できます。これらのコマンドは root 権限で実行されるため、このスクリプトで必要なシステムコマンドを実行できます。以下に例を示します。
--metadata-from-file startup-script=<your-startup-script>
以下の内容で startup.sh スクリプトを実行します。
#! /bin/sh touch newfile
この行は、newfile
という名前の新しいファイルを作成します。
Red Hat Enterprise Linux Atomic Host インスタンスの起動スクリプトは GCE エージェントではなく、cloud-init ユーティリティーにより処理されます。したがって、--metadata-from-file
でカスタムキーを使用することはできません。Red Hat Enterprise Linux Atomic Host インスタンスのカスタムスクリプトを設定する場合は、常に user-data
キーを使用してください。
ローカルに保存された起動スクリプトの代わりに、スクリプトを Google Cloud Storage にアップロードし、--metadata
オプションを使用してこれにアクセスできます。これは、スクリプトがメタデータ値の長さ制限である 32,768 バイトを超える場合に必要です。詳細は、http://developers.google.com/compute/docs/howtos/startupscript#googlecloudstorage を参照してください。