chef11-key-dump 0.1.0

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ee9c465f87b876c3da1399c783a79af3ccc821cc
4
+ data.tar.gz: 96878b1719d26d6569409e737aa86f084251ad5b
5
+ SHA512:
6
+ metadata.gz: 6b636644a1b11b2afa0f5229e02e9e15f3d70de1a517480709a54128669e39c612fdc74eb2b648ff6ef74ca96879a727d8a2cde923f0d6fe4ea078bfa1221188
7
+ data.tar.gz: 7d930d32b107a5b736987d7a754d86dc0d42695b177afc35b199b80e925d737b9f5095b139567fd2072db8c3ce997749ba8c180bf88bff7e919930759727a13b
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'chef11_key_dump'
4
+
5
+ Chef11KeyDump.dump
@@ -0,0 +1,55 @@
1
+
2
+ require 'sequel'
3
+ require 'json'
4
+
5
+
6
+
7
+
8
+ class Chef11KeyDump
9
+
10
+ def self.dump
11
+ Chef11KeyDump.new.create_chef11_key_file
12
+ end
13
+
14
+ def key_file
15
+ "key_dump.json"
16
+ end
17
+
18
+ def create_chef11_key_file
19
+ sql_host, sql_port, sql_user, sql_password = pull_chef11_db_credentials
20
+
21
+ server_string = "#{sql_user}:#{sql_password}@#{sql_host}:#{sql_port}/opscode_chef"
22
+ db = ::Sequel.connect("postgres://#{server_string}")
23
+
24
+ sql_user_data = db.select(:username, :id, :public_key, :hashed_password, :salt, :hash_type).from(:osc_users)
25
+ sql_users_json = sql_user_data.all.to_json
26
+ file_open(key_file, 'w') { |file| file.write(sql_users_json)}
27
+ end
28
+
29
+ def pull_chef11_db_credentials
30
+ # This code pulled from knife-ec-backup and adapted
31
+ puts "Pulling open source Chef 11 database credentials"
32
+
33
+ if !File.exists?("/etc/chef-server/chef-server-running.json")
34
+ puts "Failed to find /etc/chef-server/chef-server-running.json"
35
+ exit 1
36
+ end
37
+
38
+ running_config = JSON.parse(File.read("/etc/chef-server/chef-server-running.json"))
39
+ sql_host = running_config['chef_server']['postgresql']['vip']
40
+ sql_port = running_config['chef_server']['postgresql']['port']
41
+ sql_user = running_config['chef_server']['postgresql']['sql_user']
42
+ sql_password = running_config['chef_server']['postgresql']['sql_password']
43
+ [sql_host, sql_port, sql_user, sql_password]
44
+ end
45
+
46
+ def file_open(file, mode, &block)
47
+ begin
48
+ File.open(file, mode, &block)
49
+ rescue Exception => e
50
+ puts "Received exception #{e.message} when trying to open file #{file}"
51
+ exit 1
52
+ end
53
+ end
54
+
55
+ end
metadata ADDED
@@ -0,0 +1,89 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: chef11-key-dump
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Kirt Fitzpatrick
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sequel
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: pg
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: json
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Dumps an Open Source Chef 11 server's key data for transform and import
56
+ into a Chef 12 server.
57
+ email: kirt@chef.io
58
+ executables:
59
+ - chef11-key-dump
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - bin/chef11-key-dump
64
+ - lib/chef11_key_dump.rb
65
+ homepage: https://rubygems.org/gems/chef11-key-dump
66
+ licenses:
67
+ - MIT
68
+ metadata: {}
69
+ post_install_message:
70
+ rdoc_options: []
71
+ require_paths:
72
+ - lib
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ requirements: []
84
+ rubyforge_project:
85
+ rubygems_version: 2.0.14
86
+ signing_key:
87
+ specification_version: 4
88
+ summary: Dumps Chef11 keys to json.
89
+ test_files: []