新安装的 Linux 发行版在使用过程中(例如一年内)会进行大量的定制,以使其满足用户的需求。我们安装的每个应用程序都会删除或更改内部的配置文件/etc
,我们安装安装其依赖项的应用程序,我们创建一些systemd
服务等等。
当我们需要重新安装环境时,需要花费大量的时间和精力来重做新安装中的每一个更改。
如果我们可以从安装开始记录宏,我们就可以执行该宏来复制精确的相同的设置。是否已经有这样的宏录制实用程序,或者系统管理员如何解决这个特定问题?
答案1
如果可以选择切换发行版,您可以使用Kickstart 自动安装机制对于 CentOS。
kickstart 配置文件语法提供了指令来指定交互式安装中通常会询问的所有内容。此外,您可以添加包含 shell 脚本代码的安装前和安装后部分,以便对目标系统执行自定义修改。这将使您能够以相当“直观”且可重复的方式自动执行通常手动执行的大多数管理任务。
答案2
对于 Debian,您可能会发现这很有用:
https://wiki.debian.org/DebianInstaller/Preseed
我们用了一个自定义的Debian PXE 镜像以及用于设置 Debian 服务器的预置文件。对于像安装 systemd 单元文件这样的微调部分,我建议使用安西布尔,木偶或其他配置管理工具。
有了 ansible,你就有了一个叫做 playbook 的东西,它保存了你工作站上的所有配置。无论您将新服务部署在 1 台服务器还是 500 台服务器上,您都可以在几分钟内分配新服务或对系统进行更改。
该配置类似于以下示例,并且很容易调整以适应您拥有的任何发行版。
- name: Logwatch | Make sure logwatch and its dependencies are installed
package:
name: "{{item}}"
state: present
with_items:
- logwatch
- name: Logwatch | Configure logwatch's cronjob
cron:
user: root
cron_file: "{{ default_crontab }}"
name: logwatch
job: /usr/sbin/logwatch --format {{ logwatch_format }} --range {{ logwatch_range }} --detail {{ logwatch_detail }}
minute: 0
hour: 8
day: "*/7"
tags: cron