Initial commit.
This commit is contained in:
commit
4a2ba4e24c
10
Modulefile
Normal file
10
Modulefile
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
name 'openstackci-puppet-yum'
|
||||||
|
version '0.1.0'
|
||||||
|
source 'http://git.openstack.org/cgit/openstack-infra/puppet-yum/'
|
||||||
|
author 'Dan Prince'
|
||||||
|
license 'Apache License 2.0'
|
||||||
|
summary 'Create lightweight Yum repositories'
|
||||||
|
description 'Puppet module to help manage/create lightweight Yum repositories'
|
||||||
|
project_page 'https://launchpad.net/openstack-infra'
|
||||||
|
|
||||||
|
dependency 'puppetlabs-apache', '>= 0.0.4'
|
16
README
Normal file
16
README
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
puppet-yum
|
||||||
|
|
||||||
|
A module to help manage lightweight Yum mirrors
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
# A lightweight Fedora 20 x86_64 updates binary only mirror
|
||||||
|
# Mirror URL paths are provided to follow the normal Fedora mirroring
|
||||||
|
# conventions to allow for easy baseurl configuration
|
||||||
|
yum::repo { 'f20-x86_64-updates-testing':
|
||||||
|
description => 'Fedora 20 - x86_64 - Updates Testing',
|
||||||
|
mirrorlist => 'https://mirrors.fedoraproject.org/metalink?repo=updates-tes
|
||||||
|
cron_hour => 0,
|
||||||
|
cron_minute => 15,
|
||||||
|
url_path => 'fedora/updates/testing/20/x86_64/',
|
||||||
|
}
|
32
manifests/init.pp
Normal file
32
manifests/init.pp
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# Copyright 2014 Red Hat Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
# Class: yum
|
||||||
|
#
|
||||||
|
class yum (
|
||||||
|
$repos_dir = '/srv/yum_repos/'
|
||||||
|
) {
|
||||||
|
|
||||||
|
package { ['yum-utils', 'createrepo']:
|
||||||
|
ensure => 'present'
|
||||||
|
}
|
||||||
|
|
||||||
|
file { $repos_dir:
|
||||||
|
ensure => directory,
|
||||||
|
mode => '0755',
|
||||||
|
owner => 'root',
|
||||||
|
group => 'root'
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
30
manifests/mirror.pp
Normal file
30
manifests/mirror.pp
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# Copyright 2014 Red Hat Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
# Class: yum::mirror
|
||||||
|
#
|
||||||
|
class yum::mirror (
|
||||||
|
$vhost_name = $::fqdn,
|
||||||
|
) {
|
||||||
|
|
||||||
|
include yum
|
||||||
|
include apache
|
||||||
|
|
||||||
|
apache::vhost { $vhost_name:
|
||||||
|
port => 80,
|
||||||
|
docroot => $yum::repos_dir,
|
||||||
|
template => 'yum/vhost.erb',
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
64
manifests/repo.pp
Normal file
64
manifests/repo.pp
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
# Copyright 2014 Red Hat Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
# Class: yum::repo
|
||||||
|
#
|
||||||
|
define yum::repo (
|
||||||
|
$description = '',
|
||||||
|
$url_path = false,
|
||||||
|
$enabled = 0,
|
||||||
|
$gpgcheck = 0,
|
||||||
|
$baseurl = absent,
|
||||||
|
$mirrorlist = absent,
|
||||||
|
$cron_hour = 2,
|
||||||
|
$cron_minute = 0,
|
||||||
|
) {
|
||||||
|
|
||||||
|
include 'yum'
|
||||||
|
|
||||||
|
yumrepo { $name:
|
||||||
|
name => $name,
|
||||||
|
descr => $description,
|
||||||
|
enabled => $enabled,
|
||||||
|
gpgcheck => $gpgcheck,
|
||||||
|
baseurl => $baseurl,
|
||||||
|
mirrorlist => $mirrorlist
|
||||||
|
}
|
||||||
|
|
||||||
|
cron { "reposync ${name}":
|
||||||
|
command => "/usr/bin/reposync -r ${name} -p ${yum::repos_dir}; /usr/bin/createrepo -c /tmp/${name} ${yum::repos_dir}/${name}",
|
||||||
|
hour => $cron_hour,
|
||||||
|
minute => $cron_minute
|
||||||
|
}
|
||||||
|
|
||||||
|
if $url_path {
|
||||||
|
|
||||||
|
# here we softlink to the actual createrepo dir created above so
|
||||||
|
# that the normal mirror locations can be preserved as provided
|
||||||
|
exec { "create ${url_path} url path dir":
|
||||||
|
path => '/usr/local/bin:/usr/bin:/bin/',
|
||||||
|
command => "mkdir -p $(dirname '${yum::repos_dir}/${url_path}')",
|
||||||
|
unless => "test -d $(dirname '${yum::repos_dir}/${url_path}')",
|
||||||
|
before => File["${name} repo softlink"],
|
||||||
|
}
|
||||||
|
|
||||||
|
file { "${name} repo softlink":
|
||||||
|
ensure => 'link',
|
||||||
|
path => "${yum::repos_dir}/${url_path}",
|
||||||
|
target => "${yum::repos_dir}/${name}"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
25
templates/vhost.erb
Normal file
25
templates/vhost.erb
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# ************************************
|
||||||
|
# Managed by Puppet
|
||||||
|
# ************************************
|
||||||
|
|
||||||
|
NameVirtualHost <%= vhost_name %>:<%= port %>
|
||||||
|
<VirtualHost <%= vhost_name %>:<%= port %>>
|
||||||
|
ServerName <%= srvname %>
|
||||||
|
<% if serveraliases.is_a? Array -%>
|
||||||
|
<% serveraliases.each do |name| -%><%= " ServerAlias #{name}\n" %><% end -%>
|
||||||
|
<% elsif serveraliases != '' -%>
|
||||||
|
<%= " ServerAlias #{serveraliases}" %>
|
||||||
|
<% end -%>
|
||||||
|
DocumentRoot <%= docroot %>
|
||||||
|
<Directory <%= docroot %>>
|
||||||
|
Options <%= options %>
|
||||||
|
AllowOverride None
|
||||||
|
Order allow,deny
|
||||||
|
allow from all
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
ErrorLog /var/log/httpd/<%= name %>_error.log
|
||||||
|
LogLevel warn
|
||||||
|
CustomLog /var/log/httpd/<%= name %>_access.log combined
|
||||||
|
ServerSignature Off
|
||||||
|
</VirtualHost>
|
Loading…
x
Reference in New Issue
Block a user