Module: ChefWorkstationInitialize::SelfBootstrap::NoChef::UsersHelpers

Includes:
UpdateHelpers
Included in:
WorkstationHelpers
Defined in:
lib/selfbootstrap/nochef/users.rb

Instance Method Summary collapse

Methods included from UpdateHelpers

#commit_state

Methods included from KnifeHelpers

#get_solo_cmd, #is_knife?, #knife, #knife_get_node_attribute, #knife_search_self_cmd, #knife_self_bootstrap_cmd, #self_bootstrap_options

Methods included from ChefRepoHelpers

#create_attribute_file, #create_chef_additionnal_dir, #create_chef_infra_cookbook, #create_cookbook, #create_generator, #create_recipe, #create_template_file, #define_cron_job, #ensure_main_environment, #project_environment_json, #project_role_json, #render_template, #write_Solo_file, #write_kitchen_file, #write_main_environment, #write_main_role, #write_main_role_environment, #write_role_environment

Methods included from KitchenHelpers

#building_kitchen, #generate_kitchen, #generate_machine, #is_kitchen_command?, #kitchen, #kitchen_machine, #kitchen_root

Methods included from ProvisionersHelpers

#chef_zero_provisioner, #provisioners

Methods included from PlatformsHelpers

#default_platforms

Methods included from SuitesHelpers

#default_suites

Methods included from VerifiersHelpers

#inspec_verifier, #verifiers

Methods included from ChefHelpers

#chef, #chef_client, #install_chef_workstation, #is_chef_cli_command?, #is_chef_client_command?, #is_chef_command?, #is_chef_enabled?, #is_chef_installed?, #is_chef_profile_set?, #is_chefworkstation_available?, #is_knife_gem_install?

Methods included from BerksHelpers

#berks, #berks_vendor, #berks_vendor_all_cookbook, #berks_vendor_cookbook, #berks_vendor_init, #delete_all_berkslock, #delete_cookbook_berkslock, #reset_berks_vendor_dir, #self_berks_vendor

Methods included from GitHelpers

#all_cookbooks, #generate_git_submodules, #generate_json_repo, #get_git_path, #get_git_relative_path, #get_git_server, #get_git_submodule, #get_self_git, #git_exec, #git_submodule_init, #repository_list

Methods included from SSHHelpers

#delete_hostkey, #delete_hostkey_ip_or_name, #generate_private_key, #ssh, #ssh_command, #ssh_keygen

Methods included from CommandlineHelpers

#base_command, #get_homedir, #is_mixlib_disabled?, #main_command, #run_options

Methods included from DefaultMethodsHelpers

#analyse_object, #check_install_dir, #debug_worklog, #default_chefzero_portrange, #default_hostname, #default_install_dir, #define_resource_requirements, #error_worklog, #generate_default_install_dir, #generate_directory, #get_out_of_cache_path, #get_out_of_folder, #get_out_of_local_chef_path, #get_path, #is_chef_constant_enabled?, #parent_nil?, #require_implement_method, #search_local_project_folder, #warning_worklog, #worklog, #worklog_counter

Instance Method Details

#create_group(groupname, groupcomment, users) ⇒ Object



33
34
35
# File 'lib/selfbootstrap/nochef/users.rb', line 33

def create_group(groupname, groupcomment, users)
  require_implement_method('create_group', %w(groupname groupcomment users))
end

#create_user(user, user_data) ⇒ Object



29
30
31
# File 'lib/selfbootstrap/nochef/users.rb', line 29

def create_user(user, user_data)
  require_implement_method('create_user', %w(user user_data))
end

#generate_secret ⇒ Object



41
42
43
# File 'lib/selfbootstrap/nochef/users.rb', line 41

def generate_secret
  require_implement_method('generate_secret', [])
end

#generate_ssh_user_key(user, user_data) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/selfbootstrap/nochef/users.rb', line 69

def generate_ssh_user_key(user, user_data)
  unless user_fully_created?(user, user_data)
    worklog("Generate SSH user key for {#{user}: #{user_data}}")
    sshdir = ::File.join(user_data[:home], '.ssh')
    privkey = ::File.join(sshdir, 'id_rsa')
    create_user(user, user_data)
    groupcomment = 'group for all new_resource user'
    ['docker', workstation_resource[:group]].each do |groupname|
      create_group(groupname, groupcomment)
    end

    ssh_keygen("-m 'RFC4716' -N '' -P '' -f #{privkey}", { user: user, cwd: user_data[:home] })
  end
end

#generate_user_data(user, home = '') ⇒ Object



37
38
39
# File 'lib/selfbootstrap/nochef/users.rb', line 37

def generate_user_data(user, home = '')
  require_implement_method('generate_user_data', %w(user home))
end

#secretdatabag ⇒ Object



53
54
55
# File 'lib/selfbootstrap/nochef/users.rb', line 53

def secretdatabag
  workstation_resource[:cookbook_source]
end

#secretdatabagitem ⇒ Object



57
58
59
# File 'lib/selfbootstrap/nochef/users.rb', line 57

def secretdatabagitem
  'cookbook_secret_keys'
end

#secretdatabagkey ⇒ Object



61
62
63
# File 'lib/selfbootstrap/nochef/users.rb', line 61

def secretdatabagkey
  'secret'
end

#set_cookbook_user_secret_key ⇒ Object



45
46
47
# File 'lib/selfbootstrap/nochef/users.rb', line 45

def set_cookbook_user_secret_key
  require_implement_method('set_cookbook_user_secret_key', [])
end

#user_fully_created?(user, user_data) ⇒ Boolean

Returns:

  • (Boolean)


65
66
67
# File 'lib/selfbootstrap/nochef/users.rb', line 65

def user_fully_created?(user, user_data)
  file_exist?(user_data[:home]) && file_exist?(sshdir) && file_exist?(privkey)
end

#userdatabag ⇒ Object



49
50
51
# File 'lib/selfbootstrap/nochef/users.rb', line 49

def userdatabag
  'users'
end