Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI/CD 之 Jenkins #14

Open
yeojongki opened this issue Jul 6, 2019 · 0 comments
Open

CI/CD 之 Jenkins #14

yeojongki opened this issue Jul 6, 2019 · 0 comments
Labels

Comments

@yeojongki
Copy link
Owner

CI/CD 之 Jenkins

  • 案例实现:每次 git push 代码后自动部署到服务器上 (nginx)
  • 服务器版本:CentOS 7.4 64位

1. 安装

1.1 添加 yum repos

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

1.2 安装 jenkins

sudo yum install jenkins

1.3 安装 java 环境

已经安装过的可忽略

sudo yum install java

1.4 启动、停止、重启

sudo service jenkins start
sudo service jenkins stop
sudo service jenkins restart

如果启动失败,可以运行如下命令查看错误信息

systemctl status jenkins.service

jenkins 的默认设置:

  • 会随系统启动而启动
  • 默认启用8080
  • 会创建一个用户叫做 jenkins, 如果你修改了 user,则要修修改所属者
  • 如果遇到问题
    • 查看日志 /var/log/jenkins/jenkins.log
    • 配置文件 /etc/sysconfig/jenkins

配置端口并修改 jenkins 用户:

vi /etc/sysconfig/jenkins
# 找到此处并进行修改端口
JENKINS_PORT="8080"
# 修改jenkins用户为root或者有读写权限的用户 不然执行shell脚本时候可能会没有权限
JENKINS_USER="root"

关闭防火墙:

systemctl stop firewalld.service
systemctl disable firewalld.service

2. 初始化 jenkins

  • 启动完 jenkins 后通过浏览器输入地址访问 jenkins首页

    http://部署jenkins主机IP:端口

cat /var/lib/jenkins/secrets/initialAdminPassword
  • 输入密码后安装推荐插件

  • 创建管理员后保存并完成

3. 安装 jenkins 插件

登录后在首页中如图点击进入管理插件页面

由于网络问题,需要修改插件系统的升级站点。进入到第4个 tab 高级,配置中拉到最下面的 升级站点 ,将地址修改为:

http://mirror.xmission.com/jenkins/updates/update-center.json

然后点击提交并进入到第2个 tab 可选插件ctrl+f 搜索并安装以下插件:

  • Generic Webhook Trigger (用来在源代码库提交的时候触发 jenkins 的任务)
  • nvm-wrapper (用于在 jenkins 中使用 node.js 环境)

回到首页创建一个任务

  1. 选择 Freestyle project ,确认后选择 源码管理,将项目的 github 地址写入 Repository URL,并点击Credentials 后的添加,输入 github 的账号和密码 (也可以选择 SSH 的方式)

  1. 选择 构建触发器,选中第4个,也就是我们装的 webhook 插件,这里需要注意箭头那的地址,后面需要用到

  1. 滑到最下面点击保存

4. 配置源代码库的 webhook

这里用 github 演示

进入到 github 仓库中,选择 tab setting,在左边选中 Webhooks 然后点击右上角 add webhook

填写 Payload URL,格式为

http://<userid>:<api token>@<Jenkins IP地址>:端口/generic-webhook-trigger/invoke

useridapi tokenjenkins 首页右上角用户-设置里

填写完成后我们修改一下代码提交 github,回到在 jenkins 首页可以看到已经有任务在构建了

接着我们查看控制台信息,文件的输出目录如下

那么构建了有什么用?这里只是演示了基本流程,下面我们把构建后的文件复制到服务器的 nginx 目录中,让我们可以通过外网访问该项目,也就是部署。(注:此处用的是 vue 项目,不在 jenkins 中执行构建,上传的文件是打包后的文件,也就是通过前面安装的插件 nvm-wrapper,在构建中执行 build 相关命令)

5. 部署

回到 jenkins 任务中,选中之前的那个任务继续配置。选择 构建

将项目中打包后的文件夹 dist 中的所有内容复制到 nginx 目录中即可

卸载

service jenkins stop
yum clean all
yum -y remove jenkins
rm -rf /var/cache/jenkins
rm -rf /var/lib/jenkins/

参考

@yeojongki yeojongki added the CI/CD label Jul 6, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant