3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Cobblerで自動インストール環境を作る

Last updated at Posted at 2015-12-04

ヒマしてるなら自動化とかやれよオラと脅されたのでcobblerで物理サーバ自動インストール環境作った。新品サーバの電源ボタンをポチっとしたらインストールと設定をやってくれるというイメージ。

今回の環境はKVMゲスト(CentOS7)上にCobblerをサーバを立て、同じネットワーク内に物理サーバをPXEブートでネットワークインストール可能にする。

#Cobblerのインストール
インストールにあたってはepelのリポジトリ追加が必要

$ yum install epel-release
$ yum install cobbler

#SELinuxの停止
面倒なので停止してしまう。

$ getenforce
$ setenforce 0
$ getenforce
$ vi /etc/sysconfig/selinux
SELINUX=disabled

#ファイアウォール停止
面倒なので停止してしまう。

$ systemctl stop firewalld
$ systemctl disable firewalld

#Cobbler WEBUIのインストール
コマンドのみ使用するので不要。インストールしない。

#cobbler設定ファイル編集

$ vi /etc/cobbler/settings
manage_dhcp: 1
manage_dns: 1
manage_tftpd: 1
restart_dhcp: 1
restart_dns: 1
pxe_just_once: 1
next_server:<サーバーの IP アドレス>
server:<サーバーの IP アドレス> 

#内部DNSサーバ設定
Cobblerサーバ上に内部DNSを設けるためdnsmasqを用いる。
DHCP機能は使わず、DNS機能だけにする。digも使うのでbind-utilsも指定。

$ yum install dnsmasq bind-utils

今回の場合自身がDNSなのでローカルアドレスを指定。外部はこの場合公用のDNSで対応

$ vi /etc/resolv.conf
nameserver 127.0.0.1
nameserver 8.8.8.8

dnsmasqはhostsを利用する為必要ホストを追加

$ vi /etc/hosts
172.27.0.66 ansjenk ansjenk.hoge.com
172.27.0.67 lrepo lrepo.hoge.com
172.27.0.68 gitlab gitlab.hoge.com
172.27.0.69 cobbler cobbler.hoge.com

#問合せ元クライアント設定

$ vi /etc/resolv.conf
nameserver 172.27.0.69 #内部DNSサーバのアドレス
nameserver 127.0.0.1   #問い合わせ元クライアントのローカルのアドレス
options timeout 3 attempts 5

#dnsmasqの設定

###設定変更

$ vi /etc/dnsmasq.conf
## 以下をコメントアウト
#domain-needed
#bogus-priv
## DHCPはdhcpdを使用するので無効にする
no-dhcp-interface=eth0
no-dhcp-interface=eth1

###dnsmasq有効

$ systemctl start dnsmasq.service

#dhcpdのインストール設定
###dhcpインストール

$ yum install dhcp

Cobblerが自動で ISC DHCP の設定も書き換えてくれる。必須の設定。

$ cobbler setting edit --name manage_dhcp --value 1

cobblerにDNSサーバのアドレスを設定する

$ cobbler setting edit --name next_server --value 172.27.0.69
$ vi /etc/cobbler/dhcp.template

subnet 172.27.0.0 netmask 255.255.255.0 {                    ※NWアドレスとマスク値を決定
     #option routers             192.168.120.254;            ※ルータのアドレスを入れる。この場合無いのでコメントアウトする
     option domain-name-servers 172.27.0.69,8.8.8.8;         ※内部DNSとして作ったdnsmasqサーバのアドレスと外部DNSのアドレスをカンマ区切りで
     option subnet-mask         255.255.255.0;               ※上記のマスク値?
     range dynamic-bootp        172.27.0.250 172.27.0.253;   ※DHCPでリースするアドレスの範囲
     default-lease-time         600;                         ※リース時間が長すぎるので短く
     max-lease-time             600;                         ※リース時間が長すぎるので短く

group以降全てコメントアウト

#サービスを有効にする

PXEブート時に使用するブートローダファイルを取得

$ cobbler get-loaders

TFTPサーバ設定
cobblerの設定を有効化

$ cobbler sync

TFTPを有効

$ systemctl start xinetd

起動時に有効になるように設定変更

$ systemctl enable cobblerd httpd dhcpd

#OSイメージの取り込み(distro設定)

$ yum install wget
$ wget http://ftp.iij.ad.jp/pub/linux/centos/7/isos/x86_64/CentOS-7-x86_64-Everything-1503-01.iso
※URLは例
$ mount CentOS-7-x86_64-Everything-1503-01.iso /mnt
$ cobbler import --name CentOS-7-x86_64-Everything-1503-01 --path /mnt
$ umount /mnt
$ cobbler distro list

取り込んだOSイメージのアップデートリポジトリなど登録しておく

$ cobbler repo add --name CentOS-7-updates --mirror http://ftp.iij.ad.jp/pub/linux/centos/7.0.1406/updates/x86_64
$ cobbler repo add --name CentOS-7-extras --mirror http://ftp.iij.ad.jp/pub/linux/centos/7.0.1406/extras/x86_64
$ cobbler repo add --name epel7 --mirror http://ftp.iij.ad.jp/pub/linux/fedora/epel/7/x86_64
$ cobbler reposync

取り込んだOSインストール詳細設定(profile設定)

##kickstartファイルのテンプレートをコピー

$ cp /var/lib/cobbler/kickstarts/sample_end.ks /var/lib/cobbler/kickstarts/CentOS-7.ks

##kickstartファイルの編集

$ vi /var/lib/cobbler/kickstarts/CentOS-7.ks
以下のように変更
auth sha512
keyboard jp106
timezone Asia/Tokyo

%packagesと%endの間に個別でインストールさせたいPKGを記入
ここでは特に実施しない

$ cobbler profile list

#インストールする対象の個別設定1(system設定)

##「default」のsystemを定義

$ cobbler system add --name default --profile CentOS-7-Everything-1503-01-x86_64

##cobblerのsystem定義を変更したので有効化する

$ cobbler sync

##インストール対象機の確認
・BIOSでインストール対象のブートシーケンスでPXEBootが最初に来ていること
・BIOSでインストール対象のMACアドレスを確認し控えておくこと

#インストールする対象の個別設定2(system設定)

既存のsystemがあれば削除して再作成する。無ければ無視。

$ cobbler system remove --name="host-test01"

作成したprofileを指定してsystemを作成

$ cobbler system add --name="host-test01" --profile CentOS-7-Everything-1503-01-x86_64

systemに要素を追加していく。eth0について設定を追加する。

$ cobbler system edit --name="host-test01" --interface=eth0 --mac="$mac0" --static=0

systemに要素を追加していく。eth1について設定を追加する。

$ cobbler system edit --name="host-test01" --interface=eth1 --mac="$mac1" --static 1 --ip-address 172.27.0.XX --subnet 255.255.255.0

設定有効化及び確認

$ cobbler list
$ cobbler sync
$ cobbler list
$ cobbler report
$ cobbler check

#ネットワークインストール開始

###電源を投入。DHCPサーバによってIPが配布

ポチッとな。キター!

_20151204_103115.JPG

###インストールイメージを選択

IP確定後cobbler画面からインストールイメージを選択
ここで選択できるインストールイメージはcobblerでインポートしたもの
「local」は機器のローカルディスクを指す

_20151204_104055.JPG

ハードウェアチェックやkickstartファイルなどのチェックをパスすれば
インストールが開始される

_20151204_105106.JPG

_20151204_105248.JPG

インストール完了。コンソールログイン画面が表示される。

_20151204_105524.JPG

#注記

以下は個人的な備忘録。信用性は高くないので注意。随時更新します。

  • koanは一度インストールされているクライアントに対して再インストールするもの?なので今回は導入しない
  • 仮想マシンの自動生成にはkoanを使う
3
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?