Class: ForemanUsers::Syuser

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/foreman_users/syuser.rb

Instance Method Summary collapse

Instance Method Details

#create_contentObject



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'app/models/foreman_users/syuser.rb', line 61

def create_content
	title_content = "class users {" 
	user_content =  "\n" + "\s\s" 
	if self.foreman_users_syusermodel.syusers.size > 0
		self.foreman_users_syusermodel.syusers.each do |syuser|
 			user_content +=  "\n" + "\s\s" + "user { '" + syuser.name + "':" + "\n\s\s\s\s" + "ensure => '" + syuser.ensure + "'," + "\n\s\s\s\s" + "gid => '" + syuser.gid + "'," + "\n\s\s\s\s" + "groups => [" + syuser.groups + "]," + "\n\s\s\s\s" + "home => '" + syuser.home + "'," + "\n\s\s\s\s" + "password => '" + syuser.password + "'," + "\n\s\s\s\s" + "password_max_age => '" + syuser.password_max_age + "'," + "\n\s\s\s\s" + "password_min_age => '" + syuser.password_min_age + "'," + "\n\s\s\s\s" + "shell => '" + syuser.shell + "'," + "\n\s\s\s\s" + "uid => '" + syuser.uid + "'," + "\n\s\s" +"}" + "\n"
		end
	end


	group_content =  "\s\s"
	if self.foreman_users_syusermodel.sygroups.size > 0
		self.foreman_users_syusermodel.sygroups.each do |sygroup|
			group_content +=  "group  {'"+ sygroup.name + "':" + "\n\s\s\s\s" + "ensure => '" + sygroup.ensure + "'," + "\n\s\s\s\s" + "gid => '" + sygroup.gid + "',"  + "\n\s\s" +"}" + "\n\s\s" 
 		end
	end
	title_content = title_content + user_content + group_content

	rs = title_content + "\n" + "}"
	return rs
end

#create_dirObject



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
47
48
49
50
51
52
53
54
55
56
57
# File 'app/models/foreman_users/syuser.rb', line 9

def create_dir
	#该处需要注意权限问题,当前用户是否具有该目录的操作权限
	puts "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
	puts self.foreman_users_syusermodel
	puts ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
	self.foreman_users_syusermodel.name
	puts "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
	root_dir_name = "/etc/puppet/environments/production/modules/" + self.foreman_users_syusermodel.name

	dir_exist_status = File.exist?(root_dir_name) #判断该目录是否存在
	

	if dir_exist_status
		FileUtils.rm_r root_dir_name
	end #默认删除该目录,然后重新创建,主要目的防止文件或文件夹被误删除


	#创建目录结构
	Dir::mkdir(root_dir_name)
	if !File.exist?(root_dir_name + "/files")
		Dir::mkdir(root_dir_name + "/files")
	end

	if !File.exist?(root_dir_name + "/manifests")
		Dir::mkdir(root_dir_name + "/manifests")
	end

	if File.exist?(root_dir_name + "/files")
		if File.exist?(root_dir_name + "/files/welcome.conf")
		#生成files下welcome.conf文件
		files_welcome_File = File.new(root_dir_name + "/files/welcome.conf", "w+")
 			files_welcome_File.close
		end
	end

	if File.exist?(root_dir_name + "/manifests")
		if File.exist?(root_dir_name + "/manifests/init.pp")
			FileUtils.rm_r (root_dir_name + "/manifests/init.pp")
 		end
		#生成manifests下init.pp文件
		main_init_File = File.new(root_dir_name +"/manifests/init.pp", "w+")
		if main_init_File
			main_init_File.syswrite(self.create_content)
		else
			puts "Unable to open file!"
		end
		main_init_File.close
  end
end