rvm.ruby

Build-Status OpenCollective OpenCollective Ansible-Rolle Ansible-Rollen-Downloads

Was ist rvm1-ansible?

Es ist eine Ansible Rolle, um Ruby-Versionen mit rvm zu installieren und zu verwalten.

Warum sollten Sie rvm verwenden?

In der Produktion ist es nützlich, weil das Kompilieren einer neuen Ruby-Version leicht über 10 Minuten dauern kann. Das bedeutet 10 Minuten, in denen Ihre CPU konstant auf 100% läuft.

RVM bietet vorkompilierte Binärdateien für viele Betriebssysteme. Das bedeutet, dass Sie Ruby in etwa einer Minute installieren können, selbst auf einer langsamen Mikroinstanz.

Diese Rolle fügt sogar die Ruby-Binärdateien zum Systempfad hinzu, wenn Sie eine systemweite Installation durchführen. So können Sie auf sie zugreifen, als ob sie ohne einen Versionsmanager installiert wären, während Sie gleichzeitig von den Vorteilen von rvm profitieren.

Installation

$ ansible-galaxy install rvm.ruby

Rollenvariablen

Hier ist eine Liste von Standardwerten, die Sie konfigurieren können:

---

# Installieren Sie 1 oder mehrere Ruby-Versionen
# Die letzte aufgelistete Ruby-Version wird als Standard festgelegt
rvm1_rubies:
  - 'ruby-2.3.1'

# Bundler-Gem installieren
rvm1_bundler_install: True

# Eine bestimmte Ruby-Version löschen (z.B. ruby-2.1.0)
rvm1_delete_ruby:

# Installationspfad für rvm (Standard ist ein Einzelbenutzer)
# HINWEIS: Wenn Sie eine INSTALLATION FÜR ROOT machen, stellen Sie sicher,
# dass Sie den Installationspfad auf etwas wie '/usr/local/rvm' setzen
rvm1_install_path: '~/.rvm'

# Fügen Sie Installationsflags hinzu oder entfernen Sie sie
# HINWEIS: Wenn Sie eine ROOT-BASED INSTALLATION machen,
# stellen Sie sicher, dass Sie das --user-install-Flag entfernen
rvm1_install_flags: '--auto-dotfiles --user-install'

# Zusätzliche Installationsflags für Ruby hinzufügen
rvm1_ruby_install_flags:

# Besitzer des rvm-Verzeichnisses festlegen
# HINWEIS: Wenn Sie eine ROOT-BASED INSTALLATION durchführen,
# stellen Sie sicher, dass Sie rvm1_user auf 'root' setzen
rvm1_user: 'ubuntu'

# URL für das neueste Installationsskript
rvm1_rvm_latest_installer: 'https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer'

# Zu verwendende rvm-Version
rvm1_rvm_version: 'stable'

# Überprüfen und aktualisieren Sie rvm, das Deaktivieren zwingt rvm, niemals zu aktualisieren
rvm1_rvm_check_for_updates: True

# GPG-Schlüsselverifizierung, verwenden Sie einen leeren String, wenn Sie dies überspringen möchten
# Hinweis: Es sei denn, Sie wissen, was Sie tun, lassen Sie es einfach so
#           Identitätsnachweis: https://keybase.io/mpapis
#           PGP-Nachricht: https://rvm.io/mpapis.asc
rvm1_gpg_keys: '409B6B1796C275462A1703113804BB82D39DC0E3'

# GPG-Schlüsselserver
rvm1_gpg_key_server: 'hkp://keys.openpgp.org'

# Autolib-Modus, siehe https://rvm.io/rvm/autolibs
rvm1_autolib_mode: 3

# Symlink-Binärdateien zum Systempfad
rvm1_symlink: true

Beispiel-Playbooks

---

- name: Server mit Ruby-Unterstützung für Einzelbenutzer konfigurieren
  hosts: all

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

Wenn Sie eine Liste von Ruby-Versionen übergeben müssen, verwenden Sie ein Array wie folgt.

---
- name: Server mit Ruby-Unterstützung systemweit konfigurieren
  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',     # Entfernen Sie --user-install von den Standardeinstellungen
        rvm1_install_path: /usr/local/rvm,         # Auf Systemstandort setzen
        rvm1_user: root                            # Root-Konto erforderlich, um auf den Systemstandort zuzugreifen
      }

rvm_rubies muss im Format ruby-x.x.x angegeben werden, sodass Sie, wenn Sie ruby 2.2.5 möchten, ein Array rvm_rubies: ['ruby-2.2.5'] übergeben müssen.

Systemweite Installation

Das obige Beispiel würde Ruby systemweit einrichten. Es ist sehr wichtig, dass Sie das Play als Root ausführen, da es an einem vom rvm1_install_path angegebenen Systemstandort geschrieben werden muss.

Zum gleichen Benutzer wie ansible_user

In diesem Fall überschreiben Sie einfach rvm_install_path, das standardmäßig das --user-install-Flag gesetzt hat:

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

Zu einem Benutzer, der nicht ansible_user ist

Sie benötigen hier Root-Zugriff, da Sie außerhalb des Home-Verzeichnisses des Ansible-Benutzers schreiben. Abgesehen davon ist es dasselbe wie oben, außer dass Sie ein anderes Benutzerkonto angeben:

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

Schnellnotizen zu rvm1_user

In einigen Fällen möchten Sie möglicherweise, dass der rvm-Ordner und seine Dateien einem bestimmten Benutzer gehören, anstatt root. Setzen Sie einfach rvm1_user: 'foo', und wenn Ruby installiert wird, wird sichergestellt, dass foo das rvm-Verzeichnis besitzt.

Dies würde das become von Ansible im Hintergrund verwenden. Im Falle von Fehlern (z.B. Fehler beim Festlegen der Berechtigungen für die temporären Dateien, die Ansible erstellen muss, wenn es zu einem nicht privilegierten Benutzer wird) überprüfen Sie https://docs.ansible.com/ansible/latest/user_guide/become.html für Details und mögliche Lösungen.

Upgrade und Entfernen alter Ruby-Versionen

Ein typischer Ablauf zum Aktualisieren Ihrer Ruby-Version wäre:

  1. Installieren Sie die neue Version
  2. Führen Sie Ihr Anwendungs-Playbook aus, damit bundle install Ihre Gems neu installiert
  3. Löschen Sie die vorherige Ruby-Version

Nutzen Sie --extra-vars von Ansible

Fügen Sie einfach --extra-vars 'rvm1_delete_ruby=ruby-2.1.0' am Ende Ihres Playbook-Befehls hinzu, und diese Version wird entfernt.

Anforderungen

Potentiell sollte jedes von Ansible unterstützte Linux/Unix-System, das die RVM-Voraussetzungen erfüllt, funktionieren.

Die Kompatibilität mit Linux-Distributionen, die auf Debian, Ubuntu oder Redhat basieren, wird aktiv getestet.

Das Continuous-Integration-Setup dieses Projekts deckt derzeit folgende Plattformen ab:

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

Ansible Galaxy

Sie können es auf der offiziellen Ansible Galaxy finden, wenn Sie es bewerten möchten.

Mitwirken

Unterstützer

Werden Sie ein Unterstützer und unterstützen Sie uns mit einer kleinen monatlichen Spende, um unsere Aktivitäten fortzusetzen.

Unterstützer Unterstützer Unterstützer Unterstützer Unterstützer Unterstützer Unterstützer Unterstützer Unterstützer Unterstützer Unterstützer Unterstützer Unterstützer Unterstützer Unterstützer Unterstützer Unterstützer Unterstützer Unterstützer Unterstützer

Sponsoren

Werden Sie ein Sponsor und erhalten Sie Ihr Logo auf unserem README auf Github mit einem Link zu Ihrer Website.

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

Lizenz

MIT

Über das Projekt

The official RVM role to install and manage your ruby versions

Installieren
ansible-galaxy install rvm.ruby
Lizenz
mit
Downloads
881k
Besitzer
Ruby enVironment Manager