热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

centos6.5安装和配置cobbler

Cobbler介绍Cobbler是一个系统启动服务(bootserver),可以通过网络启动(PXE)的方式用来快速安装、重装物理服务器和虚拟机,支持安装不同的Linux发行版和Windows。该工具使用python开发,小巧轻便(才15k行代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP,DNS,以及yum包镜像。Cobbl

Cobbler介绍

Cobbler 是一个系统启动服务(boot server),可以通过网络启动(PXE)的方式用来快速安装、重装物理服务器和虚拟机,支持安装不同的 Linux 发行版和 Windows。该工具使用python开发,小巧轻便(才15k行代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理 DHCP,DNS,以及yum包镜像。

Cobbler 使用命令行方式管理,也提供了基于 Web 的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。

Cobbler提供以下服务集成:
PXE服务支持
DHCP服务管理
DNS服务管理(可选bind,dnsmasq)
电源管理
Kickstart服务支持
yum仓库管理
TFTP (PXE启动时需要)
Apache(提供kickstart 的安装源,并提供定制化的kickstart配置)

同时,它和apache做了深度整合。通过 cobbler,可以实现对RedHat/Centos/Fedora系统的快速部署,同时也支持Suse 和Debian(Ubuntu)系统。

cobbler装机系统是较早前kickstart的升级版,优点比较容易配置,还自带web界面比较易于管理,不足在于中文资料较少。和 Kickstart不同的是,使用cobbler不会因为在局域网中启动了dhcp而导致有些机器因为默认从pxe启动在重启服务器后加载tftp内容导 致启动终止。

通过配置cobbler自动部署DHCP、TFTP、HTTP,在安装过程中加载kiskstart无人值守安装应答文件实现无人值守。从客户端使用PXE引导启动安装。

Cobbler实验环境及目的

Cobbler服务器系统:CentOS 6.5 64位
IP地址:192.168.21.128
需要安装部署的Linux系统:
eth0(第一块网卡,用于外网)IP地址段:192.168.21.160-192.168.21.200
eth1(第二块网卡,用于内网)IP地址段:10.0.0.160-10.0.0.200

子网掩码:255.255.255.0
网关:192.168.21.2
DNS:8.8.8.8 8.8.4.4
所有服务器均支持PXE网络启动
实现目的:通过配置Cobbler服务器,全自动批量安装部署Linux系统

Cobbler的安装部署配置

Cobbler安装环境准备

使用前提

1、你有一个DVD或ISO文件,您的操作系统的分布。
2、服务器有足够的本地磁盘的可用空间在/var/www/cobbler 解压缩DVD/ISO。
3、服务器和客户端都有一个共同的IP网络。
4、这个网络上的DHCP服务器是唯一的实例。
5、在此网络上的客户端是支持PXE网络启动。

定义Yum源

对于centos本身源 ,可根据自己所在地选择离自己近的镜像源,比如mirrors.163.com或mirrors.sohu.com
相关配置文件: /etc/yum.repos.d/CentOS-Base.repo
采用网易的源

cd /etc/yum.repos.d/mkdir backupmv *.repo ./backupwget -c -O CentOS-Base.repo http://mirrors.163.com/.help/CentOS6-Base-163.repoyum list

安装epel源

Cobbler不在CentOS的基本源中,需要导入EPEL源升级软件包,确保epel-release包的版本为最新,当前最新版本为6-8

Centos5 32位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/5/i386/epel-release-5-4.noarch.rpm Centos5 64位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm Centos6 32位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm Centos6 64位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm 安装:# rpm -Uvh 'http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm'# yum update (升级所有包,改变软件设置和系统设置,系统版本内核都升级)# yum upgrade (升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变)确定是否正确安装: yum list|grep -E "^epel"epel-release.noarch                       6-8                           installed 也可以用这个命令: rpm -qa |grep -i epel

关闭selinux和防火墙

关闭SELINUX

sed -i '/^SELINUX=/ s/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/configsetenforce 0 # 使配置立即生效这个需要重启机器才能生效,所以建议修改完重启[root@cobbler ~]# sestatusSELinux status:                 disabled 关闭防火墙Cobbler会使用到好几个端口,为了简化,直接把iptables关闭chkconfig ip6tables offchkconfig iptables off/etc/init.d/ip6tables stop/etc/init.d/iptables stop 关闭防火墙和 SELinux 后重启系统# reboot

Cobbler安装配置

安装Cobbler

yum安装cobbler包

yum -y install cobbler

确认是否正确安装 :

rpm -qa |grep -i cobbler

安装cobbler相关的包
额外需要的服务还有httpd rsync tftp-server xinetd,如果系统没有装上的话,可以执行以下命令安装。

yum  install tftp-server xinetd  dhcp  httpd  rsync

安装运行cobbler需要的软件包

yum  install  pykickstart  debmirror  python-ctypes   cman

根据需要来,如果要部署 debian/ubuntu 系统需要 debmirror 软件包;想使用电源管理功能的话需要安装 cman 或fence-agents;我的测试环境不需要bind,就没有安装

打开服务需要使用的端口
udp 69 tftp
udp 53 dns
tcp 80 443 web
dhcp 67 68
直接关闭防火墙(参考上文关闭防火墙的部分)或设置iptables,直接修改/etc/sysconfig/iptables

[root@localhost ~]# cat /etc/sysconfig/iptables # Firewall configuration written by system-config-firewall# Manual customization of this file is not recommended.*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT # SSH-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT# DNS - TCP/UDP-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT# DHCP-A INPUT -m state --state NEW -m udp -p udp --dport 68 -j ACCEPT# TFTP - TCP/UDP-A INPUT -m state --state NEW -m tcp -p tcp --dport 69 -j ACCEPT-A INPUT -m state --state NEW -m udp -p udp --dport 69 -j ACCEPT# NTP-A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT# HTTP/HTTPS-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT# Syslog for cobbler-A INPUT -m state --state NEW -m udp -p udp --dport 25150 -j ACCEPT# Koan XMLRPC ports-A INPUT -m state --state NEW -m tcp -p tcp --dport 25151 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 25152 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMIT /etc/init.d/iptables restart # 最后重启防火墙使配置生效

启动Cobbler服务

/etc/init.d/cobblerd start

可能会缺少的包:
请注意察看 cobbler服务启动的报错信息,我第一次安装时候就遇到有关ctypes的报错,只能手动安装:

yum -y install python-ctypes

配置Cobbler

设置http服务

配置httpd配置文件

# vi /etc/httpd/conf/httpd.confServerName 127.0.0.1:80

启用wsgi模块
需要确认mod_wsgi已经正确安装,否则需要手动安装

yum -y install mod_wsgi

启用wsgi模块只需要取消 /etc/httpd/conf.d/wsgi.conf 文件中
LoadModule wsgi_module modules/mod_wsgi.so 行的注释

sed -i 's*#LoadModule*LoadModule*g' /etc/httpd/conf.d/wsgi.conf

配置tftp与rsync

修改 rsync 和 tftp 这两个服务的 xinetd 配置,只需修改 rsync 和tftp的配置文件,将 disable = yes 修改为 disable = no来开启tftp与rsync服务的开机启动

sed -i '/disable/c disable = no' /etc/xinetd.d/tftpsed -i -e 's/= yes/= no/g' /etc/xinetd.d/rsyncservice xinetd restart

配置Cobbler主配置文件

在启动Cobbler服务之前,你需要修改一些配置文件。在修改每一个文件之前最好先备份下当前的文件。Cobblerd的配置文件为/etc/cobbler/settings ,这个文件是YAML信息的格式文件。
根据需要修改 cobbler主配置文件: /etc/cobbler/settings

Server 和 Next_Server

server 选项设置IP用于为cobbler 服务器指定地址,请不要使用0.0.0.0,设置一个你希望和cobbler服务器通过http和tftp等协议链接的IP。

sed -i 's/server: 127.0.0.1/server: 192.168.21.128/g' /etc/cobbler/settings

next_server选项是DHCP/PXE网络引导文件被下载的TFTP服务器的IP,它将和server设置为同一个IP

sed -i 's/next_server: 127.0.0.1/next_server: 192.168.21.128 /g' /etc/cobbler/settings
防止误重装系统

pxe安装 只允许一次,防止误操作 ( 在正式环境有用。实际测试来看,这个功能可以屏蔽掉 )

sed -i 's/pxe_just_once: 0/pxe_just_once: 1/g' /etc/cobbler/settings
生成Cobbler安装系统root初始密码

(1)这里生成密钥和配置默认密钥。这个设置只针对centos有效。用 openssl 生成一串密码后加入到 cobbler 的配置文件(/etc/cobbler/settings)里,替换 default_password_crypted 字段

# openssl passwd -1 -salt 'random-phrase-here' '111111'$1$random-p$WbZ3JxhRzCS/1Ne4S9g4Z.

openssl passwd -1 -salt ‘任间字符’ ‘密码’ (是数字1 不是字母L)
这个命令的用法,任意字符可以随便写,这个密码就是安装完系统root的密码了。

(2) 将上面的加密串加入cobbler配置文件中。

# vi /etc/cobbler/settings# 修改为如下配置default_password_crypted: "$1$random-p$WbZ3JxhRzCS/1Ne4S9g4Z."
Cobbler管理rsync

默认为0,不对rsync进行管理,可以修改为1 进行管理

sed -i 's/manage_rsync: 0/manage_rsync: 1/g' /etc/cobbler/settings
Cobbler管理dhcp

为了pxe的启动,需要一个DHCP服务器地址,并直接引导系统,它可以在网络中下载引导文件到TFTP的服务器,cobbler可以通过manage_dhcp的设置来进行管理

配置dhcp服务
首先修改cobbler配置,让cobbler来管理dhcp服务,在做自定义配置时,需要修改dhcp相关配置,以配合PXE启动用,编辑文件/etc/cobbler/settings
manage_dhcp: 1 (注:默认为0 ,表示不进行管理dhcp服务,可以修改为1,对其进行管理。此为使cobbler管理dhcp也就是后面用于同步更新配置信息[cobbler sync])
也可用命令修改:

sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/settings

接下来修改/etc/cobbler/dhcp.template,此文件是cobbler管理dhcp的模板,确保DHCP分配的地址和Cobbler在同一网段
对于此文件,本例中只需要修改如下部分

# cp /etc/cobbler/dhcp.template{,.bak}# vi /etc/cobbler/dhcp.template  # 需要修改192.168.0.0为自己网段subnet 192.168.21.0 netmask 255.255.255.0 {	# 修改自己的路由     option routers             192.168.21.1;	 # 域名服务器地址     option domain-name-servers 8.8.8.8;	 # 子网掩码     option subnet-mask         255.255.255.0;	 # 设置dhcp服务器IP地址租用的范围     range dynamic-bootp        192.168.21.160 192.168.21.200;     filename                   "/pxelinux.0";     default-lease-time         21600; #缺省租约时间     max-lease-time             43200; #最大租约时间       next-server                $next_server; #指定引导服务器  }

其余部分维持默认值即可。

如果是多网卡需要指定DHCP服务的网络接口

#vi /etc/sysconfig/dhcpd修改内容如下:#Command line options here DHCPDARGS=eth0DHCPDARGS=eth0 # 测试dhcp服务器配置是否正确# dhcpd # 在执行cobbler sync 之后测试才有效,因为没同步之前文件/etc/dhcp/dhcpd.conf还没有被同步修改
设置debmirror

注释掉@dists和@arches的行

sed -i -e 's|@dists=.*|#@dists=|'  /etc/debmirror.confsed -i -e 's|@arches=.*|#@arches=|'  /etc/debmirror.conf
下载引导操作系统文件

加载部分缺失的网络boot-loaders

cobbler get-loaders
检查Cobbler配置
cobbler check

出现下面的提示,SELinux和防火墙前面已经设置过了,不用理会

The following are potential configuration items that you may want to fix:1 : SELinux is enabled. Please review the following wiki page for details on ensuring cobbler works correctly in your SELinux environment:https://github.com/cobbler/cobbler/wiki/Selinux2 : since iptables may be running, ensure 69, 80/443, and 25151 are unblockedRestart cobblerd and then run 'cobbler sync' to apply changes

更多详情请看文后“可能遇到的错误”部分。

重启cobbler和更新相关配置

重启服务

/etc/init.d/cobblerd restart

同步最新cobbler配置,它会根据配置自动修改dhcp,bind 等服务,因此我称之为容器的原因。

cobbler sync # 同步配置文件到dhcp服务器
启动相关服务并设置开机启动
chkconfig httpd on chkconfig xinetd on chkconfig cobblerd onchkconfig dhcpd on/etc/init.d/httpd restart/etc/init.d/xinetd restart/etc/init.d/cobblerd restart/etc/init.d/dhcpd restart

设置Cobbler相关服务启动脚本

cat < < "EOF" > /etc/rc.d/init.d/cobbler #!/bin/sh# chkconfig: - 80 90# description:cobbler case $1 in start)/etc/init.d/httpd start/etc/init.d/xinetd start/etc/init.d/dhcpd start/etc/init.d/cobblerd start;; stop)/etc/init.d/httpd stop/etc/init.d/xinetd stop/etc/init.d/dhcpd stop/etc/init.d/cobblerd stop;; restart)/etc/init.d/httpd restart/etc/init.d/xinetd restart/etc/init.d/dhcpd restart/etc/init.d/cobblerd restart;; status)/etc/init.d/httpd status/etc/init.d/xinetd status/etc/init.d/dhcpd status/etc/init.d/cobblerd status;; sync)cobbler sync;;*) echo "Input error,please in put &#39;start|stop|restart|status|sync&#39;!";exit 2>&1 >/dev/null &;;esacEOF chmod +x /etc/rc.d/init.d/cobbler  #添加脚本执行权限chkconfig cobbler on  #添加开机启动service cobbler  restart  #重启cobbler

Cobbler的使用

挂载系统安装镜像到http服务器站点目录

1、上传ISO镜像至服务器/usr/local/src/目录
2、创建文件夹

mkdir -p /var/www/html/os/CentOS-6.5-x86_64  #创建挂载目录

3、挂载ISO镜像到/var/www/html/os/CentOS-6.5-x86_64目录

mount -t iso9660 -o loop /usr/local/src/CentOS-6.5-x86_64-bin-DVD1.iso  /var/www/html/os/CentOS-6.5-x86_64 vi /etc/fstab   #添加以下代码。实现开机自动挂载/usr/local/src/CentOS-6.5-x86_64-bin-DVD1.iso   /var/www/html/os/CentOS-6.5-x86_64   iso9660    defaults,ro,loop  0 0

备注:iso9660使用df -T 查看设备 卸载:umount /var/www/html/os/CentOS-6.5-x86_64
重复上面的操作,把自己需要安装的CentOS系统镜像文件都挂载到/var/www/html/os/目录下
例如:
CentOS-5.10-x86_64-bin-DVD-1of2.iso
CentOS-7.0-1406-x86_64-DVD.iso

导入系统镜像到Cobbler

从DVD中导入客户端的OS。这将自动设置了“x86_64”,并将其命名为CentOS-6.5-x86_64。{注:这需要一点时间,不要急。可查看/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/目录文件生成情况。}

cobbler import --path=/var/www/html/os/CentOS-6.5-x86_64  --name=CentOS-6.5-x86_64  --arch=x86_64  #导入系统镜像文件,需要一段时间 命令格式:cobbler import --path=镜像路径 -- name=安装引导名 --arch=32位或64位参数说明: --name    为安装源定义一个名字--arch    指定安装源是32位还是64位、ia64, 目前支持的选项有: x86│x86_64│ia64

注意1: 这个安装源的唯一标示 就是根据这两个参数来定义
本例导入成功后,安装源的唯一标示就是:centos6.5-x86_64 ,如果重复,系统会提示导入失败,其它命令可通过cobbler –help来进行查看。如果需要更多的参数定制,也可以查看官方文档: man cobbler ,然后查找 import 的配置,可以使用另外一个命令: cobbler distro。

从上面显示信息所知,cobbler会将镜像中的所有安装文件拷贝到本地一份,放在/var/www/cobbler/ks_mirrors下的 centos6.5-x86_64目录下。同时会创建一个名字为centos6.5-x86_64的一个发布版本,以及一个名字为centos6.5- x86_64的profile文件。

注意2:/var/www/cobbler 目录必须具有足够容纳 Linux安装文件的空间。如果空间不够,可以对/var/www/cobbler目录进行移动,建软链接来修改文件存储位置。
例如:

# ln -s /home/cobbler /var/www

导入时间较长, 请耐心等待!!!在正常导完之后会给出如下提示:

……(省略)associating kickstarts*** TASK COMPLETE ***

有时可能会出现卡住的现象,如果导入时间过长,可通过比对文件大小来确定是否已经正常导入

比对文件大小的方法

[root@cobbler ~]# du -sh /var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/3.9G/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/ [root@cobbler ~]# du -sh /var/www/html/os/CentOS-6.5-x86_644.1G/system/CentOS-6.5-x86_64/

如果上述两个命令执行过显示的结果出入较大, 则可能文件没有正常导入
在重新导入之前最好先把之前的内容删除再导入
cobbler [distro] remove –name=[CentOS-6.5-x86_64] 方括号中的内容根据自己的情况来填写 , 更多命令通过cobbler –help 来查看
剩下其它系统导入方法类似,只是名字和路径更改下即可。重复上面的操作,把其他的系统镜像文件导入到Cobbler导入完成之后,可通过 cobbler list 来查看导入的结果。

创建kickstarts自动安装脚本(For Centos/RHEL)

注意:这是关键步骤之一
由于需要安装的操作系统发行厂商不同,因此KS文件的写法要求,也不一而足。
本文只讨论 CentOs/RHEL 系列的 KS配置

另外:操作系统 版本不同,KS也存在一定的差异,比如CentOS5 ,和CentOS6下就有不同,切记!

官网的文档在此:
CentOS5 的 (网上大多是这个系列的) : http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-kickstart2-options.html

CentOS6 的 (能看到的配置案例很少) : https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-options.html

默认kickstart文件是/var/lib/cobbler/kickstarts/sample.ks,需要手动为每个发行版单独指定,或单独修改。
自定义ks文件,下面是我自己定义的一个centos6.5模板

cd /var/lib/cobbler/kickstarts  #进入默认Kickstart模板目录vi /var/lib/cobbler/kickstarts/CentOS-6.5-x86_64.ks  #创建CentOS-6.5-x86_64安装脚本 #platform=x86, AMD64, or Intel EM64T# System authorization informationauth  --useshadow  --enablemd5# System bootloader configurationbootloader --location=mbr# Partition clearing informationclearpart --all --initlabel#Partition informationpart swap --fstype swap --size=24000part /boot --fstype ext4 --size=200part / --fstype ext4 --size=15000part /opt --fstype ext4 --size=100 --grow  # Use text mode installtext  # keykey --skip# Firewall configurationfirewall --disable# Run the Setup Agent on first bootfirstboot --disable# System keyboardkeyboard us# System languagelang en_US# Use network installationurl --url=$tree# If any cobbler repo definitions were referenced in the kickstart profile, include them here.$yum_repo_stanza# Network information$SNIPPET(&#39;network_config&#39;)#network --bootproto=dhcp   --device=em1# Reboot after installationreboot #Root passwordrootpw --iscrypted $default_password_crypted# SELinux configurationselinux --disabled# Do not configure the X Window Systemskipx# System timezonetimezone   Asia/Shanghai# Install OS instead of upgradeinstall# Clear the Master Boot Recordzerombr  %packages@ base@ coree2fsprogs-ckermitgrub-bluez-pin-firstboot-rhgb-zshkernel-devel-OpenIPMI-tools-xdeltanet-snmpsysstatlslk-nmapkernel-synapticscontrol-centerlibaiocompat-libstdc++-33subversion  %pre$SNIPPET(&#39;log_ks_pre&#39;)$SNIPPET(&#39;kickstart_start&#39;)$SNIPPET(&#39;pre_install_network_config&#39;)# Enable installation monitoring$SNIPPET(&#39;pre_anamon&#39;)  %post# Set default language[ -f /etc/sysconfig/i18n ] && cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ksbakcat < < EOF > /etc/sysconfig/i18nLANG="en_US"SUPPORTED="en_US.UTF-8:en_US:en"SYSFOnT="latarcyrheb-sun16"EOF  ## Disable ipv6#/bin/cat >> /etc/modprobe.conf < < EOF #alias net-pf-10 off #alias ipv6 off #EOF /bin/sed -i &#39;s/NETWORKING_IPV6.*$/NETWORKING_IPV6=no/&#39; /etc/sysconfig/network    #disable ctrl-alt-del sed -i &#39;s/^ca/#ca/&#39; /etc/inittab # Set default run level to 3 sed -i  &#39;s/^id:5/id:3/&#39;  /etc/inittab    cat >> /etc/yum.repos.d/163.repo < < EOF [base] name=CentOS-$releasever - Base - 163.com baseurl=http://mirrors.163.com/centos/6/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6 EOF       # Tune snmp settings [ -d /etc/snmp ] || mkdir /etc/snmp if [ -f /etc/snmp/snmpd.conf ]; then   cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.ksbak fi    # stop unuseful services # nsrvs is the list for stop for i in `ls /etc/rc3.d/S*`   do       CURSRV=`echo $i|cut -c 15-`   echo $CURSRV   case $CURSRV in           crond | irqbalance | network |  sshd | syslog )       echo "Base services, Skip!"       ;;       *)           echo "change $CURSRV to off"           chkconfig --level 235 $CURSRV off           service $CURSRV stop       ;;   esac   done         echo "kernel.core_uses_pid = 1" > /etc/sysctl.confecho "kernel.msgmax = 65536" >> /etc/sysctl.confecho "kernel.msgmnb = 65536" >> /etc/sysctl.confecho "kernel.shmall = 4294967296" >> /etc/sysctl.confecho "kernel.shmmax = 68719476736" >> /etc/sysctl.confecho "kernel.sysrq = 0" >> /etc/sysctl.confecho "net.ipv4.conf.default.accept_source_route = 0" >> /etc/sysctl.confecho "net.ipv4.conf.default.rp_filter = 1" >> /etc/sysctl.confecho "net.ipv4.ip_forward = 0" >> /etc/sysctl.confecho "net.ipv4.tcp_retrans_collapse = 0" >> /etc/sysctl.confecho "net.ipv4.tcp_synCOOKIEs = 1" >> /etc/sysctl.confecho "net.ipv4.tcp_max_tw_buckets = 6000 " >> /etc/sysctl.confecho "net.ipv4.tcp_sack = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_window_scaling = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_rmem = 4096 87380 4194304  " >> /etc/sysctl.confecho "net.ipv4.tcp_wmem = 4096 16384 4194304  " >> /etc/sysctl.confecho "net.core.wmem_default = 8388608 " >> /etc/sysctl.confecho "net.core.rmem_default = 8388608 " >> /etc/sysctl.confecho "net.core.rmem_max = 16777216 " >> /etc/sysctl.confecho "net.core.wmem_max = 16777216 " >> /etc/sysctl.confecho "net.core.netdev_max_backlog = 262144 " >> /etc/sysctl.confecho "net.core.somaxconn = 262144 " >> /etc/sysctl.confecho "net.ipv4.tcp_max_orphans = 3276800 " >> /etc/sysctl.confecho "net.ipv4.tcp_max_syn_backlog = 262144 " >> /etc/sysctl.confecho "net.ipv4.tcp_timestamps = 0 " >> /etc/sysctl.confecho "net.ipv4.tcp_synack_retries = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_syn_retries = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_tw_recycle = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_tw_reuse = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_mem = 94500000 915000000 927000000  " >> /etc/sysctl.confecho "net.ipv4.tcp_fin_timeout = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_keepalive_time = 1200 " >> /etc/sysctl.confecho "net.ipv4.ip_local_port_range = 1024 65535 " >> /etc/sysctl.conf    echo "* soft nofile 65535" >> /etc/security/limits.confecho "* hard nofile 65535" >> /etc/security/limits.confecho "* soft nproc 65535" >> /etc/security/limits.confecho "* hard nproc 65535" >> /etc/security/limits.conf  # configuratioin of  the nameserver#cat > /etc/resolv.conf < < EOF#search localdomain#nameserver 8.8.8.8#EOF#add a default gw#route add -net  10.0.0.0/16  dev eth0 gw 192.168.1.140 # Execute external scriptscd /rootwget http://192.168.21.128/cobbler/ks_mirror/config/autoip.shsh /root/autoip.sh  chmod 600 /etc/passwd  chmod 600 /etc/shadow  chmod 600 /etc/group  chmod 600 /etc/gshadow :wq! #保存退出
vi /var/www/cobbler/ks_mirror/config/autoip.sh  #创建脚本,自动设置Linux系统静态IP地址、DNS、网关、计算机名称 #!/bin/shROUTE=$(route -n|grep "^0.0.0.0"|awk &#39;{print $2}&#39;)BROADCAST=$(/sbin/ifconfig eth0|grep -i bcast|awk &#39;{print $3}&#39;|awk -F":" &#39;{print $2}&#39;)HWADDR=$(/sbin/ifconfig eth0|grep -i HWaddr|awk &#39;{print $5}&#39;)IPADDR=$(/sbin/ifconfig eth0|grep "inet addr"|awk &#39;{print $2}&#39;|awk -F":" &#39;{print $2}&#39;)NETMASK=$(/sbin/ifconfig eth0|grep "inet addr"|awk &#39;{print $4}&#39;|awk -F":" &#39;{print $2}&#39;)cat >/etc/sysconfig/network-scripts/ifcfg-eth0< /etc/sysconfig/network-scripts/ifcfg-eth1< /etc/sysconfig/network< > /etc/hostshostname=$HOSTNAMEecho "nameserver  8.8.8.8"  > /etc/resolv.confecho "nameserver  8.8.4.4" >> /etc/resolv.conf :wq!  #保存退出

注意:kickstarts自动安装脚本中不允许有中文(注释有中文也不行),否则会报错

修改profile指定新的KS启动文件

按照操作系统版本分别关联系统镜像文件和kickstart自动安装文件
在第一次导入系统镜像时,cobbler会给安装镜像指定一个默认的kickstart自动安装文件

例如:CentOS-6.5-x86_64版本的kickstart自动安装文件为:/var/lib/cobbler/kickstarts/sample.ks

cobbler profile report --name  CentOS-6.5-x86_64  #查看profile设置 cobbler distro report --name CentOS-6.5-x86_64 #查看安装镜像文件信息 cobbler profile remove --name=CentOS-6.5-x86_64  #移除profile cobbler profile add --name=CentOS-6.5-x86_64 --distro=CentOS-6.5-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-6.5-x86_64.ks  #添加 cobbler profile edit --name=CentOS-6.5-x86_64 --distro=CentOS-6.5-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-6.5-x86_64.ks  #编辑 命令:cobbler profile add|edit|remove --name=安装引导名 --distro=系统镜像名 --kickstart=kickstart自动安装文件路径参数说明:--name:自定义的安装引导名,注意不能重复--distro:系统安装镜像名,用cobbler distro list可以查看--kickstart:与系统镜像文件相关联的kickstart自动安装文件(此文件必须预先准备好 )更多命令参数可执行cobbler --help查看 再次执行cobbler check 检查下配置 #查看Cobbler列表 cobbler listcobbler r        
推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
author-avatar
小丸子2502856277_253
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有