Saltstack module cp 详解
cp.list_master_dirs
List all of the directories stored on the master
CLI Example:
salt '*' cp.list_master_dirs
cp.recv_chunked
This function receives files copied to the minion using salt-cp and is
not intended to be used directly on the CLI.
cp.push
WARNING Files pushed to the master will have global read permissions..
Push a file from the minion up to the master, the file will be saved to
the salt master in the master's minion files cachedir
(defaults to /var/cache/salt/master/minions/minion-id/files)
Since this feature allows a minion to push a file up to the master server
it is disabled by default for security purposes. To enable, set
file_recv to True in the master configuration file, and restart the
master.
keep_symlinks
Keep the path value without resolving its canonical form
upload_path
Provide a different path inside the master's minion files cachedir
remove_source
Remove the source file on the minion
New in version 2016.3.0
CLI Example:
salt '' cp.push /etc/fstab
salt '' cp.push /etc/system-release keep_symlinks=True
salt '' cp.push /etc/fstab upload_path='/new/path/fstab'
salt '' cp.push /tmp/filename remove_source=True
cp.get_template
Render a file as a template before setting it down.
Warning, order is not the same as in fileclient.cp for
non breaking old API.
CLI Example:
salt '*' cp.get_template salt://path/to/template /minion/dest
cp.list_minion
List all of the files cached on the minion
CLI Example:
salt '*' cp.list_minion
cp.get_file_str
Download a file from a URL to the Minion cache directory and return the
contents of that file
Returns False if Salt was unable to cache a file from a URL.
CLI Example:
salt '*' cp.get_file_str salt://my/file
cp.list_master_symlinks
List all of the symlinks stored on the master
CLI Example:
salt '*' cp.list_master_symlinks
cp.cache_dir
Download and cache everything under a directory from the master
include_pat : None
Glob or regex to narrow down the files cached from the given path. If
matching with a regex, the regex must be prefixed with E@,
otherwise the expression will be interpreted as a glob.
New in version 2014.7.0
exclude_pat : None
Glob or regex to exclude certain files from being cached from the given
path. If matching with a regex, the regex must be prefixed with E@,
otherwise the expression will be interpreted as a glob.
Note:
If used with include_pat, files matching this pattern will be
excluded from the subset of files defined by include_pat.
New in version 2014.7.0
CLI Examples:
salt '' cp.cache_dir salt://path/to/dir
salt '' cp.cache_dir salt://path/to/dir include_pat='E@*.py$'
cp.cache_file
Used to cache a single file on the Minion
Returns the location of the new cached file on the Minion
source_hash
If name is an http(s) or ftp URL and the file exists in the
minion's file cache, this option can be passed to keep the minion from
re-downloading the file if the cached copy matches the specified hash.
New in version 2018.3.0
CLI Example:
salt '*' cp.cache_file salt://path/to/file
There are two ways of defining the fileserver environment (a.k.a.
saltenv) from which to cache the file. One is to use the saltenv
parameter, and the other is to use a querystring syntax in the salt://
URL. The below two examples are equivalent:
salt '' cp.cache_file salt://foo/bar.conf saltenv=config
salt '' cp.cache_file salt://foo/bar.conf?saltenv=config
If the path being cached is a salt:// URI, and the path does not exist,
then False will be returned.
Note:
It may be necessary to quote the URL when using the querystring method,
depending on the shell being used to run the command.
cp.list_states
List all of the available state modules in an environment
CLI Example:
salt '*' cp.list_states
cp.envs
List available environments for fileserver
CLI Example
salt '*' cp.envs
cp.get_file
Changed in version 2018.3.0
dest can now be a directory
Used to get a single file from the salt master
CLI Example:
salt '*' cp.get_file salt://path/to/file /minion/dest
Template rendering can be enabled on both the source and destination file
names like so:
salt '*' cp.get_file "salt://{{grains.os}}/vimrc" /etc/vimrc template=jinja
This example would instruct all Salt minions to download the vimrc from a
directory with the same name as their os grain and copy it to /etc/vimrc
For larger files, the cp.get_file module also supports gzip compression.
Because gzip is CPU-intensive, this should only be used in scenarios where
the compression ratio is very high (e.g. pretty-printed JSON or YAML
files).
Use the gzip named argument to enable it. Valid values are 1..9, where 1
is the lightest compression and 9 the heaviest. 1 uses the least CPU on
the master (and minion), 9 uses the most.
There are two ways of defining the fileserver environment (a.k.a.
saltenv) from which to retrieve the file. One is to use the saltenv
parameter, and the other is to use a querystring syntax in the salt://
URL. The below two examples are equivalent:
salt '' cp.get_file salt://foo/bar.conf /etc/foo/bar.conf saltenv=config
salt '' cp.get_file salt://foo/bar.conf?saltenv=config /etc/foo/bar.conf
Note:
It may be necessary to quote the URL when using the querystring method,
depending on the shell being used to run the command.
cp.push_dir
Push a directory from the minion up to the master, the files will be saved
to the salt master in the master's minion files cachedir (defaults to
/var/cache/salt/master/minions/minion-id/files). It also has a glob
for matching specific files using globbing.
New in version 2014.7.0
Since this feature allows a minion to push files up to the master server it
is disabled by default for security purposes. To enable, set file_recv
to True in the master configuration file, and restart the master.
upload_path
Provide a different path and directory name inside the master's minion
files cachedir
CLI Example:
salt '' cp.push /usr/lib/mysql
salt '' cp.push /usr/lib/mysql upload_path='/newmysql/path'
salt '' cp.push_dir /etc/modprobe.d/ glob='.conf'
cp.hash_file
Return the hash of a file, to get the hash of a file on the
salt master file server prepend the path with salt://
otherwise, prepend the file with / for a local file.
CLI Example:
salt '*' cp.hash_file salt://path/to/file
cp.list_master
List all of the files stored on the master
CLI Example:
salt '*' cp.list_master
cp.is_cached
Returns the full path to a file if it is cached locally on the minion
otherwise returns a blank string
CLI Example:
salt '*' cp.is_cached salt://path/to/file
cp.cache_files
Used to gather many files from the Master, the gathered files will be
saved in the minion cachedir reflective to the paths retrieved from the
Master
CLI Example:
salt '*' cp.cache_files salt://pathto/file1,salt://pathto/file1
There are two ways of defining the fileserver environment (a.k.a.
saltenv) from which to cache the files. One is to use the saltenv
parameter, and the other is to use a querystring syntax in the salt://
URL. The below two examples are equivalent:
salt '' cp.cache_files salt://foo/bar.conf,salt://foo/baz.conf saltenv=config
salt '' cp.cache_files salt://foo/bar.conf?saltenv=config,salt://foo/baz.conf?saltenv=config
The querystring method is less useful when all files are being cached from
the same environment, but is a good way of caching files from multiple
different environments in the same command. For example, the below command
will cache the first file from the config1 environment, and the second
one from the config2 environment.
salt '*' cp.cache_files salt://foo/bar.conf?saltenv=config1,salt://foo/bar.conf?saltenv=config2
Note:
It may be necessary to quote the URL when using the querystring method,
depending on the shell being used to run the command.
cp.get_url
Changed in version 2018.3.0
dest can now be a directory
Used to get a single file from a URL.
path
A URL to download a file from. Supported URL schemes are: salt://,
http://, https://, ftp://, s3://, swift:// and
file:// (local filesystem). If no scheme was specified, this is
equivalent of using file://.
If a file:// URL is given, the function just returns absolute path
to that file on a local filesystem.
The function returns False if Salt was unable to fetch a file from
a salt:// URL.
dest
The default behaviour is to write the fetched file to the given
destination path. If this parameter is omitted or set as empty string
(''), the function places the remote file on the local filesystem
inside the Minion cache directory and returns the path to that file.
Note:
To simply return the file contents instead, set destination to
None. This works with salt://, http://, https://
and file:// URLs. The files fetched by http:// and
https:// will not be cached.
saltenv : base
Salt fileserver envrionment from which to retrieve the file. Ignored if
path is not a salt:// URL.
source_hash
If path is an http(s) or ftp URL and the file exists in the
minion's file cache, this option can be passed to keep the minion from
re-downloading the file if the cached copy matches the specified hash.
New in version 2018.3.0
CLI Example:
salt '' cp.get_url salt://my/file /tmp/this_file_is_mine
salt '' cp.get_url http://www.slashdot.org /tmp/index.html
cp.cache_master
Retrieve all of the files on the master and cache them locally
CLI Example:
salt '*' cp.cache_master
cp.recv
Used with salt-cp, pass the files dict, and the destination.
This function receives small fast copy files from the master via salt-cp.
It does not work via the CLI.
cp.cache_local_file
Cache a local file on the minion in the localfiles cache
CLI Example:
salt '*' cp.cache_local_file /etc/hosts
cp.get_dir
Used to recursively copy a directory from the salt master
CLI Example:
salt '*' cp.get_dir salt://path/to/dir/ /minion/dest
get_dir supports the same template and gzip arguments as get_file.
cp.stat_file
Return the permissions of a file, to get the permissions of a file on the
salt master file server prepend the path with salt://
otherwise, prepend the file with / for a local file.
CLI Example:
salt '*' cp.stat_file salt://path/to/file

浙公网安备 33010602011771号