Help us understand the problem. What is going on with this article?

AnsibleでサーバにRubyをインストールする

More than 1 year has passed since last update.

Ansibleでサーバ(Amazon Linux2)の環境構築をしているのですが、rbenvを使わずにソースからrubyを入れたので、その手順をまとめてみました

インストールするためにやったこと

手順は大まかに次の4つになります

1. Ansible GalaxyからRubyをインストールするロールを探す
2. ansible-galaxy install コマンドでプロジェクトのroleに追加
3. インストールしたいRubyのバージョンなど設定ファイルを書き換え
4. Playbookを実行し、WebサーバのRubyのバージョンを確認する

※ Ansible Galaxyとは

ロールを共有するためのサービスで、Docker HubやChefのSupermarketのようなイメージです

1. Ansible GalaxyからRubyをインストールするロールを探す

Ansible GalaxyでkeywordにRubyと入力し、star数などを確認しながら目的のものを探します
今回はこちら( geerlingguy.ruby)を使ってみることにします

2. ansible-galaxy install コマンドでプロジェクトのroleに追加

プロジェクトのrole配下にインストールしたかったため、こちらのコマンドを実行しました

$ ansible-galaxy install geerlingguy.ruby -p roles/servers/common

するとroles/servers/common/geerlingguy.rubyに作成されました

ansible2.png

3. インストールしたいRubyのバージョンなど設定ファイルを書き換え

Ruby 2.4.2をインストールしたかったため、geerlingguy.ruby/defaults/main.yml ファイルを書き換えます

main.yml
---
workspace: /root

# Whether this role should install Bundler.
ruby_install_bundler: True

# A list of Ruby gems to install.
ruby_install_gems: []

# The user account under which Ruby gems will be installed.
ruby_install_gems_user: "{{ ansible_user }}"

# If set to True, ruby will be installed from source, using the version set with
# the 'ruby_version' variable instead of using a package.
ruby_install_from_source: True
ruby_download_url: http://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.2.tar.gz
ruby_version: 2.4.2

# Default should usually work, but this will be overridden on Ubuntu 14.04.
ruby_rubygems_package_name: rubygems
※注意点

Playbookのgather_factsをtrueにしておかないと、 "{{ ansible_user }}" が取得できないです
falseにする場合は、"{{ ansible_user }}" を書き換える必要があります

main.yml
省略

# The user account under which Ruby gems will be installed.
ruby_install_gems_user: "{{ ansible_user }}"

省略

Playbookの一例でこんなファイルだとすると

webserver.yml
- name: webserver
  hosts: web
  gather_facts: true
  remote_user: ec2-user
  become: yes
  roles:
    - servers/common/geerlingguy.ruby

4. Playbookを実行し、WebサーバのRubyのバージョンを確認する

サーバにsshし、Rubyのバージョンを確認してみます
ansible1.png
無事Ruby 2.4.2がインストールされました

参考サイト

shitake4
Railsのコードリーディングとかやってます https://blog.shitake4.tech
https://blog.shitake4.tech
globis
グロービスは 1992 年の創業以来、社会人を対象とした MBA、人材育成の領域で Ed-Tech サービスを提供し、現在は日本 No.1 の実績があります。これらの資産と、さらに IT や AI を活用することで、アジア No.1 を目指しています。
http://www.globis.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした