Giter Site home page Giter Site logo

adamwight / puppet-pkgng Goto Github PK

View Code? Open in Web Editor NEW

This project forked from voxpupuli/puppet-pkgng

0.0 1.0 0.0 163 KB

A Puppet package provider for FreeBSD's PkgNG package manager.

License: Apache License 2.0

Shell 0.64% Ruby 77.63% Puppet 19.10% HTML 2.63%

puppet-pkgng's Introduction

Puppet-pkgng

Puppet Forge Build Status

The package provider that matured in this repository has been merged upstream into the core Puppet package providers. As of puppet 4.1, you can enjoy the fruits of the pkgng provider without this module. This module now remains to manage pkg.conf, extra package repositories etc.

If you are looking to build your own PkgNG packages, you may also want to look at the poudriere module.

Upgrading Requirements

To use the 1.x or newer version of this module, ensure that you are running Puppet 4.1 or higher. Any of the pkgng_* facts that were employed outside of this repository should be re-evaluated. Those facts are no longer distributed with this module.

If you are using a Package override to specify that pkgng should be used as the provider, this should no longer be required as the pkgng provider is now the default for FreeBSD.

The latest release of this module to contain the package provider is 0.4.0.

Installation

The easiest way to install is to install from the forge.

puppet module install zleslie/pkgng

Then to configure your system to use PkgNG with all default settings, a simple include will do.

include pkgng

You may wish to override settings though, to do this simply use it as a class:

class { 'pkgng':
  purge_repos_d => false,
  options       => [
    'PKG_ENV : {',
    ' http_proxy: "http://proxy:3128"',
    '}',
  ],
}

By default, this module will erase user-defined repository not managed by Puppet. To disable this behaviour you can use the example above of setting purge_repos_d to false.

Disabling the FreeBSD default repository is done with:

pkgng::repo { 'FreeBSD':
  enabled => false,
}

Using specific repositories is as simple as a Puppet resource.

pkgng::repo { 'pkg.freebsd.org': }  # You'll want this one!
pkgng::repo { 'my.own.repo': }      # You can then specify more...

Installation via R10K

You can also clone this repo to somewhere in your modulepath, or use something like r10k to deploy your modules. R10k is sweet. For those not familiar, check out Finch's blog post on the subject of module deployment.

To track the git repository, a line in your Puppetfile that looks something like the following should get you started.

mod 'pkgng', :git => 'git://github.com/xaque208/puppet-pkgng.git', :ref => '1.0.0'

Installation via Librarian-Puppet

Installation via Librarian-Puppet is straight forward, simply add the following to your Puppetfile

mod 'zleslie/pkgng'

Usage

Once the module is installed, you can simply install package resources.

package { 'curl': }

With multiple repositories defined, a package can be installed from a specific repo by giving a URN locator for that repository like this.

pkgng::repo { 'my.own.repo': }

package { 'puppet':
  source => 'urn:freebsd:repo:my.own.repo',
}

If you have multiple repos providing the same package you can prefer one repo over the other by increasing the priority. The default priority is 0 and higher priorities are preferred.

pkgng::repo { 'pkg.freebsd.org': }
pkgng::repo { 'my.own.repo':
  priority => 10,
}

package {'curl': }

With the above config if the 'curl' package exists in both repositories it would be installed from my.own.repo

Contributing

Please help make this module better. Send pull request, file issues, be mindful of the tests and help improve where you can.

For any provider changes, please submit those directly to core Puppet.

Thanks

Thanks to all contributors who helped mature the provider and helped it graduate from this module into core Puppet. Its maintenance will also require community attention.

puppet-pkgng's People

Contributors

aduitsis avatar b4ldr avatar bwalex avatar geoffgarside avatar georgepearman avatar jdmulloy avatar kubicek avatar langseth avatar leepa avatar m8t avatar rmelcer avatar sathieu avatar sc68cal avatar skoef avatar smortex avatar strangelittlemonkey avatar tdb avatar zachfi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.