falkorlib 0.7.8 → 0.7.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/falkorlib/puppet/modules.rb +4 -4
- data/lib/falkorlib/version.rb +1 -1
- data/spec/falkorlib/puppet_modules_spec.rb +2 -2
- data/templates/puppet/modules/Gemfile +41 -6
- data/templates/puppet/modules/Rakefile +21 -6
- data/templates/puppet/modules/Vagrantfile +130 -40
- data/templates/puppet/modules/docs/vagrant.md.erb +29 -11
- data/templates/puppet/modules/manifests/common/debian.pp.erb +3 -0
- data/templates/puppet/modules/manifests/common/redhat.pp.erb +3 -0
- data/templates/puppet/modules/manifests/common.pp.erb +141 -102
- data/templates/puppet/modules/manifests/init.pp.erb +28 -25
- data/templates/puppet/modules/manifests/mydef.pp.erb +3 -0
- data/templates/puppet/modules/manifests/params.pp.erb +117 -110
- data/templates/puppet/modules/metadata.json.erb +14 -2
- data/templates/puppet/modules/mkdocs.yml.erb +11 -9
- data/templates/puppet/modules/tests/init.pp.erb +1 -1
- data/templates/puppet/modules/tests/vagrant/bootstrap.sh +229 -0
- data/templates/puppet/modules/tests/vagrant/config.yaml +51 -0
- data/templates/puppet/modules/tests/vagrant/puppet_modules_setup.rb +74 -0
- metadata +5 -3
- data/templates/puppet/modules/.vagrant_init.rb +0 -67
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4044cdff596230756f97b5f314ca6eb070bca2b7
|
4
|
+
data.tar.gz: 7471302188008c453c5779c472e02b05291dcdd3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 095e102b8251833b0cd687a8e1a90381e18b4fbcf3fb5d31eab8b2dfcdc0e4e3a5b2faa59cfc0b6e0f0f585bd55e657d33d71932b2779967c7f45632e830db4e
|
7
|
+
data.tar.gz: 266198ac0d9be7c6edf2b0a7ed12a1e37508fea1da6a9e510722845273ed1a3e347b367f71a8da860b07570284090f3cd710392e303a998c9894ff5fa75bccfd
|
data/Gemfile.lock
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
################################################################################
|
3
|
-
# Time-stamp: <
|
3
|
+
# Time-stamp: <Wed 2017-08-23 15:36 svarrette>
|
4
4
|
################################################################################
|
5
5
|
# Interface for the main Puppet Module operations
|
6
6
|
#
|
@@ -132,7 +132,7 @@ module FalkorLib #:nodoc:
|
|
132
132
|
config[:platforms] = [ 'debian' ]
|
133
133
|
config[:dependencies] = [{
|
134
134
|
"name" => "puppetlabs-stdlib",
|
135
|
-
"version_requirement" => ">=4.
|
135
|
+
"version_requirement" => ">=4.19.0 <5.0.0"
|
136
136
|
}]
|
137
137
|
config[:params] = %w(ensure protocol port packagename)
|
138
138
|
#ap config
|
@@ -173,7 +173,7 @@ module FalkorLib #:nodoc:
|
|
173
173
|
[ 'metadata.json',
|
174
174
|
'docs/', 'mkdocs.yml', 'LICENSE', '.gitignore', '.pmtignore',
|
175
175
|
'.ruby-version', '.ruby-gemset', 'Gemfile',
|
176
|
-
'
|
176
|
+
'tests/vagrant/', 'Rakefile', 'Vagrantfile' ].each do |f|
|
177
177
|
FalkorLib::Git.add(File.join(moduledir, f))
|
178
178
|
end
|
179
179
|
end
|
@@ -306,7 +306,7 @@ module FalkorLib #:nodoc:
|
|
306
306
|
'docs/contributing/index.md', 'docs/contributing/layout.md', 'docs/contributing/setup.md', 'docs/contributing/versioning.md',
|
307
307
|
'docs/index.md', 'docs/rtfd.md', 'docs/vagrant.md'
|
308
308
|
]
|
309
|
-
(update_from_erb + [ 'Gemfile', 'Rakefile', 'Vagrantfile', '.
|
309
|
+
(update_from_erb + [ 'Gemfile', 'Rakefile', 'Vagrantfile', 'tests/vagrant/bootstrap.sh', 'tests/vagrant/config.yaml', 'tests/vagrant/puppet_modules_setup.rb' ]).each do |f|
|
310
310
|
next unless options[:exclude].nil? || !options[:exclude].include?( f )
|
311
311
|
next unless options[:only].nil? || options[:only].include?(f)
|
312
312
|
info "Upgrade the content of #{f}"
|
data/lib/falkorlib/version.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#########################################
|
3
3
|
# puppet_modules_spec.rb
|
4
4
|
# @author Sebastien Varrette <Sebastien.Varrette@uni.lu>
|
5
|
-
# Time-stamp: <
|
5
|
+
# Time-stamp: <Wed 2017-08-23 15:39 svarrette>
|
6
6
|
#
|
7
7
|
# @description Check the Puppet Modules operations
|
8
8
|
#
|
@@ -156,7 +156,7 @@ describe FalkorLib::Puppet::Modules do
|
|
156
156
|
# ])
|
157
157
|
# end
|
158
158
|
|
159
|
-
upgraded_files_default =
|
159
|
+
upgraded_files_default = 5
|
160
160
|
it "#upgrade" do
|
161
161
|
d = FalkorLib::Puppet::Modules.upgrade(moduledir, {
|
162
162
|
:no_interaction => true
|
@@ -4,10 +4,45 @@ source "https://rubygems.org"
|
|
4
4
|
gem 'falkorlib' #, :path => '~/git/github.com/Falkor/falkorlib'
|
5
5
|
|
6
6
|
# Puppet stuff
|
7
|
-
puppetversion = ENV.key?('PUPPET_VERSION') ? "= #{ENV['PUPPET_VERSION']}" : ['>= 3.3']
|
8
|
-
gem "puppet", puppetversion
|
9
7
|
#gem 'puppetlabs_spec_helper', '>= 0.1.0'
|
10
|
-
|
11
|
-
gem 'puppet-syntax'
|
12
|
-
gem 'facter', '>= 1.7.0'
|
13
|
-
|
8
|
+
|
9
|
+
#gem 'puppet-syntax'
|
10
|
+
#gem 'facter', '>= 1.7.0'
|
11
|
+
|
12
|
+
group :test do
|
13
|
+
gem "rake"
|
14
|
+
gem "puppet", ENV['PUPPET_GEM_VERSION'] || '~> 4.4.0'
|
15
|
+
gem "rspec", '< 3.2.0'
|
16
|
+
gem "rspec-puppet"
|
17
|
+
gem "puppetlabs_spec_helper"
|
18
|
+
gem "metadata-json-lint"
|
19
|
+
gem "rspec-puppet-facts"
|
20
|
+
gem 'rubocop', '0.33.0'
|
21
|
+
gem 'simplecov', '>= 0.11.0'
|
22
|
+
gem 'simplecov-console'
|
23
|
+
|
24
|
+
#gem 'puppet-lint', '>= 0.3.2'
|
25
|
+
gem "puppet-lint-absolute_classname-check"
|
26
|
+
gem "puppet-lint-leading_zero-check"
|
27
|
+
gem "puppet-lint-trailing_comma-check"
|
28
|
+
gem "puppet-lint-version_comparison-check"
|
29
|
+
gem "puppet-lint-classes_and_types_beginning_with_digits-check"
|
30
|
+
gem "puppet-lint-unquoted_string-check"
|
31
|
+
gem 'puppet-lint-resource_reference_syntax'
|
32
|
+
gem 'semantic_puppet'
|
33
|
+
|
34
|
+
gem 'json_pure', '<= 2.0.1' if RUBY_VERSION < '2.0.0'
|
35
|
+
end
|
36
|
+
|
37
|
+
group :development do
|
38
|
+
gem "travis" if RUBY_VERSION >= '2.1.0'
|
39
|
+
gem "travis-lint" if RUBY_VERSION >= '2.1.0'
|
40
|
+
# gem "puppet-blacksmith"
|
41
|
+
# gem "guard-rake" if RUBY_VERSION >= '2.2.5' # per dependency https://rubygems.org/gems/ruby_dep
|
42
|
+
end
|
43
|
+
|
44
|
+
group :system_tests do
|
45
|
+
gem "beaker"
|
46
|
+
gem "beaker-rspec"
|
47
|
+
gem "beaker-puppet_install_helper"
|
48
|
+
end
|
@@ -1,7 +1,23 @@
|
|
1
|
-
|
1
|
+
##############################################################################
|
2
2
|
# Rakefile - Configuration file for rake (http://rake.rubyforge.org/)
|
3
|
+
# Time-stamp: <Wed 2017-08-23 15:17 svarrette>
|
4
|
+
#
|
5
|
+
# Copyright (c) 2017 UL HPC Team <hpc-sysadmins@uni.lu>
|
6
|
+
# ____ _ __ _ _
|
7
|
+
# | _ \ __ _| | _____ / _(_) | ___
|
8
|
+
# | |_) / _` | |/ / _ \ |_| | |/ _ \
|
9
|
+
# | _ < (_| | < __/ _| | | __/
|
10
|
+
# |_| \_\__,_|_|\_\___|_| |_|_|\___|
|
11
|
+
#
|
12
|
+
# Use 'rake -T' to list the available actions
|
3
13
|
#
|
14
|
+
# Resources:
|
15
|
+
# * http://www.stuartellis.eu/articles/rake/
|
16
|
+
#
|
17
|
+
# See also https://github.com/garethr/puppet-module-skeleton
|
18
|
+
##############################################################################
|
4
19
|
require 'falkorlib'
|
20
|
+
require 'puppetlabs_spec_helper/rake_tasks'
|
5
21
|
|
6
22
|
## placeholder for custom configuration of FalkorLib.config.*
|
7
23
|
## See https://github.com/Falkor/falkorlib
|
@@ -13,16 +29,15 @@ end
|
|
13
29
|
|
14
30
|
# Adapt the Git flow aspects
|
15
31
|
FalkorLib.config.gitflow do |c|
|
16
|
-
c[:branches] = {
|
32
|
+
c[:branches] = {
|
17
33
|
:master => 'production',
|
18
34
|
:develop => 'devel'
|
19
|
-
}
|
35
|
+
}
|
20
36
|
end
|
21
37
|
|
22
|
-
|
38
|
+
|
23
39
|
require 'falkorlib/tasks/git'
|
24
|
-
require 'falkorlib/tasks/puppet'
|
40
|
+
#require 'falkorlib/tasks/puppet'
|
25
41
|
|
26
42
|
##############################################################################
|
27
43
|
#TOP_SRCDIR = File.expand_path(File.join(File.dirname(__FILE__), "."))
|
28
|
-
|
@@ -1,50 +1,140 @@
|
|
1
1
|
# -*- mode: ruby -*-
|
2
2
|
# vi: set ft=ruby :
|
3
|
+
# Time-stamp: <Tue 2017-08-22 23:58 svarrette>
|
4
|
+
###########################################################################################
|
5
|
+
# __ __ _ __ _ _
|
6
|
+
# \ \ / /_ _ __ _ _ __ __ _ _ __ | |_ / _(_) | ___
|
7
|
+
# \ \ / / _` |/ _` | '__/ _` | '_ \| __| |_| | |/ _ \
|
8
|
+
# \ V / (_| | (_| | | | (_| | | | | |_| _| | | __/
|
9
|
+
# \_/ \__,_|\__, |_| \__,_|_| |_|\__|_| |_|_|\___|
|
10
|
+
# |___/
|
11
|
+
###########################################################################################
|
12
|
+
require 'yaml'
|
13
|
+
require 'ipaddr'
|
14
|
+
require 'deep_merge'
|
3
15
|
|
4
16
|
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
|
5
17
|
VAGRANTFILE_API_VERSION = "2"
|
18
|
+
TOP_SRCDIR = File.expand_path File.dirname(__FILE__)
|
19
|
+
TOP_VAGRANT_TESTDIR = File.join(TOP_SRCDIR, 'tests', 'vagrant')
|
20
|
+
config_file = File.join(TOP_VAGRANT_TESTDIR, 'config.yaml')
|
6
21
|
|
22
|
+
###### Expected Vagrant plugins detection ######
|
23
|
+
# For more information on the below plugins:
|
24
|
+
# - https://github.com/oscar-stack/vagrant-hosts
|
25
|
+
# - https://github.com/dotless-de/vagrant-vbguest
|
26
|
+
# - https://github.com/emyl/vagrant-triggers
|
27
|
+
# - https://github.com/fgrehm/vagrant-cachier
|
28
|
+
# Terminal-table is a nice ruby gem for automatically print tables with nice layout
|
29
|
+
###
|
30
|
+
[ 'vagrant-hosts', 'vagrant-vbguest', 'vagrant-triggers', 'vagrant-cachier', 'terminal-table' ].each do |plugin|
|
31
|
+
abort "Install the '#{plugin}' plugin with 'vagrant plugin install #{plugin}'" unless Vagrant.has_plugin?("#{plugin}")
|
32
|
+
end
|
33
|
+
require 'terminal-table'
|
34
|
+
|
35
|
+
### Default settings ###
|
36
|
+
DEFAULT_SETTINGS = {
|
37
|
+
:defaults => {
|
38
|
+
:os => :centos7,
|
39
|
+
:ram => 512,
|
40
|
+
:vcpus => 4,
|
41
|
+
:vbguest_auto_update => true,
|
42
|
+
},
|
43
|
+
# Default domain settings
|
44
|
+
:network => {
|
45
|
+
:domain => 'vagrant.dev',
|
46
|
+
:range => '10.10.1.0/24',
|
47
|
+
:ip_offset => 10,
|
48
|
+
},
|
49
|
+
# Default Boxes
|
50
|
+
:boxes => {
|
51
|
+
:centos7 => 'centos/7',
|
52
|
+
:debian8 => 'debian/contrib-jessie64',
|
53
|
+
:ubuntu14 => 'ubuntu/trusty64'
|
54
|
+
},
|
55
|
+
:vms => {
|
56
|
+
'default' => { }
|
57
|
+
},
|
58
|
+
}
|
59
|
+
|
60
|
+
# List of default provisioning scripts
|
61
|
+
DEFAULT_PROVISIONING_SCRIPTS = [
|
62
|
+
"tests/vagrant/bootstrap.sh",
|
63
|
+
"tests/vagrant/puppet_modules_setup.rb"
|
64
|
+
]
|
65
|
+
|
66
|
+
# Load the settings (eventually overwritten using values from the yaml file 'config.yaml')
|
67
|
+
settings = DEFAULT_SETTINGS.clone
|
68
|
+
if File.exist?(config_file)
|
69
|
+
config = YAML::load_file config_file
|
70
|
+
settings.deep_merge!( config ) if config
|
71
|
+
end
|
72
|
+
abort "Undefined settings" if settings.nil?
|
73
|
+
|
74
|
+
|
75
|
+
############################################################
|
7
76
|
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
77
|
+
defaults = settings[:defaults]
|
78
|
+
network = settings[:network]
|
79
|
+
|
80
|
+
### Common configs shared by all VMs ###
|
81
|
+
# Cache plugin -- Supports local cache, so you don't wast bandwitdh
|
82
|
+
# vagrant plugin install vagrant-cachier # see https://github.com/fgrehm/vagrant-cachier
|
83
|
+
config.cache.auto_detect = true if Vagrant.has_plugin?("vagrant-cachier")
|
84
|
+
|
85
|
+
# check if VirtualBox Guest Additions are up to date
|
86
|
+
if Vagrant.has_plugin?("vagrant-vbguest")
|
87
|
+
# set auto_update to false, if you do NOT want to check the correct
|
88
|
+
# additions version when booting these boxes
|
89
|
+
config.vbguest.auto_update = defaults[:vbguest_auto_update]
|
90
|
+
end
|
91
|
+
|
92
|
+
# Shell provisioner, to setup minimal conditions for Puppet provisioning
|
93
|
+
DEFAULT_PROVISIONING_SCRIPTS.each do |script|
|
94
|
+
config.vm.provision "shell", path: "#{script}", keep_color: true
|
95
|
+
end
|
96
|
+
config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
|
97
|
+
|
98
|
+
# network settings
|
99
|
+
ipaddr = IPAddr.new network[:range]
|
100
|
+
ip_range = ipaddr.to_range.to_a
|
101
|
+
|
102
|
+
# cosmetics for the post-up message
|
103
|
+
__table = {
|
104
|
+
:title => "Puppet Testing infrastructure deployed on Vagrant",
|
105
|
+
:headings => [ 'Name', 'Hostname', 'OS', 'vCPU/RAM', 'Description', 'IP' ],
|
106
|
+
:rows => [],
|
107
|
+
}
|
108
|
+
#__________________________________
|
109
|
+
settings[:vms].each do |name, node|
|
110
|
+
boxname = defaults[:os].to_s.downcase.gsub(/([^\d]+)(\d+)/, '\\1-\\2')
|
111
|
+
name = boxname if name == 'default'
|
112
|
+
hostname = node[:hostname] ? node[:hostname] : name
|
113
|
+
domain = network[:domain]
|
114
|
+
fqdn = "#{hostname}.#{domain}"
|
115
|
+
os = node[:os] ? node[:os].to_sym : defaults[:os].to_sym
|
116
|
+
ram = node[:ram] ? node[:ram] : defaults[:ram]
|
117
|
+
vcpus = node[:vcpus] ? node[:vcpus] : defaults[:vcpus]
|
118
|
+
desc = node[:desc] ? node[:desc] : 'n/a'
|
119
|
+
|
120
|
+
abort "Non-existing box OS '#{os}' for the VM '#{name}'" if settings[:boxes][os.to_sym].nil?
|
121
|
+
abort "Empty IP address range" if ip_range.empty?
|
122
|
+
ip = ip_range[ network[:ip_offset].to_i ].to_s
|
123
|
+
|
124
|
+
config.vm.define "#{name}" do |c|
|
125
|
+
c.vm.box = settings[:boxes][os.to_sym]
|
126
|
+
c.vm.hostname = "#{fqdn}"
|
127
|
+
c.vm.network :private_network, :ip => ip
|
128
|
+
c.vm.provision :hosts, :sync_hosts => true
|
129
|
+
c.vm.provider "virtualbox" do |v|
|
130
|
+
v.customize [ 'modifyvm', :id, '--name', hostname, '--memory', ram.to_s ]
|
131
|
+
v.customize [ 'modifyvm', :id, '--cpus', vcpus.to_s ] if vcpus.to_i > 1
|
132
|
+
end
|
133
|
+
__table[:rows] << [ name, fqdn, os.to_sym, "#{vcpus}/#{ram}", desc, ip]
|
47
134
|
end
|
48
135
|
end
|
49
|
-
end
|
50
136
|
|
137
|
+
config.trigger.after :up do
|
138
|
+
puts Terminal::Table.new __table
|
139
|
+
end
|
140
|
+
end
|
@@ -9,7 +9,14 @@ to build configurable, lightweight, and portable virtual machines dynamically.
|
|
9
9
|
* [Reference installation notes](http://docs.vagrantup.com/v2/installation/) -- assuming you have installed [Oracle's VirtualBox](http://www.virtualbox.org/)
|
10
10
|
* [installation notes on Mac OS](http://sourabhbajaj.com/mac-setup/Vagrant/README.html) using [Homebrew](http://brew.sh/) and [Cask](http://sourabhbajaj.com/mac-setup/Homebrew/Cask.html)
|
11
11
|
|
12
|
-
The `Vagrantfile` at the root of the repository pilot the provisioning
|
12
|
+
The `Vagrantfile` at the root of the repository pilot the provisioning a vagrant boxes.
|
13
|
+
It can run any OS you set in `tests/vagrant/config.yaml` as follows:
|
14
|
+
|
15
|
+
```yaml
|
16
|
+
:vms:
|
17
|
+
'default':
|
18
|
+
:os: :debian8
|
19
|
+
```
|
13
20
|
|
14
21
|
You can list the available vagrant box as follows:
|
15
22
|
|
@@ -17,23 +24,34 @@ You can list the available vagrant box as follows:
|
|
17
24
|
$> vagrant status
|
18
25
|
Current machine states:
|
19
26
|
|
20
|
-
|
21
|
-
debian-7 not created (virtualbox)
|
27
|
+
centos-7 running (virtualbox)
|
22
28
|
|
23
|
-
|
24
|
-
|
25
|
-
|
29
|
+
The VM is running. To stop this VM, you can run `vagrant halt` to
|
30
|
+
shut it down forcefully, or you can run `vagrant suspend` to simply
|
31
|
+
suspend the virtual machine. In either case, to restart it again,
|
32
|
+
simply run `vagrant up`.
|
26
33
|
```
|
27
34
|
|
28
|
-
|
35
|
+
You can boot the VM and provision it (using the scripts under `tests/vagrant/`) by running:
|
29
36
|
|
30
|
-
|
37
|
+
```bash
|
38
|
+
$> vagrant up
|
39
|
+
```
|
31
40
|
|
32
41
|
Then you can ssh into the machine afterwards:
|
33
42
|
|
34
|
-
|
43
|
+
```bash
|
44
|
+
$> vagrant ssh
|
45
|
+
```
|
46
|
+
|
47
|
+
When you run `vagrant up <name>` to boot the VM, the provisioning scripts are responsible for:
|
48
|
+
|
49
|
+
| Script | Description |
|
50
|
+
|---------------------------|-------------------------------------------------|
|
51
|
+
| `bootstrap.sh` | Install puppet 4 and defaults packages and gems |
|
52
|
+
| `puppet_modules_setup.rb` | pre-install the necessary puppet modules |
|
35
53
|
|
36
|
-
|
54
|
+
More precisely, the `tests/vagrant/puppet_modules_setup.rb` script.
|
37
55
|
This script is responsible for two main tasks:
|
38
56
|
|
39
57
|
1. pre-install the puppet modules listed as dependencies in `metadata.json`
|
@@ -41,7 +59,7 @@ This script is responsible for two main tasks:
|
|
41
59
|
|
42
60
|
So you can test the manifests of the `tests/` directory within the VM:
|
43
61
|
|
44
|
-
$> vagrant ssh <os>
|
62
|
+
$> vagrant ssh [<os>]
|
45
63
|
[...]
|
46
64
|
(vagrant)$> sudo puppet apply -t /vagrant/tests/init.pp
|
47
65
|
|
@@ -1,3 +1,6 @@
|
|
1
|
+
################################################################################
|
2
|
+
# Time-stamp: <Wed 2017-08-23 14:42 svarrette>
|
3
|
+
#
|
1
4
|
# File:: <tt>common/debian.pp</tt>
|
2
5
|
# Author:: <%= config[:author] %> (<%= config[:mail] %>)
|
3
6
|
# Copyright:: Copyright (c) <%= Time.now.year %> <%= config[:author] %>
|
@@ -1,3 +1,6 @@
|
|
1
|
+
################################################################################
|
2
|
+
# Time-stamp: <Wed 2017-08-23 14:43 svarrette>
|
3
|
+
#
|
1
4
|
# File:: <tt>common/redhat.pp</tt>
|
2
5
|
# Author:: <%= config[:author] %> (<%= config[:mail] %>)
|
3
6
|
# Copyright:: Copyright (c) <%= Time.now.year %> <%= config[:author] %>
|