Puppet modules and git master branch

The events in this post happened 5+ months prior to the posting date. I have been a bit behind on things, but wanted to get this out there.


Here I am minding my own business, testing my modules on Travis-CI and I start to get failures in the rspec tests.  I only updated the Geppetto .project file, how is my CI now failing?


  1) vmwaretools on a supported osfamily, vmware platform, default parameters for osfamily Debian and operatingsystem Ubuntu should contain Class[vmwaretools::repo] with before => ["Package[vmware-tools-esx-nox]", "Package[vmware-tools-esx-kmods-3.8.0-29-generic]"]
     Failure/Error: )}
       Syntax error at '{'; expected '}' at /home/travis/build/razorsedge/puppet-vmwaretools/spec/fixtures/modules/apt/manifests/init.pp:18 on node testing-worker-linux-docker-1ea89b31-3400-linux-15.prod.travis-ci.org
     # ./spec/classes/vmwaretools_init_spec.rb:159

It turns out that puppetlabs/apt has a syntax error in init.pp.  But why am I testing against a non-released (to the Forge) version of the APT module? I won’t ask how a syntax error even got committed.

The same goes for puppetlabs/concat:


  27) cloudera::cm5::server on a supported operatingsystem, custom parameters, db_type => postgresql with defaults should contain File[/etc/cloudera-scm-server/db.properties] with ensure => "present"
     Failure/Error: it { should contain_file('/etc/cloudera-scm-server/db.properties').with_ensure('present') }
       Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type file_concat at /home/travis/build/razorsedge/puppet-cloudera/spec/fixtures/modules/concat/manifests/init.pp:106 on node testing-worker-linux-docker-e5c6f7ca-3360-linux-7.prod.travis-ci.org
     # ./spec/classes/cloudera_cm5_server_spec.rb:313

It looks like puppetlabs/concat is switching to using a second module (electrical/file_concat). Now I have to update my .fixtures.yml (which is fine, I do want to know about dependency changes), but there isn’t a released version of puppetlabs/concat with electrical/file_concat yet.

All of the rspec testing in the world won’t help if dependencies are unstable.  Puppet module git repository master branch should at all times be the same as the code released to the Forge.



Miranda Jean Arnold

I have been rather occupied lately: My second daughter Miranda Jean arrived a short time ago.  I still plan on finding the time to continue working on projects that are posted to this blog, but so far she and her sister are keeping me rather busy.

Miranda Smirk

Miranda Smirk

puppet snmp module 3.4.0

Today, I have released a minor update to my Puppet module for Net-SNMP to the Puppet Forge. Included are some fixes from community members:

  • Add a pause after service stop and before creating SNMPv3 users (Guy Martin)
  • Skip zero length strings in ERB template output (Brett Delle Grazie)
  • Fixed a small typo in example (Markus Heberling)
  • Fix typo in freebsd config dir perms and ownership (typo101)

Also included is a conversion of the README.md to the new README.markdown layout with improvements to the documentation, and official support for Puppet 4.


Let me know if you have any feedback!

puppet vmwaretools module 5.0.0

This is a major release of my Puppet module to deploy the VMware Tools Operating System Specific Packages. There is a backwards-incompatible change that necessitated the major version bump. The parameters yum_server, yum_path, and just_prepend_yum_path have been renamed to be reposerver, repopath, and just_prepend_repopath respectively. Also, the module now officially supports Puppet 4 and a new parameter was added: gpgkey_url allows one to change the URL where the public GPG key resides.


Let me know if you have any feedback!

puppet vmwaretools module 4.9.0

Today, I am releasing a feature update to my VMware Tools Operating System Specific Packages module to the Puppet Forge. The primary feature is support for the Ubuntu operatingsystem.  Ubuntu support has been lacking throughout the life of this module.  This Puppet module now covers all guest operating systems supported by VMware’s OSPs.

I have also fixed the support for the SUSE Linux Enterprise Server (SLES) operatingsystem.  The original implementation utilized the yumrepo resource, which is incorrect on SUSE.  Instead, it now uses zypprepo to install the package repository configuration.


Let me know if you have any feedback!

puppet openvmtools module 0.2.0

I have released a new Puppet module to manages the installation and configuration of the Open Virtual Machine Tools for VMware guests to the Puppet Forge.  From VMware’s documentation:

open-vm-tools is the open source implementation of VMware Tools and consists of a suite of virtualization utilities that improves the functionality, administration, and management of virtual machines within a VMware environment. The primary purpose for open-vm-tools is to enable operating system vendors and/or communities and virtual appliance vendors to bundle VMware Tools into their product releases.

This module complements my razorsedge/vmwaretools module that installs the Operating System Specific Packages of VMware Tools.  I finally decided to create this module now that VMware has announced that they recommend using open-vm-tools that are redistributed by operating system vendors.

open-vm-tools is available with these operating systems and is supported by this module:

  • Debian 7.x and later releases
  • Recent Ubuntu releases (12.04 LTS, 13.10 and later)
  • openSUSE 11.x and later releases
  • SUSE Linux Enterprise 12 and later releases
  • Fedora 19 and later releases
  • Red Hat Enterprise Linux 7.0 and later releases
  • CentOS 7
  • Oracle Linux 7


Let me know if you have any feedback!

puppet network module 3.4.0

Recently, I have delivered a long-awaited release of my Red Hat network module to the Puppet Forge.  Numerous pull requests were merged including:

  • Addition of LINKDELAY option support to network::if::static and network::if::dynamic. (Hiroyuki Nakamura)
  • Allow setting DHCP_HOSTNAME on dynamic interfaces. (Joshua M. Keyes)
  • The addition of IPv6 support for global, static, bridged, and bond configurations. (Matthias Kneer)
  • Addition of IPV6_DEFAULTDEV to the global network settings. (Dries Verachtert)
  • Addition of a network::bridge defines.
  • Fix $fqdn fact lookup in network.erb.
  • Fix network::route documentation error.
  • Strip off the tailing VLAN on macaddress autodiscovery.
  • Updates to the README.md to deal with VLAN configs.
  • General updates to make the module better compatible with new Forge features.


Let me know if you have any feedback!