suzuki-shunsuke.pyenv-module

Module Ansible Pyenv

État de la construction

Module Ansible pour exécuter des commandes pyenv.

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

Remarque

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

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-virtualenv utilise python -m venv s'il est disponible et si la commande virtualenv n'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.

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

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

Licence

MIT

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
À propos du projet

run pyenv command

Installer
ansible-galaxy install suzuki-shunsuke.pyenv-module
Licence
mit
Téléchargements
24.8k
Propriétaire
Platform Engineer / OSS Developer / Go