Install, upgrade, and uninstall Forge modules from the command line with the puppet module
command.
The puppet module
command provides an interface for managing modules from the Forge. Its interface is similar to other common package managers, such as gem
, apt-get
, or yum
. You can install, upgrade, uninstall, list, and search for modules with this command.
puppet module
command. With code management, you must install modules with a Puppetfile. Code management purges modules that were installed with the puppet module
command. See the Puppetfile documentation for instructions.puppet module
behind a proxy
Setting up To use the puppet module
command behind a proxy, set the proxy's IP address and port by running the following two commands:
puppet.conf
file, by setting http_proxy_host
and http_proxy_port
in the user
section of puppet.conf
. For more information, see the Puppetconfiguration reference.[user
] section of the puppet.conf
file. Setting them in other sections can cause problems.Forge modules
FindingThe Forge houses thousands of modules, which you can find on the Forge website or by searching on the command line.
The easiest way to search for or browse modules is on the Forge website. Each module on the Forge has its own page with the module's quality score,
community rating, and documentation. Alternatively, you can search for modules on the
command line with the puppet module search
command.
Some modules are Puppet supported or Puppet approved. Approved modules are often developed by Puppet community members and pass our specific quality and usability requirements. We recommend these modules, but they are not supported as part of a Puppet Enterprise license agreement. Puppet supported modules have been tested with PE and are fully supported. To learn more, see the Puppet approved and Puppet supported pages.
If there are no supported or approved modules that meet your needs, evaluate available modules by compatibility, documentation, last release date, number of downloads, and the module's Forge quality score.
Searching modules from the command line
The puppet module
search
command accepts a single search term and returns a list of
modules whose names, descriptions, or keywords match the search term.
Finding and downloading deleted modules
You can still search for and download a specific release of a module on the Forge, even if the release has been deleted.
Normally, deleted modules do not appear in Forge search results. To include deleted modules in your search on the Forge website, check Include deleted modules in the search filter panel.
To download a deleted release of a specific module, select the release from the Select another release drop-down list on the module's page. The release is marked in this menu as deleted.
If you select the deleted release, a warning banner appears on the page with the reason for deletion. To download the deleted release anyway, click Download or install it with the puppet module install
command.
Installing modules from the command line
The puppet module install
command installs a module and all of its dependencies. You can install modules from the Forge, a module repository, or a release tarball.
$codedir/environments/production/modules
. For example, to install the puppetlabs-apache
module, run: You can customize the module version, installation directory, or environment, get debugging information, or ignore dependencies by passing options with the puppet module install
command.
Forge
Installing modules from thepuppet module install
command with the long name of the module. The long name of a module is formatted as <username>-<modulename>
. For example, to install puppetlabs-apache
, run: puppet module install command
, you'll get an error like: This error occurs because there is no CA-cert bundle on Solaris 10 to trust the Forge certificate. To work around this issue, download the module from the Forge website, and then install the module tarball with the puppet module install
command, as described in the topic about installing from a release tarball.Installing from another module repository
You can install modules from other repositories that mimic the Forge interface. You can change the module repository for one installation, or you can change your default repository.
--module_repository
option. For example: To change the default module repository, edit the module_repository
setting in the puppet.conf
to the base URL of the repository you want to use. The default value for the module_repository
is the Forge URL, https://forgeapi.puppetlabs.com
. See the module_repository
setting in the puppet.conf
configuration documentation.Installing from a release tarball
To install a module from a release tarball, specify the path to the tarball instead of the module name.
--ignore-dependencies
option and manually install any dependencies. For example: Puppet Enterprise-only modules
Installing and upgradingSome Puppet modules are available only to PE users. Generally, you manage these modules in the same way you would manage other modules. You can use these modules with licensed PE nodes, a PE 10-node trial license, or with Bolt for a limited evaluation period. See your module's license for complete details.
Install modules on nodes without internet
To manually install a module on a node with no internet, download the module on a connected machine, and then move a module package to the unconnected node. If the module is a PE-only module, the download machine must have a valid PE license.
Make sure you have PDK installed. You'll use PDK to build a module package that you can move to your unconnected node. For installation instructions, see the PDK install docs.
Upgrading modules
To upgrade a module to a newer version, use the puppet module upgrade
command.
This command upgrades modules to the most recent released version of the module. This includes upgrading the module to the most recent major version.
--version
option. For example, to upgrade puppetlabs-apache
version 2.2.0 without any breaking changes, specify the 2.x release to upgrade to: You can also ignore changes or dependencies when upgrading with command line options. See the puppet module
command reference for a complete list of options.
Uninstalling modules
Completely remove installed modules with the puppet module uninstall
command.
puppet.conf
file. To remove a module, run the uninstall command with the full name of the module. For example: By default, the command exits and returns an error if you try to uninstall a module that other modules depend on or if the module's files have been modified after it was installed. You can forcibly uninstall dependencies or changed modules with command line options.
puppet module
command reference for a complete list of options.puppet module
command reference
The puppet module command manages modules with several actions and options.
puppet module
actions
Solaris Note: To use puppet module
commands on Solaris systems, you must first install gtar
.
Action | Description | Arguments | Example |
---|---|---|---|
build | Deprecated. Prepares a local module for release on the Forge by building a ready-to-upload archive file. Will be removed in a future release; use Puppet Development Kit instead. | A valid directory path to a module. | puppet module build modules/apache |
changes | Compares the files on disk to the md5 checksums and returns an array of paths of modified files. | A valid directory path to a module. | puppet module changes /etc/code/modules/stdlib |
install | Installs a module. | The full name <username-module_name > of the module to uninstall. | |
list | Lists the modules installed in the modulepath specified in the [main] block in the puppet.conf file. | None. | puppet module list |
search | Searches the Forge for modules matching search values. | A single search term. | puppet module search apache |
uninstall | Uninstalls a module. | The full name <username-module_name > of the module to uninstall. | puppet module uninstall puppetlabs-apache |
upgrade | Upgrades a module to the most recent release or to the specified version. Does not upgrade dependencies. | The full name <username-module_name > of the module to upgrade. | puppet module upgrade puppetlabs-apache --version 0.0.3 |
puppet module install
action
Installs a module from the Forge or another specified release archive.
Option | Description | Value | Default |
---|---|---|---|
--debug , -d | Displays additional information about what the puppet module command is doing. | None. | If not specified, additional information is not displayed. |
--environment | Installs the module into the specified environment. | An environment name. | By default, installs the module into the default environment specified in the puppet.conf file. |
--force , -f | Installs the module regardless of dependency tree, checksum changes, or whether the module is already installed. By default, installs the module in the default modulepath, even if the module is already installed in another directory. Does not install dependencies. | None. | If not specified, puppet module install exits and returns information if it encounters installation errors or conflicts. |
--ignore-dependencies | Does not install any modules required by this module. | None. | If not specified, the puppet module install action installs the module and its dependencies. |
--module_repository | Specifies a module repository. | A valid URL for a module repository. | If not specified, installs modules from the module repository specified in from the puppet.conf file. By default, this is the URL for the Forge. |
--strict-semver | Whether to exclude pre-release versions. A value of false allows installation of pre-release versions. | true , false | Defaults to true , excluding pre-release versions. |
--target-dir , -i | Specifies a directory to install modules. | A valid directory path. | By default, installs modules into $codedir/environments/production/modules |
--version , -v | Specifies the module version to install. | A semantic version number, such as 1.2.1 or a string specifying a requirement, such as ">=1.0.3". | If not specified, installs the most recent version available on the Forge. |
puppet module list
action
Lists the Puppet modules installed in the modulepath specified in the puppet.conf
file's [main]
block. Use the --modulepath
option to change which directories are scanned.
Option | Description | Value | Default |
---|---|---|---|
--modulepath | Specifies another modulepath to scan for modules. | A valid directory path. | By default, scans the default modulepath from the [main] block in the puppet.conf file. |
--strict-semver | Whether to exclude pre-release versions. A value of false allows uninstallation of pre-release versions. | true , false | Defaults to true , excluding pre-release versions. |
--tree | Displays the module list as a tree showing dependencies. | None. | By default, puppet module list lists installed modules but does not show dependency relationships. |
puppet module uninstall
action
Uninstalls a module from the default modulepath.
Option | Description | Value | Default |
---|---|---|---|
--force , -f | Uninstalls the module regardless of dependency tree or checksum changes. | None. | By default, puppet module uninstall exits and returns an error if it encounters changes, namespace errors, or dependencies. |
--ignore-changes | Does not use the checksum and uninstalls regardless of modified files. | None. | By default, if the puppet module uninstall action finds modified files in the module, it exits and returns an error. |
--strict-semver | Whether to exclude pre-release versions. A value of false allows uninstallation of pre-release versions. | true , false | Defaults to true , excluding pre-release versions. |
--version , -v | Specifies the module version to uninstall. | A semantic version number, such as 1.2.1 or a string specifying a requirement, such as ">=1.0.3".. | By default, puppet module uninstall uninstalls the version installed in the modulepath. |
puppet module upgrade
action
This command upgrades modules to the most recent released version of the module. This includes upgrades to the most recent major version.
Option | Description | Value | Default |
---|---|---|---|
--force , -f | Upgrades the module regardless of dependency tree or checksum changes. | None. | By default, puppet module upgrade exits and returns an error if it encounters changes, namespace errors, or dependencies. |
--ignore-changes | Does not use the checksum and upgrades regardless of modified files. | None. | By default, if the puppet module upgrade action finds modified files in the module, it exits and returns an error. |
--ignore-dependencies | Does not attempt to install any missing modules required by this module. | None. | If not specified, the puppet module upgrade action installs missing module dependencies. |
--strict-semver | Whether version ranges must exclude pre-release versions. | true , false | Defaults to true , excluding pre-release versions. |
--version , -v | Specifies the module version to uninstall. | A semantic version number, such as 1.2.1 or a string specifying a requirement, such as ">=1.0.3". | By default, puppet module uninstall uninstalls the version installed in the modulepath. |
PE-only module troubleshooting
If you get an error when installing a PE-only module, check for common issues.
If you aren't a PE user, you won't be able to use this module unless you purchase a PE license. If you are a PE user, check the following:
Are you logged in as the root user? If not, log in as root and try again.
Does the node you're on have a valid PE license? If not, switch to a node that has a valid license on it.
Are you running a version of PE that supports this module? If not, you might need to upgrade.
Does the node you are installing on have access to the internet? If not, switch to a node that has access to the internet.