我想使用克隆来设置大量服务器。应用初始图像后,我想运行配置脚本。克隆将由硬件供应商通过硬盘复制来完成。
脚步:
- 硬件供应商构建新服务器
- 硬件附带具有初始映像的硬盘驱动器
- 服务器设置在最终位置
- 服务器启动。
- 服务器运行初始配置脚本。
- 服务器重新启动。
满足以下要求的步骤5和6的实施方法是什么?
- Ubuntu 12.04 LTS
- 当计算机打开时,脚本应该启动并运行,无需用户交互。
- 脚本应该在所有守护进程启动后运行。
- 脚本应在控制台上输出状态。
- 脚本应允许用户在错误情况下输入。
答案1
我没有尝试过这种方法,但听起来像是您正在寻找的。该工具称为Ubuntu安装后。
它可以作为安装后的一部分下载和/或随后部署。它还使用一个配置文件,其中包含已支持的选项,也可以在启动时下载该文件。您可以在该工具的主页上阅读更多内容,此处的答案有点太多了。
调用
它们显示了您可以用来调用它的 2 种方法:
从网络下载.cfg文件
$ sudo ./ubuntu-12.04-postinstall.py -c https://raw.github.com/nicolargo/ubuntupostinstall/master/ubuntu-12.04-gnomeshel
使用本地文件
$ sudo ./ubuntu-12.04-postinstall.py -c mycfg.cfg
前/后行动
这些部分允许您在发生任何事情之前(预操作)和/或在其他所有事情完成之后(后操作)运行自定义脚本。
包和存储库
您可以安装或删除软件包,或者使用它来添加其他 PPA 以访问第 3 方 APT 存储库。
记录
鉴于它是一个 Python 脚本,您可以通过命令运行该脚本的输出tee
,并将输出定向到文件和控制台。
答案2
/etc/rc.local 文件应该保证是最后执行的 initscript,尽管我不确定 ubuntu 上是否如此。您可以从 rc.local 调用您的配置脚本,然后mv
在成功完成后调用该文件,这样它就不会在重新启动(或类似选项)时运行。
对于 systemd 的控制台输出,我必须创建一个文件,明确告诉服务记录到控制台和系统日志。 IIRC,ubuntu 使用 upstart,也许这会有所帮助:https://askubuntu.com/questions/115034/debugging-console-output-and-upstart-scripts