1 OpenIMSCore安装脚本

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
#!/bin/bash

DEFAULTIP="127/.0/.0/.1"
CURRDIR=`pwd`;
IPADDR=`grep "IPADDR" /etc/sysconfig/networking/devices/ifcfg-eth0|cut -c8-100`
BINDDIR="/etc/bind"
DEFAULTDOMAIN="open-ims/.test"
DEFAULTDSDOMAIN="open-ims///.test"
DOMAIN="openIMSinstall.org"
DSDOMAIN="openIMSinstall/.org"
RPMDIR="RPMS"
GZDIR="linux"

if ! rpm -q jdk > /dev/null
then
mkdir /usr/java
rpm -ivh $RPMDIR/jdk-6u22-linux-amd64.rpm
cd
if ! grep JAVA_HOME .bashrc> /dev/null
then
echo "export JAVA_HOME=/usr/java/jdk1.6.0_22" >>.bashrc
echo "export CLASSPATH=.:/usr/java/jdk1.6.0_22/lib/dt.jar:/usr/java/jdk1.6.0_22/lib/tools.jar" >>.bashrc
echo "export PATH=/$PATH:/usr/java/jdk1.6.0_22/bin" >>.bashrc
fi

. .bashrc
/usr/sbin/alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_22/bin/java 16022
else
MAJOR=`rpm -q jdk |cut -d"-" -f2|cut -d"." -f1 |uniq`
MIJOR=`rpm -q jdk |cut -d"-" -f2|cut -d"." -f2 |uniq`
if ((MAJOR < 1)) || (((MAJOR == 1)) && ((MIJOR < 5)))
then
mkdir /usr/java
rpm -ivh $RPMDIR/jdk-6u22-linux-amd64.rpm
cd
if ! grep JAVA_HOME .bashrc> /dev/null
then
echo "export JAVA_HOME=/usr/java/jdk1.6.0_22" >>.bashrc
echo "export CLASSPATH=.:/usr/java/jdk1.6.0_22/lib/dt.jar:/usr/java/jdk1.6.0_22/lib/tools.jar" >>.bashrc
echo "export PATH=/$PATH:/usr/java/jdk1.6.0_22/bin" >>.bashrc
fi

. .bashrc
/usr/sbin/alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_22/bin/java 16022
else
echo "JDK should not been reinstalled."
fi
fi

cd $CURRDIR
PKGLIST="perl-DBI-1.52-2.el5.x86_64.rpm /
mysql-5.0.77-4.el5_4.2.x86_64.rpm /
mysql-server-5.0.77-4.el5_4.2.x86_64.rpm /
perl-DBD-MySQL-3.0007-2.el5.x86_64.rpm /
e2fsprogs-devel-1.39-23.el5.x86_64.rpm /
keyutils-libs-devel-1.2-1.el5.x86_64.rpm /
libsepol-devel-1.15.2-3.el5.x86_64.rpm /
libselinux-devel-1.33.4-5.5.el5.x86_64.rpm /
krb5-devel-1.6.1-36.el5_4.1.x86_64.rpm /
zlib-devel-1.2.3-3.x86_64.rpm /
openssl-devel-0.9.8e-12.el5_4.6.x86_64.rpm /
mysql-devel-5.0.77-4.el5_4.2.x86_64.rpm /
libxml2-2.6.26-2.1.2.8.x86_64.rpm /
libxml2-devel-2.6.26-2.1.2.8.x86_64.rpm /
libidn-devel-0.6.5-1.1.x86_64.rpm /
curl-devel-7.15.5-9.el5.x86_64.rpm"

for PKG in $PKGLIST
do
PKGNAME=`echo $PKG | sed 's/-[0-9].*$//g'`
if ! rpm -q $PKGNAME > /dev/null
then
if [ $PKGNAME = "mysql-server" ]
then
rpm -ivh $RPMDIR/$PKG --nodeps
else
rpm -ivh $RPMDIR/$PKG
fi
fi
done

cd
if ! grep ANT_HOME .bashrc> /dev/null
then
tar xzf $GZDIR/apache-ant-1.8.1-bin.tar.gz -C /usr/local
cd
echo "export ANT_HOME=/usr/local/apache-ant-1.8.1" >>.bashrc
echo "PATH=/$PATH:/usr/local/apache-ant-1.8.1/bin" >>.bashrc
. .bashrc
fi

cd $CURRDIR
tar xzf $GZDIR/OpenIMSCore.tar.gz -C /opt
tar xzf $GZDIR/OpenIC.tar.gz -C /opt

cd /opt/OpenIC
CFG="./etc/Alice6/profile.cfg /
./etc/Bob/profile.cfg /
./etc/Alice/profile.cfg /
./etc/Bob6/profile.cfg"
for cfgname in $CFG
do
sed -i -e "s/$DEFAULTDOMAIN/$DOMAIN/g" $cfgname
done

cd $CURRDIR
tar xzf $GZDIR/ser_shared.tar.gz -C /usr/local/lib

if [ -e "/usr/bin/named" ] ||
[ -e "/usr/sbin/named" ] ||
[ -e "/usr/local/bin/named" ] ||
[ -e "/usr/local/sbin/named" ]
then
echo "bind9 installed."
else
rpm -ivh $RPMDIR/bind-9.3.6-4.P1.el5_4.2.x86_64.rpm
fi

if ! [ -d $BINDDIR ]
then
mkdir $BINDDIR
cd /$BINDDIR
touch named.conf
rndc-confgen > $BINDDIR/rndc.conf
cat rndc.conf|grep "#"|grep 'key/|secret/|{/|}/|algorithm/|inet' > named.conf
sed -i -e "s/# //g" named.conf
echo "zone "$DOMAIN" IN {" >> named.conf
echo " type master;" >> named.conf
echo " file /"$BINDDIR/open-ims.dnszone/";" >>named.conf
echo "};" >>named.conf
echo "options {" >> named.conf
echo " directory /"$BINDDIR/";" >> named.conf
echo " pid-file /"$BINDDIR/named.pid/";" >> named.conf
echo "};" >> named.conf
cp /opt/OpenIMSCore/ser_ims/cfg/open-ims.dnszone $BINDDIR/open-ims.dnszone
sed -i -e "s/$DEFAULTIP/$IPADDR/g" named.conf
sed -i -e "s/$DEFAULTIP/$IPADDR/g" open-ims.dnszone
sed -i -e "s/$DEFAULTIP/$IPADDR/g" rndc.conf
sed -i -e "s/$DEFAULTDOMAIN/$DOMAIN/g" named.conf
sed -i -e "s/$DEFAULTDOMAIN/$DOMAIN/g" open-ims.dnszone
if grep nameserver /etc/resolv.conf
then
sed -i -e "s/[0-9]/{1,3/}/.[0-9]/{1,3/}/.[0-9]/{1,3/}/.[0-9]/{1,3/}/$IPADDR/g" /etc/resolv.conf
else
echo "nameserver $IPADDR" >> /etc/resolv.conf
fi
killall named
named -c $BINDDIR/named.conf
else
echo "$BINDDIR has exist. Please config bind server by hand."
fi

cd /opt/OpenIMSCore/FHoSS/scripts
printf "Mobicents AS IP Adress, you can modify this address by FHoSS web console:"
read as_ip_address
sed -i -e "s/192/.168/.0/.101/$as_ip_address/g" userdata.sql

cd /opt/OpenIMSCore
/sbin/service mysqld start
sed -i -e "s/$DEFAULTDOMAIN/$DOMAIN/g" ser_ims/cfg/icscf.sql
sed -i -e "s/$DEFAULTDOMAIN/$DOMAIN/g" FHoSS/scripts/hss_db.sql
sed -i -e "s/$DEFAULTDOMAIN/$DOMAIN/g" FHoSS/scripts/userdata.sql
sed -i -e "s/$DEFAULTDOMAIN/$DOMAIN/g" FHoSS/deploy/DiameterPeerHSS.xml

mysql -u root -h localhost < ser_ims/cfg/icscf.sql
mysql -u root -h localhost < FHoSS/scripts/hss_db.sql
mysql -u root -h localhost < FHoSS/scripts/userdata.sql

CONFFILES=`ls *.cfg *.xml *.sql *.properties 2>/dev/null`
for i in $CONFFILES
do
sed -i -e "s/$DEFAULTIP/$IPADDR/g" $i
sed -i -e "s/$DEFAULTDOMAIN/$DOMAIN/g" $i
sed -i -e "s/$DEFAULTDSDOMAIN/$DSDOMAIN/g" $i
done
/sbin/chkconfig mysqld on
/sbin/chkconfig named on
/sbin/chkconfig iptables off
/sbin/service iptables stop