Skip to content

Instantly share code, notes, and snippets.

@psy-q
Created April 8, 2014 15:53
Show Gist options
  • Select an option

  • Save psy-q/10146833 to your computer and use it in GitHub Desktop.

Select an option

Save psy-q/10146833 to your computer and use it in GitHub Desktop.
Ansible: git refuses to run because it can't cd to /root
---
- name: Install packages for rbenv
apt: pkg={{ item }} state=present
with_items:
- git
- libreadline-dev
- libreadline6-dev
- libssl-dev
- libxslt1-dev
- libxml2-dev
- build-essential
- zlib1g-dev
- sudo
- name: Make sure {{ ruby_user }} exists and uses bash
user: name={{ ruby_user }} shell=/bin/bash state=present
- name: Check if rbenv is installed
sudo: true
sudo_user: "{{ ruby_user }}"
command: bash -lc "rbenv --version"
register: rbenv_is_installed
ignore_errors: true
- name: Install rbenv locally for {{ ruby_user }}
git: repo=https://github.com/sstephenson/rbenv.git dest={{ rbenv_root }}
#shell: cd ~ && git clone https://github.com/sstephenson/rbenv.git /home/pflanze/.rbenv
sudo: true
sudo_user: "{{ ruby_user }}"
register: rbenv_has_been_installed
when: rbenv_is_installed|failed
- name: Install ruby-build so you can install Rubies through rbenv
sudo: true
sudo_user: "{{ ruby_user }}"
git: repo=https://github.com/sstephenson/ruby-build.git dest={{rbenv_root}}/plugins/ruby-build
when: rbenv_is_installed|failed
- name: Install rbenv .profile snippet for user {{ ruby_user }} (1/2)
sudo: true
sudo_user: "{{ ruby_user }}"
lineinfile:
dest: ~/.profile
state: present
regexp: "export PATH=.*rbenv.*"
line: "export PATH=\"{{ rbenv_root }}:$PATH\""
create: yes
when: rbenv_is_installed|failed
- name: Install rbenv .profile snippet for user {{ ruby_user }} (2/2)
sudo: true
sudo_user: "{{ ruby_user }}"
lineinfile:
dest: ~/.profile
state: present
regexp: ^eval.*rbenv init.*
line: eval "$(rbenv init -)"
insertafter: "^export PATH=.*rbenv.*"
create: yes
when: rbenv_is_installed|failed
- name: Upgrade rbenv for {{ ruby_user }}
sudo: true
sudo_user: "{{ ruby_user }}"
command: chdir={{ rbenv_root }} bash -l -c 'git pull'
when: rbenv_is_installed|success
- name: Upgrade ruby-build for {{ ruby_user }}
sudo: true
sudo_user: "{{ ruby_user }}"
command: chdir={{ rbenv_root }}/plugins/ruby-build bash -lc 'git pull'
when: rbenv_is_installed|success
- name: "rbenv: Check if Ruby {{ ruby_version }} is installed for user {{ ruby_user }}"
sudo: true
sudo_user: "{{ ruby_user }}"
command: bash -lc 'rbenv versions | grep {{ ruby_version }}'
register: ruby_is_installed
ignore_errors: true
- name: "rbenv: Install rbenv Ruby {{ ruby_version }} for user {{ ruby_user }}"
sudo: true
sudo_user: "{{ ruby_user }}"
command: executable=/bin/bash bash -lc 'rbenv install {{ ruby_version }}'
when: (rbenv_is_installed|success or rbenv_has_been_installed|success) and ruby_is_installed|failed
register: ruby_has_been_installed
- name: "rbenv: Check if Ruby {{ ruby_version }} user {{ ruby_user }} has Bundler"
sudo: true
sudo_user: "{{ ruby_user }}"
command: executable=/bin/bash bash -lc 'rbenv shell {{ ruby_version }} && rbenv rehash && gem list bundler | grep bundler'
when: (rbenv_is_installed|success or rbenv_has_been_installed|success) and (ruby_is_installed|success or ruby_has_been_installed|success)
register: bundler_is_installed
ignore_errors: true
- name: "rbenv: Install bundler for Ruby {{ ruby_version }} of user {{ ruby_user }}"
sudo: true
sudo_user: "{{ ruby_user }}"
command: executable=/bin/bash bash -lc 'rbenv shell {{ ruby_version }} && rbenv rehash && gem install bundler'
when: bundler_is_installed|failed
- name: "rbenv: Set default ruby for {{ ruby_user }} to {{ ruby_version }}"
sudo: true
sudo_user: "{{ ruby_user }}"
command: executable=/bin/bash bash -lc 'RBENV_ROOT={{ rbenv_root.stdout }} rbenv global {{ ruby_version }}'
when: set_default
- name: "rbenv: Set default ruby for {{ ruby_user }} to {{ ruby_version }}"
sudo: true
sudo_user: "{{ ruby_user }}"
command: executable=/bin/bash bash -lc 'rbenv global {{ ruby_version }}'
when: default_ruby == ruby_version
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment