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
注意:本文归作者所有,未经作者允许,不得转载