您部署unixoid台式机的最佳实践和未来计划是什么?[关闭]


9

我一直在为非营利性无线电天文台设置Linux桌面。对我来说,这是我第一次考虑“部署”几台相同的计算机,集中登录名,主目录等。我很快就意识到,也许与直觉相反,“一切都是文本的”哲学不一定会使这项任务变得容易,而且我想知道经验丰富的管理员对此做了什么。

就我而言,我在每台计算机上都安装了Ubuntu 10.04 LTS。安装后,我运行了一个自定义脚本,该脚本会更改配置文件,删除并安装软件,并从服务器复制一些文件,例如背景图像或浏览器书签。但是,我认为我的问题与发行版无关。

问题

我主要遇到两个问题:首先,跨发行版和跨版本的工具和配置文件不一致,其次,一些关键软件没有以简单直观的方式向配置文件公开设置。

让我举两个简短的例子说明我的意思:

ifconfig工具将替换为ip。例如,如果在当前的ArchLinux机器上运行,则所有依赖前者的脚本都会中断。因此,我需要检查运行脚本的机器上存在哪些工具的哪个版本...某种程度上,这就像在小规模地重新发明autoconf一样。

对于第二个问题,请考虑为桌面提供某种“通用标识”。在我的post-install-config-script中,我使用以下几行代码来实现这一点:

scp user@server:/export/admin/*.jpg /usr/share/backgrounds/
scp user@server:/export/admin/ubuntu-wallpapers.xml /usr/share/gnome-background-properties/
sed 's/warty-final-ubuntu\.png/MyBackground\.jpg/' -i /usr/share/gconf/defaults/10_libgnome2-common
sed 's/warty\-final\-ubuntu\.png/MyBackground\.jpg/' -i /usr/share/gconf/defaults/16_ubuntu-wallpapers
sed 's/ubuntu-mono-dark/ubuntu-mono-light/' -i /usr/share/gconf/defaults/16_ubuntu-artwork
sed 's/Ambiance/Clearlooks/' -i /usr/share/gconf/defaults/16_ubuntu-artwork

我认为创建CI是组织管理员的常见任务。那么,为什么没有中央配置工具,甚至跨桌面?必须在两个不同的配置文件中设置两个(相同!)未记录的值使我感到奇怪。

问题

在组织环境中,如何处理多个客户端之间的集中统一配置?

像Debian的FAI这样的系统是否比我的“先安装,后运行脚本”方法具有显着的优势(除了不必更换CD)?

在发行版本的主要版本之间进行过渡的良好做法是什么?并且,除了技术方面的内容外:是否存在一个桌面环境,就用户体验而言,它可以保证长期的稳定性?我认为我无法将用户迁移到KDE 4或GNOME 3,但是XFCE仍然存在一些功能缺陷...

是否有* nix系统可以解决此类配置问题?例如,假设有一些系统要求您提供组织的某些图像(徽标,背景图像,颜色和字体集等),并将其应用于登录管理器,用户的桌面,Web应用程序(!)等上。注意:在我们的情况下,我必须与胖客户端一起工作,因此,单纯的瘦客户端解决方案将无济于事。

Answers:


3

使用Puppet或CFEngine或Chef是解决您问题的正确解决方案。当然,编写可以正常运行的Puppet脚本会花费一些时间和反复试验的方法。这些工具被广泛用于自动化云上的复杂安装,并简化了像我们这样的管理员的生活。:)


感谢您的提示!正如我之前问过的MaxMackie一样,当在主要发行版本之间切换时,Puppet是否提供任何有关重写规则的“集中式众包情报”?例如,如果我知道$ DISTRO从GNOME 2切换到3,是否会有半自动迁移路径?
jstarek 2011年

您可以为Gnome3配置编写一个文件,并将其包含在要安装Gnome3的主机的配置中。但这还取决于您如何创建人偶配置。如果您遵循模块化方法,那么它将更加容易。木偶本身将无法识别Gnome3或2。(希望我能正确回答您的问题)
Abhishek A

3

首先,不要指望使用多个发行版会很容易。

我没有进行大型桌面部署。对我而言,最好的权衡是使用LAN引导/ tftp引导系统,然后通过NFS运行安装。大多数Linux发行商都要求您先进行所有初始配置-然后您可以让安装程序在无人看管的情况下运行40分钟(没有“您是否真的要运行此程序?”提示)。那时,我正在照顾Redhat和Suse机器-并且在标准安装完成后安装了所有自定义配置的RPM。但是,有可能在各种发行版上自动化所有这些操作。

由于各种原因,我不是Ubuntu发行版的忠实拥护者,但Canonical的Lanscape是一个非常令人印象深刻的工具。而且,如果您打算进行大量的Ubuntu大型安装/管理多个Ubuntu桌面,那么绝对值得一看。


在Landscape的站点上,我得到的印象是它不处理配置文件条目-因此,我是否可以创建本地软件包来进行安装时所需的更改?
jstarek 2011年

1

我一直在使用名为CFEngine的软件进行很多工作。这是一个开放源代码配置管理器,它读取您设置的“规则”,并确保它所绑定的每台计算机都遵守这些规则。它是完全开源的,因此我们公司决定使用称为Nova的软件的受支持版本,因此非常有用。

这是它如何工作的广阔视野。假设您在受管网络上有4台计算机。他们都需要拥有一个/etc/syslog.conf由root 拥有的文件,并且都相同(根据master)chmod 777。您将在CFEngine的配置文件中创建此规则。在中央计算机上,您拥有“主” /etc/syslog.conf文件。每隔X倍的时间,您计算机的CFEngine版本就会通过网络访问,并询问每个框有关其/etc/syslog.conf文件的信息。在每个客户端上运行的CFEngine的本地副本将查询有问题的文件,并报告其内容,权限等。如果它们与您的Caster副本不完全匹配,CFEngine会将您的副本推送到客户端并再次检查文件。他们将比赛,他将继续您的下一条规则。

为简单起见,CFEngine的“规则”(他们称为promise)中使用的语法可能需要一点时间来适应,但它们值得学习(为您的技能组增加了另一项技能)。


感谢您的提示,我将看一下CFEngine。但是,从我到目前为止所读到的内容来看,当切换到发行版的新主要版本时,似乎并不能避免我重写规则,对吗?
2011年

1

所以,为什么没有中央配置工具,

Gnome具有GConf,它可以执行所有此类次要任务:

http://wiki.novell.com/index.php/Locking_Down_the_GNOME_Desktop

http://library.gnome.org/admin/system-admin-guide/stable/gconf-9.html.en

Ubuntu LTS几乎是桌面上长期支持的唯一选择。

只需一个简单dd的桌面,几乎就可以部署多台计算机,而台式机发行版正在慢慢使这条路线不那么吸引人。

现在也考虑一个选择,就是所谓的胖客户端


我已经在使用胖客户端,但是这本身并不能使配置变得更容易-它们只是从中央服务器获取homedir和passwd信息。如果GNOME不使用GConf并将重要的配置文件放在/ usr / share / gconf / defaults /中,则可能只是将中央/ etc /保留在服务器上的某个位置,然后由胖客户端将其挂载,但是GNOME伙计们没有。似乎更了解。叹...
jstarek

@jstarek胖客户端安装/时,GConf覆盖住/etc/gconf/gconf.xml.*/
史蒂夫- O
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.