rcmd 1.5.6

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.
Files changed (55) hide show
  1. checksums.yaml +7 -0
  2. data/.bundle/config +1 -0
  3. data/.gitignore +1 -0
  4. data/.rspec_status +9 -0
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/Gemfile +4 -0
  8. data/Gemfile.lock +55 -0
  9. data/README.md +84 -0
  10. data/Rakefile +37 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/doc/rdocs/OptionParser.html +124 -0
  14. data/doc/rdocs/README_md.html +212 -0
  15. data/doc/rdocs/Rcmd.html +362 -0
  16. data/doc/rdocs/created.rid +5 -0
  17. data/doc/rdocs/images/add.png +0 -0
  18. data/doc/rdocs/images/arrow_up.png +0 -0
  19. data/doc/rdocs/images/brick.png +0 -0
  20. data/doc/rdocs/images/brick_link.png +0 -0
  21. data/doc/rdocs/images/bug.png +0 -0
  22. data/doc/rdocs/images/bullet_black.png +0 -0
  23. data/doc/rdocs/images/bullet_toggle_minus.png +0 -0
  24. data/doc/rdocs/images/bullet_toggle_plus.png +0 -0
  25. data/doc/rdocs/images/date.png +0 -0
  26. data/doc/rdocs/images/delete.png +0 -0
  27. data/doc/rdocs/images/find.png +0 -0
  28. data/doc/rdocs/images/loadingAnimation.gif +0 -0
  29. data/doc/rdocs/images/macFFBgHack.png +0 -0
  30. data/doc/rdocs/images/package.png +0 -0
  31. data/doc/rdocs/images/page_green.png +0 -0
  32. data/doc/rdocs/images/page_white_text.png +0 -0
  33. data/doc/rdocs/images/page_white_width.png +0 -0
  34. data/doc/rdocs/images/plugin.png +0 -0
  35. data/doc/rdocs/images/ruby.png +0 -0
  36. data/doc/rdocs/images/tag_blue.png +0 -0
  37. data/doc/rdocs/images/tag_green.png +0 -0
  38. data/doc/rdocs/images/transparent.png +0 -0
  39. data/doc/rdocs/images/wrench.png +0 -0
  40. data/doc/rdocs/images/wrench_orange.png +0 -0
  41. data/doc/rdocs/images/zoom.png +0 -0
  42. data/doc/rdocs/index.html +191 -0
  43. data/doc/rdocs/js/darkfish.js +155 -0
  44. data/doc/rdocs/js/jquery.js +4 -0
  45. data/doc/rdocs/js/navigation.js +142 -0
  46. data/doc/rdocs/js/search.js +94 -0
  47. data/doc/rdocs/js/search_index.js +1 -0
  48. data/doc/rdocs/js/searcher.js +228 -0
  49. data/doc/rdocs/rdoc.css +595 -0
  50. data/doc/rdocs/table_of_contents.html +71 -0
  51. data/exe/rcmd +73 -0
  52. data/lib/rcmd.rb +123 -0
  53. data/lib/rcmd/version.rb +4 -0
  54. data/rcmd.gemspec +46 -0
  55. metadata +204 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1b72a21c020c10acb74666026f1e467897d46c73
4
+ data.tar.gz: 429163584d6ac0aab5b86ac47be0c1b8f3d57e6e
5
+ SHA512:
6
+ metadata.gz: 931dc47e776a37e65df2a2e41c491e576a5e4772825a8656aaa00d20989fef2e0e6ac59c763a490925875e309585e77014ab9750fb8e30358fa5f83efad49b8b
7
+ data.tar.gz: f051f803433b11282bf47cfaac31278b9c7058e3046546dea76bac599c227d8bedde48f4a36c3e99055a69a90cab968c9a0a0da0f2705e26b9ffdb1282989166
@@ -0,0 +1 @@
1
+ ---
@@ -0,0 +1 @@
1
+ pkg/*
@@ -0,0 +1,9 @@
1
+ example_id | status | run_time |
2
+ ------------------------ | ------ | --------------- |
3
+ ./spec/rcmd_spec.rb[1:1] | passed | 0.00046 seconds |
4
+ ./spec/rcmd_spec.rb[1:2] | passed | 0.00089 seconds |
5
+ ./spec/rcmd_spec.rb[1:3] | passed | 0.00056 seconds |
6
+ ./spec/rcmd_spec.rb[1:4] | passed | 0.00009 seconds |
7
+ ./spec/rcmd_spec.rb[1:5] | passed | 0.00007 seconds |
8
+ ./spec/rcmd_spec.rb[1:6] | passed | 0.0008 seconds |
9
+ ./spec/rcmd_spec.rb[1:7] | passed | 0.0001 seconds |
@@ -0,0 +1 @@
1
+ rcmd
@@ -0,0 +1 @@
1
+ ruby-2.0.0-p648
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in rcmd.gemspec
4
+ gemspec
@@ -0,0 +1,55 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rcmd (1.5.6)
5
+ io-console
6
+ net-ssh
7
+ thread
8
+ tty-prompt
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ diff-lcs (1.3)
14
+ equatable (0.5.0)
15
+ io-console (0.4.2)
16
+ necromancer (0.4.0)
17
+ net-ssh (4.1.0)
18
+ pastel (0.7.1)
19
+ equatable (~> 0.5.0)
20
+ tty-color (~> 0.4.0)
21
+ rake (10.5.0)
22
+ rspec (3.6.0)
23
+ rspec-core (~> 3.6.0)
24
+ rspec-expectations (~> 3.6.0)
25
+ rspec-mocks (~> 3.6.0)
26
+ rspec-core (3.6.0)
27
+ rspec-support (~> 3.6.0)
28
+ rspec-expectations (3.6.0)
29
+ diff-lcs (>= 1.2.0, < 2.0)
30
+ rspec-support (~> 3.6.0)
31
+ rspec-mocks (3.6.0)
32
+ diff-lcs (>= 1.2.0, < 2.0)
33
+ rspec-support (~> 3.6.0)
34
+ rspec-support (3.6.0)
35
+ thread (0.2.2)
36
+ tty-color (0.4.2)
37
+ tty-cursor (0.4.0)
38
+ tty-prompt (0.12.0)
39
+ necromancer (~> 0.4.0)
40
+ pastel (~> 0.7.0)
41
+ tty-cursor (~> 0.4.0)
42
+ wisper (~> 1.6.1)
43
+ wisper (1.6.1)
44
+
45
+ PLATFORMS
46
+ ruby
47
+
48
+ DEPENDENCIES
49
+ bundler (~> 1.15)
50
+ rake (~> 10.0)
51
+ rcmd!
52
+ rspec (~> 3.0, >= 2.0.0)
53
+
54
+ BUNDLED WITH
55
+ 1.15.1
@@ -0,0 +1,84 @@
1
+ # Description
2
+
3
+ rcmd (remote command) is a command line utility written in Ruby for executing the same command on
4
+ multiple systems through ssh. This is done by assigning a host to a
5
+ thread and creating the ssh sessions in those threads.
6
+
7
+ ## Features
8
+
9
+ - Command line switch for setting number of threads to be used at a time. (Default is 4)
10
+ - A comma seperated list of hosts piped from another command can be used as the node list.
11
+ - Username can be specified. (Default is root. Requires valid ssh-key in ~/.ssh)
12
+ - Output shows which host the output is from
13
+ - Stdout can be suppressed, only allowing for stderr to be shown
14
+
15
+ ## Installation
16
+ rcmd is available as a gem and kan be installed with `gem install rcmd`
17
+
18
+
19
+ # Usage Examples
20
+
21
+ ## Help Screen
22
+
23
+ ```bash
24
+ daibhidh@darkstar:~/$ rcmd --help
25
+ Usage: rcmd [options]
26
+ -u, --username username Username for SSH connections
27
+ -n, --nodes x,y,z Comma seperated list of nodes. use '-' for a space seperated list piped from another command
28
+ -t, --threads threads Number of threads to run
29
+ -c, --command <command> Quoted string containing the command to be run
30
+ -q, --quiet Suppress stdout of commands. stderr will still be displayed
31
+ -v, --version Print what version of the command is in use
32
+ ```
33
+
34
+ ## Specifying nodes manually
35
+ Specifying a comma seperated list of hosts and timing the total execution time.
36
+ ```bash
37
+ daibhidh@darkstar:~/$ time rcmd -n node1,node2,node3,node4 -c 'cat /etc/redhat-release'
38
+ node2 :: Red Hat Enterprise Linux ComputeNode release 6.8 (Santiago)
39
+ node1 :: Red Hat Enterprise Linux ComputeNode release 6.8 (Santiago)
40
+ node4 :: Red Hat Enterprise Linux ComputeNode release 6.9 (Santiago)
41
+ node3 :: Red Hat Enterprise Linux ComputeNode release 6.9 (Santiago)
42
+
43
+
44
+ real 0m2.749s
45
+ user 0m0.272s
46
+ sys 0m0.050s
47
+ ```
48
+
49
+ ## Piping list of nodes
50
+ Using the hammer cli to get a list of hosts from a RedHat Satellite and providing it to rcmd as the node list.
51
+ ```bash
52
+ daibhidh@darkstar:~/$ hammer --output base host list --organization org | awk '/Name:/ {print $2}' | rcmd -n - -c 'cat /etc/redhat-release'
53
+ node1.example.com :: Red Hat Enterprise Linux ComputeNode release 6.8 (Santiago)
54
+ node3.example.com :: Red Hat Enterprise Linux ComputeNode release 6.9 (Santiago)
55
+ node2.example.com :: Red Hat Enterprise Linux ComputeNode release 6.8 (Santiago)
56
+ node4.example.com :: Red Hat Enterprise Linux ComputeNode release 6.9 (Santiago)
57
+ ```
58
+
59
+ ## Using a database for obtaining nodes
60
+ TODO
61
+
62
+ # Development
63
+
64
+ If you are wanting to modify the code by all means do so. If you clone this repository you can then run `bundle install` to install the dependencies needed. Tests are performed with *rspec* and can be run with *rake*.
65
+
66
+ Available Rake tasks are:
67
+
68
+ ```bash
69
+ rake build # Build rcmd-1.5.5.gem into the pkg directory
70
+ rake clean # Remove any temporary products
71
+ rake clobber # Remove any generated files
72
+ rake clobber_rdoc # Remove RDoc HTML files
73
+ rake console # Open an IRB console with this gem loaded
74
+ rake install # Build and install rcmd-1.5.5.gem into system gems
75
+ rake install:local # Build and install rcmd-1.5.5.gem into system gems without network access
76
+ rake rdoc # Build RDoc HTML files
77
+ rake reinstall # Remove, build, and install gem
78
+ rake release[remote] # Create tag v1.5.5 and build and push rcmd-1.5.5.gem to Rubygems
79
+ rake rerdoc # Rebuild RDoc HTML files
80
+ rake spec # Run RSpec code examples
81
+ ```
82
+
83
+
84
+
@@ -0,0 +1,37 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+ require 'rdoc/task'
4
+
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+ task :default => :spec
8
+
9
+ desc "Open an IRB console with this gem loaded"
10
+ task :console do
11
+ require 'irb'
12
+ require 'irb/completion'
13
+ require 'rcmd' # You know what to do.
14
+ ARGV.clear
15
+ IRB.start
16
+ end
17
+
18
+ desc "Remove, build, and install gem"
19
+ task :reinstall do
20
+ puts "Uninstalling #{`gem list rcmd`}"
21
+ `gem uninstall -x rcmd`
22
+ Rake::Task["install"].reenable
23
+ Rake::Task["install"].invoke
24
+ end
25
+
26
+ desc 'generate API documentation to doc/rdocs/index.html'
27
+
28
+ Rake::RDocTask.new do |rd|
29
+ rd.rdoc_dir = 'doc/rdocs'
30
+ rd.main = 'README.md'
31
+ rd.rdoc_files.include 'README.md', "lib/**/*\.rb", "exe/**/*"
32
+
33
+ rd.options << '--inline-source'
34
+ rd.options << '--line-numbers'
35
+ rd.options << '--all'
36
+ end
37
+
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "rcmd"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,124 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
+
7
+ <title>module OptionParser - RDoc Documentation</title>
8
+
9
+ <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet">
10
+
11
+ <script type="text/javascript">
12
+ var rdoc_rel_prefix = "./";
13
+ </script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="./js/jquery.js"></script>
16
+ <script type="text/javascript" charset="utf-8" src="./js/navigation.js"></script>
17
+ <script type="text/javascript" charset="utf-8" src="./js/search_index.js"></script>
18
+ <script type="text/javascript" charset="utf-8" src="./js/search.js"></script>
19
+ <script type="text/javascript" charset="utf-8" src="./js/searcher.js"></script>
20
+ <script type="text/javascript" charset="utf-8" src="./js/darkfish.js"></script>
21
+
22
+
23
+ <body id="top" class="module">
24
+ <nav id="metadata">
25
+ <nav id="home-section" class="section">
26
+ <h3 class="section-header">
27
+ <a href="./index.html">Home</a>
28
+ <a href="./table_of_contents.html#classes">Classes</a>
29
+ <a href="./table_of_contents.html#methods">Methods</a>
30
+ </h3>
31
+ </nav>
32
+
33
+
34
+ <nav id="search-section" class="section project-section" class="initially-hidden">
35
+ <form action="#" method="get" accept-charset="utf-8">
36
+ <h3 class="section-header">
37
+ <input type="text" name="search" placeholder="Search" id="search-field"
38
+ title="Type to search, Up and Down to navigate, Enter to load">
39
+ </h3>
40
+ </form>
41
+
42
+ <ul id="search-results" class="initially-hidden"></ul>
43
+ </nav>
44
+
45
+
46
+
47
+
48
+ <div id="file-metadata">
49
+ <nav id="file-list-section" class="section">
50
+ <h3 class="section-header">Defined In</h3>
51
+ <ul>
52
+ <li>exe/rcmd
53
+ </ul>
54
+ </nav>
55
+
56
+
57
+ </div>
58
+
59
+ <div id="class-metadata">
60
+
61
+
62
+
63
+
64
+
65
+ </div>
66
+
67
+ <div id="project-metadata">
68
+ <nav id="fileindex-section" class="section project-section">
69
+ <h3 class="section-header">Pages</h3>
70
+
71
+ <ul>
72
+
73
+ <li class="file"><a href="./README_md.html">README</a>
74
+
75
+ </ul>
76
+ </nav>
77
+
78
+ <nav id="classindex-section" class="section project-section">
79
+ <h3 class="section-header">Class and Module Index</h3>
80
+
81
+ <ul class="link-list">
82
+
83
+ <li><a href="./OptionParser.html">OptionParser</a>
84
+
85
+ <li><a href="./Rcmd.html">Rcmd</a>
86
+
87
+ </ul>
88
+ </nav>
89
+
90
+ </div>
91
+ </nav>
92
+
93
+ <div id="documentation">
94
+ <h1 class="module">module OptionParser</h1>
95
+
96
+ <div id="description" class="description">
97
+
98
+ </div><!-- description -->
99
+
100
+
101
+
102
+
103
+ <section id="5Buntitled-5D" class="documentation-section">
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+ <!-- Methods -->
113
+
114
+ </section><!-- 5Buntitled-5D -->
115
+
116
+ </div><!-- documentation -->
117
+
118
+
119
+ <footer id="validator-badges">
120
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
121
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 4.0.0.
122
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
123
+ </footer>
124
+
@@ -0,0 +1,212 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
+
7
+ <title>README - RDoc Documentation</title>
8
+
9
+ <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet">
10
+
11
+ <script type="text/javascript">
12
+ var rdoc_rel_prefix = "./";
13
+ </script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="./js/jquery.js"></script>
16
+ <script type="text/javascript" charset="utf-8" src="./js/navigation.js"></script>
17
+ <script type="text/javascript" charset="utf-8" src="./js/search_index.js"></script>
18
+ <script type="text/javascript" charset="utf-8" src="./js/search.js"></script>
19
+ <script type="text/javascript" charset="utf-8" src="./js/searcher.js"></script>
20
+ <script type="text/javascript" charset="utf-8" src="./js/darkfish.js"></script>
21
+
22
+
23
+ <body class="file">
24
+ <nav id="metadata">
25
+ <nav id="home-section" class="section">
26
+ <h3 class="section-header">
27
+ <a href="./index.html">Home</a>
28
+ <a href="./table_of_contents.html#classes">Classes</a>
29
+ <a href="./table_of_contents.html#methods">Methods</a>
30
+ </h3>
31
+ </nav>
32
+
33
+
34
+ <nav id="search-section" class="section project-section" class="initially-hidden">
35
+ <form action="#" method="get" accept-charset="utf-8">
36
+ <h3 class="section-header">
37
+ <input type="text" name="search" placeholder="Search" id="search-field"
38
+ title="Type to search, Up and Down to navigate, Enter to load">
39
+ </h3>
40
+ </form>
41
+
42
+ <ul id="search-results" class="initially-hidden"></ul>
43
+ </nav>
44
+
45
+
46
+
47
+ <div id="table-of-contents">
48
+ <nav class="section">
49
+ <h3 class="section-header">Table of Contents</h3>
50
+ <ul>
51
+ <li><a href="#label-Description">Description</a>
52
+ <li><a href="#label-Features">Features</a>
53
+ <li><a href="#label-Installation">Installation</a>
54
+ <li><a href="#label-Usage+Examples">Usage Examples</a>
55
+ <li><a href="#label-Help+Screen">Help Screen</a>
56
+ <li><a href="#label-Specifying+nodes+manually">Specifying nodes manually</a>
57
+ <li><a href="#label-Piping+list+of+nodes">Piping list of nodes</a>
58
+ <li><a href="#label-Using+a+database+for+obtaining+nodes">Using a database for obtaining nodes</a>
59
+ <li><a href="#label-Development">Development</a>
60
+ </ul>
61
+ </nav>
62
+ </div>
63
+
64
+
65
+ <div id="project-metadata">
66
+ <nav id="fileindex-section" class="section project-section">
67
+ <h3 class="section-header">Pages</h3>
68
+
69
+ <ul>
70
+
71
+ <li class="file"><a href="./README_md.html">README</a>
72
+
73
+ </ul>
74
+ </nav>
75
+
76
+ <nav id="classindex-section" class="section project-section">
77
+ <h3 class="section-header">Class and Module Index</h3>
78
+
79
+ <ul class="link-list">
80
+
81
+ <li><a href="./OptionParser.html">OptionParser</a>
82
+
83
+ <li><a href="./Rcmd.html">Rcmd</a>
84
+
85
+ </ul>
86
+ </nav>
87
+
88
+ </div>
89
+ </nav>
90
+
91
+ <div id="documentation" class="description">
92
+
93
+ <h1 id="label-Description">Description<span><a href="#label-Description">&para;</a> <a href="#documentation">&uarr;</a></span></h1>
94
+
95
+ <p>rcmd (remote command) is a command line utility written in Ruby for
96
+ executing the same command on
97
+ multiple systems through ssh. This is done by
98
+ assigning a host to a
99
+ thread and creating the ssh sessions in those
100
+ threads.</p>
101
+
102
+ <h2 id="label-Features">Features<span><a href="#label-Features">&para;</a> <a href="#documentation">&uarr;</a></span></h2>
103
+ <ul><li>
104
+ <p>Command line switch for setting number of threads to be used at a time.
105
+ (Default is 4)</p>
106
+ </li><li>
107
+ <p>A comma seperated list of hosts piped from another command can be used as
108
+ the node list.</p>
109
+ </li><li>
110
+ <p>Username can be specified. (Default is root. Requires valid ssh-key in
111
+ ~/.ssh)</p>
112
+ </li><li>
113
+ <p>Output shows which host the output is from</p>
114
+ </li><li>
115
+ <p>Stdout can be suppressed, only allowing for stderr to be shown</p>
116
+ </li></ul>
117
+
118
+ <h2 id="label-Installation">Installation<span><a href="#label-Installation">&para;</a> <a href="#documentation">&uarr;</a></span></h2>
119
+
120
+ <p>rcmd is available as a gem and kan be installed with <code>gem install
121
+ rcmd</code></p>
122
+
123
+ <h1 id="label-Usage+Examples">Usage Examples<span><a href="#label-Usage+Examples">&para;</a> <a href="#documentation">&uarr;</a></span></h1>
124
+
125
+ <h2 id="label-Help+Screen">Help Screen<span><a href="#label-Help+Screen">&para;</a> <a href="#documentation">&uarr;</a></span></h2>
126
+
127
+ <pre>daibhidh@darkstar:~/$ rcmd --help
128
+ Usage: rcmd [options]
129
+ -u, --username username Username for SSH connections
130
+ -n, --nodes x,y,z Comma seperated list of nodes. use &#39;-&#39; for a space seperated list piped from another command
131
+ -t, --threads threads Number of threads to run
132
+ -c, --command &lt;command&gt; Quoted string containing the command to be run
133
+ -q, --quiet Suppress stdout of commands. stderr will still be displayed
134
+ -v, --version Print what version of the command is in use</pre>
135
+
136
+ <h2 id="label-Specifying+nodes+manually">Specifying nodes manually<span><a href="#label-Specifying+nodes+manually">&para;</a> <a href="#documentation">&uarr;</a></span></h2>
137
+
138
+ <p>Specifying a comma seperated list of hosts and timing the total execution
139
+ time.
140
+ ```bash
141
+ daibhidh@darkstar:~/$ time rcmd -n node1,node2,node3,node4 -c
142
+ &#39;cat /etc/redhat-release&#39;
143
+ node2 :: Red Hat Enterprise Linux
144
+ ComputeNode release 6.8 (Santiago)
145
+ node1 :: Red Hat Enterprise Linux
146
+ ComputeNode release 6.8 (Santiago)
147
+ node4 :: Red Hat Enterprise Linux
148
+ ComputeNode release 6.9 (Santiago)
149
+ node3 :: Red Hat Enterprise Linux
150
+ ComputeNode release 6.9 (Santiago)</p>
151
+
152
+ <p>real 0m2.749s
153
+ user 0m0.272s
154
+ sys 0m0.050s
155
+ ```</p>
156
+
157
+ <h2 id="label-Piping+list+of+nodes">Piping list of nodes<span><a href="#label-Piping+list+of+nodes">&para;</a> <a href="#documentation">&uarr;</a></span></h2>
158
+
159
+ <p>Using the hammer cli to get a list of hosts from a RedHat Satellite and
160
+ providing it to rcmd as the node
161
+ list.
162
+ &lt;code&gt;bash
163
+ daibhidh@darkstar:~/$ hammer --output base host list
164
+ --organization org | awk &#39;/Name:/ {print $2}&#39; | rcmd -n - -c
165
+ &#39;cat /etc/redhat-release&#39;
166
+ node1.example.com :: Red Hat Enterprise
167
+ Linux ComputeNode release 6.8 (Santiago)
168
+ node3.example.com :: Red Hat
169
+ Enterprise Linux ComputeNode release 6.9 (Santiago)
170
+ node2.example.com ::
171
+ Red Hat Enterprise Linux ComputeNode release 6.8
172
+ (Santiago)
173
+ node4.example.com :: Red Hat Enterprise Linux ComputeNode
174
+ release 6.9 (Santiago)
175
+ &lt;/code&gt;</p>
176
+
177
+ <h2 id="label-Using+a+database+for+obtaining+nodes">Using a database for obtaining nodes<span><a href="#label-Using+a+database+for+obtaining+nodes">&para;</a> <a href="#documentation">&uarr;</a></span></h2>
178
+
179
+ <p>TODO</p>
180
+
181
+ <h1 id="label-Development">Development<span><a href="#label-Development">&para;</a> <a href="#documentation">&uarr;</a></span></h1>
182
+
183
+ <p>If you are wanting to modify the code by all means do so. If you clone this
184
+ repository you can then run <code>bundle install</code> to install the
185
+ dependencies needed. Tests are performed with <em>rspec</em> and can be run
186
+ with <em>rake</em>.</p>
187
+
188
+ <p>Available Rake tasks are:</p>
189
+
190
+ <pre>rake build # Build rcmd-1.5.5.gem into the pkg directory
191
+ rake clean # Remove any temporary products
192
+ rake clobber # Remove any generated files
193
+ rake clobber_rdoc # Remove RDoc HTML files
194
+ rake console # Open an IRB console with this gem loaded
195
+ rake install # Build and install rcmd-1.5.5.gem into system gems
196
+ rake install:local # Build and install rcmd-1.5.5.gem into system gems without network access
197
+ rake rdoc # Build RDoc HTML files
198
+ rake reinstall # Remove, build, and install gem
199
+ rake release[remote] # Create tag v1.5.5 and build and push rcmd-1.5.5.gem to Rubygems
200
+ rake rerdoc # Rebuild RDoc HTML files
201
+ rake spec # Run RSpec code examples</pre>
202
+
203
+ </div>
204
+
205
+
206
+
207
+ <footer id="validator-badges">
208
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
209
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 4.0.0.
210
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
211
+ </footer>
212
+