linux – 如何将版本控制,测试和持续集成/部署等开发实践应用于系统管理?

想象一下,您将管理许多服务器,这些服务器具有许多人使用的不同服务.现在说你想在其中一台服务器上重新配置或替换某些软件.显然,您不希望在生产中的服务器上工作.

如果这是代码更改,作为开发人员,我会在本地开发机器上进行更改,在本地测试并将更改提交到版本控制系统.然后,可以在暂存环境中部署这些更改,进一步测试并最终部署在生产环境中.如有必要,我也很容易回滚.

通常,或者具体而言,您如何在系统管理中实现这一目标?

(首先想到的是使用虚拟机并将虚拟机映像置于版本控制中,但我确信有很多文献和我现在都不知道的聪明解决方案.)

解决方法

简短的回答是“操作系统部署管理”,“配置管理”和“软件包装”.答案如下.

我想补充Daniel Pittman的回复,其中详细说明了系统管理中“系统”的形式.

系统或环境将包括

>服务器
>操作系统
>配置
>供应商包;和
>本地包裹

包含这些将是以下过程:

>操作系统部署或成像
>配置管理
>软件包管理
>审计/记录
>监测
>备份

并且您希望将这些组合在一起以帮助您实现非功能性目标,例如:

>重复性
>可维护性
>可衡量性
>表现
>可追溯性
>可测试性
>可变性

这是一个快速的脑转储.我相信更多可以添加到所有列表中.

您的问题涉及其中一些,而不使用特定的单词.例如,您希望能够轻松部署并恢复,即希望可维护性;你想在测试环境中进行测试直到它通过,即可重复性,可测试性和可测量性;您正在考虑将vm映像放在版本控制中,因为您希望操作系统和配置部署的可重复性.

有很多工具可以帮助你解决这个问题,丹尼尔提到了一些工具.其他一些是:

> Kickstarts(基于RedHat),Preseed(基于Debian),WDS(MS Windows),用于部署已知的操作系统环境
> Spacewalk / Satellite(基于RedHat),组策略(MS Windows),用于配置和包管理
>用于生成,部署,升级删除软件包的YUM和APT打包系统(包含一个软件的二进制文件集,数据和配置)
> Nagios,OpenNMS和SCOM用于监控
>用于备份的Amanda,Bacula和Windows Backup Server
> Munin,PCP和Hyperic用于性能监控
>用于版本控制的CVS,SVN,GIT或Bazaar
> Hudson和Jenkins进行构建管理
>硒和机器人进行测试
> Bugzilla,Request Tracker和Jira用于录制,通信和跟踪

同样,这不是一份全面的清单,但是我一直在脑子里指导我,希望它也会帮助你.

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...