-
Notifications
You must be signed in to change notification settings - Fork 112
/
main.yml
192 lines (173 loc) · 4.75 KB
/
main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
---
- 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: set 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: set 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