Class: Chef::Knife::HitoriConfig

Inherits:
Chef::Knife show all
Includes:
HitoriBase, KnifeHitori::InteractiveConfigure
Defined in:
lib/chef/knife/hitori_config.rb

Constant Summary collapse

CHEF_DIR =
'.chef'
KNIFE_FILE =
'knife.rb'
EC2_FILE =
'ec2.rb'

Instance Method Summary collapse

Methods included from KnifeHitori::InteractiveConfigure

#ask_ec2_config_all, #input_arg

Methods included from HitoriBase

#update_environment

Instance Method Details

#base_dirObject



36
37
38
# File 'lib/chef/knife/hitori_config.rb', line 36

def base_dir
  config[:base_dir]
end

#chef_dirObject



40
41
42
# File 'lib/chef/knife/hitori_config.rb', line 40

def chef_dir
  "#{base_dir}/#{CHEF_DIR}"
end

#create_knife_ec2_ruby(conf) ⇒ Object



61
62
63
64
65
66
67
# File 'lib/chef/knife/hitori_config.rb', line 61

def create_knife_ec2_ruby(conf)
  knife_ec2_ruby = "#{chef_dir}/#{EC2_FILE}"
  template = KnifeHitori::resource('knife_ec2.erb')
  erubis = Erubis::Eruby.new(::File.read(template))
  ::File.write(knife_ec2_ruby, erubis.result(config: conf))
  ui.info ui.color("save settings in #{knife_ec2_ruby}", :green)
end

#create_knife_rubyObject



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/chef/knife/hitori_config.rb', line 44

def create_knife_ruby
  knife_ruby = "#{chef_dir}/#{KNIFE_FILE}"
  FileUtils.makedirs(chef_dir) unless ::Dir.exists?(chef_dir)
  if ::File.exists?(knife_ruby)
    yes_no = input_arg("overwrite knife.rb (#{knife_ruby}) [y/n] ?", 'N') {|x| x =~ /^[yn]$/i}
    if yes_no.downcase != 'y'
      ui.info ui.color('cancel overwrite knife.rb', :yellow)
      return
    end
  end

  template = KnifeHitori::resource('knife.erb')
  erubis = Erubis::Eruby.new(::File.read(template))
  ::File.write(knife_ruby, erubis.result({}))
  ui.info ui.color("write knife.rb in #{knife_ruby}", :green)
end

#runObject



28
29
30
31
32
33
34
# File 'lib/chef/knife/hitori_config.rb', line 28

def run
  create_knife_ruby
  conf = ask_ec2_config_all(Chef::Config.knife)
  conf[:template_file] = KnifeHitori::resource('centos_bootstrap.erb')
  conf[:ssh_port] = 22
  create_knife_ec2_ruby(conf)
end