自动安装linux操作系统(kickstart)

笔者是在虚拟机上操作的,首先需要做一个准备工作,就是预装一台linux的服务器。并且配置成nat上网的方式,vmware如何配置nat上网,请参如下:

公司的网络并不是自动获得IP的,所以需要手动配置IP,然后手动配置IP又怕和公司同事的电脑有冲突,所以想到了通过nat方式实现上网。

1. 设置虚拟机上的nat
如果你是英文版本的vmware,这样设置:
Edit --> Virtual Network setting --> NAT -->  Vmnet 8  Gateway IP address : 192.168.205.2  Netmask : 255.255.255.0  NAT service: Started --> 确定

2. 修改虚拟机的网卡设置
双击虚拟机右下角的网卡小图标,鼠标移动过去后会显示“Ethernet: ...” , 
Device  status  那两项都需要打对钩;
Network connection  需要选择最后一项(Custom:Specific virtual network) 选择Vmnet8(NAT)
最后点ok

3. 到你的电脑上(XP)
右击“网上邻居” --> 属性 --> 右击 "VMware Network Adapter VMnet8" --> 属性 -->  双击 “Internet 协议(TCP/IP)” -->  手动设置IP为  192.168.205.1 子网掩码为 255.255.255.0  网关 和 dns 都设置为 192.168.205.2 --> 确定 --> 确定

4. 设置你的虚拟机IP (linux)
vim  /etc/sysconfig/network-scripts/ifcfg-eth0   内容如下:
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:0C:29:33:F7:3A
ONBOOT=yes
IPADDR=192.168.205.3
NETMASK=255.255.255.0
GATEWAY=192.168.205.2

vim  /etc/resolv.conf  内容如下:
search localdomain
nameserver 192.168.205.2

重启网络服务 service  network  restart   这样就可以上网了。





此时,我的linuxIP为192.168.205.3,网关和dns地址都为192.168.205.2. 
我们的目标是:
tftpd服务器: 192.168.205.3
dhcp服务器: 192.168.205.3
nfs服务器:  192.168.205.3
如果是虚拟机,请把你的CentOS光盘插到光驱中(或者设置一下虚拟光驱),这一步必须要做。

1. 搭建tftp服务器
yum install -y  tftp tftp-server  xinetd
vim /etc/xinetd.d/tftp     // 内容如下:
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot
        disable                 = no   // 只需要更改蓝色字体的这一部分
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

修改完后要启动tftpd服务
service xinetd  start   

2. 配置dhcpd服务
yum  install -y  dhcp
cp  /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf 
vim /etc/dhcpd.conf    // 请复制以下内容:
ddns-update-style interim;
ignore client-updates;

subnet 192.168.205.0 netmask 255.255.255.0 {

        allow booting;
        allow bootp;
        allow unknown-clients;
        option routers                  192.168.205.2;
        option subnet-mask              255.255.255.0;
        option domain-name-servers      192.168.205.2;
        option time-offset              -18000; # Eastern Standard Time
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#       option netbios-node-type 2;
        range dynamic-bootp 192.168.205.100 192.168.205.254;
        default-lease-time 21600;
        max-lease-time 43200;

        next-server  192.168.205.3;
        filename "pxelinux.0";
}
//  说明一下,我的服务器IP为 192.168.205.3, 网关和dns都是192.168.205.2 , 所以该配置文件中的相关配置请注意一下

启动dhcp服务  service dhcpd  start 

3. 配置支持pxe

cp /usr/lib/syslinux/pxelinux.0 /tftpboot 
mkdir  /install 
mount  /dev/cdrom   /install 
cd /install/images/pxeboot/   
cp  initrd.img  vmlinuz  /tftpboot
mkdir /tftpboot/pxelinux.cfg 
vim  /tftpboot/pxelinux.cfg/default   // 内容为:
default linux
prompt 1
timeout 30
label linux
kernel vmlinuz
append initrd=initrd.img ks=nfs:192.168.205.3:/install2/ks.cfg

4. 配置 ks.cfg
mkdir /install2 
vim   /install2/ks.cfg  // 内容如下:
#platform=x86, AMD64, or Intel EM64T
# System authorization information
auth  --useshadow  --enablemd5
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Use graphical install
graphical
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# Installation logging level
logging --level=info
# Use NFS installation media
nfs --server=192.168.205.3 --dir=/install
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on
#Root password
rootpw --iscrypted $1$BYSimLw0$I515yLiKzudlwkIskBqQE1

# SELinux configuration
selinux --disabled
# System timezone
timezone  Asia/Shanghai
# Install OS instead of upgrade
install
# X Window System configuration information
#xconfig  --defaultdesktop=GNOME --depth=32 --resolution=800x600
reboot
text
# Disk partitioning information
part /boot --bytes-per-inode=4096 --fstype="ext3" --size=100
part swap --bytes-per-inode=4096 --fstype="swap" --size=256
part / --bytes-per-inode=4096 --fstype="ext3" --grow --size=1

%packages --ignoremissing

@editors
@graphics
@x-software-development
@development-libs
@development-tools
kernel-devel
e2fsprogs
kernel

5.  配置NFS
vim /etc/exports
/install  * (ro,no_root_squash,sync)
/install2 *(ro,no_root_squash,sync)

启动NFS服务: 
service portmap restart   //如果centos6,命令是 service rpcbind restart
service   nfs  restart 

6.  创建一个新的虚拟机,设置网络为nat模式,默认就是使用dhcp方式安装系统的。

//最后再,强调一下,这个只是我在虚拟机上试验用的,如果你用做生成环境可能不太合适,相关的设置请自行修改。



/// linux kickstart之中root的密码可以使用明文,也可以使用加密过的值
rootpw –iscrypted $1$BYSimLw0$I515yLiKzudlwkIskBqQE1

就是读取加密后的值,但是这个值是怎么生成的呢?
这与linux系统的密码shadow一样,生成方法如下:
perl -e 'print crypt("123456",q($1$BYSimLw0)),"\n"'
## 其中123456为要给用户设置的密码,$1$BYSimLw0字符串是自定义字符串,shadow里一般用$1$后面跟8个字符这种格式。
生成的密码串样式如下:
$1$BYSimLw0$I515yLiKzudlwkIskBqQE1

中间有个$,前面算salt,后面的加密值,合在一起叫hash
crypt 本身默认用des算法
如果salt以$1$开头就使用md5算法

des算法命令如下:
perl -e 'print crypt ("123456","/g"),"\n"'
生成的密码串样式如下:
/guLSXipk3QEU

综上,如果你想设置自定义密码为"mypass-123"
则这样可以得到:
perl -e 'print crypt("mypass-123",q($1$BYSimiLe)),"\n"'
你的密码为: $1$BYSimiLe$LttB1n6yMsXP7ipq0QFQI0

这里的$1$BYSimiLe 是自定义字符串。





你可能感兴趣的:(自动安装linux操作系统(kickstart))