cookbook 'yumserver', '= 2.0.0'
yumserver (12) Versions 2.0.0 Follow3
Installs/Configures yumserver & mirrors remote repos.
cookbook 'yumserver', '= 2.0.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 |
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
nginxto serve up thebasepath. - Manages the
nginxservice.
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;
- 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
| 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.
2015-02-09
Summary
Major release with additional features/bug fixes that may break backwards compatibility.
Features
- Now using
mixlib-shelloutinstead of exec resources foryumserver_mirrrorresources. - The
createrepocommand ran as part ofyumserver_mirrorresources are now multi-threaded. - Add
zapsupport for/etc/resposync.repos.d. - Now uses the
nginx_servercookbook to provide the web server.
Bugfixes
- Fixed a typo in the
yumserver_mirrorresource that prevented the reposync config from beign remove on a:deleteaction.
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
reposyncin themirrorresource 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
reposyncin themirrorresource 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 (
trueby default) create ayum_repositoryto allow the yumserver to use it's mirrored repos. - The
yumserver_mirrorresource now correctly removes packages no longer in the upstream repo. - The
yumserver_mirrorshould 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_mirrorcreate ayum_repositoryso 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.0 failed this metric
FC016: LWRP does not declare a default action: /tmp/cook/cdc253bf9840d1666a8b789e/yumserver/resources/mirror.rb:1
FC016: LWRP does not declare a default action: /tmp/cook/cdc253bf9840d1666a8b789e/yumserver/resources/rsync_mirror.rb:1
FC023: Prefer conditional attributes: /tmp/cook/cdc253bf9840d1666a8b789e/yumserver/resources/mirror.rb:54
FC023: Prefer conditional attributes: /tmp/cook/cdc253bf9840d1666a8b789e/yumserver/resources/rsync_mirror.rb:35
2.0.0 failed this metric
FC016: LWRP does not declare a default action: /tmp/cook/cdc253bf9840d1666a8b789e/yumserver/resources/rsync_mirror.rb:1
FC023: Prefer conditional attributes: /tmp/cook/cdc253bf9840d1666a8b789e/yumserver/resources/mirror.rb:54
FC023: Prefer conditional attributes: /tmp/cook/cdc253bf9840d1666a8b789e/yumserver/resources/rsync_mirror.rb:35