-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall-fifo.sh
executable file
·167 lines (101 loc) · 3.54 KB
/
install-fifo.sh
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
#!/bin/sh
#
# install fifo on smartos
#
ZONE_UUID=""
MAX_PHYS_MEM=""
IP_ADDRESS=""
GATEWAY=""
NETMASK=""
msg() {
echo "$1"
}
die() {
echo "$1" >&2
exit 1
}
check_prereqs() {
which wget >/dev/null 2>&1 || die "FATAL: unable to find wget in \$PATH"
which apt-get >/dev/null 2>&1 || die "FATAL: unable to find apt-get in \$PATH"
which systemctl >/dev/null 2>&1 || die "FATAL: unable to find systemctl in \$PATH"
}
handle_error() {
if [ $1 -ne 0 ]; then
die "FATAL: error during $2 (retval=$1)"
else
msg "INFO: completed $2"
fi
}
# 1. Dataset import
import_image() {
imgadm update
imgadm import e1faace4-e19b-11e5-928b-83849e2fd94a
imgadm list | grep e1faace4-e19b-11e5-928b-83849e2fd94a
}
# 2. Zone creation
zone_creation() {
echo "{" > /opt/setupfifo.json
echo " \"autoboot\": true," >> /opt/setupfifo.json
echo " \"brand\": \"joyent\"," >> /opt/setupfifo.json
echo " \"image_uuid\": \"<zone uuid>\"," >> /opt/setupfifo.json
echo " \"delegate_dataset\": true," >> /opt/setupfifo.json
echo " \"indestructible_delegated\": true," >> /opt/setupfifo.json
echo " \"max_physical_memory\": 3072," >> /opt/setupfifo.json
echo " \"cpu_cap\": 100," >> /opt/setupfifo.json
echo " \"alias\": \"fifo\"," >> /opt/setupfifo.json
echo " \"quota\": \"40\"," >> /opt/setupfifo.json
echo " \"resolvers\": [" >> /opt/setupfifo.json
echo " \"8.8.8.8\"," >> /opt/setupfifo.json
echo " \"8.8.4.4\"" >> /opt/setupfifo.json
echo " ]," >> /opt/setupfifo.json
echo " \"nics\": [" >> /opt/setupfifo.json
echo " {" >> /opt/setupfifo.json
echo " \"interface\": \"net0\"," >> /opt/setupfifo.json
echo " \"nic_tag\": \"admin\"," >> /opt/setupfifo.json
echo " \"ip\": \"10.1.1.240\"," >> /opt/setupfifo.json
echo " \"gateway\": \"10.1.1.1\"," >> /opt/setupfifo.json
echo " \"netmask\": \"255.255.255.0\"" >> /opt/setupfifo.json
echo " }" >> /opt/setupfifo.json
echo " ]" >> /opt/setupfifo.json
echo "}" >> /opt/setupfifo.json
cd /opt
vmadm create -f setupfifo.json
}
# 3. FiFo Packages Install
fifo_packages_install() {
zlogin <fifo-vm-uuid>
zfs set mountpoint=/data zones/$(zonename)/data
}
install_fifo_key() {
cd /data
curl -O https://project-fifo.net/fifo.gpg
gpg --primary-keyring /opt/local/etc/gnupg/pkgsrc.gpg --import < fifo.gpg
gpg --keyring /opt/local/etc/gnupg/pkgsrc.gpg --fingerprint
}
install_packages() {
echo "http://release.project-fifo.net/pkg/15.4.1/rel" >> /opt/local/etc/pkgin/repositories.conf
pkgin -fy up
pkgin install fifo-snarl fifo-sniffle fifo-howl fifo-cerberus
}
# 4. Configuring fifo services
service_startup() {
svcadm enable epmd
svcadm enable snarl
svcadm enable sniffle
svcadm enable howl
svcs epmd snarl sniffle howl
}
initial_admin_tasks() {
# snarl-admin init <realm> <org> <role> <user> <pass>
snarl-admin init default MyOrg Users admin admin
}
# 5. LeoFS initialization
## FIXME
init_leo() {
sniffle-admin init-leofs 10.1.1.21.xip.io
}
# Chunter install
# FIXME
# 6. Configure fifo
# Web console ...
check_prereqs