你如何编写Linux部署文档/计划?

我有几个相对较小的运行Linux发行版的服务器。 有时我需要从头重新安装1或2个“开发”服务器。 我经常忘记设置一些小东西,例如。 在sysctl.conf中转发或忘记安装更新监控脚本,非必要但有用的软件包等。

理想情况下,我想在所有这些设置之间进行确切的设置。

1)你如何处理logging“部署”过程整理的东西? 你能举几个例子吗?

2)你使用一些stream行的部署工具吗? 我看过厨师和傀儡这样的东西,但是现在看起来对我来说太复杂了。 更简单些?

你对木偶(或厨师)不喜欢什么? 他们是被devise来完成你所需要的工具。 如果这是客户机/服务器设置的复杂性,那么您可以跳过安装服务器组件,只需以“独立”或“独奏”模式运行客户机。

我最终转向Chef系统来自动扩展/发现,但是现在我直接从需要部署服务器的东西的源代码中直接控制服务器引导进程。 不知道你是否在webstack上,或者如果你使用的是ruby,但是如果你使用的是一个非常好的工具: recap (基于Capistrano)

它允许您在任意数量的远程服务器上运行脚本。 它通过使用“Capfile”来定义您的服务器等,然后有一些内置的任务可以扩展。 其中之一是:bootstrap任务。 所以当configuration新服务器时,我有一个简单的链

before 'bootstrap', 'bootstrap:dependencies' 

  namespace :bootstrap do task :dependencies do uname = capture('uname -r') abort('ENV Not Supported') unless uname.strip == "some uname version" sudo('apt-get -y install build-essential') run('echo 'America/New_York' | sudo tee /etc/timezone') end end 

这只是使用recap为您提供的“capture”,“sudo”和“run”命令可以做的一些事情的示例。 当然,这个例子假设你正在部署的软件绑定到ruby栈,但重点是,有这样的工具可以用于各种语言/框架。

我的build议是简单地将服务器的configuration与您在该服务器上部署的代码绑定,除非您想要使用像厨师或木偶这样的工具。

一些简单和摆动模块化的bash脚本既作为推出方法和自包含的文档? 直到你去木偶/厨师/ somethingelse …

对于开发环境,我是stream浪的狂热​​粉丝。 这很简单(恕我直言)感谢厨师和木偶,它基本上允许你设置你的环境一次,然后撕下来,恢复到你的心的内容。

看一看; http://www.vagrantup.com/

由于这是本周第二个问题,我推荐了stream浪者,我只是想说明我没有任何与他们有关系,从推荐他们那里得不到任何东西!