ansible.builtin.pip – Управление зависимостями библиотек Python
Примечание
Этот модуль является частью ansible-base и включён во все установки Ansible. В большинстве случаев вы можете использовать короткое имя модуля pip даже без указания ключевого слова collections:. Несмотря на это, рекомендуется использовать полное имя класса (FQCN) для лёгкой ссылки на документацию модуля и для избежания конфликтов с другими коллекциями, которые могут иметь такое же имя модуля.
Добавлена в версии 0.7: в ansible.builtin
Описание
- Управление зависимостями библиотек Python. Для использования этого модуля требуется один из следующих ключей:
nameилиrequirements.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- pip
- virtualenv
- setuptools
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| chdir путь добавлен в версии 1.3 ansible.builtin | Перейти в этот каталог перед выполнением команды | |
| editable логическое добавлен в версии 2.0 ansible.builtin |
| Передать флаг editable. |
| executable путь добавлен в версии 1.3 ansible.builtin | Явный исполняемый файл или путь к исполняемому файлу pip, если он отличается от интерпретатора Python Ansible. Например pip3.3, если в системе установлены Python 2.7 и 3.3, и вы хотите запустить pip для установки Python 3.3.Взаимоисключающее с параметром virtualenv (добавлено в версии 2.1). Не влияет на интерпретатор Python Ansible. Пакет setuptools должен быть установлен как для интерпретатора Python Ansible, так и для версии Python, указанной в этом параметре. | |
| extra_args строка добавлен в версии 1.0 ansible.builtin | Дополнительные аргументы, передаваемые pip. | |
| name список / элементы=строка | Имя Python библиотеки для установки или url(bzr+,hg+,git+,svn+) удалённого пакета. Может быть списком (с версии 2.2) и содержать спецификаторы версий (с версии 2.7). | |
| requirements строка | Путь к файлу требований pip, который должен быть локальным для удалённой системы. Файл может быть указан как относительный путь, если используется параметр chdir. | |
| state строка |
| Состояние модуля Вариант 'forcereinstall' доступен только в Ansible 2.1 и выше. |
| umask строка добавлен в версии 2.1 ansible.builtin | Системная маска umask для применения перед установкой пакета pip. Это полезно, например, при установке на системах, у которых маска umask по умолчанию очень жёсткая (например, "0077"), и вы хотите установить пакеты pip, которые будут использоваться всеми пользователями. Обратите внимание, что вам необходимо указать требуемый режим маски umask в виде восьмеричной строки (например, "0022"). | |
| version строка | Номер версии для установки Python библиотеки, указанной в параметре name. | |
| virtualenv путь | Необязательный путь к каталогу virtualenv для установки. Не может быть указан вместе с параметром 'executable' (добавлено в версии 2.1). Если виртуальная среда не существует, она будет создана перед установкой пакетов. Параметры virtualenv_site_packages, virtualenv_command и virtualenv_python влияют на создание virtualenv. | |
| virtualenv_command путь добавлен в версии 1.1 ansible.builtin | Значение по умолчанию: "virtualenv" | Команда или путь к команде для создания виртуальной среды. Например pyvenv, virtualenv, virtualenv2, ~/bin/virtualenv, /usr/local/bin/virtualenv. |
| virtualenv_python строка добавлен в версии 2.0 ansible.builtin | Интерпретатор Python, используемый для создания виртуальной среды. Например python3.5, python2.7. Если не указано, используется версия Python, используемая для запуска модуля ansible. Этот параметр не следует использовать, когда virtualenv_command использует pyvenv или модуль -m venv. | |
| virtualenv_site_packages логическое добавлен в версии 1.0 ansible.builtin |
| Указывает, будет ли виртуальная среда наследовать пакеты из глобального каталога site-packages. Обратите внимание, что если этот параметр изменён в уже существующей виртуальной среде, он не окажет никакого влияния, среда должна быть удалена и вновь создана. |
Примечания
Примечание
- Virtualenv (http://www.virtualenv.org/) должен быть установлен на удалённом хосте, если указан параметр virtualenv и требуется создание virtualenv.
- Несмотря на то, что выполнение происходит с использованием интерпретатора Python Ansible, модуль pip выполняет вызов для выполнения фактической команды pip, поэтому он может использовать любую версию pip, которую вы укажите с помощью параметра executable. По умолчанию используется версия pip для интерпретатора Python Ansible. Например, pip3 для Python 3 и pip2 или pip для Python 2.
- Интерпретатор, используемый Ansible (см. ansible_python_interpreter), требует пакета setuptools, независимо от версии pip, установленной с помощью параметра executable.
Примеры
- name: Install bottle python package
pip:
name: bottle
- name: Install bottle python package on version 0.11
pip:
name: bottle==0.11
- name: Install bottle python package with version specifiers
pip:
name: bottle>0.10,<0.20,!=0.11
- name: Install multi python packages with version specifiers
pip:
name:
- django>1.11.0,<1.12.0
- bottle>0.10,<0.20,!=0.11
- name: Install python package using a proxy
# Pip doesn't use the standard environment variables, please use the CAPITALIZED ones below
pip:
name: six
environment:
HTTP_PROXY: '127.0.0.1:8080'
HTTPS_PROXY: '127.0.0.1:8080'
# You do not have to supply '-e' option in extra_args
- name: Install MyApp using one of the remote protocols (bzr+,hg+,git+,svn+)
pip:
name: svn+http://myrepo/svn/MyApp#egg=MyApp
- name: Install MyApp using one of the remote protocols (bzr+,hg+,git+)
pip:
name: git+http://myrepo/app/MyApp
- name: Install MyApp from local tarball
pip:
name: file:///path/to/MyApp.tar.gz
- name: Install bottle into the specified (virtualenv), inheriting none of the globally installed modules
pip:
name: bottle
virtualenv: /my_app/venv
- name: Install bottle into the specified (virtualenv), inheriting globally installed modules
pip:
name: bottle
virtualenv: /my_app/venv
virtualenv_site_packages: yes
- name: Install bottle into the specified (virtualenv), using Python 2.7
pip:
name: bottle
virtualenv: /my_app/venv
virtualenv_command: virtualenv-2.7
- name: Install bottle within a user home directory
pip:
name: bottle
extra_args: --user
- name: Install specified python requirements
pip:
requirements: /my_app/requirements.txt
- name: Install specified python requirements in indicated (virtualenv)
pip:
requirements: /my_app/requirements.txt
virtualenv: /my_app/venv
- name: Install specified python requirements and custom Index URL
pip:
requirements: /my_app/requirements.txt
extra_args: -i https://example.com/pypi/simple
- name: Install specified python requirements offline from a local directory with downloaded packages
pip:
requirements: /my_app/requirements.txt
extra_args: "--no-index --find-links=file:///my_downloaded_packages_dir"
- name: Install bottle for Python 3.3 specifically, using the 'pip3.3' executable
pip:
name: bottle
executable: pip3.3
- name: Install bottle, forcing reinstallation if it's already installed
pip:
name: bottle
state: forcereinstall
- name: Install bottle while ensuring the umask is 0022 (to ensure other users can use it)
pip:
name: bottle
umask: "0022"
become: True
Возвращаемые значения
Общие возвращаемые значения документированы здесь, ниже приведены поля, уникальные для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| cmd строка | успех | Команда pip, используемая модулем Пример: pip2 install ansible six |
| name список / элементы=строка | успех | Список Python модулей, на которые нацелен pip Пример: ['ansible', 'six'] |
| requirements строка | успех, если был предоставлен файл требований | Путь к файлу требований Пример: /srv/git/project/requirements.txt |
| version строка | успех, если был указан имя и версия | Версия пакета, указанного в параметре 'name' Пример: 2.5.1 |
| virtualenv строка | успех, если был указан путь к virtualenv | Путь к virtualenv Пример: /tmp/virtualenv |
Авторы
- Matt Wright (@mattupstate)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/builtin/pip_module.html