Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status

RSS

yumserver (12) Versions 2.0.2

Installs/Configures yumserver & mirrors remote repos.

Policyfile
Berkshelf
Knife
cookbook 'yumserver', '= 2.0.2', :supermarket
cookbook 'yumserver', '= 2.0.2'
knife supermarket install yumserver
knife supermarket download yumserver
README
Dependencies
Changelog
Quality 0%

yumserver Cookbook

Build Status

Table of Contents

  1. Overview
  2. Requirements
  3. Attributes
  4. Usage
  5. Contributing
  6. License & Authors

Overview

This cookbook allows you to mirror remote Yum repos and serve them up via NGINX.

Requirements

Requires Chef 12.5 or later as this cookbook makes use of Custom Resources.

Attributes

yumserver::default

Key Type Description Default
['yumserver']['basepath'] String Where to store mirroed yum repos. /var/lib/yum-rep

Usage

You always need to include the main recipe:

include_recipe 'yumserver::default'

This creates the basepath and installs the following packages:

  • yum-utils
  • createrepo
  • rsync

Additionally the recipe calls yumserver::_nginx which;

  • Sets-up the upstream NGINX repo.
  • Installs nginx.
  • Configures nginx to serve up the basepath.
  • Manages the nginx service.

yumserver_mirror

Each Yum repo you wish to mirror can be defined using the yumserver_mirror custom resource.

Each yumserver_mirror has the following attributes:

Attribute Type Description Default
name String or Symbol Resource name. N/A
local_path String The basepath where the repo should be stored. /var/lib/yum-repo
repo_name String Name of the Yum repo. N/A
repo_description String Description of the Yum repo. N/A
repo_baseurl String Base URL of the Yum repo. N/A
use_repo Boolean If the repo should be availble for the yumserver to use. true
repo_workers Integer Number of createrepo workers to start up. server cpu count

To Mirror EPEL for EL7 for example:

yumserver_mirror 'epel7' do
  repo_name 'epel'
  repo_description 'Extra Packages for Enterprise Linux 7'
  repo_baseurl 'https://dl.fedoraproject.org/pub/epel/7/x86_64/'
  action :create
end

yumserver_rsync_mirror

Each Yum repo you wish to mirror that provides an rsync endpoint can be defined using the yumserver_rsync_mirror custom resource.

Each yumserver_rsync_mirror has the following attributes:

Attribute Type Description Default
name String or Symbol Resource name. N/A
local_path String The basepath where the repo should be stored. /var/lib/yum-repo
repo_name String Name of the Yum repo. N/A
repo_description String Description of the Yum repo. N/A
repo_url String URL of the Yum repo. N/A
rsync_options String Options to pass to rsync. -aHS --numeric-ids --delete --delete-delay --delay-updates
use_repo Boolean If the repo should be availble for the yumserver to use. true

To Mirror EPEL for EL7 for example:

yumserver_rsync_mirror 'epel7' do
  repo_name 'epel'
  repo_description 'Extra Packages for Enterprise Linux 7'
  repo_url 'rsync://dl.fedoraproject.org/pub/epel/7/x86_64/'
  action :create
end

Contributing

If you would like to contribute to this cookbook please follow these steps;

  1. Fork the repository on Github.
  2. Create a named feature branch (like add_component_x).
  3. Write your change.
  4. Write tests for your change (if applicable).
  5. Run the tests, ensuring they all pass.
  6. Submit a Pull Request using Github.

License and Authors

License: BSD 2-clause

Authors:

Dependent cookbooks

nginx_server >= 1.0.1
zap >= 0.10.0
yum >= 3.5.2

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

2016-02-14

Summary

Minor bug fix.

Bugfixes

  • Fixed a bug that meant the node['yumserver']['basepath'] attribute wasn't honoured by the yumserver_mirror & yumserver_rsync_mirror resources.

2016-02-11

Summary

Minor bug fix after a fault was found in production with this cookbook.

Bugfixes

  • The path defined by the yumserver_mirror resource was incorrect. This was causing the zap feature to fail on runs after the first. Fixing the defined path in this resource fixed the error with zap.

2016-02-09

Summary

Major release with additional features/bug fixes that may break backwards compatibility.

Features

  • Now using mixlib-shellout instead of exec resources for yumserver_mirrror resources.
  • The createrepo command ran as part of yumserver_mirror resources are now multi-threaded.
  • Add zap support for /etc/resposync.repos.d.
  • Now uses the nginx_server cookbook to provide the web server.

Bugfixes

  • Fixed a typo in the yumserver_mirror resource that prevented the reposync config from beign remove on a :delete action.

2015-12-02

Summary

Small bugfix update to make the delete action work properly across custom resources.

Bugfixes

  • In the mirror resource make sure the reposync file gets deleted by switching the resource type to file instead of template.
  • In both resources make sure the base path is deleted recursively (otherwise it will fail as there are packages in them).

2015-11-25 1.3.0

Summary

Large bugix release to ensure mirrored repos are properly updated after the 1st sync.

Bugfixes

  • Made reposync in the mirror resource use alternate yum.conf & repo directory to allow them all to be enabled (enabling updates) whithout interfering with the system's yum.
  • Made the metadata on reposync in the mirror resource expire immedietly so package changes are synced more often than every 6 hours.

2015-11-22 - Release 1.2.0

Summary

General improvements to mirror resources.

Features

  • Optionally (true by default) create a yum_repository to allow the yumserver to use it's mirrored repos.
  • The yumserver_mirror resource now correctly removes packages no longer in the upstream repo.
  • The yumserver_mirror should complete quicker when no packages are updated.

Bugfixes

  • Disable mirrored repos to avoid issues such as mirroring the same repo for two versions of the same distro and causing update issues on the yumserver.

2015-11-12 - Release 1.1.1

Summary

Let Yum repo servers use their own rsync mirrors as repos.

Features

  • For each yumserver_rsync_mirror create a yum_repository so the Yum server can use that repo if it needs it.

2015-11-10 - Release 1.1.0

Summary

Added the ability to mirror a repo that is available via rsync.

Features

  • Mirror yum repos that provide rsync as an option.

Bugfixes

  • Add regression test.

2015-11-10 - Release 1.0.2

Summary

Fix NGINX config.

Bugfixes

2015-10-11 - Release 1.0.1

Summary

Minor doc updates.

2015-10-11 - Release 1.0.0

Summary

Initial release. Includes basic functionality.

Features

  • Mirrors Yum repos.
  • Serves Yum repos via NGINX.

Foodcritic Metric
            

2.0.2 failed this metric

FC016: LWRP does not declare a default action: /tmp/cook/bb55884cd9c134e5d4c9edaa/yumserver/resources/mirror.rb:1
FC016: LWRP does not declare a default action: /tmp/cook/bb55884cd9c134e5d4c9edaa/yumserver/resources/rsync_mirror.rb:1
FC023: Prefer conditional attributes: /tmp/cook/bb55884cd9c134e5d4c9edaa/yumserver/resources/mirror.rb:55
FC023: Prefer conditional attributes: /tmp/cook/bb55884cd9c134e5d4c9edaa/yumserver/resources/rsync_mirror.rb:35