Microsoft Azureを使い倒す!目指せAzureマスター!(その5)


第5回 cloud-initを使ったVirtual Machinの自動カスタマイズ

今回はcloud-initを使ってVirtual Machinの自動カスタマイズを行います。

cloud-Initとは、Linux Virtual Machinを初回起動時にカスタマイズするためによく使われている方法です。
cloud-initを使って、パッケージをインストールしてファイルを書き込んだり、ユーザーとセキュリティを構成したりすることができます。
初回起動処理中にcloud-init が実行され自動で構成されるので、Virtual Machinを新たに追加する際に、管理者が手動でインストールをしたり設定をしたりする必要がなくなります。


まず初めにcloud-init構成ファイルをAzure上に作成します。
エディタのviを使用します。

今回はcloud-init.txtというファイルを作るので、cloud Shell上で
vi cloud-init.txt
と入力し、ファイルを作成してエディタで開きます。



このエディタを使ってVirtual Machinに設定する内容を記載します。

設定内容の詳細は割愛しますが、cloud-initの設定などを参考にしてください。
今回は以下の内容を書き込みます。

#cloud-config
package_upgrade: true
packages:
– nginx
– node.js
– npm
write_files:– owner: www-data:www-data
– path: /etc/nginx/sites-available/default
content: |server {listen 80; location / {proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade; }}
– owner: [管理者ユーザ]:[管理者ユーザ]
– path: /home/[管理者ユーザ]/myapp/index.js content: |
var express = require(‘express’)
var app = express()
var os = require(‘os’);
app.get(‘/’, function (req, res) {res.send(‘Hello World from host ‘ + os.hostname() + ‘!’) })
app.listen(3000, function () {console.log(‘Hello world app listening on port 3000!’)})
runcmd:
– service nginx restart
– cd “/home/[管理者ユーザ]/myapp”
– npm init
– npm install express -y
– nodejs index.js

内容としては
Webサーバー「nginx」とnodejs、nodejsのパッケージを管理するためのnpmのインストールになります。
何か所か管理ユーザ名で記載しなければいけないところがあるので注意してください。


入力が終わったらEscキーで入力モードから抜け、:wqと入力し内容を保存します


では今作ったcloud-initの設定ファイルを使って新しいVirtual Machinを作成します。


まずはいつも通りリソースグループを作成します。
az group create –name [グループ名] –location [サーバ]

 

次にaz vm createコマンドでVirtual Machinを作成しますが、
–custom-dataパラメータに先ほど作ったcloud-init.txtを指定します。


az vm create ¥
–resource-group [グループ名]¥
–name [Virtual Machin名]¥
–image UbuntuLTS ¥
–admin-username [管理者ユーザ]¥
–generate-ssh-keys ¥
–custom-data cloud-init.txt



80番ポートを開いてから結果のPublicIpAddressのところに記載されているIPアドレスにブラウザアクセスしてみましょう。

az vm open-port –port 80 –resource-group [グループ名] –name [Virtual Machin名]



この画面が表示されれば設定完了です。

開発環境を作るときやWEBサーバを作るときには同じものが欲しいということはよくあるので大変便利です。

次回からは数回に分けて、Node.jsとMongoDBを使ったWebアプリの構築を行います。


  お問い合わせ  - お気軽にお問い合わせください - 

  • 株式会社 パブリックリレーションズ
  • 〒064-0807
  • 北海道札幌市中央区南7条西1丁目13番地 弘安ビル5階
メールでのお問い合わせはこちら

  • この記事をシェアする