silverlogic.rvm

Status budowy OpenCollective OpenCollective Rola Ansible

Czym jest rvm1-ansible?

To rola Ansible do instalacji i zarządzania wersjami Ruby za pomocą rvm.

Dlaczego warto używać rvm?

Jest to przydatne w produkcji, ponieważ kompilacja nowej wersji Ruby może zająć nawet 10 minut. To 10 minut, w którym CPU jest w pełni obciążone.

Rvm zapewnia wstępnie skompilowane binaria dla wielu systemów operacyjnych. Oznacza to, że możesz zainstalować Ruby w około 1 minutę, nawet na wolnej mikroinstancji.

Ta rola dodaje również binaria Ruby do ścieżki systemowej przy instalacji ogólnosystemowej. Pozwala to na ich dostęp, tak jakby były zainstalowane bez używania menedżera wersji, jednocześnie korzystając z zalet, jakie oferuje rvm.

Instalacja

$ ansible-galaxy install rvm.ruby

Zmienne roli

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

---

# Zainstaluj 1 lub więcej wersji Ruby
# Ostatnia wersja Ruby na liście będzie ustawiona jako domyślna
rvm1_rubies:
  - 'ruby-2.3.1'

# Zainstaluj gem bundlera
rvm1_bundler_install: True

# Wersja bundlera - jeśli pusta, użyj najnowszej
rvm1_bundler_version: ''
rvm1_bundler_install_command: '{{ rvm1_bundler_version | ternary("gem install -v {{ rvm1_bundler_version }} bundler", "gem install bundler") }}'

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

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

# Dodaj lub usuń jakiekolwiek flagi instalacyjne
# UWAGA: Jeśli wykonujesz instalację jako ROOT, upewnij się, że
#       USUNĄŁEŚ flagę --user-install poniżej
rvm1_install_flags: '--auto-dotfiles --user-install'

# Dodaj dodatkowe flagi instalacyjne Ruby
rvm1_ruby_install_flags:

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

# URL najnowszego 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'

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

# Weryfikacja kluczy GPG, użyj pustego ciągu, jeśli chcesz to pominąć
# Uwaga: Chyba że wiesz, co robisz, po prostu zostaw tak, jak jest
#           Dowód tożsamości: https://keybase.io/mpapis
#           Wiadomość PGP: https://rvm.io/mpapis.asc
rvm1_gpg_keys: '409B6B1796C275462A1703113804BB82D39DC0E3'

# Serwer kluczy GPG
rvm1_gpg_key_server: 'hkp://pool.sks-keyservers.net'

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

Przykłady playbooków

---

- name: Skonfiguruj serwery z obsługą Ruby 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 Ruby, przekaż ją w tablicy, jak poniżej.

---
- name: Skonfiguruj serwery z obsługą Ruby systemowo
  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                            # Potrzebny jest dostęp root do lokalizacji systemowej
      }

rvm_rubies musi być określone w formacie ruby-x.x.x, aby jednak jeśli chcesz ruby 2.2.5, musisz przekazać tablicę rvm_rubies: ['ruby-2.2.5']

Instalacja systemowa

Powyższy przykład skonfiguruje Ruby systemowo. Ważne jest, aby uruchomić play jako root, ponieważ będzie potrzebne zapisanie do lokalizacji systemowej określonej przez rvm1_install_path.

Dla tego samego użytkownika co ansible_user

W tym przypadku po prostu nadpisz rvm_install_path, a domyślnie ustaw flagę --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. Inaczej jest tak samo jak powyżej, z tą różnicą, że musisz podać inny konto użytkownika:

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

Krótkie uwagi dotyczące rvm1_user

Czasami chcesz, aby katalog rvm i jego pliki były własnością konkretnego użytkownika, a nie roota. Po prostu ustaw rvm1_user: 'foo', a gdy Ruby zostanie zainstalowany, upewni się, że foo jest właścicielem katalogu rvm.

Uaktualnianie i usuwanie starych wersji Ruby

Typowy proces aktualizacji wersji Ruby mógłby wyglądać tak:

  1. Zainstaluj nową wersję
  2. Uruchom swoją rolę aplikacji, aby bundle install ponownie zainstalował twoje gemy
  3. Usuń poprzednią wersję Ruby

Wykorzystaj --extra-vars Ansible

Po prostu dodaj --extra-vars 'rvm1_delete_ruby=ruby-2.1.0' na końcu swojego polecenia playbooka, a ta wersja zostanie usunięta.

Wymagania

  • Testowano na CentOS 6 i 7
  • Testowano na Debianie 8 i 9
  • Testowano na Ubuntu 14.04 i 16.04

Ansible galaxy

Możesz znaleźć to na oficjalnym ansible galaxy, jeśli chcesz to 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 swojej 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 silverlogic.rvm
Licencja
mit
Pobrania
7.7k
Właściciel