概要
過去に CentOS7 を kickstart ファイルを使ってビルドしました
その際に kickstart ファイルは http でホスティングして取得しました
今回は kickstart ファイルをフロッピーに格納して、フロッピー上の kickstart ファイルを指定する方法を紹介します
環境
- Ubuntu Ubuntu 16.04.2
- packer 1.0.4
- VMware ESXi 6.0.0
- CentOS 7 (ビルド対象)
テンプレートファイル
- vim centos7_with_floppy.json
{
"builders": [
{
"name": "centos7",
"type": "vmware-iso",
"vm_name": "centos7_from_packer",
"guest_os_type": "rhel7-64",
"ssh_username": "root",
"ssh_password": "vm_password",
"ssh_timeout": "15m",
"iso_url": "http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso",
"iso_checksum": "bba314624956961a2ea31dd460cd860a77911c1e0a56e4820a12b9c5dad363f5",
"iso_checksum_type": "sha256",
"shutdown_command": "echo 'shutdown -P now' > shutdown.sh; echo 'vm_password'|sudo -S sh 'shutdown.sh'",
"boot_command": [
"<tab> text ks=hd:fd0:/centos7.ks<enter><wait>"
],
"floppy_files": [
"centos7.ks"
],
"tools_upload_flavor": "linux",
"headless": false,
"keep_registered": true,
"remote_type": "esx5",
"remote_host": "192.168.100.105",
"remote_datastore": "datastore1",
"remote_username": "root",
"remote_password": "esxi_password",
"disk_type_id": "thin",
"vmx_data": {
"ethernet0.networkName": "VM Network"
},
"vnc_port_min": "5900",
"vnc_port_max": "5911",
"vnc_bind_address": "0.0.0.0",
"vnc_disable_password": "true"
}
]
}
ほとんど前回と変わっていないようですが変わっているのは以下の部分です
"boot_command": [
"<tab> text ks=hd:fd0:/centos7.ks<enter><wait>"
],
"floppy_files": [
"centos7.ks"
],
centos7.ks はこちらの内容です
ローカルに配置した centos7.ks ファイルを ESXi にアップロードしてそのままフロッピーにマウントすることで VM から参照できるようにしています
あとは実行するだけです
このほうがわざわざ http を立てる必要がないので良さそうです
そしてフロッピードライブはビルドが終了するとちゃんと vmx ファイルからアンマウントしてくれるため VM として登録するときにもフロッピーディスクがないのが嬉しい点です
最後に
CentOS7 の自動インストール時に kickstart ファイルをフロッピードライブから参照する方法を紹介しました
最終的に同じものができあがるのを考えるとフロッピーを使ったほうが何かと便利そうな気がします
特に Docker 連携をする際に良さそう (IP を気にしなくていいので)
packer を docker 上で動かす方法もわかったら紹介したいと思います
0 件のコメント:
コメントを投稿