TOOCS.asdf

Status budowy Rola Ansible

TOOCS / Rola Ansible: TOOCS.asdf

  • Instaluje asdf
  • Dla użytkowników zsh, konfiguruje ~/.zlogin dla gotowego doświadczenia
  • Używa asdf do instalacji języków według wyboru (ograniczona obsługa, zobacz Instalacja języków)

TOOCS?

TOOCS - Opinionated One-Click Setups to zestaw narzędzi / ról ansible zaprojektowanych do szybkiej konfiguracji systemu jednym kliknięciem. Są prostym, niezawodnym sposobem na ustawienie danego narzędzia. Możesz je używać tak, jak są, lub, przeglądając ich kod, jako podręcznik do ścisłego śledzenia krok po kroku.

Jak sugeruje sama nazwa, są one "opiniotwórcze": chociaż gwarantują, że ustawią dane narzędzie jednym kliknięciem, nie gwarantują spójności w jak to osiągają, ponieważ nowe wydania mogą wprowadzać zmiany łamiące.
Przeczytaj kod i upewnij się, że rozumiesz, co się dzieje!

Spis treści

Wymagania

Ta rola działa tylko na MacOSX i Ubuntu/Debian.

Po instalacji - Konfiguracja powłoki

Użytkownicy Zsh

Kiedy używasz TOOCS na użytkowniku, którego powłoką jest zsh, TOOCS automatycznie skonfiguruje plik ~/.zlogin. Nie są wymagane żadne dodatkowe działania.

Jeśli nie używasz frameworka, takiego jak oh-my-zsh, lub jeśli podczas uruchamiania powłoki otrzymujesz komunikat o błędzie typu 'komenda nie znaleziona: compinit', dodaj tę linię przed tymi dodanymi przez TOOCS w swoim pliku ~/.zlogin:

autoload -Uz compinit && compinit

Użytkownicy nie Zsh

Dla użytkowników nie-zsh wymagana jest pewna ręczna konfiguracja. W zależności od systemu operacyjnego i używanej powłoki, uruchom poniższe komendy:

  • Bash na Ubuntu (i innych dystrybucjach Linuxa)

    echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bashrc
    echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc
    
  • Bash na macOS

    echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bash_profile
    echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bash_profile
    
  • Fish

    echo 'source ~/.asdf/asdf.fish' >> ~/.config/fish/config.fish
    mkdir -p ~/.config/fish/completions; and cp ~/.asdf/completions/asdf.fish ~/.config/fish/completions
    

Uruchom ponownie swoją powłokę, aby zmiany w ścieżce (PATH) zaczęły obowiązywać. (Otwarcie nowej karty terminala zwykle wystarczy.)

Jeśli masz problemy z rozpoznawaniem zamienników, które zainstalowałeś, najprawdopodobniej wynika to z faktu, że wczytanie asdf.bash lub asdf.fish nie znajduje się na końcu twojego pliku ~/.bash_profile, ~/.zshrc lub ~/.config/fish/config.fish. Musi być wczytane po ustawieniu twojego $PATH.

Źródło: oficjalna konfiguracja 'asdf'

Instalacja języków

Po zainstalowaniu asdf, TOOCS może automatycznie instalować różne wersje języków według wyboru. Zadba o zainstalowanie wymaganych zależności dla każdego języka i zainstaluje różne wersje, zazwyczaj preferując kompilację z źródła zamiast pobierania wstępnie skompilowanych binariów.

Zmienna languages_to_install to lista zawierająca wszystkie języki do zainstalowania, wraz z określonymi wersjami.

  • Aby zainstalować język, dodaj wpis do listy w languages_to_install

  • Wpis musi mieć formę:

    - LANG:
        - x.x.x
        - y.y.y
    

    Gdzie LANG to nazwa języka, a x.x.x / y.y.y to numery wersji.

  • Lista languages_to_install jest uporządkowana:

    languages_to_install:
      - erlang:
          - 21.1.14
          - 20.3.8.9
    
      - elixir:
          - 1.7.4
    

    W tym przykładzie obie wersje erlang będą zainstalowane przed instalacją elixir. Jest to wygodne, ponieważ elixir wymaga skompilowania erlang.

  • Dla każdego języka lista wersji do zainstalowania jest również uporządkowana.

    • Pierwsza wersja na liście będzie ustawiona jako global
    • Dla języków obsługujących wiele jednoczesnych global, wszystkie wersje z listy, w kolejności, będą ustawione jako globalne (np. python)
    languages_to_install:
      - erlang:
          - 21.1.14
          - 20.3.8.9
    
      - python: # Obsługa wielu `global`
          - 3.7.0
          - 2.6.6
          - 2.7.15
    

    W tym przykładzie, po uruchomieniu TOOCS, powłoka zostanie skonfigurowana w następujący sposób:

    • Komenda erl (erlang) będzie wskazywać na wersję 21.1.14
    • Komenda python będzie wskazywać na wersję 3.7.0
    • python obsługujący wiele global, będą również dostępne następujące komendy:
      • python3.7 / pip3.7
      • python2.7 / pip2.7
      • python2.6 / pip2.6
      • python3 / pip3 => Ostatnia wersja python3: python3.7 / pip3.7
      • python2 / pip2 => Ostatnia wersja python2: python2.7 / pip2.7

Obsługiwane języki

  • Python
    • Obsługa wielu wersji global
    • W Debianie stretch (i Ubuntu bionic), można automatycznie instalować tylko wersje python >= 2.7.13 i >= 3.5.3. Starsze wersje można później zainstalować ręcznie, ale wymaga to obecnie obejścia. Zobacz: Pyenv - Typowe problemy z budowaniem - OpenSSL
  • Erlang
    • Skompilowane z dokumentacją, ale bez jinterface
  • Elixir
    • Wymaga erlang
    • Skompilowane bezpośrednio z źródła
    • **/!\ Upewnij się, że aktualna wersja erlang jest wspierana przez wersję elixir, którą chcesz zainstalować /!**
      • Np.: elixir v1.6.6 nie jest kompatybilne z erlang 21! Aby skompilować elixir v1.6.6, należy użyć erlang 20.

Zmienne roli

  • asdf_version

    • Wersja asdf, którą należy zainstalować
    • Domyślnie: v0.6.2
  • skip_shell_setup

    • Jeśli True, zainstaluje tylko asdf bez konfiguracji powłoki
    • Domyślnie: False
  • languages_to_install

    • Lista języków i wersji do instalacji przy użyciu asdf. Zobacz Instalacja języków
    • Domyślnie: []

Przykładowy playbook

- hosts: sandbox
  tasks:
    - include_role:
        name: TOOCS.asdf

# LUB

- hosts: sandbox
  tasks:
    - include_role:
        name: TOOCS.asdf
      vars:
        asdf_version: v0.6.1
        skip_shell_setup: True

# LUB

- hosts: sandbox
  tasks:
    - include_role:
        name: TOOCS.asdf
      vars:
        languages_to_install:
          - python:
              - 3.7.0
              - 2.7.15
              - 2.6.6

          - erlang:
              - 20.3.8.9
              - 21.1.4

          - elixir:
              - 1.7.4
              - 1.6.6

Licencja

MIT

Informacje o autorze

Obserwuj mnie na Twitterze: @ThisIsFlorianK
Dowiedz się więcej o mojej pracy: Florian Kempenich - Strona osobista

Zainstaluj
ansible-galaxy install TOOCS.asdf
Licencja
mit
Pobrania
175
Właściciel
The Opinionated One-Click Setups - TOOCS - Logo made with DesignEvo (www.designevo.com)