- Puppet 教程
- Puppet - 首页
- Puppet 基础
- Puppet - 概述
- Puppet - 架构
- Puppet - 安装
- Puppet - 配置
- Puppet - 环境配置
- Puppet - Master
- Puppet - Agent 设置
- Puppet - SSL 证书设置
- 安装和配置 r10K
- Puppet - 验证设置
- Puppet - 代码风格
- Puppet - 清单文件
- Puppet - 模块
- Puppet - 文件服务器
- Puppet - Facter 和事实
- 高级 Puppet
- Puppet - 资源
- Puppet - 资源抽象层
- Puppet - 模板
- Puppet - 类
- Puppet - 函数
- Puppet - 自定义函数
- Puppet - 环境
- Puppet - 类型和提供程序
- Puppet - RESTful API
- Puppet - 实时项目
- Puppet 有用资源
- Puppet - 快速指南
- Puppet - 有用资源
- Puppet - 讨论
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
Vagrant 文件
# -*- 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 provisioner,我们尝试运行名为 **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 包。