Reworked to use Ruby since its needed for Puppet

This commit is contained in:
Gene Liverman 2017-05-07 09:01:12 -07:00
parent bff34cde83
commit 4f0169d4fc
21 changed files with 73 additions and 38 deletions

4
puppet/Puppetfile Normal file
View file

@ -0,0 +1,4 @@
forge "http://forge.puppetlabs.com"
mod 'puppetlabs-vcsrepo', '1.5.0'

2
puppet/environment.conf Normal file
View file

@ -0,0 +1,2 @@
modulepath = modules:site:$basemodulepath
config_version = 'scripts/config_version.sh $environmentpath $environment'

View file

@ -0,0 +1 @@
---

View file

@ -0,0 +1 @@
---

14
puppet/manifests/site.pp Normal file
View file

@ -0,0 +1,14 @@
## site.pp ##
# DEFAULT NODE
# The default node definition matches any node lacking a more specific node
# definition. If there are no other nodes in this file, classes declared here
# will be included in every node's catalog, *in addition* to any classes
# specified in the via an ENC for that node.
node default {
# This is where you can declare classes for all nodes.
# Example:
# class { 'my_class': }
}

View file

@ -0,0 +1,10 @@
#!/usr/bin/env ruby
require 'json'
environmentpath = ARGV[0]
environment = ARGV[1]
r10k_deploy_file_path = File.join(environmentpath, environment, '.r10k-deploy.json')
# output the sha1 from the control-repo
puts JSON.parse(File.read(r10k_deploy_file_path))['signature']

View file

@ -0,0 +1,24 @@
#!/usr/bin/env ruby
begin
require 'rugged'
rescue LoadError => e
t = Time.new
puts t.to_i
else
environmentpath = ARGV[0]
environment = ARGV[1]
repo = Rugged::Repository.discover(File.join(environmentpath, environment))
head = repo.head
# sha1 hash of the newest commit
head_sha = head.target_id
# the commit message associated the newest commit
commit = repo.lookup(head_sha)
# add something to find the remote url
puts head_sha
end

View file

@ -0,0 +1,12 @@
#!/bin/bash
if [ -e $1/$2/.r10k-deploy.json ]
then
/opt/puppetlabs/puppet/bin/ruby $1/$2/scripts/code_manager_config_version.rb $1 $2
elif [ -e /opt/puppetlabs/server/pe_version ]
then
/opt/puppetlabs/puppet/bin/ruby $1/$2/scripts/config_version.rb $1 $2
else
/usr/bin/git --version > /dev/null 2>&1 &&
/usr/bin/git --git-dir $1/$2/.git rev-parse HEAD ||
date +%s
fi

View file

@ -0,0 +1,4 @@
# the base profile should include component modules that will be on all nodes
class profile::base {
}

View file

@ -0,0 +1,7 @@
# Includes all the profiles needed for a server.
# One big difference between this and the workstation role is that you generally
# are not standing in front of the system and / or there is no graphical
# interface.
class role::workstation {
include ::profile::base
}

View file

@ -0,0 +1,4 @@
# Includes all the profiles needed for a workstation
class role::workstation {
include ::profile::base
}