forked from cjy37/linux-install-script
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfedora-installScript
More file actions
321 lines (267 loc) · 8.55 KB
/
fedora-installScript
File metadata and controls
321 lines (267 loc) · 8.55 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
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
#!/bin/sh
#------------------------------------------
# Fedora19/20 asp.net InstallScript
# copyright https://github.com/cjy37
# email: rocky.cn@foxmail.com
#------------------------------------------
function showMenu()
{
clear
echo
echo "--------------------------------------------------------------"
echo "| Fedora19/20 Install Helper |"
echo "| copyright https://github.com/cjy37 |"
echo "--------------------------------------------------------------"
echo "| a. Install ALL |"
echo "| b. Install Web Server (linux mono mysql jexus)[c,d] |"
echo "| c. Install Mono & Jexus (Asp.Net Web Server) |"
echo "| d. Install Mysql (MariaDB-10) |"
echo "| e. Install Haproxy |"
echo "| f. Install Redis |"
echo "| g. Install Node.js |"
echo "| h. Install MongoDB |"
echo "| i. Install Nginx |"
echo "| x. Exit |"
echo "--------------------------------------------------------------"
echo
return 0
}
function selectCmd()
{
alias cp='cp'
showMenu
echo "Please select a serial number for installation [a-x]:"
read -n 1 M
echo
if [ "$M" = "x" ]; then
exit 1
elif [ "$M" = "a" ]; then
echo "Installing ALL..."
echo "------------------------------------"
setupMono && setupJws && setupMysql && setupHaproxy && setupRedis && setupNodejs && setupNginx && setupMongodb
read -n 1 -p "Press <Enter> to continue..."
elif [ "$M" = "b" ]; then
echo "Installing Web Server ... [c,d]"
echo "------------------------------------"
setupMono && setupJws && setupMysql
read -n 1 -p "Press <Enter> to continue..."
elif [ "$M" = "c" ]; then
setupMono && setupJws
read -n 1 -p "Press <Enter> to continue..."
elif [ "$M" = "d" ]; then
setupMysql
read -n 1 -p "Press <Enter> to continue..."
elif [ "$M" = "e" ]; then
setupHaproxy
read -n 1 -p "Press <Enter> to continue..."
elif [ "$M" = "f" ]; then
setupRedis
read -n 1 -p "Press <Enter> to continue..."
elif [ "$M" = "g" ]; then
setupNodejs
read -n 1 -p "Press <Enter> to continue..."
elif [ "$M" = "h" ]; then
setupMongodb
read -n 1 -p "Press <Enter> to continue..."
elif [ "$M" = "i" ]; then
setupNginx
read -n 1 -p "Press <Enter> to continue..."
else
echo "Select Error!"
read -n 1 -p "Press <Enter> to continue..."
fi
selectCmd
return 0
}
function setupNodejs()
{
if [ ! -d /wwwroot ]; then
sudo mkdir -pv /wwwroot
sudo chmod 777 wwwroot/
fi
if [ ! -d /wwwroot/node_mqtt ]; then
mkdir -pv /wwwroot/node_mqtt
fi
echo "install Node.js"
echo "------------------------------------"
sudo yum -y install nodejs npm
echo "Install nodejs completed. info:"
node -v
echo "------------------------------------"
sudo echo "sudo npm install mqtt|websocket|socket.io|log4js|pm2"
cd /wwwroot/node_mqtt
sudo npm install mqtt -g
sudo npm install websocket -g
sudo npm install websocket-server -g
sudo npm install socket.io@0.9 -g
sudo npm install log4js -g
sudo npm install pm2 -g --unsafe-perm
return $?
}
function setupMongodb()
{
echo "install Mongodb"
echo "------------------------------------"
sudo yum -y install mongodb mongodb-server
echo "Install mongodb completed. info:"
mongod --version
echo "------------------------------------"
return $?
}
function setupLibs()
{
sudo yum -y update
sudo yum -y groupinstall "Development Tools"
echo "Install the public Libs"
echo "------------------------------------"
sudo yum -y install libjpeg libjpeg-devel libpng libpng-devel curl curl-devel wget gif* libtiff* libjpeg*
return $?
}
function setupMono()
{
cd /tmp
wget http://download.mono-project.com/repo/xamarin.gpg
sudo rpm --import xamarin.gpg
sudo yum-config-manager --add-repo http://download.mono-project.com/repo/centos/
sudo yum -y install mono-complete
echo "Install mono completed. info:"
mono -V
echo "------------------------------------"
return $?
}
function setupMysql()
{
echo "install mysql"
echo "------------------------------------"
vers=`cat /etc/redhat-release | awk '{print $3}' | awk -F'.' '{print $1}'`
if [ "$vers" = "19" ]; then
echo '# MariaDB 10.0 Fedora repository list - created 2014-10-17 08:04 UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/fedora19-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1' | sudo tee /etc/yum.repos.d/MariaDB.repo
elif [ "$vers" = "20" ]; then
echo '# MariaDB 10.0 Fedora repository list - created 2014-10-17 08:06 UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/fedora20-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1' | sudo tee /etc/yum.repos.d/MariaDB.repo
fi
sudo yum -y install MariaDB-server MariaDB-client MariaDB-devel
sudo cp /usr/share/mysql/my-innodb-heavy-4G.cnf /etc/my.cnf
#sudo sed -i 's/# generic configuration options/user = mysql/g' /etc/my.cnf
sudo sed -i '/\[mysqld\]/a user = mysql' /etc/my.cnf
sudo chkconfig --level 2345 mysql on
sudo service mysql start
mysql -V
echo "------------------------------------"
echo "Mysql: Please Ender user(root) password"
read -e PWD
sudo mysqladmin -uroot password "$PWD"
return $?
}
function setupMosquitto()
{
echo "install Mosquitto"
echo "------------------------------------"
vers=`cat /etc/redhat-release | awk '{print $3}' | awk -F'.' '{print $1}'`
if [ "$vers" = "19" ]; then
echo '[home_oojah_mqtt]
name=mqtt (Fedora_19)
type=rpm-md
baseurl=http://download.opensuse.org/repositories/home:/oojah:/mqtt/Fedora_19/
gpgcheck=1
gpgkey=http://download.opensuse.org/repositories/home:/oojah:/mqtt/Fedora_19/repodata/repomd.xml.key
enabled=1
' | sudo tee /etc/yum.repos.d/Mosquitto.repo
elif [ "$vers" = "20" ]; then
echo '[home_oojah_mqtt]
name=mqtt (Fedora_20)
type=rpm-md
baseurl=http://download.opensuse.org/repositories/home:/oojah:/mqtt/Fedora_20/
gpgcheck=1
gpgkey=http://download.opensuse.org/repositories/home:/oojah:/mqtt/Fedora_20/repodata/repomd.xml.key
enabled=1
' | sudo tee /etc/yum.repos.d/Mosquitto.repo
fi
sudo yum -y install mosquitto mosquitto-clients libmosquitto1 libmosquitto-devel libmosquittopp1 libmosquittopp-devel python-mosquitto
mosquitto -h
echo "------------------------------------"
return $?
}
function setupNginx()
{
echo "install nginx"
echo "------------------------------------"
sudo yum -y install nginx
nginx -v
echo "------------------------------------"
return $?
}
function setupHaproxy()
{
echo "install haproxy"
echo "------------------------------------"
sudo yum -y install haproxy
haproxy -v
echo "------------------------------------"
return $?
}
function setupRedis()
{
echo "install Redis"
echo "------------------------------------"
sudo yum -y install redis
redis-server -v
echo "------------------------------------"
return $?
}
function setupJws()
{
if [ ! -d /wwwroot/htdocs/www ]; then
sudo mkdir /wwwroot
sudo chmod 777 wwwroot/
mkdir -pv /wwwroot/htdocs/www
fi
if [ ! -d /tmp/downloads ]; then
mkdir -pv /tmp/downloads
fi
if [ ! -d /usr/jexus ]; then
sudo mkdir -pv /usr/jexus
echo "/usr/jexus/jws start" | sudo tee /etc/rc.d/rc.local
fi
echo "install jexus"
echo "------------------------------------"
cd /tmp/downloads
wget -c http://www.linuxdot.net/down/jexus-5.6.3.tar.gz
if [ -f jexus-5.6.3.tar.gz ]; then
tar -xf jexus-5.6.3.tar.gz
cd jexus-5.6.3
sudo ./install
sudo chmod +x /usr/jexus/*
sudo sed -i 's/root=\/ \/var\/www\/default/root=\/ \/wwwroot\/htdocs\/www/g' /usr/jexus/siteconf/default
fi
cd /tmp/downloads
wget -c https://github.com/cjy37/linux-asp.net-installScript/blob/master/aspx-info.tar.gz?raw=true
if [ -f aspx-info.tar.gz ]; then
tar xvf aspx-info.tar.gz
cd aspx-info
sudo cp -r -f index.aspx /wwwroot/htdocs/www/index.aspx
echo "Web Root Path: /wwwroot/htdocs/www/"
echo "If you need change it. Please vim the Jexus config file(/usr/jexus/siteconf/*)"
fi
sudo /usr/jexus/jws start
sudo /usr/jexus/jws -V
echo "------------------------------------"
echo "Jexus install to path: /usr/jexus/"
echo "Please vim the Jexus config file (/usr/jexus/jws.conf and /usr/jexus/siteconf/*)"
return $?
}
cd /tmp
read -n 1 -p "Press [Any Key] to setup public libs. [Ctrl + C] to Cancel."
setupLibs
selectCmd