suzuki-shunsuke.pyenv-module

módulo-ansible-pyenv

Estado de la construcción

Módulo de ansible para ejecutar comandos de pyenv.

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

Aviso

Plataformas soportadas

  • GenericLinux
  • MacOSX

Probamos este módulo en

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

Requisitos

Si deseas instalar pyenv y las dependencias de compilación de python con un rol de ansible, recomendamos suzuki-shunsuke.pyenv. Y si deseas instalar pyenv-virtualenv con un rol de ansible, recomendamos suzuki-shunsuke.pyenv-virtualenv.

Subcomandos y opciones de pyenv soportados

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

Instalación

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

- hosts: default
  roles:
  # Después de llamar a este rol, puedes usar este módulo.
  - suzuki-shunsuke.pyenv-module

Opciones

Además de este documento, consulta la referencia de comandos de pyenv y la salida del comando pyenv help <comando>.

Opciones comunes

nombre tipo requerido predeterminado elecciones / ejemplo descripción
subcomando str no install [install, uninstall, versions, global, virtualenvs, virtualenv]
pyenv_root str no ~/.pyenv Si la variable de entorno "PYENV_ROOT" no está establecida, esta opción es requerida
expanduser bool no yes Por defecto, la variable de entorno PYENV_ROOT y la opción "pyenv_root" son filtradas por os.path.expanduser

Opciones del subcomando "install"

parámetro tipo requerido predeterminado elecciones / ejemplo descripción
versión str no 3.6.1
lista bool no no opción -l
saltar_existente bool no yes opción -s
forzar bool no no opción -f

Se requiere ya sea la opción "versión" o "lista". Si se establece la opción "lista", el valor devuelto de esa tarea tendrá el campo "versions".

Opciones del subcomando "uninstall"

parámetro tipo requerido predeterminado elecciones / ejemplo descripción
versión str 2.7.13

Opciones del subcomando "global"

parámetro tipo requerido predeterminado elecciones descripción
versions lista no

El valor devuelto del subcomando "global" tiene el campo "versions".

Opciones del subcomando "versions"

parámetro tipo requerido predeterminado elecciones descripción
bare bool no yes

El valor devuelto del subcomando "versions" tiene el campo "versions".

Opciones del subcomando "virtualenvs"

parámetro tipo requerido predeterminado elecciones descripción
skip_aliases bool no yes
bare bool no yes

El valor devuelto del subcomando "virtualenvs" tiene el campo "virtualenvs".

Opciones del subcomando "virtualenv"

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

pyenv-virtualenv usa python -m venv si está disponible y el comando virtualenv no está disponible.

Las opciones del subcomando "virtualenv" dependen de si pyenv-virtualenv usa python -m venv o no.

Opciones comunes

parámetro tipo requerido predeterminado ejemplo descripción
forzar bool no no
versión str 2.7.13
nombre_virtualenv str ansible
Aviso: la opción forzar no funciona como se espera

Este es un problema de pyenv-virtualenv.

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

Opciones de virtualenv

parámetro tipo requerido predeterminado ejemplo descripción
siempre_copiar bool no no
no_pip bool no no
no_setuptools bool no no
no_wheel bool no no

Consulta la documentación oficial de virtualenv y la salida del comando virtualenv --help.

Opciones de python -m venv

parámetro tipo requerido predeterminado ejemplo descripción
borrar bool no no
copias bool no no
symlinks bool no no
sin_pip bool no no

Consulta la documentación oficial de venv y la salida del comando python -m venv -h.

Aviso: la opción borrar no funciona como se espera

Este es un problema de pyenv-virtualenv.

Ejemplo

- 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

Consejos

Instalar paquetes de python con pip

Ahora este módulo no soporta el subcomando pip, pero puedes hacerlo con el módulo pip oficial.

# instala python y crea virtualenv antes de usar el módulo 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

# utiliza el módulo pip con la opción executable
- name: install ansible
  pip:
    name: ansible
    executable: "{{pyenv_root}}/versions/2.7.13/bin/pip"
- name: install pyyaml en el virtualenv "yaml_env"
  pip:
    name: pyyaml
    executable: "{{pyenv_root}}/versions/yaml_env/bin/pip"

Registro de cambios

Consulta CHANGELOG.md.

También vea

Licencia

MIT

Desarrollo

Requisitos

  • Vagrant
  • Ansible
  • Node.js
  • yarn

Configuración

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

Prueba

$ cd tests
$ vagrant up --provision
Acerca del proyecto

run pyenv command

Instalar
ansible-galaxy install suzuki-shunsuke.pyenv-module
Licencia
mit
Descargas
24.8k
Propietario
Platform Engineer / OSS Developer / Go