suzuki-shunsuke.pyenv-module

ansible-pyenv-module

Build Status

Ansible-Modul zum Ausführen des pyenv-Befehls.

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

Hinweis

Unterstützte Plattformen

  • GenericLinux
  • MacOSX

Wir testen dieses Modul auf

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

Anforderungen

Falls Sie pyenv und die Python-Bauabhängigkeiten mit der Ansible-Rolle installieren möchten, empfehlen wir die suzuki-shunsuke.pyenv. Und wenn Sie pyenv-virtualenv mit der Ansible-Rolle installieren möchten, empfehlen wir die suzuki-shunsuke.pyenv-virtualenv.

Unterstützte pyenv-Unterbefehle und Optionen

$ 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:
  # Nachdem Sie diese Rolle aufgerufen haben, können Sie dieses Modul verwenden.
  - suzuki-shunsuke.pyenv-module

Optionen

Zusätzlich zu diesem Dokument lesen Sie bitte die pyenv-Befehlreferenz und die Ausgabe des Befehls pyenv help <command>.

Allgemeine Optionen

name typ erforderlich standard auswahl / beispiel beschreibung
subcommand str nein install [install, uninstall, versions, global, virtualenvs, virtualenv]
pyenv_root str nein ~/.pyenv Wenn die Umgebungsvariable "PYENV_ROOT" nicht gesetzt ist, ist diese Option erforderlich.
expanduser bool nein ja Standardmäßig werden die Umgebungsvariablen PYENV_ROOT und die Option "pyenv_root" durch os.path.expanduser gefiltert.

Optionen des Unterbefehls "install"

parameter typ erforderlich standard auswahl / beispiel beschreibung
version str nein 3.6.1
list bool nein nein -l Option
skip_existing bool nein ja -s Option
force bool nein nein -f Option

Entweder die "version" oder die "list" Option ist erforderlich. Wenn die "list" Option gesetzt ist, hat der Rückgabewert dieser Aufgabe das Feld "versions".

Optionen des Unterbefehls "uninstall"

parameter typ erforderlich standard auswahl / beispiel beschreibung
version str ja 2.7.13

Optionen des Unterbefehls "global"

parameter typ erforderlich standard auswahl beschreibung
versions liste nein

Der Rückgabewert des Unterbefehls "global" hat das Feld "versions".

Optionen des Unterbefehls "versions"

parameter typ erforderlich standard auswahl beschreibung
bare bool nein ja

Der Rückgabewert des Unterbefehls "versions" hat das Feld "versions".

Optionen des Unterbefehls "virtualenvs"

parameter typ erforderlich standard auswahl beschreibung
skip_aliases bool nein ja
bare bool nein ja

Der Rückgabewert des Unterbefehls "virtualenvs" hat das Feld "virtualenvs".

Optionen des Unterbefehls "virtualenv"

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

pyenv-virtualenv verwendet python -m venv, wenn es verfügbar ist und der Befehl virtualenv nicht verfügbar ist.

Die Optionen des Unterbefehls "virtualenv" hängen davon ab, ob pyenv-virtualenv python -m venv verwendet oder nicht.

Allgemeine Optionen

parameter typ erforderlich standard beispiel beschreibung
force bool nein nein
version str ja 2.7.13
virtualenv_name str ja ansible
Hinweis: Die Force-Option funktioniert nicht wie erwartet

Dies ist ein Problem von pyenv-virtualenv.

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

virtualenv Optionen

parameter typ erforderlich standard beispiel beschreibung
always_copy bool nein nein
no_pip bool nein nein
no_setuptools bool nein nein
no_wheel bool nein nein

Siehe die offizielle Dokumentation zu virtualenv und die Ausgabe des Befehls virtualenv --help.

Optionen von python -m venv

parameter typ erforderlich standard beispiel beschreibung
clear bool nein nein
copies bool nein nein
symlinks bool nein nein
without_pip bool nein nein

Siehe die offizielle Dokumentation zu venv und die Ausgabe des Befehls python -m venv -h.

Hinweis: Die Clear-Option funktioniert nicht wie erwartet

Dies ist ein Problem von pyenv-virtualenv.

Beispiel

- 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

Tipps

Python-Pakete mit pip installieren

Derzeit unterstützt dieses Modul den pip Unterbefehl nicht, aber Sie können dies mit dem offiziellen pip-Modul tun.

# Python installieren und virtualenv erstellen, bevor Sie das pip-Modul verwenden
- 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

# Verwenden Sie das pip-Modul mit der Executable-Option
- name: install ansible
  pip:
    name: ansible
    executable: "{{pyenv_root}}/versions/2.7.13/bin/pip"
- name: install pyyaml im virtualenv "yaml_env"
  pip:
    name: pyyaml
    executable: "{{pyenv_root}}/versions/yaml_env/bin/pip"

Änderungsprotokoll

Siehe CHANGELOG.md.

Siehe auch

Lizenz

MIT

Entwicklung

Anforderungen

  • Vagrant
  • Ansible
  • Node.js
  • yarn

Einrichtung

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

Test

$ cd tests
$ vagrant up --provision
Über das Projekt

run pyenv command

Installieren
ansible-galaxy install suzuki-shunsuke.pyenv-module
Lizenz
mit
Downloads
24.8k
Besitzer
Platform Engineer / OSS Developer / Go