suzuki-shunsuke.pyenv-module

Moduł ansible-pyenv

Status budowy

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

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żywa python -m venv, jeśli jest dostępny, a polecenie virtualenv 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.

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

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

Licencja

MIT

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
O projekcie

run pyenv command

Zainstaluj
ansible-galaxy install suzuki-shunsuke.pyenv-module
Licencja
mit
Pobrania
24.8k
Właściciel
Platform Engineer / OSS Developer / Go