Puppet filebucket命令参数介绍(九)


puppet filebucket命令通常用来做文件的备份、获取和还原,支持远程操作.

puppet 节点会在每次更新之前,将该节点运行的环境配置文件以md5的形式存储到/var/lib/puppet/bucket目录,里面包含了每个配置文件的内容、路径和名称,通过filebucket命令指定文件的md5值可将指定文件恢复.

puppet filebucket参数:

[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文件.

[root@sh-web1 ~]# puppet filebucket backup /etc/passwd
/etc/passwd: 1e8d610ffbe27bf880c7d734386dbde1

#在agent端获取备份文件的内容.

[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(支持远程备份恢复,在另一台节点恢复).

[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的备份文件.

[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

默认备份路径:

[root@sh-proxy2 bucket]# pwd
/var/lib/puppet/bucket