suzuki-shunsuke.pyenv-module
módulo-ansible-pyenv
Módulo de ansible para ejecutar comandos de pyenv.
https://galaxy.ansible.com/suzuki-shunsuke/pyenv-module/
Aviso
- Este módulo no soporta el modo de verificación
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
- pyenv
- dependencias de compilación de python
- pyenv-virtualenv: necesario si deseas ejecutar el subcomando
virtualenv
ovirtualenvs
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 | sí | 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
usapython -m venv
si está disponible y el comandovirtualenv
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 | sí | 2.7.13 | ||
nombre_virtualenv | str | sí | ansible |
Aviso: la opción forzar no funciona como se espera
Este es un problema de pyenv-virtualenv.
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
- suzuki-shunsuke.pyenv: rol de ansible para instalar pyenv
- suzuki-shunsuke.pyenv-virtualenv: rol de ansible para instalar pyenv-virtualenv
Licencia
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
ansible-galaxy install suzuki-shunsuke.pyenv-module