概要
- クラウド環境へのインスタンス構築でuserdataを指定する際に、通常ではshell-scriptとcloud-configの両方を指定することができない。
- MIMEマルチパート形式のファイルを作成すればそれをuserdataに指定することでshellとcloud-configの両方がcloud-initで実行可能となる。
command
- commandフォーマット
write-mime-multipart --output=<アウトプットファイル名称> <インプットcloud-configファイルパス>:text/cloud-config <インプットshell-scriptファイルパス>:text/x-shellscript
- command例
write-mime-multipart --output=hybrid-userdata ./cloudconfig.yml:text/cloud-config ./shellscript.sh:text/x-shellscript
文字コードの変換が必要な場合
- マルチパート形式のファイルを作成する際、作成元のファイルの文字コードがutf-8の場合に正常に変換できなかった。
write-mime-multipart
のオプションで自動で変換する方法が見当たらなかったためiconvで変換してからファイル作成した。
iconv -c -f UTF-8 -t US-ASCII shellscript.sh -o shellscript.sh