此项目所需平台为Centos6.5 中安装keepalived+双主mysql+nfs+ffmpeg
   A服务器IP:192.168.10.95
    B服务器IP:192.168.10.20
浮动IP(也就是虚拟IP):192.168.10.200
        文件服务器:192.168.10.100

以下安装步骤需要在A,B机器上执行搭建同样的环境,因为是离线安装。文中所需的包提前下载好。
apache-tomcat-7.0.69.tar
cmake-3.5.2.tar
ffmpeg-3.0.2.tar
keepalived-1.2.20.tar
mysql-5.6.29.tar
ncurses-6.0.tar
openssl-1.0.1t.tar.gz
portmap-4.0-65.2.2.1.x86_64.rpm

Centos6.5
安装

安装系统时定制安装包: developtool   选择几项GCC安装包

Loadbalance 选中keepalived(注:也可不选,手动安装)

 

Mysql安装

 

若不定制安装包,在安装ncurses时提示缺少gcc,若要安装。把系统盘挂到某目录下。做如下设置

Vi      /etc/yum.repos.d/Centos-Media.repo

baseurl=/path  改为所需的路径。如  baseurl=file///opt/hoch/       注:我的U盘挂在/opt/hoch下

enable=0 改为 enable=1     把其它源中的1改为0

yum install gcc*

1.       ncurses-**.tar.gz 安装

./configure

make && make install

2.       cmake-**.tar.gz

./bootstrap

make && make install

3.       mysql-**.tar.gz

a)         tar zxvf  mysql-**.tar.gz

b)         cd  myql-**

c)         cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql

d)         mkdir  -p /user/local/mysql/data

e)         groupadd  mysql

f)          useradd  -g mysql mysql

4.       make && make install

5.       设置权限

a)         chown  -R  mysql:mysql  /usr/local/mysql

6.       /usr/local/mydql/scripts/mysql_install_db  --basedir=/usr/local/mysql   --user=mysql

7.       chown  -R       root:root   /usr/local/mysql

8.       chown  -R        mysql:mysql     /usr/local/mysql/data

添加mysql服务:

9.       Cp      /usr/local/mysql/support-files/mysql.server          /etc/init.d/mysql

10.   mysql客户端放到默认路径,方便任意处调用

a)         Ln    -s      /usr/local/mysql/bin/mysql     /usr/local/bin/mysql

注:如果报mysql.sock找不到,查看配置文件:grep sock /etc/my.cnf

查看sock=/path  是否是所需路径。若不是,改为提示所需的路径

11.   加入系统服务,随机启动

a)         chkconfig mysql on

  

Tomcat安装

 

1.       解压tomcat到指定目录

a)         tar zxvf  tomcat-**.tar.gz  -C    /usr/local/tomcat

b)         cd    /usr/local/tomcat/bin

c)         ./startup.sh

2.       war包拷贝到webapps下,会自动解压

3.       进入解压目录(如sspWEB-INF/classes

4.       编辑conf.properties

a)         修改里面的用户名密码IP mysql所在机器的配置

5.       /usr/local/mysql/bin/mysqladmin  -u      root password      ‘密码’     (修改root密码)

开放远程访问权限:

Use mysql;

Update  user         set host =     ‘%’   where     user =  ‘root’;

若出现error :duplicate  entry 重复录入。 可下命令查询是否有了% 值:

select host from user where user = 'root'

如果有了,可直接:  flushprivileges;

 

修改成功后,本地mysql 直接登录查库。显示不对. mysql -h192.168.10.95  -uroot  –p   在B服务器上也做以下同样操作(B上第8步可以省略,因为会同步过来)。

6.       进入mysql建立字符集:

a)         CREATE DATABASEdb_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;  (注:db_name所建数据库,本项目为ssp)

7.       Use  ssp;                (建立项目库名)

8.       Source   ssp.sql     (到ssp.sql文件目录下,登录mysql执行此句。linuxman还是强烈建议,先不导入数据。待全步搭建完成后再做7,8两步)

 

 

防火墙添加端口:vi  /etc/sysconfig/iptables

在所有规则的最上面

-A INPUT -p tcp--dport 8080 -j ACCEPT

-A OUTPUT -p tcp --sport 8080 -j ACCEPT

 

Mysql 主主备份步骤

 

Vi /etc/my.cnf

在A主机器的[mysqld]下加入

Master 主机器


binlog_format=mixed
  (此句没加入会导致表数据插入错误时 slave_sql_running 停止运行)

log-bin=mysql-bin

server-id=1

binlog-do-db=ssp

binlog-ignore-db=mysql

replicate-do-db=ssp

replicate-ignore-db=mysql

log-slave-updates

sync_binlog=1

auto_increment_increment=2

auto_increment_offset=1

设置后重启mysql服务

 

在B从机器的[mysqld]下加入

Slave 备用机器

binlog_format=mixed 

log-bin=mysql-bin

#log-bin=/data0/logs

server-id=2

binlog-do-db=ssp

binlog-ignore-db=mysql

replicate-do-db=ssp

replicate-ignore-db=mysql

log-slave-updates

sync_binlog=1

auto_increment_increment=3

auto_increment_offset=2

设置后重启、mysql


服务器A和服务器B互为主从,所以都要分别建立一个同步用户。 在A,B上分别执行此命令.IP后面的“*”号,在A主机执行时输入B主机的IP,在B 主机执行时输入A的IP

1.       grant replication slave on *.* to 'replication'@'192.168.10.*' identified by '000000';  

2.       flush privileges;  

 

分别在服务器AB上查看做为主服务器状态

  A服务器

mysql>flush tables with read lock;  

mysql> show master status\G  

*************************** 1. row ***************************  

File: mysql-bin.000007  

Position: 107  

Binlog_Do_DB: test  

Binlog_Ignore_DB: mysql  

1 row in set (0.00 sec)  


mysql>unlock tables;  


B
服务器

mysql> show master status\G  

*************************** 1. row ***************************  

File: mysql-bin.000005  

Position: 110 

Binlog_Do_DB: test  

Binlog_Ignore_DB: mysql  

1 row in set (0.00 sec)  


分别在服务器AB上用change master语句指定同步位置

  A、服务器

mysql>change master to master_host='192.168.10.B', master_user='replication', master_password='000000', master_log_file='mysql-bin.000005', master_log_pos=110;  


B
、服务器

mysql>change master to master_host='192.168.10.A', master_user='replication', master_password='000000', master_log_file='mysql-bin.000007', master_log_pos=107;  



  注:master_log_filemaster_log_pos由上面主服务器查出的状态值中确定。master_log_file对应Filemaster_log_pos对应Position
    mysql 5.x以上版本已经不支持在配置文件中指定主服务器相关选项。

  d)分别在服务器AB上启动从服务器线程
mysql>start slave;  


e)
分别在服务器A、B上查看从服务器状态

mysql>show slave status\G;  


Slave_IO_Running: Yes  

Slave_SQL_Running: Yes  

 


 

Keepalived 安装

Openssl安装

 rm -rf /etc/ssl     #删除配置文件
prefix指定安装目录,openssldir是配置文件目录。建议安装两次。shared作用是生成动态链接库。
tar -zxvf openssl-1.0.1t.tar.gz
cd  openssl-1.0.1t
./config --prefix=/usr/local  --openssldir=/usr/local/ssl
make && make install
./config shared  --prefix=/usr/local  --openssldir=/usr/local/ssl
make clean
make && make install

keepalived安装:

tar zxf keepalived-1.2.6.tar.gz 

cd keepalived-1.2.6

./configure --prefix=/usr/local/keepalived 

make

make install

 

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived

chmod +x /etc/init.d/keepalived


修改/etc/init.d/keepalived 

寻找大约15行左右的  . /etc/sysconfig/keepalived, 修改为: 
. /usr/local/keepalived/etc/sysconfig/keepalived, 即指向正确的文件位置

同时在上述行下添加以下内容(将keepavlied主程序所在路径导入到环境变量PATH中):

exportPATH="$PATH:/usr/local/keepalived/sbin"


修改/usr/local/keepalived/etc/sysconfig/keepalived文件,设置正确的服务启动参数 
KEEPALIVED_OPTIONS="-D  -f  /usr/local/keepalived/etc/keepalived/keepalived.conf"


4. 经过以上修改,keepalived基本安装即可完成,启动测试之: 
service keepalived restart


5. 切勿忘记将此服务设置为开机启动

chkconfig keepalived on


启动提示“Starting keepalived: keepalived: error while loading sharedlibraries: libssl.so.1.0.0: cannot open shared object file: No such file ordirectory

find / -name libssl.so.1.0.0

系统显示路径在 /usr/local/lib64下面

用命令   ldconfig /usr/local/lib64 

此时重启启动成功。


(备注:可以用 “ldd 可执行程序名” ldd/usr/local/keepalived/sbin/keepalived  会显示动态链接库)


配置主从模式

节点A的关键配置: 
节点A上的配置文件/usr/local/keepalived/etc/keepalived/keepalived.conf

global_defs {

   notification_email {

     root@localhost

   }

   notification_email_from root@local host

   smtp_server localhost

   smtp_connect_timeout 30

   router_id  NodeA

}

vrrp_instance VI_1 {

    state MASTER   #指定A节点为主节点 备用节点上设置为BACKUP即可

    interface eth0   #绑定虚拟IP的网络接口

    virtual_router_id 51  #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP

    priority 100   #主节点的优先级(1-254之间),备用节点必须比主节点优先级低

    advert_int 1   #组播信息发送间隔,两个节点设置必须一样

    authentication {   #设置验证信息,两个节点必须一致

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {   #指定虚拟IP, 两个节点设置必须一样

        192.168.10.200

          }

}

 默认的配置文件中,竟然没有子网掩码,从而导致使用了默认子网掩码255.255.255.255,如果导致无法从其它机器访问虚拟IPkeepalived虚拟IP无法ping通)。

 

按同样的方法配置节点B并修改配置文件,可将A节点的配置文件复制到B节点,并修改以下几项: 
router_id  NodeB

state   BACKUP

priority   99

 其它项不必修改。

加入系统服务随机启动:chkconfig  keepalived on


以下安装文件服务器,给A,B提供文件存放。在第三台机器上执行:(看个人需求也可搭建在A或B上)
Nfs
安装:

rpm –ivh portmap-**.rpm

开启开启portmapnfs服务service portmap start
     service nfs start
     chkconfig --level nfs 35 on
     chkconfig --level protmap 35 on

2、将要共享的目录写到exports文件中 假设共享的目录为 /sharedisk/
     vim /etc/exports
     
exports文件中添加
     /sharedisk   192.168.10.0/24(rw,no_root_squash,async)

3、重启nfs 或者使用exportfs命令使设置生效
     
重启nfs
     service nfs restart

     exportfs
     exportfs -rv

     #exportfs用法
     -a
:全部mount或者unmount /etc/exports中的内容 
     -r
:重新mount /etc/exports中分享出来的目录 
     -u
umount 目录 
     -v
:将详细的信息输出到屏幕上
    
这样nfs的服务器端就设置好了


在客户端挂载该目录:

4. 在本地创建挂载的目录 
     mkdir /sharedisk

Chmod  777  /sharedisk
     mount -t nfs 192.168.10.100:/sharedisk  /sharedisk
     #
将服务器192.168.10.100上的/sharedisk/ 路径挂载到本地
     
此时,如果服务器端的防火墙有开着的话,将会提示错误.或半天连不上

是服务端端口被防火墙拦截所致。由于nfs服务需要开启 mountd,nfs,nlockmgr,portmapper,rquotad5个服务,需要将这5个服务的端口加到iptables里面。而nfs portmapper两个服务是固定端口的,nfs2049portmapper111。其他的3个服务是用的随机端口,那就需要先把这3个服务的端口设置成固定的。

登录到服务器端:

5、查看当前这5个服务的端口并记录下来 用rpcinfo -p
    
把显示 nfs  2049, portmapper  111, 以及剩下的三个服务的端口在配置文件中取消注释。把端口号记下。

 vi /etc/sysconfig/nfs

# Port rquotad should listen on.
RQUOTAD_PORT=966
# TCP port rpc.lockd should listen on.
LOCKD_TCPPORT=33993
# UDP port rpc.lockd should listen on.
LOCKD_UDPPORT=33993
# Port rpc.mountd should listen on.
MOUNTD_PORT=976

6、将这3个服务的端口设置为固定端口,修改/etc/service,添加以下内容(端口号必须在1024以下,且未被占用)
     vim  /etc/services 
    
在文件的最后一行添加:
     mountd  976/tcp
     mountd  976/udp
     rquotad  966/tcp
     rquotad  966/udp
     nlockmgr 33993/tcp
     nlockmgr 33993/udp
    
保存并退出。 

7、重启下nfs服务。 service nfs restart

8、在防火墙中开放这5个端口
       vim /etc/sysconfig/iptables

-A INPUT -s 192.168.10.0/24 -m state--state NEW -p tcp --dport 111 -j ACCEPT

-A INPUT -s 192.168.10.0/24 -m state--state NEW -p tcp --dport 2049 -j ACCEPT

-A INPUT -s 192.168.10.0/24 -m state--state NEW -p tcp --dport 875 -j ACCEPT

-A INPUT -s 192.168.10.0/24 -m state--state NEW -p tcp --dport 976 -j ACCEPT

-A INPUT -s 192.168.10.0/24 -m state--state NEW -p tcp --dport 59931 -j ACCEPT

 

-A INPUT -s 192.168.10.0/24 -m state--state NEW -p udp --dport 111 -j ACCEPT

-A INPUT -s 192.168.10.0/24 -m state--state NEW -p udp --dport 2049 -j ACCEPT

-A INPUT -s 192.168.10.0/24 -m state --stateNEW -p udp --dport 875 -j ACCEPT

-A INPUT -s 192.168.10.0/24 -m state--state NEW -p udp --dport 976 -j ACCEPT

-A INPUT -s 192.168.10.0/24 -m state--state NEW -p udp --dport 59931 -j ACCEPT

 

service iptables restart
重新执行步骤4挂载即可

8nfs安全设置方面(此步可不做)
hosts.allow
hosts.deny设置
hosts.allow
设置:
portmap
ip
hosts.deny
设置:
portmap
ALL

 

加入系统随机启动:chkconfig  nfs  on


 

Samba安装配置:

1,先查看安装情况:rpm -qa|grepsamba

 samba-common-3.6.9-164.el6.x86_64
samba4-libs-4.0.0-58.el6.rc4.x86_64
samba-3.6.9-164.el6.x86_64
samba-winbind-clients-3.6.9-164.el6.x86_64
samba-client-3.6.9-164.el6.x86_64
samba-winbind-3.6.9-164.el6.x86_64



根据系统的安装情况选择下载或者通过光驱安装所缺的rpm包。

使用命令:mount  /dev/sdb*  /mnt/

Cd /mnt/Packages

 rpm  -ivh samba-common-3.6.9-151.el6.x86_64

 rpm -ivh samba-3.6.9-151.el6.x86_64

 rpm -ivh samba-client-3.6.9-151.el6.x86_64

查看samba的服务启动情况

# service smb status

设置开机自启动

chkconfig --level 35 smbon             //在3、5级别上自动运行samba服务

配置smb服务

[global]

workgroup = WORKGROUP
server string = Samba Server Version %v

netbios name = name

         [share]                                                           注:此项为[public] 修改后的效果

         comment= Public Stuff

         path= /share

         public= yes

         writable= yes

         printable= no

         writelist = +staff

         guestok = yes

 

共享目录为:/share,共享目录对外名称为:hoch 即在Windows看到的目录名称。

设置共享目录权限:chown -R nobody:nobody /share

8、启动或者重启smb服务

 

Samba的所有用户都必须是系统里已存在的用户。我们要授权系统用户访问Samba的话,通过命令:

                   adduser  -M  hoch

        smbpasswd  -a   hoch  #添加用户hochSamba用户数据库中


添加防火墙端口:

-A INPUT -p tcp --dport 139-j ACCEPT

-A INPUT -p tcp --dport 455-j ACCEPT

-A INPUT -p udp --dport 137-j ACCEPT

-A INPUT -p udp --dport 138-j ACCEPT


加入系统随机启动:chkconfig  smb  on


不要用户访问:

#security = user    // 注释掉原来的user改成如下

security = share   // 变成共享的

第三步,启动服务。关闭防火墙:service iptables stop



Ffmpeg安装:

 

先解决系统默认java找不到问题。
update-alternatives --config java
There are 3 programs which provide 'java'.
  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   3           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
Enter to keep the current selection[+], or type selection number:


 

vi  /etc/profile 后面加入

exportJAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/
export PATH=$PATH:$JAVA_HOME/bin

 

立即生效执行: source /etc/profile

 

解压缩(若是zip后缀用命令  unzip)
tar -zxvf ffmpeg-2.0.1.tar.gz


3、编辑profile文件:

      vi/etc/profile

    在文件末尾加上两句话:

    exportFFMPEG_HOME=/usr/local/ffmpeg 

export PATH=$FFMPEG_HOME/bin:$PATH

exportJAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64

export PATH=$PATH:$JAVA_HOME/bin

4、配置安装路径之类的:

./configure--enable-shared --prefix=/usr/local/ffmpeg

--enable-shared 参数据说是允许其编译产生动态库,在以后的编程中要用到这个几个动态库,我也没考证,就直接用了。

如果出现异常,提示因为缺少yasm,需要添加参数,再执行以下命令:

./configure--enable-shared --disable-yasm --prefix=/usr/local/ffmpeg

如果执行结果不对,可以根据提示信息,并查看帮助,解决问题
./configure --help

5、编译安装
make
make install

6、安装之后在/usr/local/ffmpeg会看到有三个目录
bin 执行文件目录
lib 静态,动态链接库目录
include 编程用到的头文件

7、为了防止执行程序找不到库文件,
可以将/usr/local/ffmpeg/lib目录设置到LD_LIBRARY_PATH环境变量

8、若出现error while loading shared libraries: libavdevice.so.52的错误
修改/etc/ld.so.conf 在最后一行加上/usr/local/ffmpeg/lib
ldconfig -v
#并修改 /usr/local/ffmpeg/lib目录下的文件权限为777

 

(注:此步根据本机情况决定。Hostname –i  取的值若不是本机使用的真实IP 要改/etc/hosts中的配置文件)

12-10 03:00
查看更多