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 |