自动化部署实践(二)-虚拟机环境配置

413 阅读6分钟

我正在参加「掘金·启航计划」

本篇内容主要关于环境部署,我们会安装部署过程中用到的一些基本工具,大致如下:

  1. Docker - 应用容器
  2. Jenkins - 构建工具
  3. Nodejs - 前端项目构建
  4. 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 镜像时,默认走的镜像源太慢,所以我们切换到阿里云的镜像源,阿里云镜像加速器如图:

image.png

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

在启动过程中,你可能会遇到如下错误:

jenkins-start.png

这时,我们执行如下命令查看具体的错误原因

cd /etc/init.d 
# 启动 
./jenkins start

报错原因如下:

image.png 因为java版本过低,jenkins不支持低版本的jdk,所以我们只要升级一下java版本就好了

  1. 先删除老版本
// 查看系统自带的jdk 
rpm -qa | grep jdk 
// 然后卸载查询出来的jdk 
rpm -e --nodeps 旧的jdk

如图:

image.png

  1. 安装新版本

安装

rpm -ivh jdk-11.interim.update.patch_linux-x64_bin.rpm

安装完成后,通过java -version查看版本

  1. 然后就是再次重启Jenkins
(先回到根目录)
cd /etc/init.d 
# 启动 
./jenkins start

启动成功如图所示:

image.png

这时候我会需要浏览器来查看jenkins界面,这里我们有两种方式来做这件事:

  1. 配置好虚拟机网络,使得本机和虚拟机之间可以相互通信,通过在本机上访问虚拟机ip的方式来访问相应的服务(推荐)网络配置参考
  2. 虚拟机安装图形化界面来方便进行jenkins的安装和配置。以下是具体步骤(选择方案一可直接略过)

图形化界面安装及配置

安装
  1. 输入命令yum grouplist查看本系统支持的图形化界面
  2. 选择默认界面GNOME Desktop,安装命令yum groupinstall "GNOME Desktop"
  3. 安装过程直接选择‘y’回车
  4. 最终complete!代表安装成功。
配置

将默认启动模式改为图形化模式

  1. 查看命令 systemctl get-default,默认为multi-user.target
  2. 设置为图形模式 systemctl set-default graphical-target
  3. systemctl get-default查看设置是否生效 结果为graphical-target则设置成功
  4. 切换到图形化界面 startx (图形化界面切换回dos界面ctrl+alt+f2) 如果不生效可以在VirtualBox里关闭当前虚拟机(centos)然后再重新启动(如图)
image.png

图形界面如图所示:

image.png

选择vagrant用户登录,密码为vagrant,登录后的界面如图:

image.png

浏览器安装

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

  1. 直接打开浏览器 (如果打不开,建议重启下虚拟机)
image.png

3. 初始化Jenkins配置

  1. 浏览器里打开 http://localhost:8080 会跳转如图所示的界面:
ci-jenkins.png
  1. 命令行获取密码

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

打开命令模式的方式:

  1. 本机上通过vagrant ssh登录虚拟机后输入命令
  2. 虚拟机图形化界面右击选择open terminal 然后输入命令
  1. 获取密码后继续,安装Jenkins推荐插件
  2. 安装完毕后,接着注册管理员账号,按照提示进行配置,直到出现以下界面则表示安装成功
image.png

4. 测试安装

  1. 我们点击 Jenkins 首页 -> 左侧导航 -> new Item -> Freestyle project

  2. 新建完毕后,找到 Build Steps 一项,选择 Add build step,选择 Excute shell,输入如下测试命令

    image.png
  3. 点击Build Now,左下方会出现构建记录

    image.png
  4. 点击记录进去,查看Console Output,发现我们的命令已经成功执行✌️

    image.png

Node安装

因为安装的推荐插件并没有nodejs,而我们的前端项目部署需要nodejs的环境,所以我们需要手动安装。

1. 安装插件

插件管理 --> 选择可用插件 --> 搜索Node --> 选中nodejs后直接安装(如图所示) image.png

2.全局工具配置

找到全局工具配置并进入 --> 找到NodeJS --> Add NodeJS --> 填入版本名并选择node版本 --> 保存

image.png

3. 配置到项目

即将Node环境变量加到项目的构建中去。 以之前的测试项目为例。

  1. 找到项目 --> 项目名边上的箭头打开如图菜单 --> 选择配置进入配置界面

    image.png
  2. 点击构建环境 --> 勾选Node环境变量并选择node版本 (先不保存,下一步加个测试脚本)

    image.png
  3. 添加测试脚本 加两行脚本,打印node版本,顺便测试下docker是否生效😄

    image.png

结果如图,安装使用都OK

image.png

集成git仓库

为了实现对代码的拉取和构建,我们需要继承git仓库,这里我们用github作为示例。

1. 生成密钥

需要自己的邮箱

ssh-keygen -t rsa -C "your-email-address@163.com"
image.png

最后会生成两个密钥,一个公钥,一个私钥,公钥在 Git 端配置,私钥在 Jenkins 端使用,用于与 Git 进行身份校验。

2. Git 端配置公钥

查看公钥,根据自己的公钥存放的目录查看,下面是我的公钥地址

cat /home/vagrant/.ssh/id_rsa.pub

复制公钥内容

打开个人的github主页,找到设置 --> 新建公钥 --> 将公钥内容复制到key的框内。如图: image.png

3. Jenkins 端配置私钥

找到项目配置 --> 选择源代码管理 --> 选Git --> 填写你的项目地址(注意是SSH地址) 这时候会有错误提示,先不管,把配置进行下去。去添加凭证 image.png

点击Add按钮 - 选择Jenkins - 弹窗界面选择凭证类型为SSH Username with private key

image.png

填写凭证的基础信息

  • ID:这条认证凭证名称
  • 描述:描述信息
  • Username:用户名
  • Private Key:私钥内容。 点击 Add 按钮,将私钥文件内所有文件内容全部复制过去(包含开头的 BEGIN OPENSSH PRIVATE KEY 和结尾的 END OPENSSH PRIVATE KEY)
image.png

然后保存信息,回到Git配置主页面,这时候Credentials的下拉框会有我们刚刚配置的值,直接选择即可。

错误解决

这时候会发现那个错误提示仍然存在。错误原因是我们没有安装git,安装一下就好了。

sudo yum -y install git
git --version

然后会出现另一个错误,如图:

image.png

解决办法: 打开 Manage jenkins --> Configure Global Security --> 找到 Git Host Key Verification Configuration,按下图修改后保存即可 image.png

4. git分支设置

由于我们使用的是github仓库,默认分支是main,而不是master,所以这里需要改一下 image.png 到这里,基本的配置就完成了✌️