rvm.ruby

Status budowy OpenCollective OpenCollective Rola Ansible Pobrania Roli Ansible

Czym jest rvm1-ansible?

To rola Ansible do instalacji i zarządzania wersjami Rubiego przy użyciu rvm.

Dlaczego warto używać rvm?

W produkcji jest to przydatne, ponieważ kompilacja nowej wersji Rubiego może zająć ponad 10 minut. To 10 minut, w których Twój CPU jest obciążony w 100%.

Rvm ma prekompilowane pliki binarne dla wielu systemów operacyjnych. Oznacza to, że możesz zainstalować Rubiego w około 1 minutę, nawet na wolnym mikroinstancie.

Ta rola dodaje również pliki binarne Rubiego do ścieżki systemowej podczas instalacji systemowej. Dzięki temu możesz uzyskać do nich dostęp, jakby były zainstalowane bez użycia menedżera wersji, jednocześnie korzystając z tego, co oferuje rvm.

Instalacja

$ ansible-galaxy install rvm.ruby

Zmienne roli

Poniżej znajduje się lista domyślnych wartości, które można skonfigurować:

---

# Zainstaluj 1 lub więcej wersji Rubiego
# Ostatnia wersja Rubiego zostanie ustawiona jako domyślna
rvm1_rubies:
  - 'ruby-2.3.1'

# Zainstaluj gem bundler
rvm1_bundler_install: True

# Usuń konkretną wersję Rubiego (np. ruby-2.1.0)
rvm1_delete_ruby:

# Ścieżka instalacji dla rvm (domyślnie dla pojedynczego użytkownika)
# UWAGA: Jeśli robisz instalację na poziomie ROOT, upewnij się, że
#       ustawiasz ścieżkę instalacji na coś takiego jak '/usr/local/rvm'
rvm1_install_path: '~/.rvm'

# Dodaj lub usuń wszelkie flagi instalacyjne
# UWAGA: Jeśli robisz instalację na poziomie ROOT,
#       upewnij się, że USUNIESZ flagę --user-install poniżej
rvm1_install_flags: '--auto-dotfiles  --user-install'

# Dodaj dodatkowe flagi instalacji Rubiego
rvm1_ruby_install_flags:

# Ustaw właściciela katalogu rvm
# UWAGA: Jeśli robisz instalację na poziomie ROOT,
#       upewnij się, że ustawiasz rvm1_user na 'root'
rvm1_user: 'ubuntu'

# URL ostatniego skryptu instalacyjnego
rvm1_rvm_latest_installer: 'https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer'

# Wersja rvm do użycia
rvm1_rvm_version: 'stable'

# Sprawdź i zaktualizuj rvm, wyłączenie tego wymusi, że rvm nigdy się nie zaktualizuje
rvm1_rvm_check_for_updates: True

# Weryfikacja klucza GPG, użyj pustego stringa, jeśli chcesz to pominąć
# Uwaga: Jeśli nie wiesz, co robisz, zostaw to, jak jest
#           Dowód tożsamości: https://keybase.io/mpapis
#           Komunikat PGP: https://rvm.io/mpapis.asc
rvm1_gpg_keys: '409B6B1796C275462A1703113804BB82D39DC0E3'

# Serwer kluczy GPG
rvm1_gpg_key_server: 'hkp://keys.openpgp.org'

# Tryb autolib, zobacz https://rvm.io/rvm/autolibs
rvm1_autolib_mode: 3

# Utwórz dowiązania symboliczne do ścieżki systemowej
rvm1_symlink: true

Przykładowe playbooki

---

- name: Skonfiguruj serwery z obsługą Rubiego dla jednego użytkownika
  hosts: all

  roles:
    - { role: rvm.ruby,
        tags: ruby,
        rvm1_rubies: ['ruby-2.3.1'],
        rvm1_user: 'ubuntu'
      }

Jeśli musisz przekazać listę wersji Rubiego, przekaż ją w tablicy w ten sposób.

---
- name: Skonfiguruj serwery z obsługą Rubiego na poziomie systemu
  hosts: all
  roles:
    - { role: rvm.ruby,
        tags: ruby,
        become: yes,

        rvm1_rubies: ['ruby-2.2.5','ruby-2.3.1'],
        rvm1_install_flags: '--auto-dotfiles',     # Usuń --user-install z domyślnych
        rvm1_install_path: /usr/local/rvm,         # Ustaw na lokalizację systemową
        rvm1_user: root                            # Potrzebujesz konta root, aby uzyskać dostęp do lokalizacji systemowej
      }

rvm_rubies musi być określone w postaci ruby-x.x.x, więc jeśli chcesz ruby 2.2.5, będziesz musiał przekazać w tablicy rvm_rubies: ['ruby-2.2.5']

Instalacja na poziomie systemu

Powyższy przykład skonfiguruje Rubiego na poziomie systemu. Bardzo ważne jest, aby uruchomić skrypt jako root, ponieważ będzie musiał zapisać w lokalizacji systemowej określonej przez rvm1_install_path.

Dla tego samego użytkownika co ansible_user

W takim przypadku wystarczy nadpisać rvm_install_path, a domyślnie ustawiona jest flaga --user-install:

rvm1_install_flags: '--auto-dotfiles --user-install'
rvm1_install_path: '/home/{{ ansible_user }}/.rvm'

Dla użytkownika, który nie jest ansible_user

Będziesz potrzebować dostępu root, ponieważ będziesz pisać poza katalogiem domowym użytkownika ansible. Oprócz tego jest to to samo, co powyżej, z tą różnicą, że podasz inne konto użytkownika:

rvm1_install_flags: '--auto-dotfiles --user-install'
rvm1_install_path: '/home/someuser/.rvm'

Szybkie notatki dotyczące rvm1_user

W niektórych przypadkach możesz chcieć, aby folder rvm i jego pliki były własnością konkretnego użytkownika zamiast root. Po prostu ustaw rvm1_user: 'foo', a po zainstalowaniu Rubiego upewni się, że foo jest właścicielem katalogu rvm.

To będzie korzystać z opcji Ansible become. W przypadku niepowodzeń (np. Nie udało się ustawić uprawnień na tymczasowych plikach, które Ansible musi utworzyć, stając się użytkownikiem bez uprawnień) sprawdź https://docs.ansible.com/ansible/latest/user_guide/become.html po szczegóły i możliwe rozwiązania.

Uaktualnianie i usuwanie starych wersji Rubiego

Typowy proces aktualizacji wersji Rubiego wyglądałby następująco:

  1. Zainstaluj nową wersję
  2. Uruchom rolę aplikacji, aby zainstalować ponownie swoje gemy
  3. Usuń poprzednią wersję Rubiego

Wykorzystaj --extra-vars Ansible

Wystarczy dodać --extra-vars 'rvm1_delete_ruby=ruby-2.1.0' na końcu komendy playbooka, a ta wersja zostanie usunięta.

Wymagania

Potencjalnie każdy system Linux/Unix wspierany przez Ansible, który spełnia wymagania wstępne RVM, powinien działać.

Kompatybilność z dystrybucjami Linuxa opartymi na rodzinach Debian, Ubuntu lub Redhat jest aktywnie testowana.

Ustawienie ciągłej integracji tego projektu obecnie obejmuje następujące platformy:

  • CentOS 6, 7 i 8
  • Debian 8, 9 i 10
  • Ubuntu 14.04, 16.04, 18.04 i 20.04

Ansible galaxy

Możesz go znaleźć w oficjalnym ansible galaxy, jeśli chcesz go ocenić.

Współpraca

Wspierający

Zostań wspierającym i wspieraj nas małą miesięczną darowizną, aby pomóc nam kontynuować nasze działania.

Wspierający Wspierający Wspierający Wspierający Wspierający Wspierający Wspierający Wspierający Wspierający Wspierający Wspierający Wspierający Wspierający Wspierający Wspierający Wspierający Wspierający Wspierający Wspierający Wspierający

Sponsorzy

Zostań sponsorem i umieść swoje logo w naszym README na Githubie z linkiem do Twojej strony.

Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor

Licencja

MIT

O projekcie

The official RVM role to install and manage your ruby versions

Zainstaluj
ansible-galaxy install rvm.ruby
Licencja
mit
Pobrania
881k
Właściciel
Ruby enVironment Manager