tech_memo / linux / cobbler / kickstart


tech_memo/linux/cobbler

PXEブート時に取得するkickstartファイルの中身を確認

  • PXEブート時の最終起動コンフィグファイル 内の、ksオプションのURLから確認できる
    default linux
    prompt 0
    timeout 1
    label linux
            kernel /images/RHEL7.2-x86_64/vmlinuz
            ipappend 2
            append initrd=/images/RHEL7.2-x86_64/initrd.img ksdevice=bootif lang=  kssendmac text  ks=http://cobblerserver/cblr/svc/op/ks/system/testserver06_rhel72_dual

OSバージョン違いによるオプションの違い

変数等展開後のkickstartファイルの取得

  • cobblerでは以下のgetksサブコマンドで取得できる
    [root@testserver18 config]# cobbler system getks --name=vm71a_rhel71
    • 上記はsystem名で取得しているが、profile名でも取得可能

デュアルブート用に別パーティションにOSをインストール

MBR設定

  • ブートローダをインストールしない
    bootloader --location=none
    #bootloader --location=mbr
  • 既存MBRのクリアをしない
    #zerombr

パーティション設定

  • パーティションをクリアフォーマットしないように、--noneオプションを指定しておく
    clearpart --none
  • パーティション作成のディスク指定は、デバイスファイル名ではなく、by-idや、by-pathなどの絶対値を指定しておく。(デバイスファイル名だとディスクが別の場合(sdaとsdbなど)に、読み込み順が一定ではないため)
    part /boot --fstype ext4 --size=100 --ondisk=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:1:0
    part pv.10 --size=1 --grow --ondisk=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:1:0
    volgroup VolGroup01 --pesize=32768 pv.10
    logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup01 --size=1024 --grow
    logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup01 --size=1000 --grow --maxsize=5952
  • by-path, by-idの調べ方
    • ls -l /dev/disk/by-path
    • ls -l by-idは/dev/disk/by-id

インタラクティブモード

  • http://www.linuxmania.jp/kickstart.html
  • kickstartファイルの「install」の直下に、「interactive」を指定する
    # 対話モードでインストールを行う
    interactive
    
    # 対話モードを自動的に進行する
    interactive
    autostep
    
    # 自動的にスクリーンショットを保存しながら進行する
    interactive
    autostep --autoscreenshot

partition作成時の、ディスク指定

  • 下記のように、設定していたが、USB-HDDが接続されていると、USB-HDDのほうに、パーティションが作成されることがある。(インストールサーバ再起動時に、デバイス名が再起動前と一致する保証がないため)
    part /boot --fstype ext4 --size=100 --ondisk=sda
    part pv.2 --size=1 --grow --ondisk=sda
    volgroup VolGroup00 --pesize=32768 pv.2
    logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
    logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=16384 --grow --maxsize=16384
  • デバイスファイル名ではなく、/dev/disk/by-id/配下のidを指定することで、これを回避できる
    [root@testserver15 ~]# ll /dev/disk/by-id/
    total 0
    lrwxrwxrwx 1 root root 10 Dec  9 18:46 dm-name-VolGroup00-LogVol00 -> ../../dm-0
    lrwxrwxrwx 1 root root 10 Dec  9 18:46 dm-name-VolGroup00-LogVol01 -> ../../dm-1
    lrwxrwxrwx 1 root root 10 Dec  9 18:46 dm-uuid-LVM-kXQUxiNPPlx58bSoSo084Xrm4W5pq7HacJjF58m4WOrczRbBooyKmVf8DQDQtpVR -> ../../dm-1
    lrwxrwxrwx 1 root root 10 Dec  9 18:46 dm-uuid-LVM-kXQUxiNPPlx58bSoSo084Xrm4W5pq7Hav9G2cB9H9XWHt0IRWHnu5VZ3SdGVZRCh -> ../../dm-0
    lrwxrwxrwx 1 root root  9 Dec  9 18:46 scsi-3600605b00213f3b014000b6815914a35 -> ../../sda
    lrwxrwxrwx 1 root root  9 Dec  9 18:46 usb-BUFFALO_External_HDD_00000002863F33F-0:0 -> ../../sdb
    lrwxrwxrwx 1 root root 10 Dec  9 18:46 usb-BUFFALO_External_HDD_00000002863F33F-0:0-part1 -> ../../sdb1
    lrwxrwxrwx 1 root root 10 Dec  9 18:46 usb-BUFFALO_External_HDD_00000002863F33F-0:0-part2 -> ../../sdb2
    lrwxrwxrwx 1 root root  9 Dec  9 18:46 wwn-0x600605b00213f3b014000b6815914a35 -> ../../sda 
  • 上記で取得したidを--ondiskに設定する
    part /boot --fstype ext4 --size=100 --ondisk=/dev/disk/by-id/scsi-3600605b00213f3b014000b6815914a35
    part pv.2 --size=1 --grow --ondisk=/dev/disk/by-id/scsi-3600605b00213f3b014000b6815914a35
    volgroup VolGroup00 --pesize=32768 pv.2
    logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
    logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=16384 --grow --maxsize=16384
  • (少なくともRHEL7.1では) clearpartオプションに、インストール先Diskと--allオプションをつけないと、パーティションの削除がされない。実際、Disk容量不足のエラーが発生した。
    clearpart --drives=/dev/disk/by-path/pci-0000:60:00.0-scsi-0:2:0:0 --initlabel --all
    • --initlabelが必要かは不明。RHEL6のドキュメントではこのオプション自体が無効になったとのこと。