体調が絶不調。というか背中がめちゃ痛い。何をしててもいたい。整体に行った。背中の骨が何個が歪んでて、前方の胸に圧力をかけててモコっとしている様子。そりゃ痛いだろうということで直してもらった。あと、踵の骨もずれていて、踵痛くない?と。実は2ヶ月くらい痛い。それも直してもらった。どうやら、いろんなところの骨が歪んでいるらしく、修理?に普段の倍の時間がかかった。まだ炎症していたところは痛いが、痛みの質が全然違う。
なんやかんやで体、ボロボロだったのね。
閑話休題
今度は、WIndowsでCloud-initを使ってみる。
参考にさせていただいたページは、以下。以下に書かれているようにやればいい。
以上ではなく。。。いくつか追記。
注意点
- サポートOSを確認したほうがいい。Windows 11 / Windows Server 2025はまだうまく動かない。実際、Windows Server 2025で動かすと、うまく行ったり、うまくいかなかったり。
サポートOSは以下に書かれている。
- タネのOSを作る時、リカバリパーティションなどは先頭に持っていった方がいい。先頭に持っていっておくと、展開時にディスクサイズを増やしたとき、起動時にディスクを最大化してくれる。
先頭に持っていく方法は、https://www.blog.slow-fire.net/2022/08/19/windows-server-2022でvmを作るとディスク拡張ができない%E3%80%82/
- クライアントOSの場合は、Unattend.xmlでAdministratorを有効にしておく必要がある。
コメント
リンク先やWebを見ていると以下の画面を開きっぱなしにして、設定するようにと書かれている。
よくみると、Sysprepしてシャットダウンをすると書いていある。これは、
C:\Proaram Files\Cloudbase Solutions\Cloudhase-init\confにあるUnattend.xmlを利用したsysprepである。
要するにConfディレクトリで、
%systemroot%\system32\sysprep\sysprep.exe /generalize /oobe /shutdown /unattend:"Unattend.xml"
してあげればいい。後でこの画面の作業が実行できるので、チェックをオフにしてFInishをクリックしても問題ない。これがめんどくさい、わからない人は、リンクの通りに開きっぱなしにしてやればいい。
自分はUnattend.xmlを書き換えて、Rearm countが増えないように、プロファイルをコピーをする記述をいれたがちゃんと動いた。
設定ファイルは以下
- cloudbase-init.conf :設定ファイル
- cloudbase-init-unattend.conf : sysprep時に参照される設定ファイル
- Unattend.xml :Sysprepに使うファイル
vSphereの仮想マシンにデータを付与したので、ISOイメージなどのマウントは不要。他の環境で使う場合は、confファイルのmetadata_servicesを調整する必要がある。
以下を実行した。パスワードは、OSのパスワード要件に合わせる必要がある。govcが使える前提。
USERDATAFILE=userdata-windows.yaml
METADATAFILE=metadata-windows.yaml
cat << EOF > ${USERDATAFILE}
#cloud-config
write_files:
- encoding: gz+b64
content: H4sIAAAAAAAAAytJLS4x5AIAGzdZfAYAAAA=
path: C:\\vmware-guestinfo-cloudinit-datasource.txt
EOF
cat << EOF > ${METADATAFILE}
instance-id: windows2022-1
local-hostname: windows2022-1
admin-password: passwordTemp1234
EOF
USERDATA=$(gzip -c9 <${USERDATAFILE} | { base64 -w0 2>/dev/null || base64; })
METADATA=$(gzip -c9 <${METADATAFILE} | { base64 -w0 2>/dev/null || base64; })
VM_NAME=Win-cloud-init1
govc vm.change -vm "$VM_NAME" \
-e guestinfo.userdata="${USERDATA}" \
-e guestinfo.userdata.encoding="gzip+base64"
govc vm.change -vm "$VM_NAME" \
-e guestinfo.metadata="${METADATA}" \
-e guestinfo.metadata.encoding="gzip+base64"
govc vm.power -on ${VM_NAME}
何度か再起動すると立ち上がる。
ちなみに、ユーザデータ、メタデータを入れないでも、ディスクは最大まで拡張されている。(Linuxだとデータがないとディスクの拡張はされない。)
Sysprepの代わり(結果としてSysprepはしているが)として、使えることがわかった。便利。
最後に「どこに書いてあったんですか、誰が言ったんですか?、サポートされていますか?」勢の人にはもちろん利用はおすすめできない。