今天收到一个任务,把现在开发的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会在自动发布任务里面配置),先写到这吧,下一篇再讲......