- 木偶教程
 - 木偶 - 主页
 
- 基础木偶
 - 木偶 - 概述
 - 木偶 - 建筑
 - 傀儡 - 安装
 - 木偶 - 配置
 - Puppet - 环境会议
 - 木偶大师
 - Puppet - 代理设置
 - Puppet - SSL 签名证书设置
 - 安装和配置 r10K
 - Puppet - 验证设置
 - Puppet - 编码风格
 - Puppet - 清单文件
 - 木偶 - 模块
 - Puppet - 文件服务器
 - 木偶 - 事实与事实
 
- 高级傀儡
 - 木偶 - 资源
 - Puppet - 资源抽象层
 - 木偶 - 模板
 - 木偶 - 课程
 - 木偶 - 功能
 - Puppet - 自定义函数
 - 木偶 - 环境
 - 木偶 - 类型和提供者
 - Puppet - RESTful API
 - 木偶 - 现场项目
 
- 木偶有用资源
 - 木偶 - 快速指南
 - 木偶 - 有用的资源
 - 木偶 - 讨论
 
Puppet - 验证 Puppet 设置
在 Puppet 中,可以在本地测试设置。因此,一旦我们设置了 Puppet master 和节点,就可以在本地验证设置了。我们需要在本地安装 Vagrant 和 Vagrant box,这有助于在本地测试设置。
设置虚拟机
由于我们在本地测试设置,因此实际上不需要正在运行的 Puppet master。这意味着无需在服务器上实际运行 Puppet master,我们就可以简单地使用 Puppet 来应用命令来进行 Puppet 设置验证。Puppet apply 命令将根据配置文件中虚拟机的主机名应用local/etc/puppet中的更改。
为了测试设置,我们需要执行的第一步是构建以下Vagrantfile并启动机器并将/etc/puppet文件夹安装到位。所有需要的文件都将放置在具有以下结构的版本控制系统中。
目录结构
- manifests \- site.pp - modules \- your modules - test \- update-puppet.sh \- Vagrantfile - puppet.conf
流浪文件
# -*- mode: ruby -*- 
# vi: set ft = ruby : 
Vagrant.configure("2") do |config| 
   config.vm.box = "precise32" 
   config.vm.box_url = "http://files.vagrantup.com/precise64.box" 
   config.vm.provider :virtualbox do |vb| 
      vb.customize ["modifyvm", :id, "--memory", 1028, "--cpus", 2] 
   end 
  
   # Mount our repo onto /etc/puppet 
   config.vm.synced_folder "../", "/etc/puppet"  
   
   # Run our Puppet shell script   
   config.vm.provision "shell" do |s| 
      s.path = "update-puppet.sh" 
   end  
 
   config.vm.hostname = "localdev.example.com" 
end 
在上面的代码中,我们使用了 Shell 配置程序,在其中尝试运行名为update-puppet.sh的 Shell 脚本。该脚本位于 Vagrant 文件所在的同一目录中,下面列出了脚本的内容。
!/bin/bash 
echo "Puppet version is $(puppet --version)" 
if [ $( puppet --version) != "3.4.1" ]; then  
   echo "Updating puppet" 
   apt-get install --yes lsb-release 
   DISTRIB_CODENAME = $(lsb_release --codename --short) 
   DEB = "puppetlabs-release-${DISTRIB_CODENAME}.deb" 
   DEB_PROVIDES="/etc/apt/sources.list.d/puppetlabs.list"  
   
   if [ ! -e $DEB_PROVIDES ] 
   then 
      wget -q http://apt.puppetlabs.com/$DEB 
      sudo dpkg -i $DEB 
   fi  
sudo apt-get update 
   sudo apt-get install -o Dpkg::Options:: = "--force-confold" 
   --force-yes -y puppet 
else 
   echo "Puppet is up to date!" 
fi 
进一步处理,用户需要在 Manifests 目录中创建一个名为site.pp 的清单文件,该文件将在虚拟机上安装一些软件。
node 'brclelocal03.brcl.com' { 
   package { ['vim','git'] : 
      ensure => latest 
   } 
} 
echo "Running puppet" 
sudo puppet apply /etc/puppet/manifests/site.pp 
一旦用户准备好上述脚本以及所需的 Vagrant 文件配置,用户就可以 cd 到测试目录并运行vagrant up 命令。这将启动一个新的虚拟机,稍后安装 Puppet,然后使用 Shell 脚本运行它。
以下将是输出。
Notice: Compiled catalog for localdev.example.com in environment production in 0.09 seconds Notice: /Stage[main]/Main/Node[brclelocal03.brcl.com]/Package[git]/ensure: created Notice: /Stage[main]/Main/Node[brcllocal03.brcl.com]/Package[vim]/ensure: ensure changed 'purged' to 'latest'
验证多机配置
如果我们需要在本地测试多台机器的配置,只需更改 Vagrant 配置文件即可完成。
新配置的 Vagrant 文件
config.vm.define "brclelocal003" do |brclelocal003| brclelocal03.vm.hostname = "brclelocal003.brcl.com" end config.vm.define "production" do |production| production.vm.hostname = "brcleprod004.brcl.com" end
假设我们有一个新的生产服务器,它需要安装 SSL 实用程序。我们只需使用以下配置扩展旧清单即可。
node 'brcleprod004.brcl.com' inherits 'brcleloacl003.brcl.com' { 
   package { ['SSL'] : 
      ensure => latest 
   } 
} 
在清单文件中进行配置更改后,我们只需移至测试目录并运行基本的 vagrant up 命令,该命令将启动brclelocal003.brcl.com和brcleprod004.brcl.com机器。在我们的例子中,我们正在尝试启动生产机器,这可以通过运行vagrant up production 命令来完成。将创建一台名为 Production 的新机器,如 Vagrant 文件中定义的那样,并将在其中安装 SSL 软件包。