AnsibleでRuby2.1をソースからインストールしてみる

Ansibleでローカル環境にインストールしてみる
の続き

AnsibleでRubyをソースからインストールしてみる。


プレイブックを作成。
※面倒なのでname:を省略してますが、ちゃんとname:を付けましょう。

$ vi ruby.yml
---
- hosts: all
  sudo: yes
  tasks:

    # Rubyのインストールに必要そうなものを入れておく
    - yum: name={{item}} state=latest
      with_items:
        - wget
        - gcc
        - gcc-c++
        - make
        - openssl-devel
        - zlib-devel
        - readline-devel
        - sqlite-devel

    # Rubyをダウンロードして解凍してインストールする
    - get_url: url=ftp://core.ring.gr.jp/pub/lang/ruby/2.1/ruby-2.1.3.tar.gz dest=/usr/local/src/
    - unarchive: src=/usr/local/src/ruby-2.1.3.tar.gz dest=/usr/local/src/ creates=/usr/local/src/ruby-2.1.3
    - shell: >
        ./configure --with-opt-dir=/usr/local --enable-shared --enable-option-checking &&
        make &&
        make test &&
        make install
        chdir=/usr/local/src/ruby-2.1.3
        creates=/usr/local/bin/ruby

    # sudoでgemが見つからないので、/usr/local/binをパスに追加しておく
    - replace: >
        dest=/etc/sudoers
        regexp="^Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin$"
        replace="Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin"

実行。(※sudoでパスワードが必要な場合は「-K」を付けてください。)

$ ansible-playbook ruby.yml

Rubyが入った。

$ ruby -v
ruby 2.1.3p242 (2014-09-19 revision 47630) [x86_64-linux]

Gemも入ってる。

$ sudo gem -v
2.2.2

Rails

Railsを入れる場合は、下記のような感じ。

$ vi rails.yml
---
- hosts: all
  sudo: yes
  tasks:

    # Railsをインストール
    - gem: name={{item}} state=latest user_install=no
      with_items:
        - rails
        - sqlite3
$ asible-playbook rails.yml

Railsが入った。

$ rails -v
Rails 4.1.7