-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathsetup.yml
More file actions
218 lines (184 loc) · 6.06 KB
/
Copy pathsetup.yml
File metadata and controls
218 lines (184 loc) · 6.06 KB
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
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
---
- hosts: localhost
become: true
tasks:
- name: fetch nodejs repo setup script
get_url:
url: https://deb.nodesource.com/setup_8.x
dest: /tmp/nodesetup
mode: "a+x"
when: ansible_distribution == "Debian" or ansible_distribution == "Ubuntu"
- name: install nodejs repo
shell: /tmp/nodesetup
when: ansible_distribution == "Debian" or ansible_distribution == "Ubuntu"
- name: compute package names
set_fact:
devel_package: build-essential
libvirtd_package: libvirt-daemon-system
libvirtd: libvirtd
redis_package: redis-server
libvirt_dev_package: libvirt-dev
qemu_utils_package: qemu-utils
nfs_package: nfs-kernel-server
when: ansible_distribution == "Debian"
- name: compute package names
set_fact:
devel_package: build-essential
libvirtd_package: libvirt-bin
libvirtd: libvirt-bin
redis_package: redis-server
libvirt_dev_package: libvirt-dev
qemu_utils_package: qemu-utils
nfs_package: nfs-kernel-server
when: ansible_distribution == "Ubuntu"
- name: compute package names
set_fact:
libvirtd_package: libvirt-daemon-kvm
libvirtd: libvirtd
devel_package: "@development-tools"
redis_package: redis
libvirt_dev_package: libvirt-devel
qemu_utils_package: qemu-common
nfs_package: nfs-utils
when: ansible_distribution == "Fedora"
- name: install software
package: name={{item}} state=latest
with_items:
- "{{devel_package}}"
- "{{redis_package}}"
- git
- "{{libvirtd_package}}"
- "{{libvirt_dev_package}}"
- nodejs
- qemu-kvm
- qemu-system-arm
- "{{qemu_utils_package}}"
- "{{nfs_package}}"
- name: link nodejs -> node
file:
src: '/usr/bin/node'
dest: '/usr/bin/nodejs'
state: link
when: ansible_distribution == "Fedora"
- name: set up filesystem
file: path={{item.path}} state={{item.state}}
with_items:
- {path: /var/rvn/img, state: directory}
- {path: /var/rvn/img/user, state: directory}
- {path: /var/rvn/kernel, state: directory}
- {path: /var/rvn/initrd, state: directory}
- {path: /var/rvn/template, state: directory}
- {path: /var/rvn/run, state: touch}
- {path: /var/rvn/ssh, state: directory}
- {path: /var/rvn/util, state: directory}
- {path: /usr/local/lib/rvn, state: directory}
- {path: /root/.ssh, state: directory}
- name: fetch kernels
get_url:
url: https://mirror.deterlab.net/rvn/kernel/{{item}}
dest: /var/rvn/kernel/{{item}}
with_items:
- u-boot:a9
- zImage:a9
- name: install ssh keys
get_url:
url: https://mirror.deterlab.net/rvn/{{item}}
dest: /var/rvn/ssh/{{item}}
with_items:
- rvn
- rvn.pub
- name: install text templates
copy: src={{playbook_dir}}/rvn/{{item}} dest=/var/rvn/template/{{item}}
with_items:
- config.yml
- sys.exports
# ensure icmp from userspace applications works
- lineinfile:
dest: /etc/sysctl.conf
line: net.ipv4.ping_group_range=0 2147483647
when: ansible_distribution == "Debian" or ansible_distribution == "Ubuntu"
- lineinfile:
dest: /etc/sysctl.conf
line: net.ipv4.ping_group_range=0 1
when: ansible_distribution == "Fedora"
- command: sysctl -p
- name: install javascript libraries
copy: src={{item.src}} dest=/usr/local/lib/rvn/{{item.dest}}
with_items:
- {src: run_model.js, dest: run_model.js}
- {src: js/modeling.js, dest: modeling.js}
- name: add raven keys to root
copy: src=/var/rvn/ssh/{{item}} dest=/root/.ssh/{{item}} remote_src=true
with_items:
- rvn
- rvn.pub
- name: set private key permissions
command: chmod 0600 /var/rvn/ssh/rvn
- name: init runtime file
shell: echo "{}" > /var/rvn/run
- name: configure libvirt
lineinfile:
dest: /etc/libvirt/qemu.conf
line: "{{item}}"
with_items:
- user = "root"
- security_driver = "none"
- name: restart libvirt
service:
name: "{{libvirtd}}"
state: restarted
- name: enable rpcbind
service:
name: rpcbind
enabled: yes
when: ansible_distribution == "Fedora"
- name: restart rpcbind
service:
name: rpcbind
state: restarted
when: ansible_distribution == "Fedora"
- name: enable nfs-server
service:
name: nfs-server
enabled: yes
when: ansible_distribution == "Fedora"
- name: restart nfs-server
service:
name: nfs-server
state: restarted
when: ansible_distribution == "Fedora"
- name: enable redis
service:
name: "{{redis_package}}"
enabled: yes
when: ansible_distribution == "Fedora"
- name: restart redis
service:
name: "{{redis_package}}"
state: restarted
- name: fetch rvn binary
get_url:
url: https://github.com/rcgoodfellow/raven/releases/download/v0.3/rvn-libvirt4
dest: /usr/local/bin/rvn
mode: "a+x"
when: ansible_distribution != "Debian" and ansible_distribution != "Ubuntu"
- name: fetch rvn binary
get_url:
url: https://github.com/rcgoodfellow/raven/releases/download/v0.3/rvn-libvirt1
dest: /usr/local/bin/rvn
mode: "a+x"
when: ansible_distribution == "Debian" or ansible_distribution == "Ubuntu"
- name: install rvn-cli in /usr/bin
file:
src: /usr/local/bin/rvn
dest: /usr/bin/rvn
state: link
- name: fetch utilities
get_url:
url: https://mirror.deterlab.net/rvn/util/{{item}}
dest: /var/rvn/util/{{item}}
with_items:
- iamme-linux
- iamme-freebsd
- name: allow ping from go
command: sysctl -w net.ipv4.ping_group_range="0 1"