openbolt 5.6.0 → 9.0.0.pre.rc1
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/Puppetfile +35 -35
- data/bolt-modules/boltlib/lib/puppet/functions/run_task.rb +14 -22
- data/bolt-modules/boltlib/lib/puppet/functions/run_task_with.rb +14 -26
- data/guides/debugging.yaml +1 -1
- data/guides/inventory.yaml +2 -2
- data/guides/links.yaml +18 -9
- data/guides/logging.yaml +1 -1
- data/guides/module.yaml +1 -1
- data/guides/modulepath.yaml +1 -1
- data/guides/project.yaml +2 -2
- data/guides/targets.yaml +1 -1
- data/guides/transports.yaml +4 -3
- data/lib/bolt/analytics.rb +2 -10
- data/lib/bolt/bolt_option_parser.rb +24 -24
- data/lib/bolt/config/options.rb +1 -1
- data/lib/bolt/config/transport/options.rb +0 -34
- data/lib/bolt/inventory/options.rb +1 -1
- data/lib/bolt/inventory/target.rb +1 -1
- data/lib/bolt/module_installer/puppetfile.rb +1 -1
- data/lib/bolt/module_installer/specs.rb +1 -1
- data/lib/bolt/outputter/human.rb +1 -2
- data/lib/bolt/plan_creator.rb +4 -4
- data/lib/bolt/project_manager/inventory_migrator.rb +1 -1
- data/lib/bolt/project_manager/module_migrator.rb +1 -1
- data/lib/bolt/project_manager.rb +1 -1
- data/lib/bolt/shell/bash.rb +2 -1
- data/lib/bolt/transport/ssh/connection.rb +2 -1
- data/lib/bolt/version.rb +1 -1
- metadata +18 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1330d8e29efdcb5a955256f23e7b21341702b971d91e993004754c87573254cd
|
|
4
|
+
data.tar.gz: 3e5e5ee382f7e3df85b83c16c63ea43c5f9d35c54f25f2ef50e2589b0591e93d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f957aaf93f718c2626339bb1353d9770da0d2a6b7f16b5628ee63c124df8a45e27add34e72489a98cfb0b12d0b1414f270d1ff42669a499ce777a22a28d46d04
|
|
7
|
+
data.tar.gz: 630c9835d6cc18a6b3dd89e2cc3ace763ba22d63bbd06ff8845126ce624bc9c422672c21b30ac17c7f973713c7ba17cecffbaae9ac178ffea3470acb1df8f6cc
|
data/Puppetfile
CHANGED
|
@@ -5,51 +5,51 @@ forge 'https://forge.puppetlabs.com'
|
|
|
5
5
|
moduledir File.join(File.dirname(__FILE__), 'modules')
|
|
6
6
|
|
|
7
7
|
# Core modules used by 'apply'
|
|
8
|
-
mod 'puppetlabs-service', '
|
|
9
|
-
mod 'puppet-openvox_bootstrap', '1.
|
|
10
|
-
mod 'puppetlabs-facts', '1.
|
|
8
|
+
mod 'puppetlabs-service', '4.0.0'
|
|
9
|
+
mod 'puppet-openvox_bootstrap', '1.5.0'
|
|
10
|
+
mod 'puppetlabs-facts', '1.8.1'
|
|
11
11
|
|
|
12
12
|
# Other core Puppet modules
|
|
13
|
-
mod 'puppetlabs-inifile', '6.
|
|
14
|
-
mod 'puppetlabs-apt', '11.
|
|
15
|
-
mod 'puppetlabs-stdlib', '
|
|
16
|
-
mod 'puppetlabs-powershell', '6.
|
|
17
|
-
mod 'puppetlabs-pwshlib', '2.
|
|
13
|
+
mod 'puppetlabs-inifile', '6.5.0'
|
|
14
|
+
mod 'puppetlabs-apt', '11.4.0'
|
|
15
|
+
mod 'puppetlabs-stdlib', '10.1.0'
|
|
16
|
+
mod 'puppetlabs-powershell', '6.2.0'
|
|
17
|
+
mod 'puppetlabs-pwshlib', '2.1.1'
|
|
18
18
|
|
|
19
19
|
# Core types and providers for Puppet 6
|
|
20
|
-
mod 'puppetlabs-augeas_core', '2.0
|
|
21
|
-
mod 'puppetlabs-host_core', '2.0
|
|
22
|
-
mod 'puppetlabs-scheduled_task', '
|
|
23
|
-
mod 'puppetlabs-sshkeys_core', '3.0
|
|
24
|
-
mod 'puppetlabs-zfs_core', '2.0
|
|
25
|
-
mod 'puppetlabs-cron_core', '2.0
|
|
26
|
-
mod 'puppetlabs-mount_core', '2.0
|
|
27
|
-
mod 'puppetlabs-selinux_core', '2.0
|
|
28
|
-
mod 'puppetlabs-yumrepo_core', '3.0
|
|
29
|
-
mod 'puppetlabs-zone_core', '2.0
|
|
20
|
+
mod 'puppetlabs-augeas_core', '2.1.0'
|
|
21
|
+
mod 'puppetlabs-host_core', '2.1.0'
|
|
22
|
+
mod 'puppetlabs-scheduled_task', '5.1.0'
|
|
23
|
+
mod 'puppetlabs-sshkeys_core', '3.1.0'
|
|
24
|
+
mod 'puppetlabs-zfs_core', '2.1.0'
|
|
25
|
+
mod 'puppetlabs-cron_core', '2.1.0'
|
|
26
|
+
mod 'puppetlabs-mount_core', '2.1.0'
|
|
27
|
+
mod 'puppetlabs-selinux_core', '2.1.0'
|
|
28
|
+
mod 'puppetlabs-yumrepo_core', '3.1.0'
|
|
29
|
+
mod 'puppetlabs-zone_core', '2.1.0'
|
|
30
30
|
|
|
31
31
|
# Useful additional modules
|
|
32
|
-
mod 'puppetlabs-package', '
|
|
33
|
-
mod 'puppetlabs-puppet_conf', '
|
|
34
|
-
mod 'puppetlabs-reboot', '
|
|
32
|
+
mod 'puppetlabs-package', '4.0.0'
|
|
33
|
+
mod 'puppetlabs-puppet_conf', '3.0.0'
|
|
34
|
+
mod 'puppetlabs-reboot', '6.0.0'
|
|
35
35
|
|
|
36
36
|
# Task helpers
|
|
37
|
-
mod 'puppetlabs-powershell_task_helper', '0.
|
|
38
|
-
mod 'puppetlabs-ruby_task_helper', '
|
|
39
|
-
mod 'puppetlabs-ruby_plugin_helper', '0.
|
|
40
|
-
mod 'puppetlabs-python_task_helper', '0.
|
|
41
|
-
mod 'puppetlabs-bash_task_helper', '2.
|
|
37
|
+
mod 'puppetlabs-powershell_task_helper', '0.2.0'
|
|
38
|
+
mod 'puppetlabs-ruby_task_helper', '1.1.0'
|
|
39
|
+
mod 'puppetlabs-ruby_plugin_helper', '0.4.0'
|
|
40
|
+
mod 'puppetlabs-python_task_helper', '0.7.0'
|
|
41
|
+
mod 'puppetlabs-bash_task_helper', '2.3.0'
|
|
42
42
|
|
|
43
43
|
# Plugin modules
|
|
44
|
-
mod 'puppetlabs-aws_inventory', '0.
|
|
45
|
-
mod 'puppetlabs-azure_inventory', '0.
|
|
46
|
-
mod 'puppetlabs-gcloud_inventory', '0.
|
|
47
|
-
mod 'puppetlabs-http_request', '0.
|
|
48
|
-
mod 'puppetlabs-pkcs7', '0.
|
|
49
|
-
mod 'puppetlabs-secure_env_vars', '0.
|
|
50
|
-
mod 'puppetlabs-terraform', '0.
|
|
51
|
-
mod 'puppetlabs-vault', '0.
|
|
52
|
-
mod 'puppetlabs-yaml', '0.
|
|
44
|
+
mod 'puppetlabs-aws_inventory', '0.9.0'
|
|
45
|
+
mod 'puppetlabs-azure_inventory', '0.6.0'
|
|
46
|
+
mod 'puppetlabs-gcloud_inventory', '0.4.0'
|
|
47
|
+
mod 'puppetlabs-http_request', '0.4.0'
|
|
48
|
+
mod 'puppetlabs-pkcs7', '0.2.0'
|
|
49
|
+
mod 'puppetlabs-secure_env_vars', '0.3.0'
|
|
50
|
+
mod 'puppetlabs-terraform', '0.8.0'
|
|
51
|
+
mod 'puppetlabs-vault', '0.5.0'
|
|
52
|
+
mod 'puppetlabs-yaml', '0.3.0'
|
|
53
53
|
|
|
54
54
|
# If we don't list these modules explicitly, r10k will purge them
|
|
55
55
|
mod 'canary', local: true
|
|
@@ -81,32 +81,24 @@ Puppet::Functions.create_function(:run_task) do
|
|
|
81
81
|
return Bolt::ResultSet.new([])
|
|
82
82
|
end
|
|
83
83
|
|
|
84
|
-
#
|
|
85
|
-
|
|
86
|
-
if
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
[{ 'name' => '', 'path' => '' }])
|
|
90
|
-
else
|
|
91
|
-
# TODO: use the compiler injection once PUP-8237 lands
|
|
92
|
-
task_signature = Puppet::Pal::ScriptCompiler.new(closure_scope.compiler).task_signature(task_name)
|
|
93
|
-
if task_signature.nil?
|
|
94
|
-
raise Bolt::Error.unknown_task(task_name)
|
|
95
|
-
end
|
|
84
|
+
# TODO: use the compiler injection once PUP-8237 lands
|
|
85
|
+
task_signature = Puppet::Pal::ScriptCompiler.new(closure_scope.compiler).task_signature(task_name)
|
|
86
|
+
if task_signature.nil?
|
|
87
|
+
raise Bolt::Error.unknown_task(task_name)
|
|
88
|
+
end
|
|
96
89
|
|
|
97
|
-
|
|
90
|
+
task = Bolt::Task.from_task_signature(task_signature)
|
|
98
91
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
task_signature.runnable_with?(params) do |mismatch_message|
|
|
106
|
-
raise with_stack(:TYPE_MISMATCH, mismatch_message)
|
|
107
|
-
end || (raise with_stack(:TYPE_MISMATCH, 'Task parameters do not match'))
|
|
92
|
+
# Set the default value for any params that have one and were not provided
|
|
93
|
+
# or are undef.
|
|
94
|
+
params = task.parameter_defaults.merge(params) do |_, default, passed|
|
|
95
|
+
passed.nil? ? default : passed
|
|
108
96
|
end
|
|
109
97
|
|
|
98
|
+
task_signature.runnable_with?(params) do |mismatch_message|
|
|
99
|
+
raise with_stack(:TYPE_MISMATCH, mismatch_message)
|
|
100
|
+
end || (raise with_stack(:TYPE_MISMATCH, 'Task parameters do not match'))
|
|
101
|
+
|
|
110
102
|
# Generate a helpful error message about the type-mismatch between the type
|
|
111
103
|
# Data and the actual type of params.
|
|
112
104
|
unless Puppet::Pops::Types::TypeFactory.data.instance?(params)
|
|
@@ -13,8 +13,6 @@ require 'bolt/task'
|
|
|
13
13
|
# This function does nothing if the list of targets is empty.
|
|
14
14
|
#
|
|
15
15
|
# > **Note:** Not available in apply block
|
|
16
|
-
#
|
|
17
|
-
# > **Note:** Not available to targets using the pcp transport
|
|
18
16
|
Puppet::Functions.create_function(:run_task_with) do
|
|
19
17
|
# Run a task with target-specific parameters.
|
|
20
18
|
# @param task_name The task to run.
|
|
@@ -97,22 +95,14 @@ Puppet::Functions.create_function(:run_task_with) do
|
|
|
97
95
|
return Bolt::ResultSet.new([])
|
|
98
96
|
end
|
|
99
97
|
|
|
100
|
-
|
|
101
|
-
# Otherwise, load the local task definition
|
|
102
|
-
if (pcp_only = targets.all? { |t| t.transport == 'pcp' })
|
|
103
|
-
task = Bolt::Task.new(task_name,
|
|
104
|
-
{ 'supports_noop' => true },
|
|
105
|
-
[{ 'name' => '', 'path' => '' }])
|
|
106
|
-
else
|
|
107
|
-
task_signature = Puppet::Pal::ScriptCompiler.new(closure_scope.compiler).task_signature(task_name)
|
|
108
|
-
|
|
109
|
-
if task_signature.nil?
|
|
110
|
-
raise Bolt::Error.unknown_task(task_name)
|
|
111
|
-
end
|
|
98
|
+
task_signature = Puppet::Pal::ScriptCompiler.new(closure_scope.compiler).task_signature(task_name)
|
|
112
99
|
|
|
113
|
-
|
|
100
|
+
if task_signature.nil?
|
|
101
|
+
raise Bolt::Error.unknown_task(task_name)
|
|
114
102
|
end
|
|
115
103
|
|
|
104
|
+
task = Bolt::Task.from_task_signature(task_signature)
|
|
105
|
+
|
|
116
106
|
# Map the targets to their specific parameters and merge with the defaults
|
|
117
107
|
target_mapping = targets.each_with_object({}) do |target, mapping|
|
|
118
108
|
params = yield(target)
|
|
@@ -130,20 +120,18 @@ Puppet::Functions.create_function(:run_task_with) do
|
|
|
130
120
|
|
|
131
121
|
# If parameters are mismatched, create a failing result for the target that will later
|
|
132
122
|
# be added to the ResultSet.
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
type_match = task_signature.runnable_with?(params) do |mismatch_message|
|
|
140
|
-
exception = with_stack(:TYPE_MISMATCH, mismatch_message)
|
|
141
|
-
error_set << Bolt::Result.from_exception(target, exception, action: 'task')
|
|
142
|
-
end
|
|
123
|
+
# Set the default value for any params that have one and were not provided or are undef
|
|
124
|
+
params = task.parameter_defaults.merge(params) do |_, default, passed|
|
|
125
|
+
passed.nil? ? default : passed
|
|
126
|
+
end
|
|
143
127
|
|
|
144
|
-
|
|
128
|
+
type_match = task_signature.runnable_with?(params) do |mismatch_message|
|
|
129
|
+
exception = with_stack(:TYPE_MISMATCH, mismatch_message)
|
|
130
|
+
error_set << Bolt::Result.from_exception(target, exception, action: 'task')
|
|
145
131
|
end
|
|
146
132
|
|
|
133
|
+
next unless type_match
|
|
134
|
+
|
|
147
135
|
# If there is a type mismatch between the type Data and the type of the params, create
|
|
148
136
|
# a failing result for the target that will later be added to the ResultSet.
|
|
149
137
|
unless Puppet::Pops::Types::TypeFactory.data.instance?(params)
|
data/guides/debugging.yaml
CHANGED
data/guides/inventory.yaml
CHANGED
|
@@ -19,5 +19,5 @@ guide: |
|
|
|
19
19
|
is different than expected.
|
|
20
20
|
|
|
21
21
|
documentation:
|
|
22
|
-
- https://
|
|
23
|
-
- https://
|
|
22
|
+
- https://docs.openvoxproject.org/openbolt/latest/inventory_files.html
|
|
23
|
+
- https://docs.openvoxproject.org/openbolt/latest/bolt_inventory_reference.html
|
data/guides/links.yaml
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
---
|
|
2
2
|
topic: links
|
|
3
3
|
guide: |
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Reference
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
OpenBolt documentation
|
|
5
|
+
https://docs.openvoxproject.org/openbolt/latest/
|
|
6
|
+
Getting Started Guide
|
|
7
|
+
https://docs.openvoxproject.org/openbolt/latest/getting_started_with_bolt.html
|
|
8
|
+
Configuration Reference
|
|
9
|
+
https://docs.openvoxproject.org/openbolt/latest/configuring_bolt.html
|
|
10
|
+
Troubleshooting OpenBolt
|
|
11
|
+
https://docs.openvoxproject.org/openbolt/latest/troubleshooting.html
|
|
12
|
+
OpenBolt Developer Updates
|
|
13
|
+
https://docs.openvoxproject.org/openbolt/latest/developer_updates.html
|
|
14
|
+
OpenBolt Release Notes
|
|
15
|
+
https://docs.openvoxproject.org/openbolt/latest/release_notes.html
|
|
16
|
+
OpenBolt Examples
|
|
17
|
+
https://docs.openvoxproject.org/openbolt/latest/bolt_examples.html
|
|
18
|
+
Ask a question in #sig-openbolt
|
|
19
|
+
https://voxpupuli.org/connect/
|
|
20
|
+
Contribute at
|
|
21
|
+
https://github.com/OpenVoxProject/openbolt
|
data/guides/logging.yaml
CHANGED
data/guides/module.yaml
CHANGED
data/guides/modulepath.yaml
CHANGED
data/guides/project.yaml
CHANGED
|
@@ -17,5 +17,5 @@ guide: |
|
|
|
17
17
|
of a project.
|
|
18
18
|
|
|
19
19
|
documentation:
|
|
20
|
-
- https://
|
|
21
|
-
- https://
|
|
20
|
+
- https://docs.openvoxproject.org/openbolt/latest/projects.html
|
|
21
|
+
- https://docs.openvoxproject.org/openbolt/latest/bolt_project_reference.html
|
data/guides/targets.yaml
CHANGED
data/guides/transports.yaml
CHANGED
|
@@ -4,7 +4,8 @@ guide: |
|
|
|
4
4
|
Bolt uses transports (also known as protocols) to establish a connection
|
|
5
5
|
with a target in order to run actions on the target. The default transport is
|
|
6
6
|
SSH, and you can see available transports along with their configuration
|
|
7
|
-
options and defaults at
|
|
7
|
+
options and defaults at
|
|
8
|
+
https://docs.openvoxproject.org/openbolt/latest/bolt_transports_reference.html.
|
|
8
9
|
|
|
9
10
|
You can specify a transport for a target by prepending '<transport>://' to
|
|
10
11
|
the target's URI. For example, to connect to a target with hostname
|
|
@@ -18,5 +19,5 @@ guide: |
|
|
|
18
19
|
information about the Bolt inventory, run 'bolt guide inventory'.
|
|
19
20
|
|
|
20
21
|
documentation:
|
|
21
|
-
- https://
|
|
22
|
-
-
|
|
22
|
+
- https://docs.openvoxproject.org/openbolt/latest/running_bolt_commands.html#specify-a-transport
|
|
23
|
+
- https://docs.openvoxproject.org/openbolt/latest/inventory_files.html#transport-configuration
|
data/lib/bolt/analytics.rb
CHANGED
|
@@ -82,16 +82,8 @@ module Bolt
|
|
|
82
82
|
if File.exist?(filename)
|
|
83
83
|
Bolt::Util.read_optional_yaml_hash(filename, 'analytics')
|
|
84
84
|
else
|
|
85
|
-
#
|
|
86
|
-
|
|
87
|
-
msg = <<~ANALYTICS
|
|
88
|
-
Bolt collects data about how you use it. You can opt out of providing this data.
|
|
89
|
-
To learn how to disable data collection, or see what data Bolt collects and why,
|
|
90
|
-
see http://pup.pt/bolt-analytics
|
|
91
|
-
ANALYTICS
|
|
92
|
-
Bolt::Logger.warn_once('analytics_opt_out', msg)
|
|
93
|
-
end
|
|
94
|
-
|
|
85
|
+
# Analytics are disabled in this fork, so there is nothing to opt out of.
|
|
86
|
+
# If analytics are revived for Vox, restore an opt-out notice here.
|
|
95
87
|
{}
|
|
96
88
|
end
|
|
97
89
|
end
|
|
@@ -245,7 +245,7 @@ module Bolt
|
|
|
245
245
|
Apply Puppet manifest code on the specified targets.
|
|
246
246
|
|
|
247
247
|
#{colorize(:cyan, 'Documentation')}
|
|
248
|
-
For documentation see
|
|
248
|
+
For documentation see https://docs.openvoxproject.org/openbolt/latest/applying_manifest_blocks.html.
|
|
249
249
|
|
|
250
250
|
#{colorize(:cyan, 'Examples')}
|
|
251
251
|
bolt apply manifest.pp -t target
|
|
@@ -263,7 +263,7 @@ module Bolt
|
|
|
263
263
|
Run a command on the specified targets.
|
|
264
264
|
|
|
265
265
|
#{colorize(:cyan, 'Documentation')}
|
|
266
|
-
For documentation see
|
|
266
|
+
For documentation see https://docs.openvoxproject.org/openbolt/latest/running_bolt_commands.html.
|
|
267
267
|
|
|
268
268
|
#{colorize(:cyan, 'Actions')}
|
|
269
269
|
run Run a command on the specified targets.
|
|
@@ -281,7 +281,7 @@ module Bolt
|
|
|
281
281
|
Run a command on the specified targets.
|
|
282
282
|
|
|
283
283
|
#{colorize(:cyan, 'Documentation')}
|
|
284
|
-
For documentation see
|
|
284
|
+
For documentation see https://docs.openvoxproject.org/openbolt/latest/running_bolt_commands.html.
|
|
285
285
|
|
|
286
286
|
#{colorize(:cyan, 'Examples')}
|
|
287
287
|
bolt command run 'uptime' -t target1,target2
|
|
@@ -298,7 +298,7 @@ module Bolt
|
|
|
298
298
|
Copy files and directories between the controller and targets.
|
|
299
299
|
|
|
300
300
|
#{colorize(:cyan, 'Documentation')}
|
|
301
|
-
For documentation see
|
|
301
|
+
For documentation see https://docs.openvoxproject.org/openbolt/latest/running_bolt_commands.html.
|
|
302
302
|
|
|
303
303
|
#{colorize(:cyan, 'Actions')}
|
|
304
304
|
download Download a file or directory to the controller
|
|
@@ -322,7 +322,7 @@ module Bolt
|
|
|
322
322
|
subdirectory of the project directory.
|
|
323
323
|
|
|
324
324
|
#{colorize(:cyan, 'Documentation')}
|
|
325
|
-
For documentation see
|
|
325
|
+
For documentation see https://docs.openvoxproject.org/openbolt/latest/running_bolt_commands.html.
|
|
326
326
|
|
|
327
327
|
#{colorize(:cyan, 'Examples')}
|
|
328
328
|
bolt file download /etc/ssh_config ssh_config -t all
|
|
@@ -340,7 +340,7 @@ module Bolt
|
|
|
340
340
|
Upload a local file or directory.
|
|
341
341
|
|
|
342
342
|
#{colorize(:cyan, 'Documentation')}
|
|
343
|
-
For documentation see
|
|
343
|
+
For documentation see https://docs.openvoxproject.org/openbolt/latest/running_bolt_commands.html.
|
|
344
344
|
|
|
345
345
|
#{colorize(:cyan, 'Examples')}
|
|
346
346
|
bolt file upload /tmp/source /etc/profile.d/login.sh -t target1
|
|
@@ -445,7 +445,7 @@ module Bolt
|
|
|
445
445
|
Look up a value with Hiera.
|
|
446
446
|
|
|
447
447
|
#{colorize(:cyan, 'Documentation')}
|
|
448
|
-
Learn more about using Hiera with Bolt at https://
|
|
448
|
+
Learn more about using Hiera with Bolt at https://docs.openvoxproject.org/openbolt/latest/hiera.html.
|
|
449
449
|
|
|
450
450
|
#{colorize(:cyan, 'Examples')}
|
|
451
451
|
bolt lookup password --targets servers
|
|
@@ -551,7 +551,7 @@ module Bolt
|
|
|
551
551
|
Convert, create, show, and run Bolt plans.
|
|
552
552
|
|
|
553
553
|
#{colorize(:cyan, 'Documentation')}
|
|
554
|
-
Learn more about Bolt plans at https://
|
|
554
|
+
Learn more about Bolt plans at https://docs.openvoxproject.org/openbolt/latest/plans.html.
|
|
555
555
|
|
|
556
556
|
#{colorize(:cyan, 'Actions')}
|
|
557
557
|
convert Convert a YAML plan to a Bolt plan
|
|
@@ -576,7 +576,7 @@ module Bolt
|
|
|
576
576
|
functionality. Note that the converted plan is not written to a file.
|
|
577
577
|
|
|
578
578
|
#{colorize(:cyan, 'Documentation')}
|
|
579
|
-
Learn more about Bolt plans at https://
|
|
579
|
+
Learn more about Bolt plans at https://docs.openvoxproject.org/openbolt/latest/plans.html.
|
|
580
580
|
|
|
581
581
|
#{colorize(:cyan, 'Examples')}
|
|
582
582
|
bolt plan convert myproject::myplan
|
|
@@ -594,7 +594,7 @@ module Bolt
|
|
|
594
594
|
Create a new plan in the current project.
|
|
595
595
|
|
|
596
596
|
#{colorize(:cyan, 'Documentation')}
|
|
597
|
-
Learn more about Bolt plans at https://
|
|
597
|
+
Learn more about Bolt plans at https://docs.openvoxproject.org/openbolt/latest/plans.html.
|
|
598
598
|
|
|
599
599
|
#{colorize(:cyan, 'Examples')}
|
|
600
600
|
bolt plan new myproject::myplan
|
|
@@ -611,7 +611,7 @@ module Bolt
|
|
|
611
611
|
Run a plan on the specified targets.
|
|
612
612
|
|
|
613
613
|
#{colorize(:cyan, 'Documentation')}
|
|
614
|
-
Learn more about Bolt plans at https://
|
|
614
|
+
Learn more about Bolt plans at https://docs.openvoxproject.org/openbolt/latest/plans.html.
|
|
615
615
|
|
|
616
616
|
#{colorize(:cyan, 'Examples')}
|
|
617
617
|
bolt plan run canary --targets target1,target2 command=hostname
|
|
@@ -634,7 +634,7 @@ module Bolt
|
|
|
634
634
|
the plan, including a list of available parameters.
|
|
635
635
|
|
|
636
636
|
#{colorize(:cyan, 'Documentation')}
|
|
637
|
-
Learn more about Bolt plans at https://
|
|
637
|
+
Learn more about Bolt plans at https://docs.openvoxproject.org/openbolt/latest/plans.html.
|
|
638
638
|
|
|
639
639
|
#{colorize(:cyan, 'Examples')}
|
|
640
640
|
Display a list of available plans
|
|
@@ -654,7 +654,7 @@ module Bolt
|
|
|
654
654
|
Show available plugins.
|
|
655
655
|
|
|
656
656
|
#{colorize(:cyan, 'Documentation')}
|
|
657
|
-
Learn more about Bolt plugins at https://
|
|
657
|
+
Learn more about Bolt plugins at https://docs.openvoxproject.org/openbolt/latest/using_plugins.html.
|
|
658
658
|
|
|
659
659
|
#{colorize(:cyan, 'Actions')}
|
|
660
660
|
show Show available plugins
|
|
@@ -671,7 +671,7 @@ module Bolt
|
|
|
671
671
|
Show available plugins.
|
|
672
672
|
|
|
673
673
|
#{colorize(:cyan, 'Documentation')}
|
|
674
|
-
Learn more about Bolt plugins at https://
|
|
674
|
+
Learn more about Bolt plugins at https://docs.openvoxproject.org/openbolt/latest/using_plugins.html.
|
|
675
675
|
HELP
|
|
676
676
|
|
|
677
677
|
POLICY_HELP = <<~HELP
|
|
@@ -791,7 +791,7 @@ module Bolt
|
|
|
791
791
|
Run a script on the specified targets.
|
|
792
792
|
|
|
793
793
|
#{colorize(:cyan, 'Documentation')}
|
|
794
|
-
Learn more about running scripts at https://
|
|
794
|
+
Learn more about running scripts at https://docs.openvoxproject.org/openbolt/latest/running_bolt_commands.html.
|
|
795
795
|
|
|
796
796
|
#{colorize(:cyan, 'Actions')}
|
|
797
797
|
run Run a script on the specified targets.
|
|
@@ -813,7 +813,7 @@ module Bolt
|
|
|
813
813
|
be quoted.
|
|
814
814
|
|
|
815
815
|
#{colorize(:cyan, 'Documentation')}
|
|
816
|
-
Learn more about running scripts at https://
|
|
816
|
+
Learn more about running scripts at https://docs.openvoxproject.org/openbolt/latest/running_bolt_commands.html.
|
|
817
817
|
|
|
818
818
|
#{colorize(:cyan, 'Examples')}
|
|
819
819
|
bolt script run myscript.sh 'echo hello' --targets target1,target2
|
|
@@ -830,7 +830,7 @@ module Bolt
|
|
|
830
830
|
Create encryption keys and encrypt and decrypt values.
|
|
831
831
|
|
|
832
832
|
#{colorize(:cyan, 'Documentation')}
|
|
833
|
-
Learn more about secrets plugins at
|
|
833
|
+
Learn more about secrets plugins at https://docs.openvoxproject.org/openbolt/latest/using_plugins.html.
|
|
834
834
|
|
|
835
835
|
#{colorize(:cyan, 'Actions')}
|
|
836
836
|
createkeys Create new encryption keys
|
|
@@ -849,7 +849,7 @@ module Bolt
|
|
|
849
849
|
Create new encryption keys.
|
|
850
850
|
|
|
851
851
|
#{colorize(:cyan, 'Documentation')}
|
|
852
|
-
Learn more about secrets plugins at
|
|
852
|
+
Learn more about secrets plugins at https://docs.openvoxproject.org/openbolt/latest/using_plugins.html.
|
|
853
853
|
HELP
|
|
854
854
|
|
|
855
855
|
SECRET_DECRYPT_HELP = <<~HELP
|
|
@@ -863,7 +863,7 @@ module Bolt
|
|
|
863
863
|
Decrypt a value.
|
|
864
864
|
|
|
865
865
|
#{colorize(:cyan, 'Documentation')}
|
|
866
|
-
Learn more about secrets plugins at
|
|
866
|
+
Learn more about secrets plugins at https://docs.openvoxproject.org/openbolt/latest/using_plugins.html.
|
|
867
867
|
HELP
|
|
868
868
|
|
|
869
869
|
SECRET_ENCRYPT_HELP = <<~HELP
|
|
@@ -877,7 +877,7 @@ module Bolt
|
|
|
877
877
|
Encrypt a value.
|
|
878
878
|
|
|
879
879
|
#{colorize(:cyan, 'Documentation')}
|
|
880
|
-
Learn more about secrets plugins at
|
|
880
|
+
Learn more about secrets plugins at https://docs.openvoxproject.org/openbolt/latest/using_plugins.html.
|
|
881
881
|
HELP
|
|
882
882
|
|
|
883
883
|
TASK_HELP = <<~HELP
|
|
@@ -891,7 +891,7 @@ module Bolt
|
|
|
891
891
|
Show and run Bolt tasks.
|
|
892
892
|
|
|
893
893
|
#{colorize(:cyan, 'Documentation')}
|
|
894
|
-
Learn more about Bolt tasks at
|
|
894
|
+
Learn more about Bolt tasks at https://docs.openvoxproject.org/openbolt/latest/tasks.html.
|
|
895
895
|
|
|
896
896
|
#{colorize(:cyan, 'Actions')}
|
|
897
897
|
run Run a Bolt task
|
|
@@ -912,7 +912,7 @@ module Bolt
|
|
|
912
912
|
Parameters take the form parameter=value.
|
|
913
913
|
|
|
914
914
|
#{colorize(:cyan, 'Documentation')}
|
|
915
|
-
Learn more about Bolt tasks at
|
|
915
|
+
Learn more about Bolt tasks at https://docs.openvoxproject.org/openbolt/latest/tasks.html.
|
|
916
916
|
|
|
917
917
|
#{colorize(:cyan, 'Examples')}
|
|
918
918
|
bolt task run package --targets target1,target2 action=status name=bash
|
|
@@ -935,7 +935,7 @@ module Bolt
|
|
|
935
935
|
the task, including a list of available parameters.
|
|
936
936
|
|
|
937
937
|
#{colorize(:cyan, 'Documentation')}
|
|
938
|
-
Learn more about Bolt tasks at
|
|
938
|
+
Learn more about Bolt tasks at https://docs.openvoxproject.org/openbolt/latest/tasks.html.
|
|
939
939
|
|
|
940
940
|
#{colorize(:cyan, 'Examples')}
|
|
941
941
|
Display a list of available tasks
|
|
@@ -1183,7 +1183,7 @@ module Bolt
|
|
|
1183
1183
|
if File.exist?(path) || Pathname.new(path).absolute? ||
|
|
1184
1184
|
!%w[scripts files].include?(path.split(File::SEPARATOR)[1])
|
|
1185
1185
|
raise Bolt::CLIError, "The script must be a detailed Puppet file reference, " \
|
|
1186
|
-
"for example 'mymodule/scripts/myscript.sh'. See
|
|
1186
|
+
"for example 'mymodule/scripts/myscript.sh'. See https://docs.openvoxproject.org/openbolt/latest/bolt_running_scripts.html for " \
|
|
1187
1187
|
"more information on detailed Puppet file references."
|
|
1188
1188
|
end
|
|
1189
1189
|
|
data/lib/bolt/config/options.rb
CHANGED
|
@@ -359,7 +359,7 @@ module Bolt
|
|
|
359
359
|
description: "A list of module dependencies for the project. Each dependency is a map of data specifying " \
|
|
360
360
|
"the module to install. To install the project's module dependencies, run the `bolt module " \
|
|
361
361
|
"install` command. For more information about specifying modules, see [the " \
|
|
362
|
-
"documentation](https://
|
|
362
|
+
"documentation](https://docs.openvoxproject.org/openbolt/latest/bolt_installing_modules.html#manually-specify-modules-in-a-bolt-project).",
|
|
363
363
|
type: Array,
|
|
364
364
|
items: {
|
|
365
365
|
type: [Hash, String],
|
|
@@ -215,20 +215,6 @@ module Bolt
|
|
|
215
215
|
_example: { "rb" => ["/usr/bin/ruby", "-r", "puppet"],
|
|
216
216
|
".py" => "/usr/bin/python3" }
|
|
217
217
|
},
|
|
218
|
-
"job-poll-interval" => {
|
|
219
|
-
type: Integer,
|
|
220
|
-
description: "The interval, in seconds, to poll orchestrator for job status.",
|
|
221
|
-
minimum: 1,
|
|
222
|
-
_plugin: true,
|
|
223
|
-
_example: 2
|
|
224
|
-
},
|
|
225
|
-
"job-poll-timeout" => {
|
|
226
|
-
type: Integer,
|
|
227
|
-
description: "The time, in seconds, to wait for orchestrator job status.",
|
|
228
|
-
minimum: 1,
|
|
229
|
-
_plugin: true,
|
|
230
|
-
_example: 2000
|
|
231
|
-
},
|
|
232
218
|
"kex-algorithms" => {
|
|
233
219
|
type: Array,
|
|
234
220
|
description: "A list of key exchange algorithms to use when establishing a connection " \
|
|
@@ -346,13 +332,6 @@ module Bolt
|
|
|
346
332
|
_default: "production",
|
|
347
333
|
_example: "staging"
|
|
348
334
|
},
|
|
349
|
-
"read-timeout" => {
|
|
350
|
-
type: Integer,
|
|
351
|
-
description: "How long to wait in seconds when making requests to the Orchestrator.",
|
|
352
|
-
minimum: 1,
|
|
353
|
-
_plugin: true,
|
|
354
|
-
_example: 15
|
|
355
|
-
},
|
|
356
335
|
"realm" => {
|
|
357
336
|
type: String,
|
|
358
337
|
description: "The Kerberos realm (Active Directory domain) to authenticate against.",
|
|
@@ -486,13 +465,6 @@ module Bolt
|
|
|
486
465
|
_plugin: true,
|
|
487
466
|
_example: "p@$$w0rd!"
|
|
488
467
|
},
|
|
489
|
-
"task-environment" => {
|
|
490
|
-
type: String,
|
|
491
|
-
description: "The environment the orchestrator loads task code from.",
|
|
492
|
-
_plugin: true,
|
|
493
|
-
_default: "production",
|
|
494
|
-
_example: "development"
|
|
495
|
-
},
|
|
496
468
|
"task-timeout" => {
|
|
497
469
|
type: Integer,
|
|
498
470
|
description: "How long to wait in seconds for tasks to complete when using the Choria transport.",
|
|
@@ -507,12 +479,6 @@ module Bolt
|
|
|
507
479
|
_plugin: true,
|
|
508
480
|
_example: "/tmp/bolt"
|
|
509
481
|
},
|
|
510
|
-
"token-file" => {
|
|
511
|
-
type: String,
|
|
512
|
-
description: "The path to the token file.",
|
|
513
|
-
_plugin: true,
|
|
514
|
-
_example: "~/.puppetlabs/puppet/token.pem"
|
|
515
|
-
},
|
|
516
482
|
"tty" => {
|
|
517
483
|
type: [TrueClass, FalseClass],
|
|
518
484
|
description: "Whether to enable tty on exec commands.",
|
|
@@ -84,7 +84,7 @@ module Bolt
|
|
|
84
84
|
"plugin_hooks" => {
|
|
85
85
|
description: "Configuration for the Puppet library plugin used to install the " \
|
|
86
86
|
"Puppet agent on the target. For more information, see " \
|
|
87
|
-
"https://
|
|
87
|
+
"https://docs.openvoxproject.org/openbolt/latest/writing_plugins.html",
|
|
88
88
|
type: Hash,
|
|
89
89
|
properties: {
|
|
90
90
|
"puppet_library" => {
|
|
@@ -179,7 +179,7 @@ module Bolt
|
|
|
179
179
|
'dotted_fact_name',
|
|
180
180
|
"Target '#{safe_name}' includes dotted fact names: '#{dotted.join("', '")}'. Dotted fact " \
|
|
181
181
|
"names are deprecated and Bolt does not automatically convert facts with dotted names to " \
|
|
182
|
-
"structured facts. For more information, see https://
|
|
182
|
+
"structured facts. For more information, see https://docs.openvoxproject.org/openbolt/latest/developer_updates.html#deprecating-dotted-fact-names"
|
|
183
183
|
)
|
|
184
184
|
end
|
|
185
185
|
end
|
|
@@ -72,7 +72,7 @@ module Bolt
|
|
|
72
72
|
File.open(path, 'w') do |file|
|
|
73
73
|
if moduledir
|
|
74
74
|
file.puts "# This Puppetfile is managed by Bolt. Do not edit."
|
|
75
|
-
file.puts "# For more information, see https://
|
|
75
|
+
file.puts "# For more information, see https://docs.openvoxproject.org/openbolt/latest/modules.html"
|
|
76
76
|
file.puts
|
|
77
77
|
file.puts "# The following directive installs modules to the managed moduledir."
|
|
78
78
|
file.puts "moduledir '#{moduledir.basename}'"
|
|
@@ -57,7 +57,7 @@ module Bolt
|
|
|
57
57
|
Invalid module specification:
|
|
58
58
|
#{hash.to_yaml.lines.drop(1).join.chomp}
|
|
59
59
|
|
|
60
|
-
To read more about specifying modules, see https://
|
|
60
|
+
To read more about specifying modules, see https://docs.openvoxproject.org/openbolt/latest/bolt_installing_modules.html#manually-specify-modules-in-a-bolt-project
|
|
61
61
|
MESSAGE
|
|
62
62
|
end
|
|
63
63
|
|
data/lib/bolt/outputter/human.rb
CHANGED
|
@@ -51,7 +51,6 @@ module Bolt
|
|
|
51
51
|
|
|
52
52
|
@spinning = false
|
|
53
53
|
@spin_thread.terminate
|
|
54
|
-
@stream.print("\b")
|
|
55
54
|
end
|
|
56
55
|
|
|
57
56
|
def remove_trail(string)
|
|
@@ -645,7 +644,7 @@ module Bolt
|
|
|
645
644
|
info << indent(2, "#{modulepath.join(File::PATH_SEPARATOR)}\n\n")
|
|
646
645
|
|
|
647
646
|
info << colorize(:cyan, "Additional information\n")
|
|
648
|
-
info << indent(2, "For more information about using plugins see https://
|
|
647
|
+
info << indent(2, "For more information about using plugins see https://docs.openvoxproject.org/openbolt/latest/using_plugins.html")
|
|
649
648
|
|
|
650
649
|
@stream.puts info.chomp
|
|
651
650
|
end
|
data/lib/bolt/plan_creator.rb
CHANGED
|
@@ -113,7 +113,7 @@ module Bolt
|
|
|
113
113
|
private_class_method def self.yaml_plan(plan_name)
|
|
114
114
|
<<~YAML
|
|
115
115
|
# This is the structure of a simple plan. To learn more about writing
|
|
116
|
-
# YAML plans, see the documentation:
|
|
116
|
+
# YAML plans, see the documentation: https://docs.openvoxproject.org/openbolt/latest/writing_yaml_plans.html
|
|
117
117
|
|
|
118
118
|
# The description sets the description of the plan that will appear
|
|
119
119
|
# in 'bolt plan show' output.
|
|
@@ -146,7 +146,7 @@ module Bolt
|
|
|
146
146
|
private_class_method def self.yaml_script_plan(script)
|
|
147
147
|
<<~YAML
|
|
148
148
|
# This is the structure of a simple plan. To learn more about writing
|
|
149
|
-
# YAML plans, see the documentation:
|
|
149
|
+
# YAML plans, see the documentation: https://docs.openvoxproject.org/openbolt/latest/writing_yaml_plans.html
|
|
150
150
|
|
|
151
151
|
# The description sets the description of the plan that will appear
|
|
152
152
|
# in 'bolt plan show' output.
|
|
@@ -177,7 +177,7 @@ module Bolt
|
|
|
177
177
|
private_class_method def self.puppet_plan(plan_name)
|
|
178
178
|
<<~PUPPET
|
|
179
179
|
# This is the structure of a simple plan. To learn more about writing
|
|
180
|
-
# Puppet plans, see the documentation:
|
|
180
|
+
# Puppet plans, see the documentation: https://docs.openvoxproject.org/openbolt/latest/writing_plans.html
|
|
181
181
|
|
|
182
182
|
# The summary sets the description of the plan that will appear
|
|
183
183
|
# in 'bolt plan show' output. Bolt uses puppet-strings to parse the
|
|
@@ -202,7 +202,7 @@ module Bolt
|
|
|
202
202
|
private_class_method def self.puppet_script_plan(plan_name, script)
|
|
203
203
|
<<~PUPPET
|
|
204
204
|
# This is the structure of a simple plan. To learn more about writing
|
|
205
|
-
# Puppet plans, see the documentation:
|
|
205
|
+
# Puppet plans, see the documentation: https://docs.openvoxproject.org/openbolt/latest/writing_plans.html
|
|
206
206
|
|
|
207
207
|
# The summary sets the description of the plan that will appear
|
|
208
208
|
# in 'bolt plan show' output. Bolt uses puppet-strings to parse the
|
|
@@ -35,7 +35,7 @@ module Bolt
|
|
|
35
35
|
rescue StandardError => e
|
|
36
36
|
raise Bolt::FileError.new(
|
|
37
37
|
"Unable to write to #{inventory_file}: #{e.message}. See " \
|
|
38
|
-
"
|
|
38
|
+
"https://docs.openvoxproject.org/openbolt/latest/inventory_files.html to manually update.",
|
|
39
39
|
inventory_file
|
|
40
40
|
)
|
|
41
41
|
end
|
|
@@ -23,7 +23,7 @@ module Bolt
|
|
|
23
23
|
@outputter.print_action_step(
|
|
24
24
|
"Project has a non-default configured modulepath, unable to automatically " \
|
|
25
25
|
"migrate project modules. To migrate project modules manually, see " \
|
|
26
|
-
"
|
|
26
|
+
"https://docs.openvoxproject.org/openbolt/latest/modules.html"
|
|
27
27
|
)
|
|
28
28
|
true
|
|
29
29
|
# Migrate modules from Puppetfile
|
data/lib/bolt/project_manager.rb
CHANGED
|
@@ -8,7 +8,7 @@ module Bolt
|
|
|
8
8
|
class ProjectManager
|
|
9
9
|
INVENTORY_TEMPLATE = <<~INVENTORY
|
|
10
10
|
# This is an example inventory.yaml
|
|
11
|
-
# To read more about inventory files, see https://
|
|
11
|
+
# To read more about inventory files, see https://docs.openvoxproject.org/openbolt/latest/inventory_files.html
|
|
12
12
|
#
|
|
13
13
|
# groups:
|
|
14
14
|
# - name: linux
|
data/lib/bolt/shell/bash.rb
CHANGED
|
@@ -484,7 +484,8 @@ module Bolt
|
|
|
484
484
|
@logger.trace { "Command `#{command_str}` returned successfully" }
|
|
485
485
|
when 126
|
|
486
486
|
msg = "\n\nThis might be caused by the default tmpdir being mounted " \
|
|
487
|
-
"using 'noexec'. See
|
|
487
|
+
"using 'noexec'. See https://docs.openvoxproject.org/openbolt/latest/troubleshooting.html" \
|
|
488
|
+
"#my-task-fails-with-a-permission-denied-error-noexec-issue for details and workarounds."
|
|
488
489
|
result_output.stderr << msg
|
|
489
490
|
result_output.merged_output << msg
|
|
490
491
|
@logger.trace { "Command #{command_str} failed with exit code #{result_output.exit_code}" }
|
|
@@ -139,7 +139,8 @@ module Bolt
|
|
|
139
139
|
"Host key verification failed for #{target.safe_name}: #{e.message}",
|
|
140
140
|
'HOST_KEY_ERROR'
|
|
141
141
|
)
|
|
142
|
-
|
|
142
|
+
# Socket.tcp raises IO::TimeoutError for a connect timeout since Ruby 4.0
|
|
143
|
+
rescue Net::SSH::ConnectionTimeout, IO::TimeoutError
|
|
143
144
|
raise Bolt::Node::ConnectError.new(
|
|
144
145
|
"Timeout after #{target.options['connect-timeout']} seconds connecting to #{target.safe_name}",
|
|
145
146
|
'CONNECT_ERROR'
|
data/lib/bolt/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: openbolt
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 9.0.0.pre.rc1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenVox Project
|
|
@@ -37,6 +37,20 @@ dependencies:
|
|
|
37
37
|
- - "~>"
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
39
|
version: '1'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: bindata
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "<"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '3.0'
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "<"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '3.0'
|
|
40
54
|
- !ruby/object:Gem::Dependency
|
|
41
55
|
name: CFPropertyList
|
|
42
56
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -247,14 +261,14 @@ dependencies:
|
|
|
247
261
|
requirements:
|
|
248
262
|
- - "~>"
|
|
249
263
|
- !ruby/object:Gem::Version
|
|
250
|
-
version: '
|
|
264
|
+
version: '9.0'
|
|
251
265
|
type: :runtime
|
|
252
266
|
prerelease: false
|
|
253
267
|
version_requirements: !ruby/object:Gem::Requirement
|
|
254
268
|
requirements:
|
|
255
269
|
- - "~>"
|
|
256
270
|
- !ruby/object:Gem::Version
|
|
257
|
-
version: '
|
|
271
|
+
version: '9.0'
|
|
258
272
|
- !ruby/object:Gem::Dependency
|
|
259
273
|
name: openvox-strings
|
|
260
274
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -742,7 +756,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
742
756
|
- !ruby/object:Gem::Version
|
|
743
757
|
version: '0'
|
|
744
758
|
requirements: []
|
|
745
|
-
rubygems_version: 4.0.
|
|
759
|
+
rubygems_version: 4.0.16
|
|
746
760
|
specification_version: 4
|
|
747
761
|
summary: Execute commands remotely over SSH and WinRM
|
|
748
762
|
test_files: []
|