summaryrefslogtreecommitdiffstats
path: root/bin/ralsh
blob: c99672ae4a5c70f16a57e97487db65d905c3212c (plain)
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[:resource].run