设为首页 收藏本站
查看: 2021|回复: 0

[经验分享] KVM 下 kick start 安装

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-3 08:48:11 | 显示全部楼层 |阅读模式
vm有简易的自动安装,我们如何给这些kvm也自动化安装呢
我们起一个虚拟机,选择pxe 默认下去,我们会看到开机以后,这台虚拟机自动获得了一个122网段的IP地址,WTF...可我明明没有配置过DHCP
1
2
rpm -q dhcp
package dhcp is not installed



嗷,我甚至没有安装过dhcp.看一下端口。
1
2
3
netstat -luntp |grep 67
tcp        0      0 :::46367                    :::*                        LISTEN      1893/rpc.statd      
udp        0      0 0.0.0.0:67                  0.0.0.0:*                               2378/dnsmasq



噢 ? 是 dnsmasq ,也就是他扮演了我的虚拟机下dhcp的角色。百度是永远查不出好东西,关于这个服务的内容特别乱。
dnsmasq 的主配置文件在etc下,打开。查看一下。全部都是注释行?。。。好吧。。
不断查找,最终我们在 /var/lib/libvirt/network/  下找到了这个元凶。。备份一下,然后就对这个default 做修改吧!
1
2
ls /var/lib/libvirt/network/
default.xml  default.xml.bk



文件内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh net-edit default
or other application using the libvirt API.
-->

<network>
  <name>default</name>
  <uuid>fe111cda-e2f6-4891-a8b3-0c90e0663ef0</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0' />
  <mac address='52:54:00:37:8A:9C'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254' />
    </dhcp>
  </ip>
</network>



我们注释掉dhcp的3行内容。。
重启服务: failed to create listening socket: Address already in use
我。。。。。。
1
2
3
4
netstat -lnutp |grep dns
tcp        0      0 192.168.122.1:53            0.0.0.0:*                   LISTEN      2378/dnsmasq        
udp        0      0 192.168.122.1:53            0.0.0.0:*                               2378/dnsmasq        
udp        0      0 0.0.0.0:67                  0.0.0.0:*                               2378/dnsmasq



我们kill 2378 ,再重启一下。OK了这次。

1
2
3
4
5
6
7
8
9
kill 2378
service dnsmasq restart

Starting dnsmasq:                                          [  OK  ]
netstat -lnutp |grep dns
tcp        0      0 0.0.0.0:53                  0.0.0.0:*                   LISTEN      3052/dnsmasq        
tcp        0      0 :::53                       :::*                        LISTEN      3052/dnsmasq        
udp        0      0 0.0.0.0:53                  0.0.0.0:*                               3052/dnsmasq        
udp        0      0 :::53                       :::*                                    3052/dnsmasq



恩。67 不监听了。再起一个虚拟机,果然没给分配地址。OKOK。
这里不直接把这个服务chkconfig off  也是因为他监听53有一个 dns 作用。我们还有用。。

=============================以上都只是准备工作啊==========================================

现在才是和kick start 真有关。。

1 肯定是安装相应的包咯
1
yum install dhcp syslinux tftp-server -y



2 /etc/dhcp 下有个conf 文件,我们cat 一下
1
2
3
4
5
cat dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
#   see 'man 5 dhcpd.conf'



噢 。好吧。是耍我的。根本没有配置需要的话到上述目录去拷贝。

3 拷贝过来,我们vim 编辑一下。
1
2
3
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample  /etc/dhcp/dhcpd.conf
cp: overwrite `/etc/dhcp/dhcpd.conf'? y
vim /etc/dhcp/dhcpd.conf



在去除了乱七八糟不必要的高级的功能和注释行后,配置大约如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
ddns-update-style interim;
ignore client-updates;
allow bootp;
allow booting;

option domain-name "haha.com";
option domain-name-servers 192.168.122.1;

default-lease-time 600;
max-lease-time 7200;

log-facility local7;


subnet 192.168.122.0 netmask 255.255.255.0 {
  range 192.168.122.200 192.168.122.250;
  option domain-name-servers 192.168.122.1;
  option domain-name "haha.com";
  option routers 192.168.122.1;
  option broadcast-address 192.168.122.255;
  default-lease-time 600;
  max-lease-time 7200;
  next-server 192.168.122.1
  filename="pxelinux.0";



最后的next-server 意思就是你的下一个服务器,也就是tftp服务器,我用的就是自己,指向自己。
filename 就是去tftp自动寻找的文件名。默认pxelinux.0


4 我们分别启动dhcp 和 tftp ,注意的是tftp 是xinetd 控制的,chkconfig on 重启xinetd即可。
1
2
service dhcpd start
Starting dhcpd:                                            [FAILED]



我。。。。
看日志咯。。
Aug  2 05:13:55 localhost dhcpd: Internet Systems Consortium DHCP Server 4.1.1-P1
Aug  2 05:13:55 localhost dhcpd: Copyright 2004-2010 Internet Systems Consortium.
Aug  2 05:13:55 localhost dhcpd: All rights reserved.
Aug  2 05:13:55 localhost dhcpd: For info, please visit https://www.isc.org/software/dhcp/
Aug  2 05:13:55 localhost dhcpd: Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file
Aug  2 05:13:55 localhost dhcpd: Internet Systems Consortium DHCP Server 4.1.1-P1
Aug  2 05:13:55 localhost dhcpd: Copyright 2004-2010 Internet Systems Consortium.
Aug  2 05:13:55 localhost dhcpd: All rights reserved.
Aug  2 05:13:55 localhost dhcpd: For info, please visit https://www.isc.org/software/dhcp/
Aug  2 05:13:55 localhost dhcpd: Can't chown new lease file: Operation not permitted
Aug  2 05:13:55 localhost dhcpd:
Aug  2 05:13:55 localhost dhcpd: This version of ISC DHCP is based on the release available
Aug  2 05:13:55 localhost dhcpd: on ftp.isc.org.  Features have been added and other changes
Aug  2 05:13:55 localhost dhcpd: have been made to the base software release in order to make
Aug  2 05:13:55 localhost dhcpd: it work better with this distribution.
Aug  2 05:13:55 localhost dhcpd:
Aug  2 05:13:55 localhost dhcpd: Please report for this software via the CentOS Bugs Database:
Aug  2 05:13:55 localhost dhcpd:     http://bugs.centos.org/
Aug  2 05:13:55 localhost dhcpd:
Aug  2 05:13:55 localhost dhcpd: exiting.

恩一大串里面我们很容易看出   Can't chown new lease file: Operation not permitted 就是问题所在,百度一下吧。。。方法就是更改 /etc/init.d/下 的执行脚本,将 user 和 group 改成root...
操作一下。。。果然OK ...
1
2
3
4
5
6
service dhcpd start
Starting dhcpd:                                            [  OK  ]
chkconfig tftp on
[iyunv@localhost dhcp]# service xinetd restart
Stopping xinetd:                                           [FAILED]
Starting xinetd:                                           [  OK  ]



5. tftp的关键目录在版本不同位置不同。现在的在
1
2
pwd
/var/lib/tftpboot



暂时他还是空的,我们要拷贝一些东西,第一步装包我们装了一个 syslinux, rpm -ql syslinux 一下。我们找到 我们之前在 dhcp 指定 file pxelinux.0
1
2
3
4
5
6
rpm -ql  syslinux
/usr/bin/gethostip
#。。。。。。。省略一万字
/usr/share/syslinux/pexlinux.0

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/



我们还需要拷贝两个关键文件到该目录,他们都在安装光盘中可以找到。
1
initrd.img vmlinuz



1
2
3
4
5
6
7
8
9
10
11
mount CentOS-6.5-x86_64-bin-DVD1.iso /mnt -o loop
cd /mnt/
ls
CentOS_BuildTag  EULA  images    Packages                  repodata              RPM-GPG-KEY-CentOS-Debug-6     RPM-GPG-KEY-CentOS-Testing-6
EFI              GPL   isolinux  RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-6  RPM-GPG-KEY-CentOS-Security-6  TRANS.TBL
cd isolinux/
ls
boot.cat  boot.msg  grub.conf  initrd.img  isolinux.bin  isolinux.cfg  memtest  splash.jpg  TRANS.TBL  vesamenu.c32  vmlinuz

cp initrd.img /var/lib/tftpboot/
cp vmlinuz /var/lib/tftpboot/



6 这样tftpoot下就有3个文件,我们还需要创建一个文件夹并创建一个最简单的default配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ls
initrd.img  pxelinux.0  vmlinuz
mkdir pxelinux.cfg
vim default

default local
prompt 1
timeout 60

label local
localboot 1

label install
kernel vmlinuz
append initrd=initrd.img ramdisk_size=8192 ks=http://192.168.122.1/ks/ks.cfg



7 安装 httpd 以及 system-config-kickstart
在/var/www/html 下新建目录 CentOS.ISO 将光盘挂载到这里,长期使用也要写fstab呀。
1
mount /var/ftp/pub/CentOS-6.5-x86_64-bin-DVD1.iso /var/www/html/CentOS.ISO/ -o loop



在/var/www/html 下创建目录ks
命令打开 system-config-kickstart 是个图形化界面,修改一些选项。
wKioL1W-GdDSdj7rAALQGE0tgvo882.jpg
wKiom1W-F9zQFOo8AAGv_YKwDgs998.jpg
wKioL1W-GdCBgNjOAAJjc4Q3Cok356.jpg
wKiom1W-F9zgm472AAHAvRenx48131.jpg
wKioL1W-GdGgB8KQAAK6Wuzea3U512.jpg
wKiom1W-F9yA5uJ2AAGpaK90XyI207.jpg

稍微看一下,应该蛮傻的,比较关键的是添加http服务器和目录名,要打对,最后脚本添加一个用户验证一下,之中我分了几个目录,也就是说这个磁盘最小我得给6个G。

完成之后,就导出一个ks.cfg 拷贝到 /var/www/html/ks 下

8 把dhcpd xinetd httpd 全部重启一下。
开一台虚拟机给6G 以上空间,pxe
可以看到拿到地址啦。是从我们dhcp里写的从200开始拿
在boot: 后面我们输入刚才在default里写的label 也就是 install 回车
如果一切正常,接下来就如下下图,开始自动安装啦!(任何还需要人工干预都是有问题~~)
wKiom1W-Gp_gCNqtAAIEOS4xgGc844.jpg
wKioL1W-HJSAiomcAAFFaRubPvg946.jpg

9. 最后 进入系统。。可以看到bob 用户已存在。
wKioL1W-HiPDlb9nAADY3eDp32M229.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-93481-1-1.html 上篇帖子: KVM——高级功能管理 下篇帖子: Centos 6.4 KVM安装和配置 start
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表