资讯专栏INFORMATION COLUMN

Jenkins 搭建与集群发布环境构建

Ali_ / 1660人阅读

摘要:测试环境和产品环境应该使用不同的任务,因为服务会部署到不同的机器。使用部署设置时区加入程序并安装包发布其他资料持续集成执行读不到环境变量问题文档

docker run -u root -itd --name jenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home jenkins

根据指导完成注册

安装插件。一定要安装插件: Publish Over SSH

使用 Jenkins 做集群部署流程

client 发送编译指令到 Jenkins Server.

Jenkins Server 从 Git repo 拉取代码

编译,打包

把编译后的结果通过 ssh push 到业务服务器 server1、server2、server3

配置业务服务器

安装插件 Publish Over SSH

进入到 /configure 页面。配置 jenknis 的私钥,和远程服务地址和端口等等。

特别留意Remote Directory,jenkins 推送过去的文件都会出现在这个目录,设置远程服务器的绝对路径有可能无效。使用相对路径即可。

如果有多台机器,都在这里进行配置。另外,需要把 Jenkins 的公钥,添加到 server1-3 的 ~/.ssh/authorized_keys

1. ssh  jenkins 宿主机
2. cat /var/jenkins_home/.ssh/id_rsa.pub
3. 把公钥存放到 server1-3 的`~/.ssh/authorized_keys` 
4. 这样 jenkins 这台机器就可以免密登陆到 server1-3
5. 如果 Jenkins 机器没有 /var/jenkins_home/.ssh/,那么就通过`ssh-keygen`生成

测试机器的连接。

配置发布任务。

测试环境和产品环境应该使用不同的任务,因为服务会部署到不同的机器。执行流程也可能有差异。

1.新建 FreeStyle 项目

2. 配置仓库

配置代码仓库,git,svn 等等都 ok

Repositories 使用 ssh 的模式。

需要把 /var/jenkins_home/.ssh/id_rsa.pub 添加到仓库的 access_key 里面。保证 jenkins 可以免密获取到代码,这个是最简单那的配置

3. 配置任务

以 node 项目为例,Jenkins shell 默认使用 非交互+非登陆式,所以获取不到环境变量。解决办法第一行需要写成 #!/bin/bash -l

编译任务都在这里完成了。

4. 发布到远程服务器

添加一个构建后的操作,Send build artifacts over SSH

推送文件到远程机器,在远程机器执行备份和重启

阅读需要支付1元查看
<