Answers about Puppet

DevOps, Automation

Universe and Everything

Need Puppet help?

Contact Alessandro Franceschi / example42
for direct expert help on Puppet.
If solution is quick, it’s free. No obligations.

Puppet Tip 110 - Request for Tiny Data - Part 4 - Defaults and final call

Post four of four about our Request for Tiny Data!

Previously we have:

  • Part 1 - Introduced Tiny Puppet and where it can be used
  • Part 2 - Described how to write Tiny Data
  • Part 3 - Shown special tiny data to handle package repositories, configuration files validation and usage within containers

Now let’s add a few other info and raise the final call!

Tiny Puppet defaults

Did we mention that Tiny Puppet is smart enough to do something also when it has no Tiny data for an application?

In this case it simply tries to declare a resource like:

package { 'unknown_app':
  ensure => present,

Automatically adding the right package provider, like chocolatey on Windows and homebrew on MacOS.

So, even if there’s no tidy data for, example, opera, something like this would work for Linux, Windows and MacOS:

tp::install { 'opera': }

When there’s no tiny data anyway the tp::conf define can’t be used.

tp command line

One of the free side benefits of using Tiny Puppet is that optionally you can install the tp shell command (powershell version still not available) to interact with the apps you manage, and have at disposal commands as the following.

To just test that everything is fine:

tp test

To test a specific app (can be used in shell sessions, CI, monitoring, puppet tasks, motd… )

tp test gitlab-ce

To tail -f all the known logs of the apps managed with tp:

tp log

To limit to the logs of an application

tp log nginx

To quickly install an application caring of repositories

tp install elasticsearch

To actually list the applications for which is available tiny data (based on latest version of the module on the forge):

tp list

Request for Tiny Data!

So, here is our renovated call for tiny data.

We have tinydata for some applications:

ls -la data/ | wc -l

the common ones or what we needed or found interesting.

Still there’s more.

A lot of wonderful applications that would be great to be able to install on a shell command:

tp install wonderapp

or manage with a Puppet define:

tp::install { 'wonderapp': }

On any Linux, and maybe Mac and Windows.

With the quick choice of using the default OS packages, the app upstream repo or any other repo might be configured.

tp::install { 'wonderapp': 
  upstream_repo => true|false,

We know we can add new data very easily, and relatively quickly.

We don’t know what application interests you.

Please engage with, in effort order:

  • Let us know, in any way (tweet, comment, mail, voice) what app you would like to quickly manage via tp
  • Open a ticket on Github for a new app support. Possibly provide context and relevant information
  • Open a ticket for incorrect, incomplete or not updated existing tiny data
  • Do directly the work with updated tinydata and submit a Pull Request

Our goal is to tp install everything on any OS ;-)

Now let’s define everything, together.