Gabriel Nagy
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 110 additions and 33 deletions
-
1CODEOWNERS
-
77README.md
-
33install.rb
-
32install.sh
@ -0,0 +1 @@ |
|||
* @puppetlabs/night-s-watch |
@ -0,0 +1,77 @@ |
|||
# install-puppet |
|||
|
|||
One-shot shell script that can be used to install puppet-agent on a supported |
|||
POSIX platform. |
|||
|
|||
## Description |
|||
|
|||
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](https://forge.puppet.com/modules/puppetlabs/puppet_agent) and |
|||
[facts](https://forge.puppet.com/modules/puppetlabs/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 |
|||
|
|||
## Getting Started |
|||
|
|||
### Dependencies |
|||
|
|||
* A non-Windows platform for which Puppet provides official packages (see the full list [here](https://puppet.com/docs/puppet/latest/system_requirements.html#supported_operating_systems-packaged-platforms)) |
|||
* one of wget/curl/fetch/perl-LWP-Simple in order to download packages |
|||
|
|||
### Usage |
|||
|
|||
```sh |
|||
curl -sSL 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](https://github.com/puppetlabs/install-puppet/blob/main/install.sh) |
|||
before executing it. |
|||
|
|||
|
|||
### Script arguments |
|||
|
|||
If run with no arguments, the script will install the latest stable version of puppet-agent. |
|||
|
|||
You can install a specific version using: |
|||
```sh |
|||
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 |
|||
|
|||
## Development |
|||
|
|||
The Ruby script uses parts of the `bash.sh` task from the |
|||
[facts](https://forge.puppet.com/modules/puppetlabs/facts) module, and the |
|||
`install_shell.sh` task from the |
|||
[puppet_agent](https://forge.puppet.com/modules/puppetlabs/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: |
|||
```sh |
|||
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. |
|||
|
|||
```sh |
|||
shellcheck install.sh |
|||
``` |
|||
|
|||
## License |
|||
|
|||
This project is licensed under the Apache 2.0 License - see the LICENSE file for details |
Write
Preview
Loading…
Cancel
Save
Reference in new issue