pyenv-module

ansible-pyenv-module

Статус сборки

Ansible модуль для выполнения команд pyenv.

https://galaxy.ansible.com/suzuki-shunsuke/pyenv-module/

Уведомление

Поддерживаемые платформы

  • GenericLinux
  • MacOSX

Мы тестируем этот модуль на

  • Ubuntu 16.04 (Vagrant, Virtualbox)
  • CentOS 7.3 (Vagrant, Virtualbox)
  • MaxOS Sierra 10.12.5

Требования

Если вы хотите установить pyenv и зависимости для сборки Python с помощью ролевого файла Ansible, мы рекомендуем suzuki-shunsuke.pyenv. Если вы хотите установить pyenv-virtualenv с помощью ролевого файла Ansible, мы рекомендуем suzuki-shunsuke.pyenv-virtualenv.

Поддерживаемые подкоманды и опции pyenv

$ pyenv install [-s] [-f] <version>
$ pyenv uninstall -f <version>
$ pyenv install -l
$ pyenv versions [--bare]
$ pyenv global
$ pyenv global <version> [<version> ...]
$ pyenv virtualenv [-f] [--no-pip] [--no-setuptools] [--no-wheel] [--symlinks] [--copies] [--clear] [--without-pip] [version] <virtualenv-name>
$ pyenv virtualenvs [--bare] [--skip-aliases]

Установка

$ ansible-galaxy install suzuki-shunsuke.pyenv-module
# playbook.yml

- hosts: default
  roles:
  # После вызова этой роли, вы сможете использовать этот модуль.
  - suzuki-shunsuke.pyenv-module

Опции

В дополнение к этому документу, пожалуйста, см. справочник команд pyenv и вывод команды pyenv help <command>.

Общие опции

имя тип обязательный по умолчанию выборы / пример описание
subcommand str нет install [install, uninstall, versions, global, virtualenvs, virtualenv]
pyenv_root str нет ~/.pyenv Если переменная окружения "PYENV_ROOT" не установлена, эта опция обязательна
expanduser bool нет да По умолчанию переменная окружения PYENV_ROOT и опция "pyenv_root" обрабатываются с помощью os.path.expanduser

Опции для подкоманды "install"

параметр тип обязательный по умолчанию выборы / пример описание
version str нет 3.6.1
list bool нет нет -l опция
skip_existing bool нет да -s опция
force bool нет нет -f опция

Необходима либо опция "version", либо "list". Если установлена опция "list", возвращаемое значение этой задачи содержит поле "versions".

Опции для подкоманды "uninstall"

параметр тип обязательный по умолчанию выборы / пример описание
version str да 2.7.13

Опции для подкоманды "global"

параметр тип обязательный по умолчанию выборы описание
versions list нет

Возвращаемое значение подкоманды "global" содержит поле "versions".

Опции для подкоманды "versions"

параметр тип обязательный по умолчанию выборы описание
bare bool нет да

Возвращаемое значение подкоманды "versions" содержит поле "versions".

Опции для подкоманды "virtualenvs"

параметр тип обязательный по умолчанию выборы описание
skip_aliases bool нет да
bare bool нет да

Возвращаемое значение подкоманды "virtualenvs" содержит поле "virtualenvs".

Опции для подкоманды "virtualenv"

https://github.com/pyenv/pyenv-virtualenv#virtualenv-and-venv

pyenv-virtualenv использует python -m venv, если это доступно, и команда virtualenv не доступна.

Опции подкоманды "virtualenv" зависят от того, использует ли pyenv-virtualenv python -m venv или нет.

Общие опции

параметр тип обязательный по умолчанию пример описание
force bool нет нет
version str да 2.7.13
virtualenv_name str да ansible
Уведомление: опция force не работает как ожидалось

Это проблема pyenv-virtualenv.

https://github.com/pyenv/pyenv-virtualenv/issues/161

Опции virtualenv

параметр тип обязательный по умолчанию пример описание
always_copy bool нет нет
no_pip bool нет нет
no_setuptools bool нет нет
no_wheel bool нет нет

Смотрите официальную документацию virtualenv и вывод команды virtualenv --help.

Опции python -m venv

параметр тип обязательный по умолчанию пример описание
clear bool нет нет
copies bool нет нет
symlinks bool нет нет
without_pip bool нет нет

Смотрите официальную документацию venv и вывод команды python -m venv -h.

Уведомление: опция clear не работает как ожидалось

Это проблема pyenv-virtualenv.

Пример

- name: pyenv install -s 3.6.1
  pyenv:
    version: 3.6.1
    pyenv_root: "~/.pyenv"

- name: pyenv install -f 3.6.1
  pyenv:
    version: 3.6.1
    pyenv_root: "~/.pyenv"
    force: yes

- name: pyenv uninstall -f 2.6.9
  pyenv:
    subcommand: uninstall
    version: 2.6.9
    pyenv_root: "~/.pyenv"

- name: pyenv global 3.6.1
  pyenv:
    subcommand: global
    versions:
    - 3.6.1
    pyenv_root: "~/.pyenv"

- name: pyenv global
  pyenv:
    subcommand: global
    pyenv_root: "~/.pyenv"
  register: result
- debug:
    var: result.versions

- name: pyenv install -l
  pyenv:
    list: yes
    pyenv_root: "{{ansible_env.HOME}}/.pyenv"
  register: result
- debug:
    var: result.versions

- name: pyenv versions --bare
  pyenv:
    subcommand: versions
    pyenv_root: "{{ansible_env.HOME}}/.pyenv"
  register: result
- debug:
    var: result.versions

- name: pyenv virtualenvs --skip-aliases --bare
  pyenv:
    subcommand: virtualenvs
    pyenv_root: "~/.pyenv"
  register: result
- debug:
    var: result.virtualenvs

- name: pyenv virtualenv --force 2.7.13 ansible
  pyenv:
    subcommand: virtualenv
    pyenv_root: "~/.pyenv"
    version: 2.7.13
    virtualenv_name: ansible
    force: yes

Советы

Установка пакетов Python с помощью pip

На данный момент этот модуль не поддерживает подкоманду pip, но вы можете сделать это с помощью официального модуля pip.

# установите Python и создайте виртуальное окружение перед использованием модуля pip
- name: pyenv install -s 2.7.13
  pyenv:
    pyenv_root: "{{pyenv_root}}"
    version: 2.7.13
- name: pyenv virtualenv 3.6.1 yaml_env
  pyenv:
    subcommand: virtualenv
    pyenv_root: "{{pyenv_root}}"
    version: 3.6.1
    virtualenv_name: yaml_env

# используйте модуль pip с опцией executable
- name: install ansible
  pip:
    name: ansible
    executable: "{{pyenv_root}}/versions/2.7.13/bin/pip"
- name: install pyyaml on the virtualenv "yaml_env"
  pip:
    name: pyyaml
    executable: "{{pyenv_root}}/versions/yaml_env/bin/pip"

Журнал изменений

Смотрите CHANGELOG.md.

Смотрите также

Лицензия

MIT

Разработка

Требования

  • Vagrant
  • Ansible
  • Node.js
  • yarn

Установка

$ yarn install
$ cd tests
$ ansible-galaxy install -r roles.yml

Тестирование

$ cd tests
$ vagrant up --provision
О проекте

run pyenv command

Установить
ansible-galaxy install suzuki-shunsuke/ansible-pyenv-module
Лицензия
mit
Загрузки
24335
Владелец
Platform Engineer / OSS Developer / Go