suzuki-shunsuke.pyenv-module
ansible-pyenv-module
Ansible-Modul zum Ausführen des pyenv-Befehls.
https://galaxy.ansible.com/suzuki-shunsuke/pyenv-module/
Hinweis
- Dieses Modul unterstützt den Überprüfungsmodus nicht.
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
- pyenv
- Python-Bauabhängigkeiten
- pyenv-virtualenv: erforderlich, um
virtualenv
oder den Befehlvirtualenvs
auszuführen
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
verwendetpython -m venv
, wenn es verfügbar ist und der Befehlvirtualenv
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.
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
- suzuki-shunsuke.pyenv: Ansible-Rolle zur Installation von pyenv
- suzuki-shunsuke.pyenv-virtualenv: Ansible-Rolle zur Installation von pyenv-virtualenv
Lizenz
Entwicklung
Anforderungen
- Vagrant
- Ansible
- Node.js
- yarn
Einrichtung
$ yarn install
$ cd tests
$ ansible-galaxy install -r roles.yml
Test
$ cd tests
$ vagrant up --provision
ansible-galaxy install suzuki-shunsuke.pyenv-module