From 8e8d4249ec8a9be9c2e64afe0f8d813c353e255c Mon Sep 17 00:00:00 2001 From: Hugo Antonio Sepulveda Manriquez Date: Sun, 3 Sep 2017 14:50:37 +0200 Subject: [PATCH] Stretch update commit * updated module to allow for puppetlabs PC1 release install in Debian Stretch. Tox is green. --- bootstrapvz/plugins/puppet/README.rst | 37 ++++++++++---- .../stretch/puppetlabs-pc1-keyring.gpg | Bin 0 -> 12283 bytes bootstrapvz/plugins/puppet/tasks.py | 9 +++- manifests/examples/kvm/stretch-puppet.yaml | 45 ++++++++++++++++++ 4 files changed, 81 insertions(+), 10 deletions(-) create mode 100644 bootstrapvz/plugins/puppet/assets/gpg-keyrings-PC1/stretch/puppetlabs-pc1-keyring.gpg create mode 100644 manifests/examples/kvm/stretch-puppet.yaml diff --git a/bootstrapvz/plugins/puppet/README.rst b/bootstrapvz/plugins/puppet/README.rst index 86c3aa3..dd1e16f 100644 --- a/bootstrapvz/plugins/puppet/README.rst +++ b/bootstrapvz/plugins/puppet/README.rst @@ -7,8 +7,8 @@ manifest inside the chroot. You can also have it copy your puppet configuration into the image so it is readily available once the image is booted. -Rationale and use case -~~~~~~~~~~~~~~~~~~~~~~ +Rationale and use case in a masterless setup +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You want to use this plugin when you wish to create an image and to be able to manage that image with Puppet. You have a Puppet 4 setup in mind and thus you @@ -17,9 +17,34 @@ You want it to almost contain everything you need to get it up and running This plugin does just that! While you're at it, throw in some modules from the forge as well! Want to include your own modules? Include them as assets! + +This is primarily useful when you have a very limited collection of nodes you +wish to manage with puppet without to having to set up an entire puppet infra- +structure. This allows you thus to work "masterless". + +You can use this to bootstrap any kind of appliance, like a puppet master! -For now this plugin is only compatible with Debian versions Wheezy and Jessie. -These are also the distributions supported by puppetlabs. +For now this plugin is only compatible with Debian versions Wheezy, Jessie and +Stretch. These are Debian distributions supported by puppetlabs. + +About Master/agent setups +~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you wish to use this plugin in an infrastructure where a puppet master is +present, you should evaluate what your setup is. In a puppet OSS server setup +it can be useful to just use the plugin without any manifests, assets or +modules included. +In a puppet PE environment you will probably not need this plugin since the PE +server console gives you an URL that installs the agent corresponding to your +PE server. + +About Puppet 5 +~~~~~~~~~~~~~~ + +Although Puppet 5 is available for some time, there is still heavy development +going on in that version. This module does NOT support the installation of this +version at this time. If you think this should be the case, please open up an +issue on ``. Settings ~~~~~~~~ @@ -49,10 +74,6 @@ General: - This plugin only installs the PC1 package for now, needs to be extended to be able to install the package of choice -- The puppetlabs agent is only available to i386 and amd64 architectures. ARM - is not available from repository at this time. If you need to have the agent - on ARM, you need to build the agent yourself, and install them through the - ``packages`` section of the bootstrap-vz manifest Manifests: diff --git a/bootstrapvz/plugins/puppet/assets/gpg-keyrings-PC1/stretch/puppetlabs-pc1-keyring.gpg b/bootstrapvz/plugins/puppet/assets/gpg-keyrings-PC1/stretch/puppetlabs-pc1-keyring.gpg new file mode 100644 index 0000000000000000000000000000000000000000..33a7a49381d5c3e36694600df481229bcd22f9cc GIT binary patch literal 12283 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