use*_*398 1 configuration-management puppet chef
我有一个小型虚拟 linux 服务器(500 兆内存)。我最终可能会再获得一两台服务器,而不是更多。
我是开发人员,而不是系统管理员,所以我不知道涉及 linux 管理的最佳实践。我知道我不想设置机器,发出一堆命令来设置用户,安装包,更改环境变量,如果我的机器崩溃,只会丢失所有这些。
我宁愿将所有这些信息与我的代码一起保存在源存储库中。
明显的解决方案是 puppet 或 Chef,但我没有运行一组机器。我想要一种设置用户、安装软件包等的声明方式,但不想设置 ssl 证书、主服务器等(坦率地说,我不能,我的机器很便宜,内存也很少)。
是否有更好的独立机器解决方案?我希望能够快速使用此解决方案来重新创建我的机器(在 amazon、linode、rackspace 或我的桌面上)。
Puppet 很容易设置。您几乎不需要做任何事情,并且客户端可以独立运行。让我给你举个例子。假设您有一个config.pp
使用以下行调用的文件:
package { 'apache2': ensure => installed }
service { 'apache2':
ensure => running,
enable => true,
require => Package['apache2'],
}
user { 'bob':
ensure => present,
uid => 1000,
gid => 'bob',
require => Group['bob'],
}
group { 'bob':
ensure => present,
gid => 1000,
}
Run Code Online (Sandbox Code Playgroud)
如果您运行puppet apply config.pp
,它将确保安装了包 apache2,该服务正在运行并在启动时启用,并且用户 bob 将与组 bob 一起创建。
这就是全部 -- 安装 puppet 客户端,将其输入到此文件中,然后运行命令。如果您想确保在没有 master 的情况下检查配置,您可以在 crontab 上安排它。我曾经安装了 10 台 ganeti 服务器——这涉及设置许多软件包和配置,中途至少重启一次——非常像这样。
Puppet 确实消耗了一些内存——500 MB 有点低端,但如果你主要运行它来安装东西,它应该足够了。我至少将自己的服务器保持在 1 GB,以保证 puppet 不会对服务器上运行的服务造成问题。
此外,Puppet 绝对是声明性的,尽管您可能需要通过要运行的脚本或 ruby 代码来增加它以教它新的技巧。对于您的需求,您似乎不太可能不得不求助于它。
归档时间: |
|
查看次数: |
1315 次 |
最近记录: |