Puppet 和 Puppetmaster 用于虚拟机上的开发

Puppet 和 Puppetmaster 用于虚拟机上的开发

我的情况是,我不断启动新的虚拟机进行开发。我有一个可以克隆的基础映像,但它很快就会过时,而且你没有办法在很多虚拟机上添加更改。

我想设置一个在虚拟机首次启动时运行的 puppet 脚本,并且有很多指南可以创建由 puppet 直接运行的 site.pp,但这涉及您必须在节点上设置的单个文件。我想要做的是在 puppetmaster 上进行开发设置,以便我的所有虚拟机都可以调用同一点并保持最新状态,并允许我使用文件服务器等创建一套全面的软件包。

我发现的问题是我不能/不想依赖主机名来识别虚拟机,我不关心保留 pki 的历史记录,因为虚拟机名称可能会被重复使用。

puppet 可以与 puppetmaster 一起使用,并且基本上忽略所有 pki 吗?我可以创建一个环境,以便我可以通过事实或其他方式将虚拟机注册到其中吗?我想做 puppet agent type=test1 或类似操作。

一般来说,我如何通过集中式源使用 Puppet,其中我不特别关心节点的安全性并期望节点频繁来去?

答案1

由于虚拟机用于开发目的,您可能需要查看流浪汉。Vagrant 开箱即用地支持 Puppet。

答案2

设置您的虚拟机通过 DHCP 进行配置,并添加到您的配置中(如果您愿意,您可以为您的虚拟机提供随机或连续的名称,但保留域部分以简化部署):

option domain-name "my.domain.com";

设置您的puppetmaster以提供您想要的模块:

node /.*my.domain.com/ inherits default {
}

并为该域启用自动签名:

$ cat autosign.conf 
# Domains you want SSL certificates autosigned for
#*.my.domain.com

至于“在多个虚拟机上添加更改”,嗯,这就是目的puppet。如果您想要/需要其他类型的按需操作,请查看木偶集体

答案3

puppet 可以以客户端/服务器方式工作,但这不是强制性的。您可以在当前机器本地调用 puppet,这要简单得多(但当然可扩展性较差)

就我而言,启动新虚拟机时,我只需使用 sftp (ssh) 复制 puppet 完整配置并在本地调用 puppet。说明在这里 (fr)http://offirmo.net/wiki/index.php?title=Amor%C3%A7age_d%27un_serveur_Ubuntu_avec_puppet

cd ~/puppet
sudo puppet apply --debug --detailed-exitcodes --verbose manifests/site.pp --modulepath=modules --ignorecache --no-usecacheonfailure

如果我需要更新,我的 puppet 配置位于 git repo 中(https://github.com/Offirmo/offirmo-puppet),我可以使用 git pull 获取最新版本并再次应用。

由您来判断此方法是否适合您的情况。

相关内容