今天收到一个任务,把现在开发的spring cloud项目做一个自动部署。这个项目下有许多模块(项目),这些模块以jar包的形式部署在两个服务器上。这些jar包并不是独立的,有些jar包是依赖于一些基础jar包的(比如:dao.jar,common.jar)。还有就是这些jar包是要部署到两个服务器。

准备的东西如下:

安装jenkins的服务器:192.168.2.100

GitLab服务器:192.168.2.50

部署服务器:192.168.2.200,192.168.2.250(分别部署不同的应用)

jenkins简单理解

jenkins自动部署我理解的就是把git上的项目拿过来部署到服务器,这个过程不再需要开发或运维人员去参与。

下面开始一系列的安装

1.首先安装jdk

为了避免版权问题,使用openjdk,使用yum安装

[root@localhost ~]# yum install java-1.8.0-openjdk* -y

安装成功后输入java -version可以查看安装的版本(不需要配置环境变量)

问题:使用yum install java-1.8.0-openjdk安装

如果用这个命令安装的jdk只有jre,缺少一些其他的组件,重新用上面的命令安装一边就可以。

2.安装jenkins

2.1使用yum安装(推荐war方式安装)

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
yum install -y jenkins

安装成功后修改端口号(安装成功会给一个密码,登录jenkins需要用)

vi /etc/sysconfig/jenkins

参数:JENKINS_PORT="8080"

2.2 war包安装

下载地址: https://jenkins.io/download/  选择Past Releases,可以看到所有版本,选择一个下载

将下载的jenkins.war放在服务器的某个目录下(我的位置:/opt/java-jenkins/)

进入此目录执行命令:java -jar jenkins.war --httpPort=8081,然后就可以访问jenkins了,(安装成功会给一个密码,登录jenkins需要用),如果想要后台挂载使用这个命令:nohup java -jar jenkins.war --httpPort=8081  > jenkins.out 2>&1 &

访问地址:http://服务器ip:8081,会提示输入密码,输入刚才记下的密码,页面如下:

输入密码后,选择默认的插件安装(第一个)

安装页面如下

安装成功后需要创建一个管理员

创建成功后,进入主页面

3.主页面配置

3.1首先需要先添加一个插件

选择左侧菜单 “系统管理” 下的 “插件管理” ,进入如下页面

第二列是可安装的,在右上角搜索ssh,可以搜到一个插件

安装这个插件

3.2对jenkins进行全局配置

选择左侧菜单 “系统管理” 下的 “全局工具配置” ,进入如下页面

这里主要需要配置三个,jdk、git、maven

jdk

Name可以自己起一个,JAVA_HOME是上面在服务器安装的jdk

git

Name就叫git吧,Path 需要填git可执行程序这层路径,不能只写到git安装目录这一层

git的安装就不多说了,https://blog.csdn.net/niu15032144758/article/details/86134554,我在这个里面单独介绍了。

Maven

maven安装查一下吧,这个很简单,几个命令就搞定了,你肯定没问题的。

搞定这三个之后保存就行了,有一个注意的地方就是这三个的版本,jdk不能低于1.8,其他的两个版本也别太低。

3.3系统设置

选择左侧菜单 “系统管理” 下的 “系统设置” 。这里面主要设置一个东西那就是你要发布的测试服务器。开篇提到了要jenkins需要把从git获取到的项目发布到服务器,jenkins怎么和服务器通信呢,就在这里......

首先在我们的jenkins服务器生成一个秘钥,利用秘钥免密登录,随便一个目录就行

ssh-keygen -t rsa -C yourname@163.com

秘钥生成在/root/.ssh/下,一个私钥id_rsa,一个公钥id_rsa.pub

使用cat id_rsa.pub命令查看公钥,并复制其所有内容。切换部署服务器一,进入目录cd /root/.ssh/下,可以看到有一个authorized_keys文件,编辑它(vi authorized_keys),在末尾加入复制的公钥。同样在部署服务器二加入这个公钥。

切换到刚才打开的jenkins配置页面,进入页面最底部

 

Passphrase:你的jenkins账户的密码

Path to key:私钥的路径(和key任选一个就行)

key:id_rsa里面的所有内容

SSH Servers Name:自己给这个服务器起个名字,Hostname:服务器的地址,Username:远程登录账号,Remote Directory:基础路径(jenkins往这个服务器传的时候的基础目录)

可以看到这里是配置的两个部署服务器(点击Add可以添加服务器), 分别点击Test Configuration,如果提示sucess表示配置成功。

到这里这些配置就先告一段落了,后面就可以开始创建自动发布任务了,准备了这么多,终于可以干点正事了(GitLab会在自动发布任务里面配置),先写到这吧,下一篇再讲......

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐