cookbook 'yumserver', '= 1.2.0'
yumserver (12) Versions 1.2.0 Follow3
Installs/Configures yumserver & mirrors remote repos.
cookbook 'yumserver', '= 1.2.0', :supermarket
knife supermarket install yumserver
knife supermarket download yumserver
yumserver Cookbook
Table of Contents
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 |
yumserver::_nginx
Key | Type | Description | Default |
---|---|---|---|
['yumserver']['nginx']['config_cookbook'] | String | Which cookbook to use for the NGINX config template. | yumserver |
['yumserver']['nginx']['servername'] | String | Server name to use in NGINX config. | node['fqdn'] |
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 thebasepath
. - 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 |
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;
- Fork the repository on Github.
- Create a named feature branch (like
add_component_x
). - Write your change.
- Write tests for your change (if applicable).
- Run the tests, ensuring they all pass.
- Submit a Pull Request using Github.
License and Authors
License: BSD 2-clause
Authors:
Dependent cookbooks
yum >= 3.5.2 |
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
2015-11-22 - Release
Summary
General improvements to mirror resources.
Features
- Optionally (
true
by default) create ayum_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 ayum_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
1.2.0 failed this metric
FC016: LWRP does not declare a default action: /tmp/cook/df656d47d83a24f505d5f8d8/yumserver/resources/mirror.rb:1
FC016: LWRP does not declare a default action: /tmp/cook/df656d47d83a24f505d5f8d8/yumserver/resources/rsync_mirror.rb:1
FC023: Prefer conditional attributes: /tmp/cook/df656d47d83a24f505d5f8d8/yumserver/resources/mirror.rb:40
FC023: Prefer conditional attributes: /tmp/cook/df656d47d83a24f505d5f8d8/yumserver/resources/rsync_mirror.rb:31
1.2.0 failed this metric
FC016: LWRP does not declare a default action: /tmp/cook/df656d47d83a24f505d5f8d8/yumserver/resources/rsync_mirror.rb:1
FC023: Prefer conditional attributes: /tmp/cook/df656d47d83a24f505d5f8d8/yumserver/resources/mirror.rb:40
FC023: Prefer conditional attributes: /tmp/cook/df656d47d83a24f505d5f8d8/yumserver/resources/rsync_mirror.rb:31