IBM Cloud VPC でシンプルなウェブサイト構築を体験する - 3. 仮想サーバー・インスタンス作成
この記事は、IBM Cloud VPCでシンプルなウェブサイト構築を体験するの構築ステップを説明しています。
このステップでは、VPCに仮想サーバー・インスタンス(VSI)を3台作成します。
ステップ3-0: 準備
VSI作成時にOSセットアップとHello Worldページの書き込みを行うため、cloud-initファイルを準備します。cloud-initの詳細については、cloud-init Documentationを参照してください。
ステップ3-0-1: SSH鍵の準備
ssh-keygenコマンドの例を示します。
- 新たな空の作業用ディレクトリーを作りその中に鍵ファイルを作成するなどして、既存の鍵を上書きして壊さないよう注意を払います。
- 鍵利用時に必要なパスフレーズを求められます。任意のパスフレーズを入力できます。
- Windowsを利用されている方は、使い慣れている鍵生成ツールを利用可能です。
作成が完了すると、2つのファイルが作成されます。以下の例だと、秘密鍵はid_rsa、公開鍵はid_rsa.pubという名前になっています。
$ ssh-keygen -t rsa -b 4096 -f ./id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ./id_rsa.
Your public key has been saved in ./id_rsa.pub.
The key fingerprint is:
SHA256:5G0liQAJgEccj8pmt5SXr8clVhKW0f0yZIIf9//7DQE
The key's randomart image is:
+---[RSA 4096]----+
|o++o.o..= . |
|. oo. * = * |
| .. . . = O E |
|.. . .+ + = + |
|.+ + o S o o o |
|o o o .o o o |
| . o.o . .|
| .o .o|
| .. .=|
+----[SHA256]-----+
ステップ3-0-2: cloud-initファイルの準備
ステップ3-2の「ユーザー・データのインポート」でアップロードするために、ファイルを準備します。作業している端末で:
1. 以下のyamlをコピペし3つのファイルを作成します。
2. それぞれのファイルの中で「(SSH公開鍵)」と書かれた部分を、ステップ3-0-1で作成したSSH公開鍵ファイルの中の鍵の部分で置き換えます。SSH公開鍵ファイル中の"ssh-rsa"や最後にある(ユーザー名)@(ホスト名)の部分とスペースは置き換えには使いません。
準備したcloud-initファイルを使うと、VSI作成時に以下の作業が自動化されます:
- vpcuserというOSユーザーが作成されます。ステップ3-0-1で作成したSSH秘密鍵を使ってログインし、パスワードなしでsudo可能なユーザーです。
- NGINXがインストールされます。
- helloworld.htmlが書き込まれます。
webサーバー1 用のcloud-initファイル
#cloud-config
users:
- default
- name: vpcuser
group: admin
sudo: "ALL=(ALL) NOPASSWD:ALL"
ssh_authorized_keys:
- ssh-rsa (SSH公開鍵)
write_files:
- encoding: base64
owner: root:root
path: /var/www/html/helloworld.html
permissions: '0644'
content: PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImphIj4KICA8aGVhZD4KICAgIDwhLS0gUmVxdWlyZWQgbWV0YSB0YWdzIC0tPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCBzaHJpbmstdG8tZml0PW5vIj4KICAgIDwhLS0gQm9vdHN0cmFwIENTUyAtLT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9zdGFja3BhdGguYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvNC4yLjEvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIiBpbnRlZ3JpdHk9InNoYTM4NC1HSnpacUZHd2IxUVRUTjZ3eTU5ZmZGMUJ1R0pwTFNhOURrS01wMERnaU1EbTRpWU1qNzBnWldLWWJJNzA2dFdTIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj4KICAgIDx0aXRsZT5IZWxsbywgd29ybGQhPC90aXRsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8IS0tIE1vZGFsIC0tPgogICAgPGRpdiBjbGFzcz0ibW9kYWwgZmFkZSIgaWQ9ImV4YW1wbGVNb2RhbENlbnRlciIgdGFiaW5kZXg9Ii0xIiByb2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0iZXhhbXBsZU1vZGFsQ2VudGVyVGl0bGUiIGFyaWEtaGlkZGVuPSJ0cnVlIiBkYXRhLWJhY2tkcm9wPSJzdGF0aWMiIGRhdGEta2V5Ym9hcmQ9ImZhbHNlIj4KICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZGlhbG9nIG1vZGFsLWRpYWxvZy1jZW50ZXJlZCIgcm9sZT0iZG9jdW1lbnQiPgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWNvbnRlbnQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4KICAgICAgICAgICAgPGg0IGNsYXNzPSJtb2RhbC10aXRsZSIgaWQ9ImV4YW1wbGVNb2RhbENlbnRlclRpdGxlIj5IZWxsbyBXb3JsZCE8L2g0PgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+CiAgICAgICAgICAgIDxoND7jgZPjgozjga8x5Y+w55uu44Gu44Km44Kn44OW44K144O844OQ44O844Gn44GZ44CCPC9oND4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZm9vdGVyIj4KICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiIGlkPSJidG5SZWxvYWQiPuODquODreODvOODiTwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8IS0tIE9wdGlvbmFsIEphdmFTY3JpcHQgLS0+CiAgICA8IS0tIGpRdWVyeSBmaXJzdCwgdGhlbiBQb3BwZXIuanMsIHRoZW4gQm9vdHN0cmFwIEpTIC0tPgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0zLjMuMS5zbGltLm1pbi5qcyIgaW50ZWdyaXR5PSJzaGEzODQtcThpL1grOTY1RHpPMHJUN2FiSzQxSlN0UUlBcVZnUlZ6cGJ6bzVzbVhLcDRZZlJ2SCs4YWJ0VEUxUGk2aml6byIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvcG9wcGVyLmpzLzEuMTQuNi91bWQvcG9wcGVyLm1pbi5qcyIgaW50ZWdyaXR5PSJzaGEzODQtd0hBaUZmUmxNRnk2aTVTUmF4dmZPQ2lmQlVReTF4SGRKL3lvaTdGUk5YTVJCdTVXSGRaWXUxaEE2Wk9ibGd1dCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGFja3BhdGguYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvNC4yLjEvanMvYm9vdHN0cmFwLm1pbi5qcyIgaW50ZWdyaXR5PSJzaGEzODQtQjBVZ2x5UitqTjZDa3Z2SUNPQjJqb2FmNUk0bDNnbTlHVTZIYzFvZzZMczdpNlUvbWtrYWR1S2FCaGxBWHY5ayIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+CiAgICA8IS0tIE1vZGFsIGFuZCBCdXR0b24gLS0+CiAgICA8c2NyaXB0PgogICAgICAkKCgpID0+IHsKICAgICAgICAkKCcjZXhhbXBsZU1vZGFsQ2VudGVyJykubW9kYWwoKTsKICAgICAgfSk7CiAgICAgICQoJyNidG5SZWxvYWQnKS5jbGljaygoKSA9PiB7bG9jYXRpb24ucmVsb2FkKCk7fSk7CiAgICA8L3NjcmlwdD4KICA8L2JvZHk+CjwvaHRtbD4K
packages:
- nginx
package_update: true
package_upgrade: true
package_reboot_if_required: true
webサーバー2 用のcloud-initファイル
#cloud-config
users:
- default
- name: vpcuser
group: admin
sudo: "ALL=(ALL) NOPASSWD:ALL"
ssh_authorized_keys:
- ssh-rsa (SSH公開鍵)
write_files:
- encoding: base64
owner: root:root
path: /var/www/html/helloworld.html
permissions: '0644'
content: PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImphIj4KICA8aGVhZD4KICAgIDwhLS0gUmVxdWlyZWQgbWV0YSB0YWdzIC0tPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCBzaHJpbmstdG8tZml0PW5vIj4KICAgIDwhLS0gQm9vdHN0cmFwIENTUyAtLT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9zdGFja3BhdGguYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvNC4yLjEvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIiBpbnRlZ3JpdHk9InNoYTM4NC1HSnpacUZHd2IxUVRUTjZ3eTU5ZmZGMUJ1R0pwTFNhOURrS01wMERnaU1EbTRpWU1qNzBnWldLWWJJNzA2dFdTIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj4KICAgIDx0aXRsZT5IZWxsbywgd29ybGQhPC90aXRsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8IS0tIE1vZGFsIC0tPgogICAgPGRpdiBjbGFzcz0ibW9kYWwgZmFkZSIgaWQ9ImV4YW1wbGVNb2RhbENlbnRlciIgdGFiaW5kZXg9Ii0xIiByb2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0iZXhhbXBsZU1vZGFsQ2VudGVyVGl0bGUiIGFyaWEtaGlkZGVuPSJ0cnVlIiBkYXRhLWJhY2tkcm9wPSJzdGF0aWMiIGRhdGEta2V5Ym9hcmQ9ImZhbHNlIj4KICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZGlhbG9nIG1vZGFsLWRpYWxvZy1jZW50ZXJlZCIgcm9sZT0iZG9jdW1lbnQiPgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWNvbnRlbnQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4KICAgICAgICAgICAgPGg0IGNsYXNzPSJtb2RhbC10aXRsZSIgaWQ9ImV4YW1wbGVNb2RhbENlbnRlclRpdGxlIj5IZWxsbyBXb3JsZCE8L2g0PgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+CiAgICAgICAgICAgIDxoND7jgZPjgozjga8y5Y+w55uu44Gu44Km44Kn44OW44K144O844OQ44O844Gn44GZ44CCPC9oND4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZm9vdGVyIj4KICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiIGlkPSJidG5SZWxvYWQiPuODquODreODvOODiTwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8IS0tIE9wdGlvbmFsIEphdmFTY3JpcHQgLS0+CiAgICA8IS0tIGpRdWVyeSBmaXJzdCwgdGhlbiBQb3BwZXIuanMsIHRoZW4gQm9vdHN0cmFwIEpTIC0tPgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0zLjMuMS5zbGltLm1pbi5qcyIgaW50ZWdyaXR5PSJzaGEzODQtcThpL1grOTY1RHpPMHJUN2FiSzQxSlN0UUlBcVZnUlZ6cGJ6bzVzbVhLcDRZZlJ2SCs4YWJ0VEUxUGk2aml6byIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvcG9wcGVyLmpzLzEuMTQuNi91bWQvcG9wcGVyLm1pbi5qcyIgaW50ZWdyaXR5PSJzaGEzODQtd0hBaUZmUmxNRnk2aTVTUmF4dmZPQ2lmQlVReTF4SGRKL3lvaTdGUk5YTVJCdTVXSGRaWXUxaEE2Wk9ibGd1dCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdGFja3BhdGguYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvNC4yLjEvanMvYm9vdHN0cmFwLm1pbi5qcyIgaW50ZWdyaXR5PSJzaGEzODQtQjBVZ2x5UitqTjZDa3Z2SUNPQjJqb2FmNUk0bDNnbTlHVTZIYzFvZzZMczdpNlUvbWtrYWR1S2FCaGxBWHY5ayIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+CiAgICA8IS0tIE1vZGFsIGFuZCBCdXR0b24gLS0+CiAgICA8c2NyaXB0PgogICAgICAkKCgpID0+IHsKICAgICAgICAkKCcjZXhhbXBsZU1vZGFsQ2VudGVyJykubW9kYWwoKTsKICAgICAgfSk7CiAgICAgICQoJyNidG5SZWxvYWQnKS5jbGljaygoKSA9PiB7bG9jYXRpb24ucmVsb2FkKCk7fSk7CiAgICA8L3NjcmlwdD4KICA8L2JvZHk+CjwvaHRtbD4K
packages:
- nginx
package_update: true
package_upgrade: true
package_reboot_if_required: true
bastion 用のcloud-initファイル
#cloud-config
users:
- default
- name: vpcuser
group: admin
sudo: "ALL=(ALL) NOPASSWD:ALL"
ssh_authorized_keys:
- ssh-rsa (SSH公開鍵)
package_update: true
package_upgrade: true
package_reboot_if_required: true
ステップ3-1
「VPCインフラストラクチャー」>「コンピュート」>「仮想サーバー・インスタンス」をクリックします。
画面右側の「作成」ボタンをクリックします。
ステップ3-2
パラメーター・シートの「仮想サーバー webサーバー1」のパラメーターを入力します。
- 「仮想プライベート・クラウド」の値が「1.VPC作成」で作成したVPCの名前と一致していることを確認してください。
- 「ユーザー・データのインポート」をクリックしステップ3-0-2で作成したcloudinit_web1.yamlファイルを読み込ませると、「ユーザー・データ(オプション)」の項目にファイルの内容が入力されます。
入力が完了したら画面右側の「仮想サーバー・インスタンスの作成」ボタンをクリックします。
ステップ3-3
サーバーが作成されます。ステップ3-2と同様に、webサーバー2とbastionを作成します。
webサーバー2
- パラメーター・シートの「仮想サーバー webサーバー2」のパラメーターを入力します。
- 「ユーザー・データのインポート」をクリックし、ステップ3-0-2で作成したcloudinit_web2.yamlファイルを読み込ませます。
bastion
- パラメーター・シートの「仮想サーバー bastion」のパラメーターを入力します。
- 「ユーザー・データのインポート」をクリックし、ステップ3-0-2で作成したcloudinit_bastion.yamlファイルを読み込ませます。
ステップ3-4
次に、浮動IP取得とバインドに進みます。
Author And Source
この問題について(IBM Cloud VPC でシンプルなウェブサイト構築を体験する - 3. 仮想サーバー・インスタンス作成), 我々は、より多くの情報をここで見つけました https://qiita.com/kenichit/items/2a071bf70aef2a2f0683著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .