forked from evolix/ansible-roles
Jérémy Lecour
38bc504475
Installe un environnement Rbenv (avec quelques plugins) pour un utilisateur, une version de Ruby et des gems par défaut.
119 lines
2.7 KiB
YAML
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
|