cheftacular 2.10.2 → 2.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cheftacular/README.md +119 -77
- data/lib/cheftacular/actions/check.rb +58 -24
- data/lib/cheftacular/actions/deploy.rb +5 -3
- data/lib/cheftacular/auditor.rb +4 -3
- data/lib/cheftacular/cheftacular.rb +1 -0
- data/lib/cheftacular/cloud_provider.rb +17 -12
- data/lib/cheftacular/file_system.rb +20 -0
- data/lib/cheftacular/getter.rb +1 -1
- data/lib/cheftacular/helper.rb +41 -28
- data/lib/cheftacular/initializer.rb +5 -3
- data/lib/cheftacular/parser.rb +10 -6
- data/lib/cheftacular/queue_master.rb +24 -0
- data/lib/cheftacular/stateless_actions/backups.rb +2 -2
- data/lib/cheftacular/stateless_actions/bootstrappers/{centos_bootstrap.rb → centos_bootstrap_from_queue.rb} +1 -1
- data/lib/cheftacular/stateless_actions/bootstrappers/{coreos_bootstrap.rb → coreos_bootstrap_from_queue.rb} +1 -1
- data/lib/cheftacular/stateless_actions/bootstrappers/{fedora_bootstrap.rb → fedora_bootstrap_from_queue.rb} +1 -1
- data/lib/cheftacular/stateless_actions/bootstrappers/{redhat_bootstrap.rb → redhat_bootstrap_from_queue.rb} +1 -1
- data/lib/cheftacular/stateless_actions/bootstrappers/ubuntu_bootstrap_from_queue.rb +203 -0
- data/lib/cheftacular/stateless_actions/bootstrappers/vyatta_bootstrap_from_queue.rb +7 -0
- data/lib/cheftacular/stateless_actions/check_cheftacular_yml_keys.rb +30 -0
- data/lib/cheftacular/stateless_actions/chef_bootstrap_from_queue.rb +89 -0
- data/lib/cheftacular/stateless_actions/cheftacular_yml_help.rb +55 -6
- data/lib/cheftacular/stateless_actions/client_list.rb +1 -3
- data/lib/cheftacular/stateless_actions/cloud_bootstrap.rb +24 -15
- data/lib/cheftacular/stateless_actions/cloud_bootstrap_from_queue.rb +37 -0
- data/lib/cheftacular/stateless_actions/environment.rb +80 -31
- data/lib/cheftacular/stateless_actions/fix_known_hosts.rb +1 -22
- data/lib/cheftacular/stateless_actions/{full_bootstrap.rb → full_bootstrap_from_queue.rb} +8 -15
- data/lib/cheftacular/stateless_actions/knife_upload.rb +14 -3
- data/lib/cheftacular/stateless_actions/reinitialize.rb +1 -1
- data/lib/cheftacular/stateless_actions/remove_client.rb +3 -3
- data/lib/cheftacular/stateless_actions/restart_swap.rb +0 -1
- data/lib/cheftacular/stateless_actions/test_env.rb +24 -18
- data/lib/cheftacular/stateless_actions/update_thecheftacularcookbook.rb +1 -1
- data/lib/cheftacular/stateless_actions/upload_nodes.rb +2 -2
- data/lib/cheftacular/version.rb +1 -1
- data/lib/cloud_interactor/domain/create.rb +2 -2
- data/lib/cloud_interactor/domain/create_record.rb +1 -1
- data/lib/cloud_interactor/domain/destroy.rb +2 -2
- data/lib/cloud_interactor/domain/destroy_record.rb +1 -1
- data/lib/cloud_interactor/domain/list_records.rb +1 -1
- data/lib/cloud_interactor/domain/read.rb +1 -1
- data/lib/cloud_interactor/domain/read_record.rb +1 -1
- data/lib/cloud_interactor/domain/update.rb +2 -2
- data/lib/cloud_interactor/domain/update_record.rb +2 -2
- data/lib/cloud_interactor/helpers.rb +11 -6
- data/lib/cloud_interactor/server/attach_volume.rb +1 -1
- data/lib/cloud_interactor/server/create.rb +4 -4
- data/lib/cloud_interactor/server/detach_volume.rb +2 -2
- data/lib/cloud_interactor/server/list_volumes.rb +1 -1
- data/lib/cloud_interactor/server/poll.rb +2 -2
- data/lib/cloud_interactor/server/read_volume.rb +1 -1
- data/lib/cloud_interactor/version.rb +1 -1
- data/lib/cloud_interactor/volume/create.rb +1 -1
- data/lib/sshkit/getters.rb +9 -1
- metadata +25 -10
- data/lib/cheftacular/stateless_actions/bootstrappers/ubuntu_bootstrap.rb +0 -116
- data/lib/cheftacular/stateless_actions/bootstrappers/vyatta_bootstrap.rb +0 -7
- data/lib/cheftacular/stateless_actions/chef_bootstrap.rb +0 -63
@@ -1,63 +0,0 @@
|
|
1
|
-
|
2
|
-
class Cheftacular
|
3
|
-
class StatelessActionDocumentation
|
4
|
-
def chef_bootstrap
|
5
|
-
@config['documentation']['stateless_action'][__method__] ||= {}
|
6
|
-
@config['documentation']['stateless_action'][__method__]['long_description'] = [
|
7
|
-
"`cft chef_bootstrap ADDRESS NODE_NAME` allows you to register a node in the chef system, " +
|
8
|
-
"remove any lingering data that may be associated with it and update the node's runlist if it has an entry in nodes_dir for its NODE_NAME.",
|
9
|
-
|
10
|
-
[
|
11
|
-
" 1. This command is part of the `cft full_bootstrap` command"
|
12
|
-
]
|
13
|
-
]
|
14
|
-
|
15
|
-
@config['documentation']['stateless_action'][__method__]['short_description'] = 'Bootstraps basic chef properties on the target server'
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
class StatelessAction
|
20
|
-
def chef_bootstrap out=[]
|
21
|
-
raise "This action can only be performed if the mode is set to devops" if !@config['helper'].running_in_mode?('devops') && !@options['in_scaling']
|
22
|
-
|
23
|
-
@options['address'] = ARGV[1] unless @options['address']
|
24
|
-
@options['node_name'] = ARGV[2] unless @options['node_name']
|
25
|
-
|
26
|
-
#@config['stateless_action'].remove_client #just in case
|
27
|
-
|
28
|
-
if @config['cheftacular']['chef_version'].to_i >= 12
|
29
|
-
puts("Starting chef-client installation...") unless @options['quiet']
|
30
|
-
|
31
|
-
commands = [
|
32
|
-
"curl -L https://www.opscode.com/chef/install.sh > ~/chef-install.sh",
|
33
|
-
"#{ @config['helper'].sudo(@options['address']) } bash /home/deploy/chef-install.sh",
|
34
|
-
"rm ~/chef-install.sh"
|
35
|
-
]
|
36
|
-
|
37
|
-
commands.each do |command|
|
38
|
-
out << `ssh -t -oStrictHostKeyChecking=no #{ @config['cheftacular']['deploy_user'] }@#{ @options['address'] } "#{ command }"`
|
39
|
-
|
40
|
-
puts(out.last) unless @options['quiet'] || @options['in_scaling']
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
puts("Starting chef bootstrap...") unless @options['quiet']
|
45
|
-
|
46
|
-
out << `#{ @config['helper'].knife_bootstrap_command }`
|
47
|
-
|
48
|
-
puts(out.last) unless @options['quiet'] || @options['in_scaling']
|
49
|
-
|
50
|
-
puts("Sending up data_bag_key file...") unless @options['quiet']
|
51
|
-
|
52
|
-
out << `scp -oStrictHostKeyChecking=no #{ @config['locs']['chef'] }/#{ @config['cheftacular']['data_bag_key_file'] } #{ @config['cheftacular']['deploy_user'] }@#{ @options['address'] }:/home/#{ @config['cheftacular']['deploy_user'] }`
|
53
|
-
|
54
|
-
puts("Moving key file to chef directory on server...") unless @options['quiet']
|
55
|
-
|
56
|
-
out << `ssh -t -oStrictHostKeyChecking=no #{ @config['cheftacular']['deploy_user'] }@#{ @options['address'] } "#{ @config['helper'].sudo(@options['address']) } mv -f /home/#{ @config['cheftacular']['deploy_user'] }/#{ @config['cheftacular']['data_bag_key_file'] } /etc/chef"`
|
57
|
-
|
58
|
-
@options['force_yes'] = true # have the upload_nodes grab the new nodes
|
59
|
-
|
60
|
-
@config['stateless_action'].upload_nodes(true)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|