我正在参加「掘金·启航计划」
本篇内容主要关于环境部署,我们会安装部署过程中用到的一些基本工具,大致如下:
- Docker - 应用容器
- Jenkins - 构建工具
- Nodejs - 前端项目构建
- Git仓库 - 仓库管理系统
Docker 安装
1. 安装必需的软件,方便做安装配置
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2. 切换安装源为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. 安装Docker
sudo yum install docker-ce -y
4. 启动服务
sudo systemctl start docker
// 开机启动
sudo systemctl enable docker
docker -v检查是否安装成功,如果打印docker版本则安装成功
5. 配置镜像源
由于拉取 docker 镜像时,默认走的镜像源太慢,所以我们切换到阿里云的镜像源,阿里云镜像加速器如图:
Jenkins 安装及配置
1. 安装
可直接参考官方安装教程
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-2023.key
sudo yum upgrade
# Add required dependencies for the jenkins package
sudo yum install java-11-openjdk
sudo yum install jenkins
sudo systemctl daemon-reload
2.启动Jenkins
// 使jenkins在boot时生效
sudo systemctl enable jenkins
// 启动jenkins
sudo systemctl start jenkins
在启动过程中,你可能会遇到如下错误:
这时,我们执行如下命令查看具体的错误原因
cd /etc/init.d
# 启动
./jenkins start
报错原因如下:
因为java版本过低,jenkins不支持低版本的jdk,所以我们只要升级一下java版本就好了
- 先删除老版本
// 查看系统自带的jdk
rpm -qa | grep jdk
// 然后卸载查询出来的jdk
rpm -e --nodeps 旧的jdk
如图:
- 安装新版本
rpm -ivh jdk-11.interim.update.patch_linux-x64_bin.rpm
安装完成后,通过java -version查看版本
- 然后就是再次重启Jenkins
(先回到根目录)
cd /etc/init.d
# 启动
./jenkins start
启动成功如图所示:
这时候我会需要浏览器来查看jenkins界面,这里我们有两种方式来做这件事:
- 配置好虚拟机网络,使得本机和虚拟机之间可以相互通信,通过在本机上访问虚拟机ip的方式来访问相应的服务(推荐)网络配置参考
- 虚拟机安装图形化界面来方便进行jenkins的安装和配置。以下是具体步骤(选择方案一可直接略过)
图形化界面安装及配置
安装
- 输入命令
yum grouplist查看本系统支持的图形化界面 - 选择默认界面
GNOME Desktop,安装命令yum groupinstall "GNOME Desktop" - 安装过程直接选择‘y’回车
- 最终complete!代表安装成功。
配置
将默认启动模式改为图形化模式
- 查看命令
systemctl get-default,默认为multi-user.target - 设置为图形模式
systemctl set-default graphical-target systemctl get-default查看设置是否生效 结果为graphical-target则设置成功- 切换到图形化界面
startx(图形化界面切换回dos界面ctrl+alt+f2) 如果不生效可以在VirtualBox里关闭当前虚拟机(centos)然后再重新启动(如图)
图形界面如图所示:
选择vagrant用户登录,密码为vagrant,登录后的界面如图:
浏览器安装
1、使用以下命令下载并安装chrome安装包
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
yum install ./google-chrome-stable_current_x86_64.rpm
- 直接打开浏览器 (如果打不开,建议重启下虚拟机)
3. 初始化Jenkins配置
- 浏览器里打开 http://localhost:8080 会跳转如图所示的界面:
- 命令行获取密码
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
打开命令模式的方式:
- 本机上通过
vagrant ssh登录虚拟机后输入命令- 在 虚拟机图形化界面右击选择
open terminal然后输入命令
- 获取密码后继续,安装Jenkins推荐插件
- 安装完毕后,接着注册管理员账号,按照提示进行配置,直到出现以下界面则表示安装成功
4. 测试安装
-
我们点击
Jenkins首页 -> 左侧导航 -> new Item -> Freestyle project -
新建完毕后,找到
Build Steps一项,选择Add build step,选择Excute shell,输入如下测试命令 -
点击
Build Now,左下方会出现构建记录 -
点击记录进去,查看
Console Output,发现我们的命令已经成功执行✌️
Node安装
因为安装的推荐插件并没有nodejs,而我们的前端项目部署需要nodejs的环境,所以我们需要手动安装。
1. 安装插件
插件管理 --> 选择可用插件 --> 搜索Node --> 选中nodejs后直接安装(如图所示)
2.全局工具配置
找到全局工具配置并进入 --> 找到NodeJS --> Add NodeJS --> 填入版本名并选择node版本 --> 保存
3. 配置到项目
即将Node环境变量加到项目的构建中去。 以之前的测试项目为例。
-
找到项目 --> 项目名边上的箭头打开如图菜单 --> 选择配置进入配置界面
-
点击构建环境 --> 勾选Node环境变量并选择node版本 (先不保存,下一步加个测试脚本)
-
添加测试脚本 加两行脚本,打印node版本,顺便测试下docker是否生效😄
结果如图,安装使用都OK
集成git仓库
为了实现对代码的拉取和构建,我们需要继承git仓库,这里我们用github作为示例。
1. 生成密钥
需要自己的邮箱
ssh-keygen -t rsa -C "your-email-address@163.com"
最后会生成两个密钥,一个公钥,一个私钥,公钥在 Git 端配置,私钥在 Jenkins 端使用,用于与 Git 进行身份校验。
2. Git 端配置公钥
查看公钥,根据自己的公钥存放的目录查看,下面是我的公钥地址
cat /home/vagrant/.ssh/id_rsa.pub
复制公钥内容
打开个人的github主页,找到设置 --> 新建公钥 --> 将公钥内容复制到key的框内。如图:
3. Jenkins 端配置私钥
找到项目配置 --> 选择源代码管理 --> 选Git --> 填写你的项目地址(注意是SSH地址)
这时候会有错误提示,先不管,把配置进行下去。去添加凭证
点击Add按钮 - 选择Jenkins - 弹窗界面选择凭证类型为SSH Username with private key
填写凭证的基础信息
- ID:这条认证凭证名称
- 描述:描述信息
- Username:用户名
- Private Key:私钥内容。 点击 Add 按钮,将私钥文件内所有文件内容全部复制过去(包含开头的 BEGIN OPENSSH PRIVATE KEY 和结尾的 END OPENSSH PRIVATE KEY)
然后保存信息,回到Git配置主页面,这时候Credentials的下拉框会有我们刚刚配置的值,直接选择即可。
错误解决
这时候会发现那个错误提示仍然存在。错误原因是我们没有安装git,安装一下就好了。
sudo yum -y install git
git --version
然后会出现另一个错误,如图:
解决办法:
打开 Manage jenkins --> Configure Global Security --> 找到 Git Host Key Verification Configuration,按下图修改后保存即可
4. git分支设置
由于我们使用的是github仓库,默认分支是main,而不是master,所以这里需要改一下
到这里,基本的配置就完成了✌️