使用Kickstart设置一个本地Linux安装和更新服务器

在多台机器上设置Linux可能会花费很多时间和精力,但这不是必须的。与启动,您可以定制任何基于软呢帽的发行版的自动安装,包括CentOS,在新的服务器上。Kickstart不仅可以安装操作系统,还可以安装您希望运行的所有应用程序。为了让一切尽可能快地运行,您可以在本地存储Kickstart文件和Linux包Apacheweb服务器,然后服务器作为网络安装和更新服务器,在每次推出新机器时节省带宽。

用作安装服务器的服务器不需要有很大的处理能力,但是它应该有足够的空间(至少20GB)来存放CentOS安装dvd和包更新。

要构建安装服务器,首先安装一个精简的CentOS系统。一旦硬件和操作系统设置好了,确保服务器有一个固定的IP地址,比如192.168.2.110。然后使用命令安装Apache web服务器yum安装httpd.i686,或yum安装httpd.x86_64在64位安装上。

接下来,将安装文件从CentOS dvd复制到此服务器:

安装# rsync -arv /media/CentOS_6.3_Final /install

理想情况下,应该将/install分区设置在单独的磁盘或逻辑卷上,这样更灵活。如果可以这样做,请确保还编辑了/etc/fstab文件的内容,以便在服务器引导时挂载分区或卷。

如果您在Apache的文档根目录(/var/www/html/)之外创建安装目录,那么您必须创建一个配置文件来将web服务器指向正确的目录。所有Apache自定义配置文件都位于/etc/httpd/conf下。d /目录中。切换到该目录并创建一个名为install.conf的文件,其内容如下:

别名/install/ /install/ 选项索引允许重写没有命令允许,拒绝允许所有

这告诉Apache将请求/install目录的任何通信重定向到哪里。任何时候更改Apache的配置时,都应该使用命令检查它们是否存在错误apachectl configtest

您可以通过运行启动web服务器服务httpd start。要确保它在重新启动服务器时启动,可以使用命令将它添加到运行级别3和5chkconfig——35级httpd打开

配置安全

尽管web服务器已经启动并运行,但是您还不能从网络上的任何其他机器访问它,因为默认情况下CentOS使用SELinux强制模式,并且只允许通过防火墙进入的SSH流量。

解决这个问题的一个简单方法是调低SELinux以使用‘Permissive’模式(使用命令)setenforce宽容),或者将SELinux连同防火墙一起关闭。不要走捷径;即使您可能只为受保护的本地网络中的受信任机器提供服务,您仍然不应该关闭重要的安全机制。

相反,重新配置防火墙,允许HTTP流量通过Apache的80端口:

dport 80 -j接受# service iptables保存# service iptables重启

为了避免遇到SELinux问题,将自定义安装目录上的SELinux上下文更改为web服务器的文档根目录上的SELinux上下文:

ww/www/drwxr -xr-x根目录system_u:object_r:httpd_sys_content_t:s0 /var/www/html/

输出中的httpd_sys_content_t部分是目录的SELinux上下文。现在将其应用到安装目录:

# chcon -R -type =httpd_sys_content_t /install

然后,您应该能够从本地网络上的任何机器访问web服务器和安装目录。要测试这一点,用CentOS最小引导CD引导一台机器。当提示时,选择“URL”选项从本地网络服务器安装,并输入安装服务器的URL。

无人值守安装

现在安装服务器已经设置好了,但是您仍然需要物理地出现在客户机上才能完成安装。为了自动化安装过程,您需要使用Fedora的Kickstart安装方法。这个实用程序依赖于所谓的kickstart文件,这些文件包含安装过程中询问的所有问题的所有答案,例如分区方案、要安装的包,等等。

您可以使用不同的kickstart文件来安装不同类型的系统,例如web服务器、邮件服务器或客户机桌面。当您使用普通的手动过程安装CentOS机器时,Fedora的Anaconda安装程序会在/root/anaconda-ks.cfg下为该特定安装保存一个kickstart文件。您可以使用此文件安装具有相同硬件和软件配置的另一个系统。

您还可以使用kickstart文件来自定义和创建自己的kickstart文件。最方便的方法是使用图形化的Kickstart配置器工具,您可以通过命令下载并安装该工具yum安装system-config-kickstart

除了选择包之外,在使用安装服务器时,需要注意kickstart文件中的两件重要事情:安装方法和网络设置。

我们创建的服务器,以及我们正在修改这个kickstart文件的服务器,使用一个静态IP地址。如果我们未编辑地使用它,网络上就会有多台机器具有相同的IP地址,这是一种让您头疼的好方法。相反,我们将使用网络上的DHCP服务器为新机器分配IP地址。找到以关键字"network"开始的行,并将其改为:

网络——设备eth0——bootproto dhcp

另外,与初始设置不同的是,我们将要设置的客户机应该从网络服务器获取包,而不是从CentOS安装DVD获取包。要更改安装介质,查找“cdrom”的行,并将其替换为安装服务器的位置:

url—url http://192.168.2.110/install/

将kickstart文件放在web服务器的文档根目录下,例如/var/www/html/kickstart目录下。例如,您可能有一个名为gnomedesktop.cfg的kickstart文件,用于安装基于gnome的桌面;另一个名为kdedesktop.cfg的文件,用于安装基于kde的桌面。

要使用kickstart文件安装客户端,从最小的引导CD启动,并在引导屏幕上指向您想要使用的kickstart文件。例如,要安装一个GNOME桌面,输入:

linux ks = http://192.168.2.110/kickstarts/gnomedesktop.cfg

您看!系统现在将自动运行所有安装步骤。

设置更新服务器

可以很容易地进一步使用安装服务器,并将其用作本地更新存储库。这节省了带宽,因为可以将所有客户机设置为从本地存储库(而不是从Internet)获取更新。

在安装服务器上,为更新repo创建一个目录结构。为了保持简单,使用与CentOS镜像相同的目录结构:

# mkdir -p /localrepo/centos/6.3

CentOS repos是这样设置的,他们只查看主要发布号。为了顺利进行,创建一个到当前6.3回购的符号链接:

# ln -s /localrepo/centos/6.3/ /localrepo/centos/6

然后,一旦有了一个新的点发布,比如CentOS 6.4,您所需要做的就是创建一个指向新发布的本地存储库的新链接。

现在前往列表的镜子在CentOS网站上找一个离你近的。这里我使用佐治亚理工学院提供的一个,并使用rsync镜像它:

# rsync -progress -avH -delete -exclude 'isos' rsync://rsync.gtlib.gatech.edu/centos/6.3/ localrepo/centos/6.3/

这将在本地磁盘上创建镜像的精确副本,但是跳过用——排除参数—在本例中是isos目录—因为我们实际上并不需要它们。如果您的所有机器都属于特定的体系结构——比方说64位——您可以通过附加来排除32位体系结构的镜像包——排除“i386”

您希望本地存储库保持最新的安全补丁和更新,因此应该通过cron作业设置自动更新。CentOS在/var/ spoool /cron下保存cron作业;在那里,您可以为根用户创建一个作业,检查更新在每周日上午5:30:

# vi /var/ spoool /cron/root 30 5 * * 7 /usr/bin/rsync rsync—progress -avH—delete—exclude 'isos' rsync://rsync.gtlib.gatech.edu/centos/6.3/ localrepo/centos/6.3/

更改更新申请

创建了本地repo之后,需要让Apache web服务器知道它,就像我们对/install目录所做的那样。编辑repo配置文件:

选项索引FollowSymLinks AllowOverride None Order allow,deny allow from all 

这使Apache能够将寻找/repo目录的请求重定向到web服务器上的/localrepo目录。FollowSymLinks指令告诉Apache按照文件系统的指示遍历该目录。保存文件并重新启动web服务器。

现在必须配置客户机,以便它们从本地更新服务器获取包。CentOS将所有存储库保存在yum.repos之下。d文件夹。转到该文件夹并打开存储库,比如CentOS-Base。在文本编辑器中回购。在这个文件中,注释掉所有以开头的条目mirrorlist =,然后启用以baseurl =,并确保URL指向本地更新存储库:

baseurl = http://192.168.2.110/repo/centos/ releasever /操作系统/ basearch美元

完成所有更改后,保存文件并清除现有Yum缓存:

全洁

自动化安装后更新

如果您只有几台机器,那么您可以转到每台机器,手动更改每台机器的存储库,以从本地镜像进行更新。但是更有效的方法是创建一个自定义脚本,用您的自定义repos替换现有的repos。您还可以在kickstart文件本身中使用这样的脚本,以便在安装后自动替换repos。

首先,创建一个基本的自定义repo文件:

# vi当地。repo [LOCAL repo] name=LOCAL repo baseurl=http://192.168.2.110/repo/centos/$releasever/os/$basearch gpgcheck=1 enabled=1 gpgkey=file:// etc/pki/rpm-gpg/ rpm- gpg-keycentos -6

将它放在web服务器的文档根目录下的一个目录中—例如,/var/ www/html/postinstall /。还要创建一个脚本,用这个新存储库替换现有存储库,并将其放在相同的目录下。

# vi local-repo。承宪:cd /etc/yum.repos.d rm *。回购wget http://192.168.2.110/post-install/local。回购yum清洁所有yum -y更新

现在打开一个kickstarter文件,向下滚动到%的帖子部分,其中定义了系统安装后将要执行的操作,并添加了以下内容:

%post cd /tmp wget http://192.168.2.110/postinstall/local-repo.sh chmod +x local-repo.sh ./repo.sh

如果您有多个kickstart文件,请确保您更改了所有这些文件以运行自定义脚本,该脚本将用自定义的存储库替换默认存储库。

在本教程中,我们已经介绍了很多基础知识。这可能看起来有点难以应付的设置,但你不必做所有的一次。如果你有一个小的网络,你可以设置一个安装服务器。大型网络上运行大量关键服务器和应用程序,需要最新安全更新的管理员也可以设置一个更新服务器。

一旦一切都设置好了,推出新机器就变成了指向正确的kickstart文件的问题。您可以使用一个命令为新员工设置新机器、重置旧机器,或者将web服务器更改为邮件服务器。在kickstarter上安装和更新服务器不仅可以节省你的时间和精力,还可以减少公司的网络带宽成本。

加入网络世界社区有个足球雷竞技app脸谱网LinkedIn对最重要的话题发表评论。

版权©2013Raybet2

工资调查:结果在