class OpenvpnPlugin::OpenvpnUserCreate

Public Instance Methods

check_arguments() click to toggle source
# File lib/chef/knife/openvpn.rb, line 336
def check_arguments
  unless name_args.size == 2
    fail_with 'Specify SERVERNAME and USERNAME for new openvpn user!'
  end
end
create_new_user(server_name, user_name) click to toggle source
# File lib/chef/knife/openvpn.rb, line 324
def create_new_user(server_name, user_name)
  databag_name = get_databag_name server_name
  ca_item = load_databag_item(databag_name, 'openvpn-ca')
  ca_cert, ca_key = load_cert_and_key ca_item['cert'], ca_item['key']
  config_item = load_databag_item(databag_name, 'openvpn-config')
  cert_config = config_item.to_hash
  user_subject = make_name user_name, cert_config
  user_cert, user_key = generate_cert_and_key user_subject, cert_config, false, ca_cert, ca_key, true
  save_databag_item(user_name, server_name, 'cert' => user_cert.to_pem, 'key' => user_key.to_s)
  ui.info "Done, now you can upload #{databag_name}/#{user_name}.json"
end
run() click to toggle source
# File lib/chef/knife/openvpn.rb, line 315
def run
  check_arguments
  server_name = name_args[0]
  user_name = name_args[1]
  check_existing_databag server_name, false
  check_databag_secret
  create_new_user server_name, user_name
end