ARM template (CentOS with カスタムスクリプト編)
前回に引き続きARM templateを使った自動構築のひな型、といいますか自作版を紹介します。
今回紹介するテンプレートはMicrosoft Azure上にCentOSをボタン一発(正確にはssh-keyのコピペがありますが)で作成するというものです。
では早速紹介に入ります。JSONの実物は以下です。
上記のテンプレートを任意なResource Groupにテンプレートデプロイすると以下が作成されます。
ログインユーザー: azure01
SSHkey形式:RSA形式
パブリックIPアドレス: Static設定で1つ
仮想ネットワーク: 172.10.0.0/16を1つ
サブネット; 172.10.1.0/24を1つ
ストレージアカウント: 1つ
ストレージアカウント冗長方式: Standard_LRS
カスタムスクリプト:任意なshellを指定
CentOSを毎回試験用に1台立てるのがめんどい方、CentOSが起動した後に自分で作成したshellスクリプトをOS起動時に埋め込みたい方へのひな型としてご自由にご利用ください。デフォルト設定のままでよければ、RSA形式のssh-keyを張り付けるだけでデプロイできるようにしています。
以下JSONファイル内で行っている詳細です。ご参考に。
※変更可と選択可があります。
〇OS
(固定)
〇OSのバージョン
7.2
(デフォルト:parametersで選択可)
〇仮想マシンの名前
centostest01
(デフォルト:parametersで変更可)
〇仮想マシンのログインユーザ
azure01
(デフォルト:parametersで変更可)
〇SSH-key
★RSA形式のものをベタっと張り付けてください。
(ここは入力必須)※詳細は以下で。
〇仮想マシンのサイズ
Standard_A1
(デフォルト:parametersで選択可)
〇可用性セットの名前
centostest01-avail
(デフォルト:parametersで変更可)
〇ストレージアカウントの冗長方式
Standard_LRS
(デフォルト:parametersで選択可)
〇ネットワークセキュリティグループの名前
centostest01-nsg
(デフォルト:parametersで変更可)
〇仮想ネットワークの名前
cent-vnet
(デフォルト:parametersで変更可)
〇仮想ネットワークのアドレス帯
172.10.0.0/16
(デフォルト:parametersで変更可)※変更する場合はサブネットも要修正
〇仮想ネットワークのアドレス帯
172.10.1.0/24
(デフォルト:parametersで変更可)※変更する場合はvNetのアドレス帯に注意
〇カスタムスクリプトの配置先URL
https://raw.githubusercontent.com/akkoike/ARMtemplate/master/parts/VirtualMachine/script.sh
(デフォルト:ご自分で用意したスクリプトを指定ください。
上記のscript.shはTimezoneを日本時間に変更するだけのお試しshellです)
script.sh
(デフォルト:上記配置先URLで指定したスクリプト名のみを記載ください。
このファイルはCentOSが立ち上がった後、/var/lib配下に配置されます)
その他補足。
・可用性セットでは障害ドメイン、更新ドメインそれぞれデフォルトの3と5を指定しています。
・プライベートアドレス(NiC)は自動取得(Dynamic)の設定にしています。
・NSGのinbound許可ポートは22port(SSH)のみにしています。outboundは無し。
・パブリックIPアドレスは静的(Static)にしています。
・shellスクリプトはインターネットアクセスできる場所に配置されていることが前提
※カスタムスクリプトが実行されるタイミングはOSが起動した後になるため、
先にOSへログインするとTimeZoneの変更がまだされていない状態になっています。ご注意を。
・CentOS内でカスタムスクリプトの実行状況を確認するログファイルは以下です。
/var/log/azure/Microsoft.OSTCExtensions.CustomScriptForLinux/1.5.2.1/extension.log
中身を見るとわかりますが、上記GitHubのURLから持ってきたスクリプトは以下に
格納されていることがわかります。
/var/lib/waagent/Microsoft.OSTCExtensions.CustomScriptForLinux-1.5.2.1/download/0/script.sh
以上となりますが、これをひな型にscript.shの内容を変更することでInfrastructure as CodeとConfiguration as Codeを一括で体験することができます。
是非お試しください。