天天看點

ubuntu部署dnsmasq實作kickstart自動安裝作業系統

參考資料

1、http://gm100861.blog.51cto.com/1930562/934661

更新apt-get源,安裝所需軟體

sudo apt-get install syslinux dnsmasq apache2

配置dnsmasq

sudo vim /etc/dnsmasq.conf

将以下項目前面的#去掉

bogus-priv

filterwin2k

interface=eth0

dhcp-range=192.168.44.100,192.168.44.120,12h

dhcp-boot=pxelinux.0

enable-tftp

tftp-root=/var/ftpd

dhcp-authoritative

上面interface後面的eth0表示eth0是需要監聽的網卡,若希望為本機各塊網卡連接配接的網絡提供服務,則注釋掉這行,即預設各網卡都提供dhcp、dns、tftp服務。

vim /etc/sysconfig/iptables

放行udp 53 67 69 、tcp 53這些

複制安裝centos6所需檔案

sudo mkdir -p /var/www/centos6 /mnt/cd /var/ftpd/pxelinux.cfg

sudo mount -o loop -t auto ~/iso/CentOS-6.2-x86_64-bin-DVD1.iso /mnt/cd

sudo cp -rv /mnt/cd/* /var/www/centos6

sudo cp -rv /mnt/cd/isolinux/* /var/ftpd

sudo cp /usr/lib/syslinux/pxelinux.0 /var/ftpd

sudo mv /var/ftpd/isolinux.cfg /var/ftpd/pxelinux.cfg/default

要部署ubuntuserver12,也是把鏡像挂好,複制全部檔案到http目錄,比如/var/www/ubuntuserver12,不過下面的步驟不用做了,下面的isolinux是制作pxe啟動的,一份就夠了

ubuntuserver自動安裝中可能會提示http://192.168.44.249/ubuntuserver12/dists/precise/restricted/binary-amd64/Packages was corrupt.這是一個bug

解決方法是直接touch一個空檔案

sudo touch /var/www/ubuntu/dists/precise/restricted/binary-amd64/Packages

其中precise是ubuntu12.04.4版本代号如果是其他版本,就換成相應的代号

建立centos6 ks.cfg

sudo vim /var/www/centos6/ks.cfg

# centos6/ks.cfg

firewall --disabled

install

url --url http://192.168.44.249/centos6

text

firstboot --disable

rootpw admaster

auth --useshadow --enablemd5

lang en_US

keyboard us

selinux --disabled

logging --level=info

reboot

timezone --isUtc Asia/Shanghai

network --bootproto=dhcp --device=eth0 --onboot=on

zerombr

bootloader --location=mbr

clearpart --all --initlabel

part swap --fstype="swap" --size=4096

part /boot --fstype="ext4" --size=200

part / --fstype="ext4" --size=1 --grow

%packages

openssh-server

openssh

vim

建立ubuntu ks.cfg

sudo vim /var/www/ubuntuserver12/ks.cfg

# ubuntuser kickstart file

url --url http://192.168.44.249/ubuntuserver12

preseed passwd/root-login boolean true

langsupport --default en_US.UTF-8 en_US.UTF-8

mouse

timezone Asia/Shanghai

rootpw --disabled

user john --fullname "john chu" --password admaster

zerombr yes

partman-lvm/device_remove_lvm boolean true

partman-md/device_remove_md boolean true

part / --fstype ext4 --size 1 --grow --asprimary

# 不設定swap時安裝過程中會提示要不要重新添加swap分區

part swap --size 4096

auth  --useshadow  --enablemd5

network --bootproto=dhcp --device=eth0

skipx

@ Base

openssh-client

gcc

make

修改pxe啟動菜單

sudo vim /var/ftpd/pxelinux.cfg/default

append ks=http://192.168.44.249/centos6/ks.cfg initrd=initrd.img

有其他系統就自行添加一下,注意把核心與initrd定位準确就可以

重新開機dnsmasq

sudo service dnsmasq restart

如果是安裝ubuntu,有兩點不同:1是ks檔案略有不同;2是pxe啟動後的引導菜單default檔案,必須使用centos風格的,否則會找不到核心與初始化環境。ubuntu自帶的default檔案要和txt.cfg檔案融合一下,然後注釋掉ui和include這兩行才行(個人觀點)

本文轉自 朱科強 51CTO部落格,原文連結:http://blog.51cto.com/zhukeqiang/1384755,如需轉載請自行聯系原作者

繼續閱讀