Linux的批量部署自动安装脚本(kickstart)
(一)linux的自动安装脚本kickstart(全自动安装)
kickstart:安装过程中回答系统所有问题的一个脚本文件,它是一个自动安装脚本,可以实现批量自动安装(一次可以装多个)。这样就为我们前面装虚拟机的过程提供了极大的方便,而且由于少了图形界面,安装速度也有了极大的提升。
实验一:我们来试着先安装kickstart,查看图形化界面:
1 安装kickstart,
2 运行:
3 进入图形界面:
4 进行基本设置,其中勾选安装完重启和运行文字界面(图形界面是默认的):
5 选择安装方法,选择http源:
6 选择安装方式与安装选项:
7 选择分区,/boot 200MB,/swap 500MB,/ 剩余部分:
8 网络设置:
9 进行火墙设置:
10 接下来几个设置,如包的选择,安装前执行的脚本,安装后执行的脚本先不设置,写脚本时再说:
11 最后保存,生成脚本,并把脚本放在指定文件夹下:
12 把kscfg放到指定文件夹下,
13 开启http服务,并设置开机自启,
14 编辑kscfg:
15 编辑创建虚拟机的脚本,指定ks源,还有镜像源:
16 查看是否可以访问ks文件,可以访问:
17 运行kickstart脚本,发现安装失败:
18 分析:发现报错提示kickstart脚本错误,没有以%end结尾,更正后,安装成功:
实验二:当我们安装虚拟机时,设置虚拟机网络时,选择dhcp方式,那么如何实现一个自动获取ip的虚拟机。
1 安装dhcp服务(dhcpd)
2 安装成功后,开启dhcpd,发现不能启动:
3 dhcp配置问题,寻找配置文件,如何寻找,用rpm -ql name查询:
4 查看配置文件,发现文件中无内容,复制文件:
5 编辑dhcpd配置文件:
6 退出保存。
7 安装,观察是否成功
每日知识点:
1 fuser:通过文件(或文件系统)找出正在使用该文件的程序。举例:有时候卸载时发现系统通知“device isj busy”,那表示该文件系统正在忙碌中,表示某个进程有利用到该文件系统,可以用fuser来追踪。
fuser [- umv ] [-k [i] [signal] ] file/dir
-a 显示所有命令行中指定的文件,默认情况下被访问的文件才会被显示。
-c 和-m一样,用于POSIX兼容。
-k 杀掉访问文件的进程。如果没有指定-signal就会发送SIGKILL信号。
-i 杀掉进程之前询问用户,如果没有-k这个选项会被忽略。
-l 列出所有已知的信号名称。
-m name 指定一个挂载文件系统上的文件或者被挂载的块设备(名称name)。这样所有访问这个文件或者文件系统的进程都会被列出来。如果指定的是一个目录会自动转换成"name/",并使用所有挂载在那个目录下面的文件系统。
-n space 指定一个不同的命名空间(space).这里支持不同的空间文件(文件名,此处默认)、tcp(本地tcp端口)、udp(本地udp端口)。对于端口,可以指定端口号或者名称,如果不会引起歧义那么可以使用简单表示的形式,例如:name/space (即形如:80/tcp之类的表示)。
-s 静默模式,这时候-u,-v会被忽略。-a不能和-s一起使用。
-signal 使用指定的信号,而不是用SIGKILL来杀掉进程。可以通过名称或者号码来表示信号(例如-HUP,-1),这个选项要和-k一起使用,否则会被忽略。
-u 在每个PID后面添加进程拥有者的用户名称。
-v 详细模式。输出似ps命令的输出,包含PID,USER,COMMAND等许多域,如果是内核访问的那么PID为kernel. -V 输出版本号。