ruby

Статус сборки Поддержка Спонсоры Роль Ansible Скачивания роли Ansible

Что такое rvm1-ansible?

Это Ansible роль для установки и управления версиями Ruby с помощью rvm.

Почему стоит использовать rvm?

В производстве это полезно, так как компиляция новой версии Ruby может занять более 10 минут. Это значит, что ваш CPU будет работать на 100% в течение этого времени.

rvm имеет предкомпилированные бинарные файлы для множества операционных систем. Это позволяет установить Ruby за около 1 минуты, даже на медленном микро-инстансе.

Эта роль также добавляет бинарные файлы Ruby в путь системы при глобальной установке. Это позволяет использовать их, как если бы они были установлены без менеджера версий, при этом вы все равно получаете преимущества от rvm.

Установка

$ ansible-galaxy install rvm.ruby

Переменные роли

Вот список значений по умолчанию, которые вы можете настроить:

---

# Установка одной или нескольких версий Ruby
# Последняя версия Ruby в списке станет версией по умолчанию
rvm1_rubies:
  - 'ruby-2.3.1'

# Установка гемов bundler
rvm1_bundler_install: True

# Удалить конкретную версию Ruby (например, ruby-2.1.0)
rvm1_delete_ruby:

# Путь установки для rvm (по умолчанию установка для одного пользователя)
# ПРИМЕЧАНИЕ: Если вы делаете установку с правами ROOT, убедитесь, что
#            вы устанавливаете путь установки на что-то вроде '/usr/local/rvm'
rvm1_install_path: '~/.rvm'

# Добавить или удалить любые флаги установки
# ПРИМЕЧАНИЕ: Если вы делаете установку с правами ROOT, убедитесь,
#            что вы УДАЛИЛИ флаг --user-install ниже
rvm1_install_flags: '--auto-dotfiles  --user-install'

# Добавить дополнительные флаги установки Ruby
rvm1_ruby_install_flags:

# Установить владельца для директории rvm
# ПРИМЕЧАНИЕ: Если вы делаете установку с правами ROOT, 
#            убедитесь, что rvm1_user установлен на 'root'
rvm1_user: 'ubuntu'

# URL для последнего установщика
rvm1_rvm_latest_installer: 'https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer'

# Версия rvm для использования
rvm1_rvm_version: 'stable'

# Проверка и обновление rvm; отключение этого параметра заставит rvm никогда не обновляться
rvm1_rvm_check_for_updates: True

# Проверка ключа GPG; используйте пустую строку, если хотите пропустить это
# Примечание: Если вы не знаете, что делаете, лучше оставить как есть
#           Доказательство личности: https://keybase.io/mpapis
#           Сообщение PGP: https://rvm.io/mpapis.asc
rvm1_gpg_keys: '409B6B1796C275462A1703113804BB82D39DC0E3'

# Сервер ключей GPG
rvm1_gpg_key_server: 'hkp://keys.openpgp.org'

# Режим autolib, см. https://rvm.io/rvm/autolibs
rvm1_autolib_mode: 3

# Ссылка на бинарные файлы в системный путь
rvm1_symlink: true

Примеры playbook'ов

---

- name: Настроить серверы с поддержкой Ruby для одного пользователя
  hosts: all

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

Если вам нужно передать список версий Ruby, передайте его в массиве следующим образом.

---
- name: Настроить серверы с поддержкой Ruby для всех пользователей
  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',     # Удалить --user-install из параметров по умолчанию
        rvm1_install_path: /usr/local/rvm,         # Установить в системный путь
        rvm1_user: root                            # Необходима учетная запись root для доступа к системному пути
      }

rvm1_rubies должен быть указан в формате ruby-x.x.x, чтобы вы могли _указать ruby 2.2.5, вам следует передать массив rvm1_rubies: ['ruby-2.2.5']

Глобальная установка

Пример выше установит Ruby для всех пользователей. Очень важно, чтобы вы запускали play с правами root, так как потребуется запись в системный путь, указанный в rvm1_install_path.

Для того же пользователя, что и ansible_user

В этом случае просто переопределите rvm1_install_path, и по умолчанию будет установлен флаг --user-install:

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

Для пользователя, который не является ansible_user

Вам понадобится доступ root, так как записи будут производиться вне домашнего каталога пользователя ansible. В остальном все так же, только вам нужно будет указать другую учетную запись пользователя:

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

Быстрые заметки о rvm1_user

В некоторых случаях вам может понадобиться, чтобы папка rvm и ее файлы принадлежали конкретному пользователю, а не root. Просто установите rvm1_user: 'foo', и когда Ruby будет установлен, будет обеспечено, что foo будет владельцем директории rvm.

Это будет использовать become Ansible под капотом. В случае ошибок (например, Не удалось установить права на временные файлы, которые Ansible необходимо создать, когда он становится непривилегированным пользователем), ознакомьтесь с https://docs.ansible.com/ansible/latest/user_guide/become.html для получения подробностей и возможных решений.

Обновление и удаление старых версий Ruby

Обычный процесс обновления вашей версии Ruby будет следующим:

  1. Установите новую версию.
  2. Запустите свою роль приложения, чтобы выполнить re-install вашей гемы.
  3. Удалите предыдущую версию Ruby.

Используйте --extra-vars Ansible

Просто добавьте --extra-vars 'rvm1_delete_ruby=ruby-2.1.0' в конец вашей команды playbook, и эта версия будет удалена.

Требования

Возможно, любые системы Linux/Unix, поддерживаемые Ansible и удовлетворяющие предварительным требованиям RVM, будут работать.

Совместимость с дистрибутивами Linux на базе Debian, Ubuntu или Redhat активно тестируется.

Настройка непрерывной интеграции этого проекта в настоящее время охватывает следующие платформы:

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

Ansible galaxy

Вы можете найти его на официальном ansible galaxy, если хотите оценить.

Участие

Поддержка

Станьте сторонником и поддержите нас небольшим ежемесячным взносом, чтобы помочь нам продолжать нашу деятельность.

Сторонник Сторонник Сторонник Сторонник Сторонник Сторонник Сторонник Сторонник Сторонник Сторонник Сторонник Сторонник Сторонник Сторонник Сторонник Сторонник Сторонник Сторонник Сторонник Сторонник

Спонсоры

Станьте спонсором и получите свой логотип в нашем README на Github с ссылкой на ваш сайт.

Спонсор Спонсор Спонсор Спонсор Спонсор Спонсор Спонсор Спонсор Спонсор Спонсор Спонсор Спонсор Спонсор Спонсор Спонсор Спонсор Спонсор Спонсор Спонсор Спонсор

Лицензия

MIT

О проекте

The official RVM role to install and manage your ruby versions

Установить
ansible-galaxy install rvm/rvm1-ansible
Лицензия
mit
Загрузки
808730
Владелец
Ruby enVironment Manager