suzuki-shunsuke.pyenv-module
Module Ansible Pyenv
Module Ansible pour exécuter des commandes pyenv.
https://galaxy.ansible.com/suzuki-shunsuke/pyenv-module/
Remarque
- Ce module ne prend pas en charge le mode de vérification
Plateformes prises en charge
- GenericLinux
- MacOSX
Nous testons ce module sur
- Ubuntu 16.04 (Vagrant, Virtualbox)
- CentOS 7.3 (Vagrant, Virtualbox)
- MacOS Sierra 10.12.5
Exigences
- pyenv
- Dépendances de construction Python
- pyenv-virtualenv : requis si vous souhaitez exécuter
virtualenvou la sous-commandevirtualenvs
Si vous souhaitez installer pyenv et les dépendances de construction Python avec un rôle Ansible, nous vous recommandons le suzuki-shunsuke.pyenv. Et si vous souhaitez installer pyenv-virtualenv avec un rôle Ansible, nous vous recommandons le suzuki-shunsuke.pyenv-virtualenv.
Sous-commandes et options pyenv prises en charge
$ 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]
Installation
$ ansible-galaxy install suzuki-shunsuke.pyenv-module
# playbook.yml
- hosts: default
roles:
# Après avoir appelé ce rôle, vous pouvez utiliser ce module.
- suzuki-shunsuke.pyenv-module
Options
En plus de ce document, veuillez consulter la référence de commande pyenv et la sortie de la commande pyenv help <command>.
Options communes
| nom | type | requis | défaut | choix / exemple | description |
|---|---|---|---|---|---|
| sous-commande | str | non | install | [install, uninstall, versions, global, virtualenvs, virtualenv] | |
| pyenv_root | str | non | ~/.pyenv | Si la variable d'environnement "PYENV_ROOT" n'est pas définie, cette option est requise | |
| expanduser | bool | non | oui | Par défaut, la variable d'environnement PYENV_ROOT et l'option "pyenv_root" sont filtrées par os.path.expanduser |
Options de la sous-commande "install"
| paramètre | type | requis | défaut | choix / exemple | description |
|---|---|---|---|---|---|
| version | str | non | 3.6.1 | ||
| liste | bool | non | non | option -l | |
| skip_existing | bool | non | oui | option -s | |
| force | bool | non | non | option -f |
Soit l'option "version", soit l'option "liste" est requise. Si l'option "liste" est activée, la valeur de retour de cette tâche a le champ "versions".
Options de la sous-commande "uninstall"
| paramètre | type | requis | défaut | choix / exemple | description |
|---|---|---|---|---|---|
| version | str | oui | 2.7.13 |
Options de la sous-commande "global"
| paramètre | type | requis | défaut | choix | description |
|---|---|---|---|---|---|
| versions | liste | non |
La valeur de retour de la sous-commande "global" contient le champ "versions".
Options de la sous-commande "versions"
| paramètre | type | requis | défaut | choix | description |
|---|---|---|---|---|---|
| bare | bool | non | oui |
La valeur de retour de la sous-commande "versions" contient le champ "versions".
Options de la sous-commande "virtualenvs"
| paramètre | type | requis | défaut | choix | description |
|---|---|---|---|---|---|
| skip_aliases | bool | non | oui | ||
| bare | bool | non | oui |
La valeur de retour de la sous-commande "virtualenvs" contient le champ "virtualenvs".
Options de la sous-commande "virtualenv"
https://github.com/pyenv/pyenv-virtualenv#virtualenv-and-venv
pyenv-virtualenvutilisepython -m venvs'il est disponible et si la commandevirtualenvn'est pas disponible.
Les options de la sous-commande "virtualenv" dépendent de l'utilisation ou non de pyenv-virtualenv avec python -m venv.
Options communes
| paramètre | type | requis | défaut | exemple | description |
|---|---|---|---|---|---|
| force | bool | non | non | ||
| version | str | oui | 2.7.13 | ||
| virtualenv_name | str | oui | ansible |
Remarque : l'option force ne fonctionne pas comme prévu
C'est un problème de pyenv-virtualenv.
Options virtualenv
| paramètre | type | requis | défaut | exemple | description |
|---|---|---|---|---|---|
| always_copy | bool | non | non | ||
| no_pip | bool | non | non | ||
| no_setuptools | bool | non | non | ||
| no_wheel | bool | non | non |
Voir la documentation officielle de virtualenv et la sortie de la commande virtualenv --help.
Options python -m venv
| paramètre | type | requis | défaut | exemple | description |
|---|---|---|---|---|---|
| clear | bool | non | non | ||
| copies | bool | non | non | ||
| symlinks | bool | non | non | ||
| without_pip | bool | non | non |
Voir la documentation officielle de venv et la sortie de la commande python -m venv -h.
Remarque : l'option clear ne fonctionne pas comme prévu
C'est un problème de pyenv-virtualenv.
Exemple
- 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
Astuces
Installer des paquets Python avec pip
Actuellement, ce module ne prend pas en charge la sous-commande pip,
mais vous pouvez le faire avec le module pip officiel.
# installer python et créer un virtualenv avant d'utiliser le module 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
# utiliser le module pip avec l'option executable
- name: installer ansible
pip:
name: ansible
executable: "{{pyenv_root}}/versions/2.7.13/bin/pip"
- name: installer pyyaml dans le virtualenv "yaml_env"
pip:
name: pyyaml
executable: "{{pyenv_root}}/versions/yaml_env/bin/pip"
Journal des modifications
Voir CHANGELOG.md.
Voir aussi
- suzuki-shunsuke.pyenv : rôle Ansible pour installer pyenv
- suzuki-shunsuke.pyenv-virtualenv : rôle Ansible pour installer pyenv-virtualenv
Licence
Développement
Exigences
- Vagrant
- Ansible
- Node.js
- yarn
Configuration
$ yarn install
$ cd tests
$ ansible-galaxy install -r roles.yml
Test
$ cd tests
$ vagrant up --provision
ansible-galaxy install suzuki-shunsuke.pyenv-module