シリーズと化してしまいましたね。
今回はRubyインストールです、2.3.1をインストールしました。
Rubyインストール
以下のようにする。
roles/web/tasks/ruby.yml
---
- name: get ruby 2.3.1
get_url: >
url=https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
dest=/usr/local/src/ruby-2.3.1.tar.gz
- name: uncompress ruby-archive
command: >
tar xvzf ruby-2.3.1.tar.gz
chdir=/usr/local/src/
creates=/usr/local/src/ruby-2.3.1/Makefile
- name: configure
command: >
./configure --prefix=/usr/local/
chdir=/usr/local/src/ruby-2.3.1/
creates=/usr/local/src/ruby-2.3.1/Makefile
- name: make
command: >
make
chdir=/usr/local/src/ruby-2.3.1/
creates=/usr/local/bin/ruby
- name: make install
command: >
make install
chdir=/usr/local/src/ruby-2.3.1/
creates=/usr/local/bin/ruby
めっちゃハマったこと
./configureとmakeのタスクに「creates=/usr/local/bin/ruby-2.3.1」と指定して、ディレクトリが存在したら作業しないようにさせたかったんだけど、記述するとタスクがエラー吐いて爆発してしまう……。 結局解決方法がわからなくて、記述を削除して、make installの時だけ、rubyのバイナリが見つかったら作業しない、というようにしました。
追記
Makefileで判断すりゃいいと気付いたので追加してます。 shellのcreatesを見ると「a filename」と書いてあるので動かないのは当然であった。
WARNING出てないのでcommand:を利用していますが本来はshell使うほうが良いでしょうね。