Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## Custom fact to assign GID/UID's on a per-node basis
- File.open("/etc/passwd").each do |line|
- gecos = line.split(/:/)
- Facter.add("#{gecos[0]}_uid") do
- setcode { gecos[2] }
- end
- Facter.add("#{gecos[0]}_pgid") do
- setcode { gecos[3] }
- end
- end
- File.open("/etc/group").each do |line|
- gecos = line.split(/:/)
- Facter.add("#{gecos[0]}_gid") do
- setcode { gecos[2] }
- end
- end
- ## Function to retrieve the UID and GID dynamically
- module Puppet::Parser::Functions
- newfunction(:lookupvar, :type => :rvalue) do |args|
- return args[0] if args[0]
- end
- end
- ## Virtual user declaration
- define account ( ensure, groups, shell, comment, provider = directoryservice, unixpw ) {
- ...snip...
- # Instantiate the user; currently uid's/gid's are dynamically assigned due to inconsistencies across system (hence the virtual resource)
- @user { 'jsmith':
- ensure => $ensure,
- uid => lookupvar("${name}_uid"),
- gid => lookupvar("${name}_pgid"),
- groups => $supp_groups,
- comment => $comment,
- shell => $user_shell,
- provider => $provider,
- password => $unixpw;
- }
- ...snip...
- }
Add Comment
Please, Sign In to add comment