class Chef::Knife::HitoriKeyCreate

Public Instance Methods

create_key() click to toggle source
# File lib/chef/knife/hitori_key_create.rb, line 16
def create_key
  secret_file_path = Chef::Config[:encrypted_data_bag_secret]
  if ::File.exists?(secret_file_path)
    yes = ui.confirm("#{secret_file_path} already exists.\nOVERWRITE this?")
    return unless yes
  end
  do_create_key(secret_file_path)
end
do_create_key(secret_file_path) click to toggle source
# File lib/chef/knife/hitori_key_create.rb, line 25
def do_create_key(secret_file_path)
  FileUtils.mkpath(::File.dirname(secret_file_path))
  key = [OpenSSL::Random.random_bytes(512)].pack('m0')
  data = (1..key.size/64).inject(key) {|x,i| x.insert(i*64+i-1, "\n")} + "\n"
  ::File.write(secret_file_path, data)
  ui.info ui.color("save secret key to #{secret_file_path}", :green)
end
run() click to toggle source
# File lib/chef/knife/hitori_key_create.rb, line 11
def run
  update_environment(config[:environment]) if config[:environment]
  create_key
end