linux 部署 syncd部署服务

介绍: syncd是一款开源的代码部署工具,它具有简单、高效、易用等特点,可以提高团队的工作效率.

一、部署前准备工作
1.部署nginx(syncd服务器)
[跳转](https://blog.youkuaiyun.com/qq_21082615/article/details/91489108)

2.安装mysql(syncd服务器)
[跳转](https://blog.youkuaiyun.com/qq_21082615/article/details/91489275)

3.配置syncd服务器秘钥免登陆生产服务器(生产服务器就是需要部署java项目的服务器)
在syncd服务器上的命令:
ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)
ssh root@生产服务器 "mkdir .ssh;chmod 0700 .ssh" (需要输入密码, 注:必须将.ssh的权限设为700)
scp ~/.ssh/id_rsa.pub root@生产服务器:.ssh/id_rsa.pub (需要输入密码)

在生产服务器上的命令:
touch /root/.ssh/authorized_keys (如果已经存在这个文件, 跳过这条)
chmod 600 ~/.ssh/authorized_keys (# 注意: 必须将~/.ssh/authorized_keys的权限改为600, 该文件用于保存ssh客户端生成的公钥,可以修改服务器的ssh服务端配置文件/etc/ssh/sshd_config来指定其他文件名)
cat /root/.ssh/id_rsa.pub  >> /root/.ssh/authorized_keys (将id_rsa.pub的内容追加到 authorized_keys 中, 注意不要用 > ,否则会清空原有的内容,使其他人无法使用原有的密钥登录)

回到syncd机器:
ssh root@生产服务器 (不需要密码, 登录成功)
二、部署Syncd
1.下载源码包(syncd服务器)
cd /usr/local/src
wget https://github.com/dreamans/syncd/releases/download/1.1.2/Syncd-v1.1.2-linux-amd64.tar.gz

解压
tar -zxvf Syncd-v1.1.2-linux-amd64.tar.gz 

2.新建数据库syncd并执行以下sql
[sql下载](https://download.youkuaiyun.com/download/qq_21082615/11235401)

3.修改数据源配置
cd /usr/local/src/Syncd-v1.1.2-linux-amd64/etc
vi syncd.ini

[database]
; 数据库连接信息
; 必须是utf-8编码
host = 数据库ip
port = 3306
user = root
password = 密码
dbname = syncd

4.启动服务
cd /usr/local/src/Syncd-v1.1.2-linux-amd64/bin
./syncd -c /usr/local/src/Syncd-v1.1.2-linux-amd64/etc/syncd.ini

5.如果出现以下信息就是启动成功
_ _ _  _ / /
/ / / / / / / _ \ / / / _ / 
(_ ) / // / / / / / / /_ / // / 
// _, / // // ___/ __,/ // 
Service: syncd
Version: 1.1.0
Config Loaded: /usr/local/src/Syncd-v1.1.2-linux-amd64/etc/syncd.ini
Workspace: /tmp/.syncd
Log: stdout
Database: 192.168.0.111
Mail Enable: 0
HTTP Service: :8868
三、配置nginx
1.新建syncd.conf配置文件(syncd服务器)
vi /usr/local/webserver/nginx/conf/conf.d/syncd.conf
upstream syncdServer {
    server 127.0.0.1:8868 weight=1;
}
server {
    listen       80;
    server_name  deploy.syncd.cc; # 此处替换成你的真实域名
    access_log   logs/deploy.syncd.cc.log;
 
    location / {
        try_files $uri $uri/ /index.html;
        root /usr/local/src/Syncd-v1.1.2-linux-amd64/public; #此处/path请替换成真实路径
        index index.html index.htm;
    }
 
    location ^~ /api/ {
        proxy_pass          http://syncdServer;
        proxy_set_header    X-Forwarded-Host $host:$server_port;
        proxy_set_header    X-Real-IP     $remote_addr;
        proxy_set_header    Origin        $host:$server_port;
        proxy_set_header    Referer       $host:$server_port;
    }
}

2.将syncd配置文件加入到nginx.conf
放在server之前
include /usr/local/webserver/nginx/conf/conf.d/*.conf;

3.校验nginx并重新加载配置
/usr/local/webserver/nginx/sbin/nginx -t
/usr/local/webserver/nginx/sbin/nginx -s reload

4.访问nginx
http://ip地址

5.出现登录界面就是成功了

在这里插入图片描述

6.默认登录账号密码
用户名: syncd 
邮箱: syncd@syncd.cc 
密码: syncd.cc

7.部署操作(会在之后补上,可自行百度)
### 自动化部署开源项目的概述 自动化部署是指通过一系列预定义的脚本或工具,在无人干预的情况下完成应用程序从构建到发布的整个过程。对于开源项目而言,这不仅提高了开发效率,还减少了人为错误的可能性。 #### 使用 Jenkins 实现自动化部署 Jenkins 是一个广泛应用的开源自动化服务器,支持多种编程语言和技术栈的应用程序部署。为了实现 Spring Boot 项目的自动部署,首先需要安装 Jenkins[^2]。一旦设置完毕,可以通过插件机制轻松集成 Git 版本控制系统以及 Maven 或 Gradle 构建工具来处理 Java 应用程序的编译和打包工作。 ```bash sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key sudo yum install jenkins java-1.8.0-openjdk-devel -y sudo systemctl start jenkins ``` 上述命令展示了在基于 Red Hat 的 Linux 发行版上安装 Jenkins 及其依赖项的方法。 #### 利用 Syncd 进行代码同步 Syncd 提供了一种简单的方式用于从版本控制库中获取特定标签或者分支下的最新源码副本。此操作通常作为 CI/CD 管道的一部分被执行,确保每次构建都基于最新的稳定状态来进行测试和发布准备[^3]。 #### KubeSphere 平台上的远程管理和部署 KubeSphere 是一款企业级容器云平台,集成了丰富的微服务治理特性,并且内置了对 DevOps 流水线的支持。当涉及到 Kubernetes 集群中的应用部署时,可以借助该平台上提供的图形界面快速搭建起安全可靠的外部访问通道,从而允许开发者们方便地监控正在运行的服务实例并对其进行必要的调整[^4]。 ```yaml apiVersion: v1 kind: Service metadata: name: example-service spec: selector: app: MyApp ports: - protocol: TCP port: 80 targetPort: 9376 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-example spec: rules: - host: www.example.com http: paths: - pathType: Prefix path: "/" backend: service: name: example-service port: number: 80 ``` 这段 YAML 文件描述了一个简单的 Kubernetes 资源清单,其中包括创建一个名为 `example-service` 的服务对象及其对应的入口规则(Ingress),以便于外界能够通过域名访问内部 Web 应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值