1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
#!/usr/bin/env ruby
# vim: softtabstop=4 shiftwidth=4 expandtab
#
# = Synopsis
#
# Use the Puppet RAL to directly interact with the system.
#
# = Usage
#
# ralsh [-h|--help] [-d|--debug] [-v|--verbose] [-e|--edit] [-H|--host <host>]
# [-p|--param <param>] [-t|--types] type <name>
#
# = Description
#
# This command provides simple facilities for converting current system state
# into Puppet code, along with some ability to use Puppet to affect the current
# state.
#
# By default, you must at least provide a type to list, which case ralsh
# will tell you everything it knows about all instances of that type. You can
# optionally specify an instance name, and ralsh will only describe that single
# instance.
#
# You can also add +--edit+ as an argument, and ralsh will write its output
# to a file, open that file in an editor, and then apply the file as a Puppet
# transaction. You can easily use this to use Puppet to make simple changes to
# a system.
#
# = Options
#
# Note that any configuration parameter that's valid in the configuration file
# is also a valid long argument. For example, 'ssldir' is a valid configuration
# parameter, so you can specify '--ssldir <directory>' as an argument.
#
# See the configuration file documentation at
# http://reductivelabs.com/trac/puppet/wiki/ConfigurationReference for
# the full list of acceptable parameters. A commented list of all
# configuration options can also be generated by running puppet with
# '--genconfig'.
#
# debug::
# Enable full debugging.
#
# edit:
# Write the results of the query to a file, open the file in an editor,
# and read the file back in as an executable Puppet manifest.
#
# host:
# When specified, connect to the resource server on the named host
# and retrieve the list of resouces of the type specified.
#
# help:
# Print this help message.
#
# param:
# Add more parameters to be outputted from queries.
#
# types:
# List all available types.
#
# verbose::
# Print extra information.
#
# = Example
#
# This example uses ``ralsh`` to return Puppet configuration for the user ``luke``::
#
# $ ralsh user luke
# user { 'luke':
# home => '/home/luke',
# uid => '100',
# ensure => 'present',
# comment => 'Luke Kanies,,,',
# gid => '1000',
# shell => '/bin/bash',
# groups => ['sysadmin','audio','video','puppet']
# }
#
# = Author
#
# Luke Kanies
#
# = Copyright
#
# Copyright (c) 2005-2007 Reductive Labs, LLC
# Licensed under the GNU Public License
require 'puppet/application/ralsh'
Puppet::Application[:ralsh].run
|