One-shot shell script that can be used to install puppet-agent on a supported POSIX platform.
This repository contains a Ruby script (install.rb
), which when executed will
generate an install.sh
file to be used for installing puppet-agent on
supported FOSS POSIX platforms.
The script leverages Bolt tasks from the puppet_agent and facts modules, and attempts to change as few things as possible in order to create a working shell script which can be used with little to no external dependencies
- A non-Windows platform for which Puppet provides official packages (see the full list here)
- One of wget/curl/fetch/perl-LWP-Simple in order to download packages
bash
(probably at least version 3)- Ability to run the script as
root
curl -sSL https://raw.githubusercontent.com/puppetlabs/install-puppet/main/install.sh | bash
wget -qO - https://raw.githubusercontent.com/puppetlabs/install-puppet/main/install.sh | bash
Piping to bash
is a controversial practice, so you are encouraged to inspect
the contents of the
script
before executing it.
If run with no arguments, the script will install the latest stable version of puppet-agent.
You can install a specific version using:
curl -sSL https://raw.githubusercontent.com/puppetlabs/install-puppet/main/install.sh | bash -s -- -v 6.24.0
Below is the full list of configurable options:
-v
/--version
- install a specific puppet-agent version-c
/--collection
- install a specific puppet-agent collection (e.g. puppet7)-n
/--noop
- do a dry run, do not change any files--cleanup
- remove the puppetlabs repository after installation finishes
The Ruby script uses parts of the bash.sh
task from the
facts module, and the
install_shell.sh
task from the
puppet_agent module
to generate the install.sh
file. The modules are vendored as git submodules;
in order to initialize them, run git submodule update --init
after cloning
this repository.
After making your changes, run the following command to regenerate the shell script:
ruby install.rb
You can also run shellcheck on the resulting script, it will skip the vendored task parts and only warn on code specific to this repository.
shellcheck install.sh
This project is licensed under the Apache 2.0 License - see the LICENSE file for details