noc 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. data/bin/noc +80 -16
  2. data/lib/noc/version.rb +1 -1
  3. metadata +1 -1
data/bin/noc CHANGED
@@ -12,8 +12,9 @@ end
12
12
 
13
13
  CHEF=".chef"
14
14
  KNIFE="knife.rb"
15
- CHEF_KNIFE=File.join(CHEF, KNIFE )
15
+ CHEF_KNIFE=File.join(CHEF, KNIFE)
16
16
  VAGRANTFILE="Vagrantfile"
17
+ DATABAGS="data_bags"
17
18
 
18
19
 
19
20
  include GLI::App
@@ -44,7 +45,47 @@ command :init do |c|
44
45
  case
45
46
  when args[0] == "solo"
46
47
  puts "Init solo"
47
- else
48
+
49
+ when args[0] == "users"
50
+ users_dir = File.join(DATABAGS,"users")
51
+ Dir.mkdir(users_dir) unless File.exists?(users_dir)
52
+
53
+ $cluster[:users].each do |user|
54
+ json = File.join( users_dir, user, ".json")
55
+ if File.exists?(json) then
56
+ raise "File exists #{json}"
57
+ end
58
+
59
+ # gen key
60
+ key = File.join( users_dir, user, ".key" )
61
+ if File.exists?(key) then
62
+ raise "File exists #{key}"
63
+ end
64
+
65
+ system( "ssh-keygen -b 2048 -f #{key}" )
66
+ pub = IO.read("#{key}.pub")
67
+
68
+ end
69
+
70
+ when args[0] == "bags"
71
+ %w[clusters users secrets].each do |b|
72
+ system("knife data bag create #{b}")
73
+ end
74
+ when args[0] == "vagrant"
75
+ # create vagrantfile
76
+ if File.exists?(VAGRANTFILE) then
77
+ raise "File exists #{VAGRANTFILE}"
78
+ end
79
+ template = File.join(File.dirname(__FILE__), '..', 'templates', VAGRANTFILE + ".erb" )
80
+ if not File.exists?(template) then
81
+ raise "Template not found: #{template}"
82
+ end
83
+ File.open( VAGRANTFILE, 'w' ) do |f|
84
+ f.write( Erubis::Eruby.new(File.new(template).read).result({:clusterfile => global_options[:clusterfile],
85
+ :cluster => $cluster}))
86
+ end
87
+
88
+ when args[0].nil?
48
89
  if File.exists?(CHEF_KNIFE) then
49
90
  raise "File exists #{CHEF_KNIFE}"
50
91
  end
@@ -65,22 +106,24 @@ command :init do |c|
65
106
  puts "#{CHEF_KNIFE}"
66
107
  end
67
108
 
68
- # create vagrantfile
69
- if File.exists?(VAGRANTFILE) then
70
- raise "File exists #{VAGRANTFILE}"
71
- end
72
- template = File.join(File.dirname(__FILE__), '..', 'templates', VAGRANTFILE + ".erb" )
73
- if not File.exists?(template) then
74
- raise "Template not found: #{template}"
75
- end
76
- File.open( VAGRANTFILE, 'w' ) do |f|
77
- f.write( Erubis::Eruby.new(File.new(template).read).result({:clusterfile => global_options[:clusterfile],
78
- :cluster => $cluster}))
79
- end
80
109
  puts "init command ran"
81
110
  end
82
111
  end
83
112
 
113
+ desc 'Download stuff'
114
+ arg_name 'COMMAND [options]'
115
+ command :download do |c|
116
+ c.action do |global_options,options,args|
117
+ case
118
+ when args[0] == 'books'
119
+ $cluster[:cookbooks].each do |b|
120
+ system("knife cookbook site install #{b}")
121
+ end
122
+ end
123
+ end
124
+ end
125
+
126
+
84
127
  desc 'Upload cookbook, role, databag'
85
128
  arg_name 'COMMAND [options]'
86
129
  command :upload do |c|
@@ -123,14 +166,35 @@ command :upload do |c|
123
166
  File.open( data_bag, 'w' ) do |f|
124
167
  f.write( $cluster.to_json )
125
168
  end
126
- system("knife data bag create clusters")
127
169
  system("knife data bag from file clusters #{$cluster[:id]}.json")
128
- end
129
170
 
171
+
172
+ when args[0] == "users"
173
+ Dir.glob("data_bags/users/*.json").each do |f|
174
+ system("knife data bag from file users #{File.basename(f)}")
175
+ end
176
+ when args[0] == "user"
177
+ system("knife data bag from file users #{args[1]}.json")
178
+
179
+ end # upload
130
180
  puts "upload command ran"
131
181
  end
132
182
  end
133
183
 
184
+
185
+ desc 'Delete client from chef server'
186
+ arg_name 'COMMAND [options]'
187
+ command :delete do |c|
188
+ c.action do |global_options,options,args|
189
+ case
190
+ when args[0] == 'client'
191
+ system("knife client delete #{args[1]}")
192
+ system("knife node delete #{args[1]}")
193
+ end
194
+ end
195
+ end
196
+
197
+
134
198
  pre do |global,command,options,args|
135
199
  # Pre logic here
136
200
  # Return true to proceed; false to abourt and not call the
data/lib/noc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Noc
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: noc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: