花了三天时间,终于将部署好了,踩了太多的坑!希望给以后需要使用华为云来部署项目的人一些帮助!
注意:华为云CentOS7.6是自动安装了JDK8的,所以不需要自己安装
由于,后面在Tomcat和Jenkins里面都需要用到JDK的安装目录,可以参考这篇博客:linux下找到JDK的安装路径
如果是自动安装的JDK8,那么路径应该和我的是一样的。
不过虽然是自动安装了JDK,但是并没有配置 /etc/profile 文件。所以我们还是得自己手动配置。
通过上面这篇博客,你就可以找到你的JDK的安装路径,
我通过博客里说的方法,找到的安装路径是:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.aarch64
所以,我在 /etc/profile 文件尾部是这样配置的
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.aarch64/jre
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH
我觉得上面这篇博客已经写的很清楚了,大家按照它的思路来就行!
【安装】在CentOS7.6上安装软件的两种方式
- 使用Docker安装这些软件
- 手动安装并配置
1、使用Docker进行安装【特别注意,不推荐】
如果使用Docker安装,在安装MySQL5.7的时候很有可能会报错:
no matching manifest for linux/arm64/v8 in the manifest list entries
报错的原因,这篇博客已经说的很清楚了,可自行查看:在华为云,使用Docker拉取镜像报错
华为官方的文档,也验证了这个说法:寻找适配鲲鹏架构的Docker镜像
去Docker镜像库里面查找,在“Architectures”选项中选上"ARM 64",你再搜索MySQL,你是搜不到的。如果不选"ARM 64",可以搜出来MySQL,但是你可以看到,它是不支持ARM64的。
综上:说明Docker的官方库中,没有适配华为鲲鹏架构的MySQL,所以,在华为云上,使用Docker安装MySQL这条路是行不通的!
(补充:我甚至将Docker的下载源设置为华为的镜像源,然后,虽然可以将MySQL下载下来,当时我就觉得自己成功了,结果,在安装的时候,还是报错,说 linux/arm64 与 linux/arm64/v8 不匹配,所以大家也不用去试了,我已经替大家试过了!)
(再次补充:不知道这种情况以后会不会改变,所以也只是给大家一个提醒,如果出现这种情况,那就不要用Docker进行安装MySQL了,免得在网上找各种方式,真的很浪费时间!)
华为云CentOS7.6安装Docker
虽然在华为云上,Docker虽然不能安装MySQL,但是可以安装其它适配了鲲鹏架构的软件的,所以我还是将安装文档给你们,按照自己的需求自行选择是否安装Docker。CentOS7.6安装Docker的华为官方文档
2、手动安装并配置(在华为云上,我推荐用这种方式)
为什么推荐呢?
因为这些软件的安装都有官方文档!!!
只要按照官方文档,一步一步来,肯定是不会有问题的!
其实说白了,Docker安装用不了,只能手动安装,没办法~
首先,配置华为镜像源
使用华为云提供的CentOS-Altarch镜像源(ARM)
说明:为什么需要先配置这个呢?
那是因为我在安装最后Git的时候,需要下载两个依赖插件,结果就是下载不下来,最后将CentOS的下载镜像源设置成华为的,就可以下载了。所以这里就先配置,以免出现不必要的错误!
安装MySQL5.7
华为官方文档:MySQL 5.7.27 安装指南
按照官方文档一步一步来进行安装就可以了,我按照官方文档来安装,这个过程很流畅,没有出现任何问题!
这里只需要注意一点:就是在 安装 这一步,我推荐选择 镜像站RPM安装 ,虽然这样会导致后面的 运行 这一步会多配置一些东西,但是这样安装速度是最快的,
因为 编译安装 的速度是很慢的。别问我为什么知道编译安装很慢,还不是因为当时年少无知!
因为我一开始使用的是编译安装,结果后面自己配置出错了,导致我又重新安装了一遍!
在编译安装中,需要提前配置编译环境,升级CMake和GCC,在升级GCC的编译这一步,我购买的是2核4G服务器,就这一步,CPU满血运行,CPU占用率一直处于99%,持续运行了80分钟左右,才终于编译好GCC。所以为了不浪费大家的时间,我真的不推荐大家使用编译安装,真的太浪费时间了
(补充:但是如果你购买的服务器配置很好的话,那就当我没说,你随便选择一种安装方式就可以了哈~)
安装Tomcat
华为官方文档:Tomcat7、Tomcat8、Tomcat9安装指南
这里可以按照官方的文档来进行安装,也可以自己使用其它方式安装。
比如自己将安装包下载到本地,然后上传到服务器中,再解压,也可以。
安装包就自行去网上百度下载即可哈,网上有很多~
下面给出一个简单的安装流程,仅供参考:
1:复制这个安装包压缩文件linux_apache-tomcat-7.0.26.tar.gz到 /usr/local目录下
cp linux_apache-tomcat-7.0.26.tar.gz /usr/local/
2、进入文件进行解压
tar -zxvf linux_apache-tomcat-7.0.26.tar.gz
3、启动Tomcat
cd apache-tomcat-7.0.26/bin/
./startup.sh
4:查看8080端口的使用情况
netstat -apn | grep 8080
安装Git
为什么CentOS7.6自带了Git,还需要卸载了重新安装一个呢?
那是因为自带的Git版本太低了,为了防止在后面配置 Jenkins 的时候出现问题,否则最好是安装一个高一点的版本。我安装的版本git-2.10.0
安装Git,我没有找到华为的官方文档。但其实也很简单。
【特别注意】安装前提是,你已经 配置了华为镜像源 ,否则编译Git的依赖是下载不下来的。如何配置,上面已经说过了,这里就不再赘述了
安装包就自行去网上百度下载即可哈,网上有很多~
我的安装步骤如下:
1、安装编译Git所需要的依赖
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install -y gcc perl-ExtUtils-MakeMaker
2、删除系统已经有的git
yum remove git
3、解压这个git文件
tar -zxvf git-2.10.0.tar.gz
4、进入解压的根目录
cd git-2.10.0
5、编译Git
make prefix=/usr/local/git all
6、安装Git
make prefix=/usr/local/git install
7、配置环境变量,修改 /etc/profile 文件
export PATH=$PATH:/usr/local/git/bin
8、使能环境变量
source /etc/profile
9、检查是否有git的版本信息输出,如果有说明安装正确
git --version
安装Jenkins 以及 Maven
华为官方文档:Jenkins 安装指南
华为官方文档:Maven 安装指南
安装maven
- 这里需要说明一下:
官方的 Jenkins 安装指南里面,那个maven的下载地址有可能是错误的,访问是404,下载不下来。所以您可以借助 Maven 安装指南的下载地址,然后安装的步骤还是安装 Jenkins 安装指南中的走就行了。
或者,你也可以自己去百度下载安装包,上传到服务器中自行安装。
我就是自己安装的,没有按着官方的文档走。
安装包就自行去网上百度下载即可哈,网上有很多~
我的安装 maven 的步骤如下:
1、在/usr/local目录下创建 maven3目录
mkdir /usr/local/maven3
2、解压这个压缩文件
tar -zxvf apache-maven-3.8.1-bin.tar.gz
3、配置环境变量,修改 /etc/profile 文件
export M2_HOME=/usr/local/maven3/apache-maven-3.8.1
export PATH=$PATH:$M2_HOME/bin
4、使能环境变量
source /etc/profile
5、验证maven是否安装完成
mvn --version
安装Jenkins
第1种情况:特别注意,官方文档是安装 Jenkins,所以它是下载的 rpm 包。
第2种情况:如果你是想通过 Tomcat 启动 Jenkins,那么就需要自己去下载 Jenkins 的 war 包,然后把这个 war 包放在 Tomcat 的 webapps 文件夹下面就可以了!!!
我是通过 Tomcat 这种方式启动的,相当于就是把 Jenkins 作为一个web项目放在 Tomcat 里。
我将下载下来的 war 包名字改为: jenkins.war ,然后放在 Tomcat 的 webapps 文件夹下,然后 Tomcat 就会自动解压这个 war 包,解压完成之后,在 webapps 文件夹下面就会多一个 jenkins 文件夹。
至此,启动 Tomcat ,如果 8080 端口处于监听状态,那么就可以通过浏览器访问 Jenkins 了!!!
在浏览器地址栏输入 IP地址:8080/jenkins 就可以出现如下界面了,如果出现了如下界面,就说明 Jenkins 安装成功了!!!
【配置】 Jenkins ,与 码云Gitee 相互联动,与 第三方服务器 相互联动
需要实现的效果:
1、在 IDEA 上一提交代码到 码云Gitee 的仓库中,
2、Gitee 就会自动执行 WebHooks ,调用专属链接, 自动触发 Jenkins 执行如下操作:
- 去 Gitee 上拉取该项目的代码,
- 将拉取下来的代码进行构建打包,
- 最后将打包好的这个 war 包,自动热部署到 第三方服务器 Tomcat 上 。
3、这样,第三方服务器 Tomcat 中的 webapps 文件夹下的这个项目的 war 包就自动更新了,
4、然后 Tomcat 会自动解压这个最新的 war 包。
5、所以,当用户再次点击访问这个网址的时候,看到的就是更新后的项目了!!!
综上:就达到了 持续集成 的效果!!
大部分步骤,我这里就省略了,这里给出几篇博客,供大家参考。
- IDEA 与 码云Gitee 的联动:idea配置gitee、上传项目、更新项目
- 码云Gitee 与 Jenkins 的联动:Jenkins + Gitee(码云) 实现代码自动化构建
Jenkins 与 第三方服务器 的联动:我没找到比较好的博客,这里我就自己写一下吧,哈哈
第一步:给 第三方服务器 上的 Tomcat 设置 账户密码
这里给 Tomcat 设置账户密码是因为 Jenkins 的 “构建后操作” 功能里面,需要 Tomcat 的账户密码,所以这里设置一下。
- 首先,在 Tomcat安装目录下的 /conf/tomcat-user.xml 文件尾部添加下面这些话
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="admin-gui,admin,manager-gui,manager,manager-script,manager-jmx,manager-status"/>
最后一行的 username="admin",password="admin",是我这里默认的账户密码,只有这里你可以自定义哈,建议其它地方就不建议改动了!
在 tomcat-user.xml 文件中复制粘贴的位置如下图:
- 然后,在 Tomcat安装目录下的 /conf/Catalina/localhost 添加一个manager.xml文件
1、进入 Tomcat安装目录下的 /conf/Catalina/localhost 这个目录
比如:cd /usr/local/apache-tomcat-8.5.56/conf/Catalina/localhost
2、添加一个 manager.xml 文件
mkdir manager.xml
效果如下图:
3、在这个 manager.xml 文件中复制粘贴如下这些话
<Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
效果如下图:
第二步:重新启动 Tomcat
当启动成功后,在浏览器地址栏输入 IP地址:8080 ,如果出现如下界面,说明 Tomcat 启动成功。那么就点击图中我画蓝色线条的地方。
第三步:弹出如下界面,这里输入 Tomcat 的用户名密码
如果是直接复制粘贴我上面的内容,那么这里的用户名密码就都是 admin,如果你是自己设置了用户名和密码,那就输入你自己设置的即可。
第四步:输入用户名密码,点击登录,如果出现如下界面,就说明 Tomcat 账户密码设置成功了!那么 Tomcat 这边就设置完了!
第五步:在 Jenkins 的 “插件管理” 中看看有没有安装 Deploy to container 这个插件,如果没有安装就在 “可选插件” 中搜索一下,然后安装一下,安装后的效果如下图:
【特别注意】只有完成了第五步,才可以继续往下走
第六步:配置 构建后的操作 ,按照我图片的顺序来走就行
- 进入这个工程的界面
至此,Jenkins 与 第三方服务器 的联动就设置完了!!!
最后,大家可以测试一下,我是已经测试成功了,IDEA点击push提交代码,第三方服务器中的项目就自动更新了~