suzuki-shunsuke.pyenv-module
Moduł ansible-pyenv
Moduł ansible do uruchamiania poleceń pyenv.
https://galaxy.ansible.com/suzuki-shunsuke/pyenv-module/
Uwagi
- Ten moduł nie wspiera trybu sprawdzania (
check mode
).
Obsługiwane platformy
- GenericLinux
- MacOSX
Testujemy ten moduł na
- Ubuntu 16.04 (Vagrant, Virtualbox)
- CentOS 7.3 (Vagrant, Virtualbox)
- MacOS Sierra 10.12.5
Wymagania
- pyenv
- zależności do budowy Pythona
- pyenv-virtualenv: wymagany, jeśli chcesz uruchomić
virtualenv
lub subkomendęvirtualenvs
.
Jeśli chcesz zainstalować pyenv i zależności do budowy Pythona za pomocą roli ansible, zalecamy suzuki-shunsuke.pyenv. Jeśli chcesz zainstalować pyenv-virtualenv za pomocą roli ansible, zalecamy suzuki-shunsuke.pyenv-virtualenv.
Obsługiwane subkomendy i opcje pyenv
$ 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]
Instalacja
$ ansible-galaxy install suzuki-shunsuke.pyenv-module
# playbook.yml
- hosts: default
roles:
# Po wywołaniu tej roli, możesz używać tego modułu.
- suzuki-shunsuke.pyenv-module
Opcje
Oprócz tego dokumentu, zapoznaj się z odniesieniem do poleceń pyenv oraz wynikiem polecenia pyenv help <command>
.
Opcje ogólne
nazwa | typ | wymagane | domyślne | wybory / przykład | opis |
---|---|---|---|---|---|
subkomenda | str | nie | install | [install, uninstall, versions, global, virtualenvs, virtualenv] | |
pyenv_root | str | nie | ~/.pyenv | Jeśli zmienna środowiskowa "PYENV_ROOT" nie jest ustawiona, ta opcja jest wymagana | |
expanduser | bool | nie | tak | Domyślnie zmienna środowiskowa PYENV_ROOT i opcja "pyenv_root" są przetwarzane przez os.path.expanduser |
Opcje subkomendy "install"
parametr | typ | wymagane | domyślne | wybory / przykład | opis |
---|---|---|---|---|---|
wersja | str | nie | 3.6.1 | ||
lista | bool | nie | nie | -l opcja | |
pomiń_istniejące | bool | nie | tak | -s opcja | |
wymuś | bool | nie | nie | -f opcja |
Wymagana jest opcja "wersja" lub "lista". Jeśli opcja "lista" jest ustawiona, wartość zwrotna z tej czynności zawiera pole "wersje".
Opcje subkomendy "uninstall"
parametr | typ | wymagane | domyślne | wybory / przykład | opis |
---|---|---|---|---|---|
wersja | str | tak | 2.7.13 |
Opcje subkomendy "global"
parametr | typ | wymagane | domyślne | wybory | opis |
---|---|---|---|---|---|
wersje | lista | nie |
Wartość zwrotna subkomendy "global" zawiera pole "wersje".
Opcje subkomendy "versions"
parametr | typ | wymagane | domyślne | wybory | opis |
---|---|---|---|---|---|
bare | bool | nie | tak |
Wartość zwrotna subkomendy "versions" zawiera pole "wersje".
Opcje subkomendy "virtualenvs"
parametr | typ | wymagane | domyślne | wybory | opis |
---|---|---|---|---|---|
skip_aliases | bool | nie | tak | ||
bare | bool | nie | tak |
Wartość zwrotna subkomendy "virtualenvs" zawiera pole "virtualenvs".
Opcje subkomendy "virtualenv"
https://github.com/pyenv/pyenv-virtualenv#virtualenv-and-venv
pyenv-virtualenv
używapython -m venv
, jeśli jest dostępny, a polecenievirtualenv
nie jest dostępne.
Opcje subkomendy "virtualenv" zależą od tego, czy pyenv-virtualenv
używa python -m venv
, czy nie.
Wspólne opcje
parametr | typ | wymagane | domyślne | przykład | opis |
---|---|---|---|---|---|
wymuś | bool | nie | nie | ||
wersja | str | tak | 2.7.13 | ||
nazwa_virtualenv | str | tak | ansible |
Uwagi: opcja wymuś nie działa jak oczekiwano
To problem pyenv-virtualenv.
Opcje virtualenv
parametr | typ | wymagane | domyślne | przykład | opis |
---|---|---|---|---|---|
zawsze_kopiuj | bool | nie | nie | ||
bez_pip | bool | nie | nie | ||
bez_setuptools | bool | nie | nie | ||
bez_wheel | bool | nie | nie |
Zobacz oficjalną dokumentację virtualenv oraz wynik polecenia virtualenv --help
.
Opcje python -m venv
parametr | typ | wymagane | domyślne | przykład | opis |
---|---|---|---|---|---|
wyczyść | bool | nie | nie | ||
kopie | bool | nie | nie | ||
symlinks | bool | nie | nie | ||
bez_pip | bool | nie | nie |
Zobacz oficjalną dokumentację venv oraz wynik polecenia python -m venv -h
.
Uwagi: opcja wyczyść nie działa jak oczekiwano
To problem pyenv-virtualenv.
Przykład
- name: pyenv install -s 3.6.1
pyenv:
wersja: 3.6.1
pyenv_root: "~/.pyenv"
- name: pyenv install -f 3.6.1
pyenv:
wersja: 3.6.1
pyenv_root: "~/.pyenv"
wymuś: tak
- name: pyenv uninstall -f 2.6.9
pyenv:
subkomenda: uninstall
wersja: 2.6.9
pyenv_root: "~/.pyenv"
- name: pyenv global 3.6.1
pyenv:
subkomenda: global
wersje:
- 3.6.1
pyenv_root: "~/.pyenv"
- name: pyenv global
pyenv:
subkomenda: global
pyenv_root: "~/.pyenv"
register: rezultat
- debug:
var: rezultat.wersje
- name: pyenv install -l
pyenv:
lista: tak
pyenv_root: "{{ansible_env.HOME}}/.pyenv"
register: rezultat
- debug:
var: rezultat.wersje
- name: pyenv versions --bare
pyenv:
subkomenda: versions
pyenv_root: "{{ansible_env.HOME}}/.pyenv"
register: rezultat
- debug:
var: rezultat.wersje
- name: pyenv virtualenvs --skip-aliases --bare
pyenv:
subkomenda: virtualenvs
pyenv_root: "~/.pyenv"
register: rezultat
- debug:
var: rezultat.virtualenvs
- name: pyenv virtualenv --force 2.7.13 ansible
pyenv:
subkomenda: virtualenv
pyenv_root: "~/.pyenv"
wersja: 2.7.13
nazwa_virtualenv: ansible
wymuś: tak
Wskazówki
Instalacja pakietów Pythona za pomocą pip
Aktualnie ten moduł nie wspiera podkomendy pip
,
ale możesz to zrobić za pomocą oficjalnego modułu pip.
# zainstaluj Pythona i stwórz virtualenv przed użyciem modułu pip
- name: pyenv install -s 2.7.13
pyenv:
pyenv_root: "{{pyenv_root}}"
wersja: 2.7.13
- name: pyenv virtualenv 3.6.1 yaml_env
pyenv:
subkomenda: virtualenv
pyenv_root: "{{pyenv_root}}"
wersja: 3.6.1
nazwa_virtualenv: yaml_env
# użyj modułu pip z opcją executable
- name: zainstaluj ansible
pip:
name: ansible
executable: "{{pyenv_root}}/versions/2.7.13/bin/pip"
- name: zainstaluj pyyaml w virtualenv "yaml_env"
pip:
name: pyyaml
executable: "{{pyenv_root}}/versions/yaml_env/bin/pip"
Dziennik zmian
Zobacz CHANGELOG.md.
Zobacz także
- suzuki-shunsuke.pyenv: rola ansible do instalacji pyenv
- suzuki-shunsuke.pyenv-virtualenv: rola ansible do instalacji pyenv-virtualenv
Licencja
Rozwój
Wymagania
- Vagrant
- Ansible
- Node.js
- yarn
Ustawienie
$ yarn install
$ cd tests
$ ansible-galaxy install -r roles.yml
Test
$ cd tests
$ vagrant up --provision
ansible-galaxy install suzuki-shunsuke.pyenv-module