zacker330
12/3/2014 - 12:04 AM

Ansible: install multiple rubies automatly by rbenv

Ansible: install multiple rubies automatly by rbenv

---
- name: Install dependencies for rbenv
  yum: name=git
  tags: rbenv

- name: Install rbenv
  sudo: yes
  git: repo=git://github.com/sstephenson/rbenv.git dest=/home/{{ user }}/.rbenv version={{ rbenv.version }} accept_hostkey=yes
  tags: rbenv

- name: Add ~.rbenv/bin to PATH
  lineinfile: >
    dest="/home/{{ user }}/.bash_profile"
    line="export PATH=$HOME/.rbenv/bin:$PATH"
  tags: rbenv

- name: Eval rbenv init in home/{{ user }}/.bash_profile
  sudo: yes
  lineinfile: >
    dest="/home/{{ user }}/.bash_profile"
    line='eval "$(rbenv init -)"'
  tags: rbenv

- name: Copy .gemrc to home/{{ user }}/.gemrc
  sudo: yes
  copy: src={{ item }} dest=/home/{{ user }}/.gemrc
  with_first_found:
    - ../../../files/.gemrc
    - .gemrc
  tags: rbenv

- name: Install dependencies for ruby-build
  yum: name={{ item }}
  with_items:
    - bison
    - gcc
    - make
    - automake
    - autoconf
    - curl-devel
    - libffi-devel
    - readline-devel
    - openssl-devel
    - ncurses-devel
    - zlib-devel
    - httpd-devel
    - apr-devel
    - apr-util-devel
    - sqlite-devel
  tags: rbenv

- name: Install ruby-build as rbenv plugin
  sudo: yes
  git: repo=https://github.com/sstephenson/ruby-build.git dest=/home/{{ user }}/.rbenv/plugins/ruby-build
  tags: rbenv

- name: source bash_profile
  shell: source /home/{{ user }}/.bash_profile

- name: Check if {{ rbenv.ruby_version }} is installed
  shell: "sudo -iu {{ rbenv.user }} rbenv versions | grep {{ rbenv.ruby_version }}"
  register: rbenv_check_install
  changed_when: False
  ignore_errors: True
  tags: rbenv
---
rbenv:
  user: "{{ user }}"
  version: v0.4.0
  ruby_version: 2.0.0-p247