SOS-金盾-狮子王-服务迁移

轩辕暗神 16小时前 ⋅ 10 阅读

1.旧数据镜像

sos迁移备份过程

##先挂载U盘
#创建挂载目录
mkdir /mnt/newdisk
#查看硬盘盘符
lsblk
#挂载
mount /dev/sdb2 /mnt/newdisk
#创建备份目录
mkdir /mnt/newdisk/sos
#切换到挂载目录
cd /mnt/newdisk/sos
#这个命令会在执行命令的当前目录备份运行的docker容器为一个镜像文件(sos-image-x86-bk.tar.gz)
python3 /opt/work/sos-server-docker1.0.25-x86_64/sos_docker_x86.py backup-image
#复制当前项目目录
cp -R /opt/work /mnt/newdisk/sos/

2.新机器准备

ubuntu 设置网卡开机自启

nmcli device status
sudo nmcli connection modify "有线连接 1" ipv4.method auto
sudo nmcli connection up "有线连接 1"
sudo nmcli connection modify "有线连接 4" ipv4.method auto
sudo nmcli connection up "有线连接 4"

安装基本依赖

| 需要逐行复制逐行执行

apt-get install -y wget unzip vim gcc
apt-get install -y wget
apt-get install -y unzip
apt-get install -y vim
apt-get install -y gcc
apt-get install -y g++
apt-get install -y net-tools
apt-get install -y telnet
apt-get install -y curl
apt-get install -y make
apt-get install -y openssl
apt-get install -y libssl-dev
apt-get install -y zlib1g
apt-get install -y zlib1g.dev
apt-get install -y lrzsz
reboot

安装呼叫报警服务

安装docker

apt-get install -y docker.io
docker -v

创建工作目录

#切换opt目录
cd /opt
#创建
mkdir /opt/work
chmod -R 777 /opt/work/
cd work/

配置基本系统权限配置

#df -h
#top
#ulimit -a
#cd /etc/security
#追加下面命令到文件
sudo cat >> /etc/security/limits.conf << 'EOF'
root soft nofile 655350
root hard nofile 655350
* soft nofile 655350
* hard nofile 655350
EOF

#cd /opt/work/
#vim /etc/security/limits.conf
#cd /etc/systemd/

##vim /etc/systemd/user.conf 
##替换"#DefaultLimitNOFILE="为"DefaultLimitNOFILE=1000000"
##替换"#DefaultLimitNPROC="为"DefaultLimitNPROC=1000000"
sudo sed -i 's/^#DefaultLimitNOFILE=.*/DefaultLimitNOFILE=1000000/' /etc/systemd/user.conf
sudo sed -i 's/^#DefaultLimitNPROC=.*/DefaultLimitNPROC=1000000/' /etc/systemd/user.conf
##vim /etc/systemd/system.conf
##替换"#DefaultLimitNOFILE=为"DefaultLimitNOFILE=1000000"
##替换"#DefaultLimitNPROC="为"DefaultLimitNPROC=1000000"
sudo sed -i 's/^#DefaultLimitNOFILE=.*/DefaultLimitNOFILE=1000000/' /etc/systemd/system.conf
sudo sed -i 's/^#DefaultLimitNPROC=.*/DefaultLimitNPROC=1000000/' /etc/systemd/system.conf
reboot

3.安装服务

3.1新装

cd /opt/work/
#下载sos
#curl -O https://lk-sos-version.oss-cn-shenzhen.aliyuncs.com/sos-server-docker/lk/1.0.25/sos-server-docker1.0.25-x86_64.zip
#unzip sos-server-docker1.0.25-x86_64.zip 
#cd sos-server-docker1.0.25-x86_64
#安装sos
#python3 sos_docker_x86.py init
#docker ps
#python3 sos_docker_x86.py status
#docker exec -it sos-server /bin/bash
#ls
#top
#pwd
#top


#cd /opt/work/sos-server-docker1.0.25-x86_64
#cd /opt
cd /opt/work/
cp 00e.com.key sos-server-docker1.0.25-x86_64
cp 00e.com.pem sos-server-docker1.0.25-x86_64


cd sos-server-docker1.0.25-x86_64
##ls
##查看帮助
##python3 sos_docker_x86.py 
##python3 sos_docker_x86.py change-https-certs
python3 sos_docker_x86.py change-https-certs /opt/work/sos-server-docker1.0.25-x86_64/00e.com.pem /opt/work/sos-server-docker1.0.25-x86_64/00e.com.key
docker exec -it sos-server
docker exec -it sos-server /bin/bash
python3 sos_docker_x86.py set-domain h8.00e.com 114.242.16.189
##python3 sos_docker_x86.py status

3.2 镜像恢复

3.2.1 备份恢复

python3 /opt/work/sos-server-docker1.0.25-x86_64/sos_docker_x86.py restore-image /opt/sos-image-x86-bk.tar.gz

python3 新机器的sos_docker_x86.py绝对路径 restore-image 旧服务器镜像sos-image-x86-bk.tar.gz的绝对路径

上面使用相对路径也可以的

3.2.1.1 安装成功示例

root@dell:/home/dell# python3 /opt/work/sos-server-docker1.0.25-x86_64/sos_docker_x86.py restore-image /opt/sos-image-x86-bk.tar.gz
python 3.6.9 (default, Mar 10 2023, 16:46:00) 
[GCC 8.4.0]
run restore-image
stopping and removing current docker instance...
Error response from daemon: No such container: sos-server
Error: No such container: sos-server
removing current docker image...
Error: No such image: sos-server:latest
loading backup image from /opt/sos-image-x86-bk.tar.gz...
Loaded image: sos-server-x86:latest
your eth ip: 
eno1: 192.168.1.116

server ip(advertised ip)[default:192.168.1.116]: 
server https port[default:443]: 
server websocket port[default:8046]: 
video stream(push) start port[default:1935]: 
video stream(pull) start port[default:8280-8285(total: 6)]: 
audio sip port[default:6560]: 
audio sip udp port[default:6560]: 
audio webrtc port[default:7443]: 
audio rtp start port[default:16000-16399(total: 400)]: 

======================== Result =========================

server ip(advertised ip): 192.168.1.116
server https port(tcp): 443
server websocket port(tcp): 8046
video push stream port(tcp): 1935
video pull stream port(tcp): 8280 - 8285(total: 6)
audio webrtc port(tcp): 7443
audio sip port(tcp): 6560
audio sip port(udp): 6560
audio rtp port(udp): 16000 - 16399(total: 400)

=======================================================


***************** Client Config ***********************
*
* server ip on PC 	-> 192.168.1.116:443 
* server ip on device 	-> 192.168.1.116:443 
*
*******************************************************




****************** Firewall(Allow) *********************
*
* 443 tcp 
* 8046 tcp 
* 1935 tcp 
* 8280 - 8285 tcp (total: 6)
* 7443 tcp 
* 6560 tcp 
* 6560 udp 
* 16000 - 16399 udp (total: 400)
*
********************************************************



please confirm the above information.(y/n): y
the above information has saved in result.txt
create sos docker: docker run -itd --name=sos-server -p 16000-16399:16000-16399/udp -p 8280-8285:8280-8285/tcp -p 443:443/tcp -p 8046:8046/tcp -p 1935:1935/tcp -p 7443:7443/tcp -p 6560:6560/tcp -p 6560:6560/udp --restart=always --privileged sos-server-x86:latest /sbin/init
86f2351028e66684f8bdbab2470204efa9c0e588fae47e3c483a5dfd63973ee4
result: True
write sos api server configuration...
completed!
write audio server configuration...
completed!
write video server configuration...
completed!
rebooting sos-server...
sos-server
install completed!
restore image from /opt/sos-image-x86-bk.tar.gz completed!
root@dell:/home/dell# 

3.2.2 设置访问域名

python3 /opt/work/sos-server-docker1.0.25-x86_64/sos_docker_x86.py set-domain h8.00e.com 114.242.16.189

配置好路由器转发和nginx转发后,使用客户端登录系统,拿到key给 | 狮子王|,等待他们激活系统

3.2.3 路由器配置端口

外部地址 	外部端口 	内部地址 	内部端口 	协议类型 	接口 	状态 	描述 	操作
114.242.16.189	1935	192.168.2.253	1935	TCP+UDP	WAN1	启用	 	
114.242.16.189	622	192.168.2.253	22	TCP	WAN1	启用	 	
114.242.16.189	8046	192.168.2.253	8046	TCP+UDP	WAN1	启用	 	
114.242.16.189	8280-8285	192.168.2.253	8280-8285	TCP+UDP	WAN1	启用	 	
114.242.16.189	7443	192.168.2.253	7443	TCP	WAN1	启用	 	
114.242.16.189	6560	192.168.2.253	6560	TCP+UDP	WAN1	启用	 	
114.242.16.189	16000-16400	192.168.2.253	16000-16400	TCP+UDP	WAN1	启用	

3.2.4 nginx配置

server {
    listen 80;
    server_name  h8.00e.com;
    location / {
            if ($request_method = 'OPTIONS') {
                    return 204;
            }
            proxy_pass http://192.168.2.253;
        add_header Access-Control-Allow-Origin '*';
    add_header 'Access-Control-Allow-Credentials' 'true';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    #add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
    add_header 'Access-Control-Allow-Headers' '*';
            client_max_body_size 10m;
            client_body_buffer_size 512k;

            proxy_http_version 1.1;
            proxy_set_header Host $host;
            proxy_connect_timeout 5s;

       proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_read_timeout 1800s;


    }
    rewrite ^(.*)$  https://h8.00e.com$1 permanent;

}
    
    
server {
    listen 443 ssl;
    server_name h8.00e.com;
    ssl_certificate /etc/nginx/ssl/00e.com/00e.com.pem;
    ssl_certificate_key /etc/nginx/ssl/00e.com/00e.com.key;
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    location ~ ^/as/websocket?(.*) {
            ##if ($request_method = 'OPTIONS') {
            ##        return 204;
            ##}
            proxy_pass      https://192.168.2.253:443/as/websocket?$args;
            #proxy_pass https://wss_svr:443/as/websocket?$args;
            proxy_http_version 1.1;
            proxy_set_header Host $host;
            proxy_connect_timeout 10s;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_read_timeout 1800s;

            #proxy_redirect off;
            client_max_body_size 10m;
            client_body_buffer_size 512k;

       proxy_send_timeout 500;

       #add_header Access-Control-Allow-Origin '*.*';
    ##add_header 'Access-Control-Allow-Credentials' 'true';
    ##add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
   # add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
    ##add_header 'Access-Control-Allow-Headers' '*';
    #proxy_pass https://192.168.2.253:443/as/websocket?$args;

    }
    location ~ /as/(.*) {
            proxy_pass https://192.168.2.253:443;
            proxy_set_header Host $host;
            proxy_connect_timeout 5s;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_read_timeout 1800s;
    }


    location / {
            ##if ($request_method = 'OPTIONS') {
    ##              return 204;
    ##      }
            proxy_pass https://192.168.2.253:443;
      ##  add_header Access-Control-Allow-Origin '*';
    ##add_header 'Access-Control-Allow-Credentials' 'true';
    ##add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    #add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
    ##add_header 'Access-Control-Allow-Headers' '*';
    client_max_body_size 10m;
            client_body_buffer_size 512k;

            proxy_http_version 1.1;
            proxy_set_header Host $host;
            proxy_connect_timeout 5s;

       proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_read_timeout 1800s;
            send_timeout 300;


    #       proxy_pass https://192.168.2.250:443;

    }



    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
            root   html;
    }
}

3.2.5 服务重启命令

python3 /opt/work/sos-server-docker1.0.25-x86_64/sos_docker_x86.py restart freeswitch

python3 /opt/work/sos-server-docker1.0.25-x86_64/sos_docker_x86.py restart sosapi

python3 /opt/work/sos-server-docker1.0.25-x86_64/sos_docker_x86.py restart cm

3.2.6 查看服务状态

python3 /opt/work/sos-server-docker1.0.25-x86_64/sos_docker_x86.py status

全部评论: 0

    我有话说: