puppet filebucket命令通常用来做文件的备份、获取和还原,支持远程操作.
puppet 节点会在每次更新之前,将该节点运行的环境配置文件以md5的形式存储到/var/lib/puppet/bucket目录,里面包含了每个配置文件的内容、路径和名称,通过filebucket命令指定文件的md5值可将指定文件恢复.
puppet filebucket参数:
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
|
[root@puppet ~]
# puppet filebucket -h
puppet-filebucket(8) -- Store and retrieve files
in
a filebucket
========
SYNOPSIS
--------
A stand-alone Puppet filebucket client.
USAGE
-----
puppet filebucket <mode> [-h|--help] [-V|--version] [-d|--debug]
[-
v
|--verbose] [-l|--
local
] [-r|--remote] [-s|--server <server>]
[-b|--bucket <directory>] <
file
> <
file
> ...
Puppet filebucket can operate
in
three modes, with only one mode per call:
backup:
Send one or
more
files to the specified
file
bucket. Each sent
file
is
printed with its resulting md5
sum
.
get:
Return the text associated with an md5
sum
. The text is printed to
stdout, and only one
file
can be retrieved at a
time
.
restore:
Given a
file
path and an md5
sum
, store the content associated with
the
sum
into the specified
file
path. You can specify an entirely new
path to this argument; you are not restricted to restoring the content
to its original location.
DESCRIPTION
-----------
This is a stand-alone filebucket client
for
sending files to a
local
or
central filebucket.
Note that
'filebucket'
defaults to using a network-based filebucket
available on the server named
'puppet'
. To use this, you'll have to be
running as a user with valid Puppet certificates. Alternatively, you can
use your
local
file
bucket by specifying
'--local'
.
OPTIONS
-------
Note that any setting that's valid
in
the configuration
file
is also a valid long argument. For example,
'ssldir'
is a valid
setting, so you can specify
'--ssldir <directory>'
as an
argument.
See the configuration
file
documentation at
http:
//docs
.puppetlabs.com
/references/stable/configuration
.html
for
the
full list of acceptable parameters. A commented list of all
configuration options can also be generated by running puppet with
'--genconfig'
.
* --debug:
#开启debug调试模式
Enable full debugging.
* --help:
Print this help message
* --
local
:
#使用本地的filebucket,这将使用默认配置.
Use the
local
filebucket. This will use the default configuration
information.
* --remote:
#使用远程的filebucket,将使用默认配置信息.
Use a remote filebucket. This will use the default configuration
information.
* --server:
#使用服务器发送的文件而不是局部(agent)。
The server to send the
file
to, instead of locally.
* --verbose:
Print extra information.
* --version:
Print version information.
EXAMPLE
-------
$ puppet filebucket backup
/etc/passwd
/etc/passwd
: 429b225650b912a2ee067b0a4cf1e949
$ puppet filebucket restore
/tmp/passwd
429b225650b912a2ee067b0a4cf1e949
AUTHOR
------
Luke Kanies
COPYRIGHT
---------
Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
示例:
#备份/etc/passwd文件.
1
2
|
[root@sh-web1 ~]
# puppet filebucket backup /etc/passwd
/etc/passwd
: 1e8d610ffbe27bf880c7d734386dbde1
|
#在agent端获取备份文件的内容.
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
|
[root@sh-web1 ~]
# puppet filebucket get 1e8d610ffbe27bf880c7d734386dbde1
root:x:0:0:root:
/root
:
/bin/bash
bin:x:1:1:bin:
/bin
:
/sbin/nologin
daemon:x:2:2:daemon:
/sbin
:
/sbin/nologin
adm:x:3:4:adm:
/var/adm
:
/sbin/nologin
lp:x:4:7:lp:
/var/spool/lpd
:
/sbin/nologin
sync
:x:5:0:
sync
:
/sbin
:
/bin/sync
shutdown
:x:6:0:
shutdown
:
/sbin
:
/sbin/shutdown
halt:x:7:0:halt:
/sbin
:
/sbin/halt
mail:x:8:12:mail:
/var/spool/mail
:
/sbin/nologin
uucp:x:10:14:uucp:
/var/spool/uucp
:
/sbin/nologin
operator:x:11:0:operator:
/root
:
/sbin/nologin
games:x:12:100:games:
/usr/games
:
/sbin/nologin
gopher:x:13:30:gopher:
/var/gopher
:
/sbin/nologin
ftp
:x:14:50:FTP User:
/var/ftp
:
/sbin/nologin
nobody:x:99:99:Nobody:/:
/sbin/nologin
dbus:x:81:81:System message bus:/:
/sbin/nologin
vcsa:x:69:69:virtual console memory owner:
/dev
:
/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:
/var/cache/rpcbind
:
/sbin/nologin
abrt:x:173:173::
/etc/abrt
:
/sbin/nologin
rpcuser:x:29:29:RPC Service User:
/var/lib/nfs
:
/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:
/var/lib/nfs
:
/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:
/sbin/nologin
ntp:x:38:38::
/etc/ntp
:
/sbin/nologin
saslauth:x:499:76:
"Saslauthd user"
:
/var/empty/saslauth
:
/sbin/nologin
postfix:x:89:89::
/var/spool/postfix
:
/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:
/var/empty/sshd
:
/sbin/nologin
tcpdump:x:72:72::/:
/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:
/home/oprofile
:
/sbin/nologin
puppet:x:52:52:Puppet:
/var/lib/puppet
:
/sbin/nologin
[root@sh-web1 ~]
# cat /etc/passwd | wc -l
29
|
#将备份文件恢复到/tmp/passwd(支持远程备份恢复,在另一台节点恢复).
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
|
[root@sh-proxy2 puppet]
# puppet filebucket restore /tmp/passwd 1e8d610ffbe27bf880c7d734386dbde1
[root@sh-proxy2 puppet]
# cat /tmp/passwd
root:x:0:0:root:
/root
:
/bin/bash
bin:x:1:1:bin:
/bin
:
/sbin/nologin
daemon:x:2:2:daemon:
/sbin
:
/sbin/nologin
adm:x:3:4:adm:
/var/adm
:
/sbin/nologin
lp:x:4:7:lp:
/var/spool/lpd
:
/sbin/nologin
sync
:x:5:0:
sync
:
/sbin
:
/bin/sync
shutdown
:x:6:0:
shutdown
:
/sbin
:
/sbin/shutdown
halt:x:7:0:halt:
/sbin
:
/sbin/halt
mail:x:8:12:mail:
/var/spool/mail
:
/sbin/nologin
uucp:x:10:14:uucp:
/var/spool/uucp
:
/sbin/nologin
operator:x:11:0:operator:
/root
:
/sbin/nologin
games:x:12:100:games:
/usr/games
:
/sbin/nologin
gopher:x:13:30:gopher:
/var/gopher
:
/sbin/nologin
ftp
:x:14:50:FTP User:
/var/ftp
:
/sbin/nologin
nobody:x:99:99:Nobody:/:
/sbin/nologin
dbus:x:81:81:System message bus:/:
/sbin/nologin
vcsa:x:69:69:virtual console memory owner:
/dev
:
/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:
/var/cache/rpcbind
:
/sbin/nologin
abrt:x:173:173::
/etc/abrt
:
/sbin/nologin
rpcuser:x:29:29:RPC Service User:
/var/lib/nfs
:
/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:
/var/lib/nfs
:
/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:
/sbin/nologin
ntp:x:38:38::
/etc/ntp
:
/sbin/nologin
saslauth:x:499:76:
"Saslauthd user"
:
/var/empty/saslauth
:
/sbin/nologin
postfix:x:89:89::
/var/spool/postfix
:
/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:
/var/empty/sshd
:
/sbin/nologin
tcpdump:x:72:72::/:
/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:
/home/oprofile
:
/sbin/nologin
puppet:x:52:52:Puppet:
/var/lib/puppet
:
/sbin/nologin
[root@sh-proxy2 puppet]
# cat /tmp/passwd | wc -l
29
|
扩展命令:puppet file 不常用.
在sh-proxy2 agent端通过md5方式下载sh-web1 agent的备份文件.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@sh-proxy2 puppet]
# puppet file download {md5}1e8d610ffbe27bf880c7d734386dbde1
Notice: Saved {md5}1e8d610ffbe27bf880c7d734386dbde1 to filebucket
[root@sh-proxy2 bucket]
# tree
.
└── 1
└── e
└── 8
└── d
└── 6
└── 1
└── 0
└── f
└── 1e8d610ffbe27bf880c7d734386dbde1
├── contents
└── paths
9 directories, 2 files
|
默认备份路径:
1
2
|
[root@sh-proxy2 bucket]
# pwd
/var/lib/puppet/bucket
|
本文转自青衫解衣 51CTO博客,原文链接:http://blog.51cto.com/215687833/1964915