Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/logic/puppet-dnfgroup
A puppet package provider for DNF groups
https://github.com/logic/puppet-dnfgroup
dnf packages puppet puppet-module ruby
Last synced: about 2 months ago
JSON representation
A puppet package provider for DNF groups
- Host: GitHub
- URL: https://github.com/logic/puppet-dnfgroup
- Owner: logic
- License: gpl-3.0
- Created: 2018-02-09T21:53:11.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-02-20T02:55:30.000Z (almost 7 years ago)
- Last Synced: 2024-03-23T12:49:08.691Z (11 months ago)
- Topics: dnf, packages, puppet, puppet-module, ruby
- Language: Ruby
- Size: 23.4 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.org/logic/puppet-dnfgroup.svg?branch=master)](https://travis-ci.org/logic/puppet-dnfgroup)
`dnfgroup` adds a package provider to puppet so you can manage DNF groups in a
familar way:```puppet
package {
'workstation-product-environment':
ensure => 'installed',
provider => 'dnfgroup';
}
```On Fedora, that will ensure that the "Fedora Workstation" environment group
(group ID "workstation-product-environment") is installed, which will install
any subgroups and individual packages.This provider doesn't make any distinctions between different types of groups
(groups, environment groups, language groups), as there appear to be no
technical reasons to differentiate at the puppet level.You can accomplish something very similar to what this provider does with the
default dnf provider by using the group-id, prefixed by `@`, as the package
name. However, the dnf provider won't register the group as installed, because
it doesn't know about that particular magic syntax, so it will attempt to
reinstall it with every run (even if that doesn't sound too bad, if you `ensure
=> 'absent'` a package that happens to be in that group, it will get installed
and then immediately removed every run). This provider also allows you to refer
to groups by their longer name (which are added as aliases), rather than by ID.This is an unusual package provider, in that it doesn't support versions (since
there's no versioning of DNF groups), and as a result, there's no support for
upgrading (via `ensure => 'latest'`), because there's no easy way to determine
if an upgrade is needed without actually testing the transaction, which is a
very expensive check for something of fairly low utility (assuming you have an
out-of-band mechanism for handling package upgrades).