本地jenkins部署+gitlab+centos7

778 阅读2分钟

本地jenkins部署+gitlab+centos7

1. 虚拟机安装centos7

1.1 安装centos7并启动登录

虚拟机安装centos7

1.2 关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

关闭防火墙

1.3 设置虚拟机静态IP

vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改以下内容

BOOTPROTO="static"
IPADDR="192.168.25.200"
NETMASK="255.255.255.0"
GATEWAY="192.168.25.2"
DNS1="192.168.25.2"
ONBOOT="yes"

设置虚拟机静态IP

1.4 重启

reboot

1.5 xshell登录

xshell登录

2. 安装jenkins

2.0 切换yum源为阿里云源

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache

切换yum源为阿里云源

2.1 安装JDK

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

安装JDK

2.2 安装jenkins

yum install -y wget
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.key
yum install -y jenkins

安装jenkins

2.3 修改端口号

vi /etc/sysconfig/jenkins

修改

JENKINS_PORT="9999"

修改jenkins端口

2.4 启动

service jenkins start

2.5 获取管理员密码

cat /var/lib/jenkins/secrets/initialAdminPassword

2.6 打开浏览器访问地址

http://192.168.25.200:9999/ 输入密码登录 -> 安装推荐的插件 -> admin管理员账号继续 -> 保存并完成

登录jenkins

可以修改新密码 用户名 -> 设置 -> Password

2.7 如果登录后一直卡loading页面可以修改xml文件

vi /var/lib/jenkins/hudson.model.UpdateCenter.xml

把url改为

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

2.8 安装以下插件

安装插件

  • Generic Webhook Trigger

安装webhook

  • Publish Over SSH

安装ssh

  • nvm-wrapper

安装nvm

2.9 生成token并保存

jenkins-token

3. gitlab搭建本地仓库

about.gitlab.com/installatio…

3.1 安装依赖

sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install -y postfix
sudo systemctl enable postfix
sudo systemctl start postfix

3.2 添加仓库包

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

3.3 切换清华大学开源软件镜像站

新建文件

vi /etc/yum.repos.d/gitlab-ce.repo

添加内容

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

再执行

sudo yum makecache
sudo yum install -y gitlab-ce

安装gitlab

3.4 修改gitlab配置

vi /etc/gitlab/gitlab.rb

修改

external_url 'http://192.168.25.200:7777'

修改gitlab配置

再执行

sudo gitlab-ctl reconfigure

保存gitlab

3.5 浏览器访问gitlab

浏览器访问 http://192.168.25.200:7777

访问gitlab

第一次访问设置新密码

登录,管理员账号root,密码刚才设置的密码

登录gitlab

3.6 创建一个项目仓库jenkins-gitlab-test

创建一个项目仓库

3.7 本机创建一个项目jenkins-gitlab-test

create-react-app jenkins-gitlab-test
cd jenkins-gitlab-test
git remote add origin http://192.168.25.200:7777/root/jenkins-gitlab-test.git
git push origin master

提交到gitlab

刷新页面,成功提交到gitlab仓库

提交到gitlab

3.8 gitlab需要开启允许本地hooks提交

Admin Area -> Settings -> Network -> Outbound requests

-> Allow requests to the local network from hooks and services

area1

area2

area3

4. 配置webhook

4.1 登录jenkins,新建jenkins任务

创建jenkins任务

4.2 源码管理:选择git源码仓库,添加用户授权

  • 服务器要先安装git
yum install -y git
  • 源码管理选择git
  • 填入git仓库地址
  • 添加提交用户

jenkins-git

4.3 构建触发器: 选中Generic Webhook Trigger

jenkins-webhook

4.4 构建环境:选中Run the build in an NVM managed environment

填写node版本号

jenkins-nvm

4.5 构建:添加构建步骤Execute shell

  • 设置淘宝源
  • 安装依赖
  • 删除build目录
  • 构建项目
  • 进入build目录
  • 打一个压缩包
npm config set registry http://registry.npm.taobao.org
npm install
rm -rf build
npm run build
cd build
tar -zcvf build.tar.gz *

jenkins-shell

4.6 进入gitlab项目设置webhook

gitlab-webhook

  • 测试成功

gitlab-test

4.7 修改本机创建的react项目App.js

function App() {
    return (
        <div className="App">
            hello
        </div>
    );
}

提交到gitlab仓库

git add -A
git commit -m'edit'
git push origin master

查看jenkins任务,有新任务执行

jenkins-quque

查看构建日志

jenkins-log

进入 cd /var/lib/jenkins/workspace/jenkins-gitlab-test 目录 成功构建build目录,进入build目录也生成tar压缩包了

jenkins-log

5. 发布到nginx中

5.1 安装nginx

  • 新建文件
vi /etc/yum.repos.d/nginx.repo
  • 添加内容
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

nginx

  • 安装nginx并启动
yum install -y nginx
systemctl start nginx.service

5.2 服务器生成秘钥

ssh-keygen -t rsa

按3次回车就好了

ssh-keygen

ssh-copy-id 192.168.25.200

ssh-keygen

5.3 进入jenkins系统设置

jenkins-config

Publish over SSH

  • Passphrase: 为空

  • Path to key: 私钥路径

  • Key: 私钥

  • SSH Servers 新增一个服务

  • Name:名称

  • Hostname: 主机名

  • Username: 用户名

  • Remote Directory: 目录路径

jenkins-publish

5.4 进入jenkins任务配置

构建后操作:Send build artifacts over SSH

jenkins-shell

  • Source files 源文件
build/build.tar.gz
  • Remove prefix 去掉前缀
build/
  • Remote directory 目录路径
/usr/share/nginx/html
  • Exec command 执行命令
cd /usr/share/nginx/html
tar -xzvf build.tar.gz
rm -rf build.tar.gz

jenkins-publish

5.5 修改本机react项目App.js,提交到gitlab,查看jenkins任务构建完成,访问http://192.168.25.200:80