These states manage system installed python packages. Note that pip must be
installed for these states to be available, so pip states should include a
requisite to a pkg.installed state for the package which provides pip
(python-pip
in most cases). Example:
python-pip:
pkg.installed
virtualenvwrapper:
pip.installed:
- require:
- pkg: python-pip
salt.states.pip_state.
installed
(name, pkgs=None, pip_bin=None, requirements=None, env=None, bin_env=None, use_wheel=False, no_use_wheel=False, log=None, proxy=None, timeout=None, repo=None, editable=None, find_links=None, index_url=None, extra_index_url=None, no_index=False, mirrors=None, build=None, target=None, download=None, download_cache=None, source=None, upgrade=False, force_reinstall=False, ignore_installed=False, exists_action=None, no_deps=False, no_install=False, no_download=False, install_options=None, global_options=None, user=None, no_chown=False, cwd=None, activate=False, pre_releases=False, cert=None, allow_all_external=False, allow_external=None, allow_unverified=None, process_dependency_links=False, env_vars=None, use_vt=False, trusted_host=None, no_cache_dir=False)¶Make sure the package is installed
==, >=, <=
. If
requirements
is given, this parameter will be ignored.范例:
django:
pip.installed:
- name: django >= 1.6, <= 1.7
- require:
- pkg: python-pip
This will install the latest Django version greater than 1.6 but less than 1.7.
index_url
build
dirtarget
dirdownload
instead of installing themdownload_cache
direditable
packages into source
dirActivates the virtual environment, if given via bin_env, before running install.
2014.7.2 版后已移除: If bin_env is given, pip will already be sourced from that virtualenv, making activate effectively a noop.
/foo/.virtualenvs/bar
.Add or modify environment variables. Useful for tweaking build steps, such as specifying INCLUDE or LIBRARY paths in Makefiles, build scripts or compiler calls. This must be in the form of a dictionary or a mapping.
范例:
django:
pip.installed:
- name: django_app
- env_vars:
CUSTOM_PATH: /opt/django_app
VERBOSE: True
范例:
django:
pip.installed:
- name: django >= 1.6, <= 1.7
- bin_env: /foo/.virtualenvs/bar
- require:
- pkg: python-pip
Or
范例:
django:
pip.installed:
- name: django >= 1.6, <= 1.7
- bin_env: /foo/.virtualenvs/bar/bin/pip
- require:
- pkg: python-pip
Attention
The following arguments are deprecated, do not use.
bin_env
bin_env
在 0.17.0 版更改: use_wheel
option added.
install_options
Extra arguments to be supplied to the setup.py install command. If you are using an option with a directory path, be sure to use absolute path.
范例:
django: pip.installed: - name: django - install_options: - --prefix=/blah - require: - pkg: python-pip
Extra global options to be supplied to the setup.py call before the install command.
2014.1.3 新版功能.
Attention
As of Salt 0.17.0 the pip state needs an importable pip module. This usually means having the system's pip package installed or running Salt from an active virtualenv.
The reason for this requirement is because pip
already does a
pretty good job parsing its own requirements. It makes no sense for
Salt to do pip
requirements parsing and validation before passing
them to the pip
library. It's functionality duplication and it's
more error prone.
Attention
Please set reload_modules: True
to have the salt minion
import this module after installation.
范例:
pyopenssl:
pip.installed:
- name: pyOpenSSL
- reload_modules: True
- exists_action: i
salt.states.pip_state.
removed
(name, requirements=None, bin_env=None, log=None, proxy=None, timeout=None, user=None, cwd=None, use_vt=False)¶Make sure that a package is not installed.
salt.states.pip_state.
uptodate
(name, bin_env=None, user=None, cwd=None, use_vt=False)¶2015.5.0 新版功能.
Verify that the system is completely up to date.