Ansibleでrbenvを使ってrubyのインストールを考えてみましたが、とにかくハマりました。
前回はcopyモジュールのお話でした。
■roles/ruby/tasks/main.yml
基本/usr/localにrbenvを管理しているので全ユーザーでrubyを使えるようにしてます。特にrubyはパスが重要なので、ただshellモジュールでrbenvでインストールするとエラーが出ます。そこでbash -lcを使って制御するわけです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
- name: git clone rbenv git: repo: https://github.com/sstephenson/rbenv.git dest: /usr/local/rbenv/ - name: git clone ruby-build git: repo: https://github.com/sstephenson/ruby-build.git dest: /usr/local/rbenv/plugins/ruby-build/ - name: insert/update /etc/profile env blockinfile: path: /etc/profile block: | export RBENV_ROOT="/usr/local/rbenv" export PATH="${RBENV_ROOT}/bin:${PATH}" eval "$(rbenv init --no-rehash -)" - name: source /etc/profile shell: bash -lc "source /etc/profile" - name: rbenv install -v 2.4.1 shell: bash -lc "/usr/local/rbenv/bin/rbenv install -v 2.4.1" ignore_errors: yes - name: rbenv rehash shell: bash -lc "/usr/local/rbenv/bin/rbenv rehash" ignore_errors: yes - name: rbenv global 2.4.1 shell: bash -lc "/usr/local/rbenv/bin/rbenv global 2.4.1" ignore_errors: yes - name: rbenv exec gem install bundler shell: bash -lc "/usr/local/rbenv/bin/rbenv exec gem install bundler" ignore_errors: yes - name: gem update --system shell: bash -lc "gem update --system" ignore_errors: yes - name: gem install nokogiri shell: bash -lc "gem install nokogiri" ignore_errors: yes - name: gem install --no-ri --no-rdoc rails shell: bash -lc "gem install --no-ri --no-rdoc rails" ignore_errors: yes - name: gem install bundler shell: bash -lc "gem install bundler" ignore_errors: yes - name: source /etc/profile shell: bash -lc "source /etc/profile" |
■まとめ
rubyモジュールないのかね!!
参考:http://qiita.com/joytomo/items/f58dd53708f976f26a87
0件のコメント