cheftacular 2.2.1 → 2.2.2
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 +4 -4
- data/lib/cheftacular/chef/data_bag.rb +1 -1
- data/lib/cheftacular/dns.rb +14 -6
- data/lib/cheftacular/initializer.rb +1 -1
- data/lib/cheftacular/stateless_actions/get_shorewall_allowed_connections.rb +2 -6
- data/lib/cheftacular/stateless_actions/replication_status.rb +16 -1
- data/lib/cheftacular/stateless_actions/{update_cloudflare.rb → update_cloudflare_dns_from_cloud.rb} +6 -3
- data/lib/cheftacular/stateless_actions/update_tld.rb +1 -1
- data/lib/cheftacular/version.rb +1 -1
- metadata +3 -4
- data/lib/cheftacular/actions/database.rb +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 29520ff1bae99c83bce312f6f5f582505776a007
|
4
|
+
data.tar.gz: 7f79d595110a8850083c5314671129d08709560b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a52cf49de433628aab008679c6df07a7f42a9ca290f7895ee2e780a21db5481be3cefc09c9887981b9b4c089c7a1e8b418fb5bfc123102cd81fa5965c77999ef
|
7
|
+
data.tar.gz: cb443b1cc185d8ce16f4987415b396f8eb14473f9d66615612cfea10daab85972c38b8ce43c4a59390ebbc5339be8f6e7ecc052db81d8af33e295fcdf0e39f1f
|
@@ -37,7 +37,7 @@ class Cheftacular
|
|
37
37
|
rescue Ridley::Errors::HTTPRequestEntityTooLarge => e
|
38
38
|
puts "WARNING! #{ e }! The logs from this run will not be saved on the chef server. Wiping the bag so future runs can be saved."
|
39
39
|
|
40
|
-
item.attributes =
|
40
|
+
item.attributes = @config[env]['logs_bag_hash'].keep_if {|key,val| key == 'id'}
|
41
41
|
|
42
42
|
item.save
|
43
43
|
|
data/lib/cheftacular/dns.rb
CHANGED
@@ -25,7 +25,7 @@ class Cheftacular
|
|
25
25
|
|
26
26
|
cloudflare_records_hash = fetch_cloudflare_records_as_hash target_domain
|
27
27
|
|
28
|
-
puts('#'.ljust(4) + 'subdomain'.ljust(50) + 'type'.ljust(6) + 'ttl'.ljust(5) + 'mode'.ljust(20) + 'value') unless @options['quiet']
|
28
|
+
puts('#'.ljust(4) + 'subdomain'.ljust(50) + 'type'.ljust(6) + 'ttl'.ljust(5) + 'cloudflare_on ' + 'mode'.ljust(20) + 'value') unless @options['quiet']
|
29
29
|
|
30
30
|
domain_count = 1
|
31
31
|
|
@@ -36,7 +36,12 @@ class Cheftacular
|
|
36
36
|
record_hash['activate_cloudflare'] = @config[@options['env']]['config_bag_hash'][@options['sub_env']]['cloudflare_activated_domains'].include?(record_hash['name'])
|
37
37
|
end
|
38
38
|
|
39
|
-
print(domain_count.to_s.ljust(4, '_') +
|
39
|
+
print(domain_count.to_s.ljust(4, '_') +
|
40
|
+
record_hash['name'].ljust(50, '_') +
|
41
|
+
record_hash['type'].ljust(6, '_') +
|
42
|
+
record_hash['ttl'].to_s.ljust(5, '_') +
|
43
|
+
record_hash['activate_cloudflare'].to_s.ljust(14, '_')
|
44
|
+
)
|
40
45
|
|
41
46
|
if cloudflare_records_hash.has_key?("#{ record_hash['name'] }-#{ record_hash['type'] }") && ( !cloudflare_records_hash["#{ record_hash['name'] }-#{ record_hash['type'] }"].empty? ||
|
42
47
|
cloudflare_record_does_include_value?(cloudflare_records_hash["#{ record_hash['name'] }-#{ record_hash['type'] }"], record_hash['value']) )
|
@@ -57,7 +62,7 @@ class Cheftacular
|
|
57
62
|
record_hash['SRV_weight'],
|
58
63
|
record_hash['SRV_port'],
|
59
64
|
record_hash['SRV_target'],
|
60
|
-
(record_hash['activate_cloudflare'] ?
|
65
|
+
(record_hash['activate_cloudflare'] ? 1 : 0) #service_mode
|
61
66
|
)
|
62
67
|
|
63
68
|
print 'create'.ljust(20, '_')
|
@@ -72,7 +77,8 @@ class Cheftacular
|
|
72
77
|
end
|
73
78
|
|
74
79
|
def create_dns_record_for_domain_from_address_hash domain, address_hash, *args
|
75
|
-
domain_obj
|
80
|
+
domain_obj = PublicSuffix.parse("#{ address_hash['name'] }.#{ domain }") if args.empty?
|
81
|
+
domain_obj ||= PublicSuffix.parse domain
|
76
82
|
|
77
83
|
if args.include?('specific_domain_mode')
|
78
84
|
puts("running cloud domain create_record:#{ domain_obj.domain }:#{ domain_obj.trd }:#{ address_hash['public'] }") if @options['verbose']
|
@@ -121,7 +127,9 @@ class Cheftacular
|
|
121
127
|
'ttl' => 300
|
122
128
|
}
|
123
129
|
|
124
|
-
|
130
|
+
#ap target_domain_records
|
131
|
+
|
132
|
+
update_cloudflare_from_array_of_domain_hashes domain_obj.domain, target_domain_records
|
125
133
|
end
|
126
134
|
end
|
127
135
|
|
@@ -257,7 +265,7 @@ class Cheftacular
|
|
257
265
|
else
|
258
266
|
print 'edit'.ljust(20, '_')
|
259
267
|
|
260
|
-
@config['cloudflare'].rec_edit(target_domain, record_hash['type'], possible_matches[0]['rec_id'], record_hash['name'], record_hash['value'], record_hash['ttl'])
|
268
|
+
@config['cloudflare'].rec_edit(target_domain, record_hash['type'], possible_matches[0]['rec_id'], record_hash['name'], record_hash['value'], record_hash['ttl'], record_hash['activate_cloudflare'])
|
261
269
|
end
|
262
270
|
end
|
263
271
|
|
@@ -296,7 +296,7 @@ class Cheftacular
|
|
296
296
|
|
297
297
|
@config['ridley'] = Ridley.new(
|
298
298
|
server_url: @config['cheftacular']['chef_server_url'],
|
299
|
-
client_name: (@config['helper'].running_on_chef_node? ? @config['
|
299
|
+
client_name: (@config['helper'].running_on_chef_node? ? @config['helper'].parse_node_name_from_client_file : @config['cheftacular']['cheftacular_chef_user']),
|
300
300
|
client_key: File.expand_path("#{ @config['locs']['chef'] }/#{ @config['helper'].running_on_chef_node? ? 'client' : @config['cheftacular']['cheftacular_chef_user'] }.pem"),
|
301
301
|
encrypted_data_bag_secret: @config['data_bag_secret'],
|
302
302
|
ssl: { verify: @config['cheftacular']['ssl_verify'] == 'true' }
|
@@ -2,7 +2,7 @@ class Cheftacular
|
|
2
2
|
class StatelessActionDocumentation
|
3
3
|
def get_shorewall_allowed_connections
|
4
4
|
@config['documentation']['stateless_action'] << [
|
5
|
-
"`cft get_shorewall_allowed_connections` command will query a single server and return all of its ACCEPT connections " +
|
5
|
+
"`[NYI]cft get_shorewall_allowed_connections` command will query a single server and return all of its ACCEPT connections " +
|
6
6
|
"from shorewall in it's syslog and return the results in a CSV format. Useful for tracking IP activity.",
|
7
7
|
|
8
8
|
[
|
@@ -14,12 +14,8 @@ class Cheftacular
|
|
14
14
|
|
15
15
|
class StatelessAction
|
16
16
|
def get_shorewall_allowed_connections
|
17
|
+
raise "Not yet implemented"
|
17
18
|
#TODO find and load syslog files from nodes!
|
18
|
-
log_data << File.read(File.expand_path("#{ @locs['chef-log'] }/marketing_site_syslog_2.txt"))
|
19
|
-
log_data << File.read(File.expand_path("#{ @locs['chef-log'] }/marketing_site_syslog_1.txt"))
|
20
|
-
log_data << File.read(File.expand_path("#{ @locs['chef-log'] }/marketing_site_syslog.txt"))
|
21
|
-
|
22
|
-
exit
|
23
19
|
|
24
20
|
addresses = {}
|
25
21
|
|
@@ -51,7 +51,7 @@ class Cheftacular
|
|
51
51
|
out << "#{ serv_name }:"
|
52
52
|
|
53
53
|
output.join("\n").split("\n").each do |line|
|
54
|
-
out << " #{ line }"
|
54
|
+
out << " #{ line }\n"
|
55
55
|
end
|
56
56
|
|
57
57
|
out << "\n"
|
@@ -70,6 +70,21 @@ module SSHKit
|
|
70
70
|
|
71
71
|
psql_commands = [
|
72
72
|
"select client_addr, state, sent_location, write_location, flush_location, replay_location, sync_priority from pg_stat_replication;",
|
73
|
+
%{
|
74
|
+
SELECT
|
75
|
+
client_addr,
|
76
|
+
sent_offset - (
|
77
|
+
replay_offset - (sent_xlog - replay_xlog) * 255 * 16 ^ 6 ) AS byte_lag
|
78
|
+
FROM (
|
79
|
+
SELECT
|
80
|
+
client_addr,
|
81
|
+
('x' || lpad(split_part(sent_location, '/', 1), 8, '0'))::bit(32)::bigint AS sent_xlog,
|
82
|
+
('x' || lpad(split_part(replay_location, '/', 1), 8, '0'))::bit(32)::bigint AS replay_xlog,
|
83
|
+
('x' || lpad(split_part(sent_location, '/', 2), 8, '0'))::bit(32)::bigint AS sent_offset,
|
84
|
+
('x' || lpad(split_part(replay_location, '/', 2), 8, '0'))::bit(32)::bigint AS replay_offset
|
85
|
+
FROM pg_stat_replication
|
86
|
+
) AS s;
|
87
|
+
} #http://www.dansketcher.com/2013/01/27/monitoring-postgresql-streaming-replication/
|
73
88
|
]
|
74
89
|
|
75
90
|
psql_commands.each do |cmnd|
|
data/lib/cheftacular/stateless_actions/{update_cloudflare.rb → update_cloudflare_dns_from_cloud.rb}
RENAMED
@@ -2,7 +2,7 @@ class Cheftacular
|
|
2
2
|
class StatelessActionDocumentation
|
3
3
|
def update_cloudflare_dns_from_cloud
|
4
4
|
@config['documentation']['stateless_action'] << [
|
5
|
-
"`cft update_cloudflare_dns_from_cloud` command will force a full dns update for cloudflare. ",
|
5
|
+
"`cft update_cloudflare_dns_from_cloud [skip_update_tld]` command will force a full dns update for cloudflare. ",
|
6
6
|
|
7
7
|
[
|
8
8
|
" 1. It will ensure all the subdomain entries are correct (based on the contents of the addresses data bag) " +
|
@@ -10,7 +10,10 @@ class Cheftacular
|
|
10
10
|
"does exist and point it to the correct private address for an environment.",
|
11
11
|
|
12
12
|
" 2. This command will also ensure any dns records on your cloud are also migrated over to cloudflare as well. " +
|
13
|
-
"This also includes the reverse in the event you would like to turn off cloudflare."
|
13
|
+
"This also includes the reverse in the event you would like to turn off cloudflare.",
|
14
|
+
|
15
|
+
" 3. The argument `skip_update_tld` will stop the long process of checking and updating all the server domains " +
|
16
|
+
"_before_ cloudflare is updated. Only skip if you believe your domain info on your cloud is accurate."
|
14
17
|
]
|
15
18
|
]
|
16
19
|
end
|
@@ -22,7 +25,7 @@ class Cheftacular
|
|
22
25
|
|
23
26
|
target_domain = @config[@options['env']]['config_bag_hash'][@options['sub_env']]['tld']
|
24
27
|
|
25
|
-
@config['stateless_action'].update_tld 'self'
|
28
|
+
@config['stateless_action'].update_tld 'self' unless ARGV[1] == 'skip_update_tld'
|
26
29
|
|
27
30
|
target_domain_records = @config['stateless_action'].cloud('domain', "read:#{ target_domain }")["records_for_#{ target_domain }"]
|
28
31
|
|
@@ -51,7 +51,7 @@ class Cheftacular
|
|
51
51
|
|
52
52
|
@config['DNS'].compile_address_hash_for_server_from_options("set_specific_domain_name:#{ specific_domain }")
|
53
53
|
|
54
|
-
sleep
|
54
|
+
sleep 1 #prepare for next domain
|
55
55
|
end
|
56
56
|
|
57
57
|
@config[@options['env']]['config_bag_hash'][@options['sub_env']]['tld'] = target_tld
|
data/lib/cheftacular/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cheftacular
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Louis Alridge
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hashie
|
@@ -242,7 +242,6 @@ files:
|
|
242
242
|
- lib/cheftacular/action.rb
|
243
243
|
- lib/cheftacular/actions/check.rb
|
244
244
|
- lib/cheftacular/actions/console.rb
|
245
|
-
- lib/cheftacular/actions/database.rb
|
246
245
|
- lib/cheftacular/actions/db_console.rb
|
247
246
|
- lib/cheftacular/actions/deploy.rb
|
248
247
|
- lib/cheftacular/actions/log.rb
|
@@ -306,7 +305,7 @@ files:
|
|
306
305
|
- lib/cheftacular/stateless_actions/service.rb
|
307
306
|
- lib/cheftacular/stateless_actions/slack.rb
|
308
307
|
- lib/cheftacular/stateless_actions/test_env.rb
|
309
|
-
- lib/cheftacular/stateless_actions/
|
308
|
+
- lib/cheftacular/stateless_actions/update_cloudflare_dns_from_cloud.rb
|
310
309
|
- lib/cheftacular/stateless_actions/update_split_branches.rb
|
311
310
|
- lib/cheftacular/stateless_actions/update_tld.rb
|
312
311
|
- lib/cheftacular/stateless_actions/upload_nodes.rb
|