--- - name: include env vars include_vars: "{{ rbenv.env }}.yml" - include: apt_build_depends.yml when: ansible_pkg_mgr == 'apt' - include: yum_build_depends.yml when: ansible_pkg_mgr == 'yum' # - include: pacman_build_depends.yml # Arch Linux # when: ansible_pkg_mgr == 'pacman' - include: homebrew_build_depends.yml when: ansible_os_family == 'Darwin' - name: checkout rbenv_repo for system git: > repo={{ rbenv_repo }} dest={{ rbenv_root }} version={{ rbenv.version }} accept_hostkey=true when: rbenv.env == "system" tags: - rbenv - name: create plugins directory for system file: state=directory path={{ rbenv_root }}/plugins when: rbenv.env == "system" tags: - rbenv - name: install plugins for system git: > repo={{ item.repo }} dest={{ rbenv_root }}/plugins/{{ item.name }} version={{ item.version }} accept_hostkey=true with_items: rbenv_plugins when: rbenv.env == "system" tags: - rbenv - name: checkout rbenv_repo for selected users git: > repo={{ rbenv_repo }} dest={{ rbenv_root }} version={{ rbenv.version }} accept_hostkey=true with_items: rbenv_users sudo: true sudo_user: "{{ item }}" when: not "system" == "{{ rbenv.env }}" ignore_errors: true tags: - rbenv - name: create plugins directory for selected users file: state=directory path={{ rbenv_root }}/plugins with_items: rbenv_users sudo: true sudo_user: "{{ item }}" when: not "system" == "{{ rbenv.env }}" ignore_errors: true tags: - rbenv - name: install plugins for selected users git: > repo={{ item[1].repo }} dest={{ rbenv_root }}/plugins/{{ item[1].name }} version={{ item[1].version }} accept_hostkey=true with_nested: - rbenv_users - rbenv_plugins sudo: true sudo_user: "{{ item[0] }}" when: not "system" == "{{ rbenv.env }}" ignore_errors: true tags: - rbenv - name: add rbenv initialization to profile system-wide template: src=rbenv.sh.j2 dest=/etc/profile.d/rbenv.sh owner=root group=root mode=0755 sudo: true when: - ansible_os_family != 'OpenBSD' tags: - rbenv - name: set default-gems for select users copy: src=default-gems dest={{ rbenv_root }}/default-gems with_items: rbenv_users sudo: true sudo_user: "{{ item }}" when: - not "system" == "{{ rbenv.env }}" - default_gems_file is not defined ignore_errors: true tags: - rbenv - name: set custom default-gems for select users copy: src={{ default_gems_file }} dest={{ rbenv_root }}/default-gems with_items: rbenv_users sudo: true sudo_user: "{{ item }}" when: - not "system" == "{{ rbenv.env }}" - default_gems_file is defined ignore_errors: true tags: - rbenv - name: set gemrc for select users copy: src=gemrc dest=~/.gemrc with_items: rbenv_users sudo: true sudo_user: "{{ item }}" when: not "system" == "{{ rbenv.env }}" ignore_errors: true tags: - rbenv - name: set vars for select users copy: src=vars dest={{ rbenv_root }}/vars with_items: rbenv_users sudo: true sudo_user: "{{ item }}" when: not "system" == "{{ rbenv.env }}" ignore_errors: true tags: - rbenv - name: check ruby {{ rbenv.ruby_version }} installed for system shell: $SHELL -lc "rbenv versions | grep {{ rbenv.ruby_version }}" register: ruby_installed changed_when: false ignore_errors: yes when: rbenv.env == "system" tags: - rbenv - name: install ruby {{ rbenv.ruby_version }} for system shell: bash -lc "rbenv install {{ rbenv.ruby_version }}" when: - rbenv.env == "system" - ruby_installed.rc != 0 tags: - rbenv - name: install ruby {{ rbenv.ruby_version }} for system shell: bash -lc "rbenv global {{ rbenv.ruby_version }} && rbenv rehash" when: - rbenv.env == "system" - ruby_installed.rc != 0 tags: - rbenv - name: check ruby {{ rbenv.ruby_version }} installed for select users shell: $SHELL -lc "rbenv versions | grep {{ rbenv.ruby_version }}" sudo: true sudo_user: "{{ item }}" with_items: rbenv_users when: not "system" == "{{ rbenv.env }}" register: ruby_installed ignore_errors: yes tags: - rbenv - name: install ruby {{ rbenv.ruby_version }} for select users shell: $SHELL -lc "rbenv install {{ rbenv.ruby_version }}" sudo: true sudo_user: "{{ item[1] }}" with_together: - ruby_installed.results - rbenv_users when: (not "system" == "{{ rbenv.env }}") and (item[0].rc != 0) ignore_errors: true tags: - rbenv - name: install ruby {{ rbenv.ruby_version }} for select users shell: $SHELL -lc "rbenv global {{ rbenv.ruby_version }} && rbenv rehash" sudo: true sudo_user: "{{ item[1] }}" with_together: - ruby_installed.results - rbenv_users when: (not "system" == "{{ rbenv.env }}") and (item[0].rc != 0) ignore_errors: true tags: - rbenv