Renamed provider and resources to more shorter names
This commit is contained in:
parent
f3b0665d6d
commit
52e9ae202c
7 changed files with 117 additions and 50 deletions
|
@ -1,14 +0,0 @@
|
||||||
def whyrun_supported?
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
action :remove do
|
|
||||||
Chef::Log.warn('Remove ipa_user triggered')
|
|
||||||
end
|
|
||||||
|
|
||||||
action :create do
|
|
||||||
Chef::Log.warn('Add ipa_user triggered')
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
62
providers/user.rb
Normal file
62
providers/user.rb
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
def whyrun_supported?
|
||||||
|
true
|
||||||
|
end
|
||||||
|
|
||||||
|
use_inline_resources
|
||||||
|
|
||||||
|
action :remove do
|
||||||
|
Chef::Log.warn('Remove ipa_user triggered')
|
||||||
|
end
|
||||||
|
|
||||||
|
action :create do
|
||||||
|
Chef::Log.debug('Add ipa_user triggered')
|
||||||
|
if ipa_krblogin then
|
||||||
|
if ipa_userexist?(new_resource.name) then
|
||||||
|
Chef::Log.info("User " + new_resource.name + " already exists in IPA")
|
||||||
|
new_resource.updated_by_last_action(false)
|
||||||
|
else
|
||||||
|
Chef::Log.info("User " + new_resource.name + " being added to IPA")
|
||||||
|
new_resource.updated_by_last_action(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def ipa_krblogin
|
||||||
|
if ::File.exist?('/etc/ipa/admin.password') then
|
||||||
|
system 'kinit admin -l 1h < /etc/ipa/admin.password &>/dev/null'
|
||||||
|
if $? == 0 then
|
||||||
|
Chef::Log.info('IPA login successful')
|
||||||
|
true
|
||||||
|
else
|
||||||
|
Chef::Log.fatal('IPA login failed')
|
||||||
|
false
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Chef::Log.fatal('IPA Admin Password file does not exist')
|
||||||
|
false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def ipa_userexist?(username)
|
||||||
|
check = `/usr/bin/ipa user-find --pkey-only --raw | /usr/bin/tr -d " " | /bin/grep "^uid:" | /bin/cut -b 5-`.split
|
||||||
|
if check.include?(username) then
|
||||||
|
true
|
||||||
|
else
|
||||||
|
false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def ipaFirstName(name)
|
||||||
|
name.gsub(/\s+/m, ' ').strip.split(" ")[0]
|
||||||
|
end
|
||||||
|
|
||||||
|
def ipaLastName(name)
|
||||||
|
name.gsub(/\s+/m, ' ').strip.split(" ")[-1]
|
||||||
|
end
|
||||||
|
|
||||||
|
def ipaInitials(name)
|
||||||
|
ipaFirstName(name)[0].upcase + ipaLastName(name)[0].upcase
|
||||||
|
end
|
||||||
|
|
17
recipes/example.rb
Normal file
17
recipes/example.rb
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#
|
||||||
|
# Cookbook Name:: freeipa
|
||||||
|
# Recipe:: default
|
||||||
|
#
|
||||||
|
# Copyright (C) 2016 YOUR_NAME
|
||||||
|
#
|
||||||
|
# All rights reserved - Do Not Redistribute
|
||||||
|
#
|
||||||
|
|
||||||
|
freeipa_user "psi-jack" do
|
||||||
|
action :create
|
||||||
|
end
|
||||||
|
|
||||||
|
freeipa_user "admin" do
|
||||||
|
action :create
|
||||||
|
end
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
actions :create, :remove
|
|
||||||
default_action :create
|
|
||||||
|
|
||||||
attribute :name, kind_of: String
|
|
||||||
attribute :firstname, kind_of: String
|
|
||||||
attribute :lastname, kind_of: String
|
|
||||||
attribute :fullname, kind_of: String
|
|
||||||
attribute :displayname, kind_of: String
|
|
||||||
attribute :homedir, kind_of: String
|
|
||||||
attribute :gecos, kind_of: String
|
|
||||||
attribute :email, kind_of: String
|
|
||||||
attribute :shell, kind_of: String
|
|
||||||
attribute :password, kind_of: String
|
|
||||||
attribute :uidnumber, kind_of: Integer
|
|
||||||
attribute :gidnumber, kind_of: Integer
|
|
||||||
attribute :create_group, kind_of: [TrueClass, FalseClass], default: true
|
|
||||||
|
|
||||||
attribute :sshpubkey, kind_of: String
|
|
||||||
|
|
||||||
attribute :street, kind_of: String
|
|
||||||
attribute :city, kind_of: String
|
|
||||||
attribute :state, kind_of: String
|
|
||||||
attribute :postal_code, kind_of: String
|
|
||||||
attribute :phone, kind_of: String
|
|
||||||
attribute :mobile, kind_of: String
|
|
||||||
attribute :pager, kind_of: String
|
|
||||||
attribute :fax, kind_of: String
|
|
||||||
attribute :carlicense, kind_of: String
|
|
||||||
attribute :orgunit, kind_of: String
|
|
||||||
attribute :title, kind_of: String
|
|
||||||
attribute :manager, kind_of: String
|
|
||||||
attribute :department_number, kind_of: String
|
|
||||||
attribute :employee_number, kind_of: String
|
|
||||||
attribute :employee_type, kind_of: String
|
|
||||||
attribute :preferred_langugae, kind_of: String
|
|
||||||
|
|
38
resources/user.rb
Normal file
38
resources/user.rb
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
actions :create, :remove
|
||||||
|
default_action :create
|
||||||
|
|
||||||
|
attribute :username, :kind_of => String, :name_attribute => true, :required => true
|
||||||
|
attribute :firstname, :kind_of => String
|
||||||
|
attribute :lastname, :kind_of => String
|
||||||
|
attribute :fullname, :kind_of => String
|
||||||
|
attribute :displayname, :kind_of => String
|
||||||
|
attribute :homedir, :kind_of => String
|
||||||
|
attribute :gecos, :kind_of => String
|
||||||
|
attribute :email, :kind_of => String
|
||||||
|
attribute :shell, :kind_of => String, :default => '/bin/bash'
|
||||||
|
attribute :password, :kind_of => String
|
||||||
|
attribute :uidnumber, :kind_of => Integer
|
||||||
|
attribute :gidnumber, :kind_of => Integer
|
||||||
|
attribute :usergroup, :kind_of => [TrueClass, FalseClass], :default => true
|
||||||
|
|
||||||
|
attribute :sshpubkey, :kind_of => Array
|
||||||
|
|
||||||
|
attribute :street, :kind_of => String
|
||||||
|
attribute :city, :kind_of => String
|
||||||
|
attribute :state, :kind_of => String
|
||||||
|
attribute :postal_code, :kind_of => String
|
||||||
|
attribute :phone, :kind_of => String
|
||||||
|
attribute :mobile, :kind_of => String
|
||||||
|
attribute :pager, :kind_of => String
|
||||||
|
attribute :fax, :kind_of => String
|
||||||
|
attribute :carlicense, :kind_of => String
|
||||||
|
attribute :orgunit, :kind_of => String
|
||||||
|
attribute :title, :kind_of => String
|
||||||
|
attribute :manager, :kind_of => String
|
||||||
|
attribute :department_number, :kind_of => String
|
||||||
|
attribute :employee_number, :kind_of => String
|
||||||
|
attribute :employee_type, :kind_of => String
|
||||||
|
attribute :preferred_langugae, :kind_of => String
|
||||||
|
|
||||||
|
attr_accessor :exists #This is a standard ruby accessor, use this to set flags for current state.
|
||||||
|
|
Loading…
Reference in a new issue