开发手册 欢迎您!
软件开发者资料库

Puppet - 验证Puppet设置

Puppet验证Puppet设置 - 从简单和简单的步骤学习Puppet从基本到高级概念,包括概述,体系结构,安装,配置,环境配置,主,代理设置,SSL签名证书设置,安装和配置r10K,验证Puppet设置,编码样式,清单文件,模块,文件服务器,Facter和事实,资源,资源抽象层,模板,类,功能,自定义函数,环境,类型和提供程序,RESTful API,实时项目。

在Puppet中,可以在本地测试设置.因此,一旦我们设置了Puppet master和node,就可以在本地验证设置了.我们需要在本地安装Vagrant和Vagrant盒,这有助于在本地测试设置.

设置虚拟机

我们正在测试在本地设置,我们实际上并不需要运行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 File

# -*- 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 的清单文件这将在VM上安装一些软件.

node 'brclelocal03.brcl.com' {    package { ['vim','git'] :       ensure => latest    } } echo "Running puppet" sudo puppet apply /etc/puppet/manifests/site.pp

一旦用户准备好上述脚本并使用所需的Vagrant文件配置,用户就可以cd到测试目录并运行 vagrant up命令.这将启动一个新的VM,稍后,安装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    } }

在清单文件中进行配置更改后,我们只需要移动到测试目录并运行basic vagrant up命令将显示 brclelocal003.brcl.com brcleprod004.brcl.com 机器.在我们的例子中,我们试图通过运行 vagrant up production命令来调出生产机器.这将创建一个新的机器,其名称为生产,如Vagrant文件中所定义,并且将在其中安装SSL包.