--- - name: Clone rbenv git: repo: "https://github.com/rbenv/rbenv.git" dest: "~/.rbenv" clone: true version: "{{ rbenv_version }}" - name: Clone ruby-build git: repo: "https://github.com/rbenv/ruby-build.git" dest: "~/.rbenv/plugins/ruby-build" clone: true version: "{{ ruby_build_version }}" register: ruby_build - name: Configure rbenv command: ./configure args: chdir: "~/.rbenv/src" register: rbenv_configure - name: Build rbenv command: make args: chdir: "~/.rbenv/src" when: rbenv_configure is succeeded - name: Update profile settings copy: dest: "~/.bashrc" content: | export PATH="~/.rbenv/bin:${PATH}" eval "$(rbenv init -)" - name: Check if the Ruby version is already installed shell: "~/.rbenv/bin/rbenv versions | grep -q {{ ruby_version }}" register: ruby_installed ignore_errors: yes check_mode: no - name: Install Ruby {{ ruby_version }} shell: "~/.rbenv/bin/rbenv install {{ ruby_version }}" args: executable: /bin/bash when: ruby_installed is failed - name: Set the default Ruby version to {{ ruby_version }} shell: "~/.rbenv/bin/rbenv global {{ ruby_version }}" args: executable: /bin/bash register: default_ruby_version - name: Install bundler shell: 'export PATH="$HOME/.rbenv/bin:$PATH"; eval "$(rbenv init -)"; gem install bundler:{{ bundler_version }}' args: executable: /bin/bash when: default_ruby_version is succeeded