rvm.ruby

ビルドステータス オープンコレクティブ オープンコレクティブ Ansibleロール Ansibleロールダウンロード数

rvm1-ansibleとは?

rvmを使用してRubyのバージョンをインストールおよび管理するためのAnsibleロールです。

なぜrvmを使用するのか?

本番環境では、新しいバージョンのRubyをコンパイルするのに10分以上かかることがあります。つまり、CPUが100%の状態で10分間も使用されるということです。

rvmには多くのオペレーティングシステム用の事前コンパイル済みバイナリがあります。これにより、遅いマイクロインスタンスでも約1分でRubyをインストールできます。

このロールは、システム全体のインストール時にRubyのバイナリをシステムパスに追加します。これにより、バージョンマネージャーを使用せずにインストールされたかのようにアクセスでき、rvmの恩恵を受けることができます。

インストール

$ ansible-galaxy install rvm.ruby

ロール変数

以下は構成できるデフォルト値のリストです:

---

# 1つ以上のRubyバージョンをインストール
# 最後にリストされたRubyがデフォルトのRubyとして設定されます
rvm1_rubies:
  - 'ruby-2.3.1'

# bundler gemをインストール
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をチェックして更新、無効にすると更新されないようにする
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

例のプレイブック

---

- 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がシステム全体に設定されます。rvm1_install_pathで指定されたシステムの場所に書き込む必要があるため、プレイをrootとして実行することが非常に重要です。

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ディレクトリを所有することが保証されます。

これはAnsibleのbecomeを内部で使用します。失敗した場合(例:無特権ユーザーになるときにAnsibleが作成する必要がある一時ファイルの権限を設定できませんでした)、詳細と解決策については https://docs.ansible.com/ansible/latest/user_guide/become.html を参照してください。

Rubyの古いバージョンをアップグレードおよび削除する

Rubyバージョンをアップグレードするための一般的なワークフローは次のとおりです:

  1. 新しいバージョンをインストール
  2. アプリケーションロールを実行し、bundle installでgemを再インストール
  3. 古いバージョンのRubyを削除

ansibleの--extra-varsを活用する

プレイブックコマンドの末尾に--extra-vars 'rvm1_delete_ruby=ruby-2.1.0'を追加するだけで、そのバージョンを削除できます。

要件

Ansibleによってサポートされ、RVMの前提条件を満たす任意のLinux/Unixシステムが動作する可能性があります。

Debian、Ubuntu、またはRedhatファミリーに基づくLinuxディストリビューションとの互換性は、積極的にテストされています。

このプロジェクトの継続的インテグレーションのセットアップは、現在以下のプラットフォームをカバーしています:

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

Ansible Galaxy

公式のansible galaxyで見つけることができますので、評価したい場合はご覧ください。

貢献

バッカー

バッカーになると、私たちの活動を続けるために小額の月額寄付でサポートしてください。

バッカー バッカー バッカー バッカー バッカー バッカー バッカー バッカー バッカー バッカー バッカー バッカー バッカー バッカー バッカー バッカー バッカー バッカー バッカー バッカー

スポンサー

スポンサーになると、あなたのロゴを私たちのGitHubのREADMEに掲載し、あなたのサイトへのリンクを提供します。

スポンサー スポンサー スポンサー スポンサー スポンサー スポンサー スポンサー スポンサー スポンサー スポンサー スポンサー スポンサー スポンサー スポンサー スポンサー スポンサー スポンサー スポンサー スポンサー スポンサー

ライセンス

MIT

プロジェクトについて

The official RVM role to install and manage your ruby versions

インストール
ansible-galaxy install rvm.ruby
ライセンス
mit
ダウンロード
881k
所有者
Ruby enVironment Manager