2017年9月24日日曜日

packer + kickstart でフロッピーを使う方法

概要

過去に 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 件のコメント:

コメントを投稿