ansible-roles/rbenv/tasks/main.yml
Jérémy Lecour 38bc504475 ajoute un rôle "rbenv"
Installe un environnement Rbenv (avec quelques plugins) pour un utilisateur,
une version de Ruby et des gems par défaut.
2016-12-21 16:11:46 +01:00

119 lines
2.7 KiB
YAML

---
- name: install rbenv dependencies
apt:
pkg: '{{ item }}'
install_recommends: no
state: present
with_items:
- build-essential
- git
- libcurl4-openssl-dev
- libffi-dev
- libreadline-dev
- libssl-dev
- libxml2-dev
- libxslt1-dev
- zlib1g-dev
tags:
- rbenv
- packages
- name: checkout rbenv_repo for {{ username }}
git:
repo: '{{ rbenv_repo }}'
dest: '{{ rbenv_root }}'
version: '{{ rbenv_version }}'
accept_hostkey: yes
force: yes
become_user: "{{ username }}"
ignore_errors: yes
tags:
- rbenv
- name: create plugins directory for {{ username }}
file:
path: '{{ rbenv_root }}/plugins'
state: directory
become_user: "{{ username }}"
ignore_errors: yes
tags:
- rbenv
- name: install plugins for {{ username }}
git:
repo: '{{ item.repo }}'
dest: '{{ rbenv_root }}/plugins/{{ item.name }}'
version: '{{ item.version }}'
accept_hostkey: yes
force: yes
with_items:
- "{{ rbenv_plugins }}"
become_user: "{{ username }}"
ignore_errors: yes
tags:
- rbenv
- name: Init rbenv in profile for {{ username }}
become_user: "{{ username }}"
blockinfile:
dest: '~{{ username }}/.profile'
block: |
export PATH="{{ rbenv_root }}/bin:$PATH"
eval "$(rbenv init -)"
marker: "# {mark} ANSIBLE MANAGED RBENV INIT"
- name: set default-gems for {{ username }}
copy:
src: default-gems
dest: '{{ rbenv_root }}/default-gems'
become_user: "{{ username }}"
ignore_errors: yes
tags:
- rbenv
- name: set gemrc for {{ username }}
copy:
src: gemrc
dest: ~/.gemrc
become_user: "{{ username }}"
ignore_errors: yes
tags:
- rbenv
- name: check ruby {{ rbenv_ruby_version }} installed for {{ username }}
shell: /bin/bash -lc "rbenv versions | grep {{ rbenv_ruby_version }}"
become_user: "{{ username }}"
register: ruby_installed
changed_when: false
ignore_errors: yes
always_run: yes
tags:
- rbenv
- name: install ruby {{ rbenv_ruby_version }} for {{ username }}
shell: /bin/bash -lc "TMPDIR=~/tmp rbenv install {{ rbenv_ruby_version }}"
become_user: "{{ username }}"
when: ruby_installed.rc != 0
ignore_errors: yes
tags:
- rbenv
- name: check if user ruby version is {{ rbenv_ruby_version }} for {{ username }}
shell: /bin/bash -lc "rbenv version | cut -d ' ' -f 1 | grep -Fx '{{ rbenv_ruby_version }}'"
become_user: "{{ username }}"
register: ruby_selected
changed_when: false
ignore_errors: yes
always_run: yes
tags:
- rbenv
- name: set ruby {{ rbenv_ruby_version }} for {{ username }}
shell: /bin/bash -lc "rbenv global {{ rbenv_ruby_version }} && rbenv rehash"
become_user: "{{ username }}"
when: ruby_selected.rc != 0
ignore_errors: yes
tags:
- rbenv