jenkins + gitlab
jenkins + gitlab
标签(空格分隔):jenkins
1、概念
- jenkins是什么玩意
jenkins起源于hudson,主要用于持续、自动构建/测试软件项目。基于java开发,通常与版本工具构建工具配合使用,其中最典型也就是 jenkins+gitlab+maven+ansible
- 理解什么是CI/CD
CI:持续集成
CI:持续集成,是一种开发时间,当我们开发人员提交新代码之后,立刻会进行构建、单元测试。根据测试结果,我们可以确定新生代代码和原有代码能否正确的集成到一起。
CD:持续发布
CD:持续发布,在持续集成的基础上将集成的代码部署到更更贴近真实环境中,比如我们完成单元测试后就可以将代码部署到测试环境中进行更多测试。如果代码没有问题可以继续手动部署到生成环境中。
2、安装jenkins
2.1、下载
地址:https://www.jenkins.io/zh/download/
wget http://mirrors.jenkins.io/war-stable/2.277.4/jenkins.war
2.2、启动
2.2.1、安装java环境
- 上传jdk包到服务器,及以下java安装环境安装包到服务器,执行脚本即可安装
#!/bin/bash
#date:20210525
#author:vic
#version:v1
filedir=`pwd`
jdkpackage="jdk1.8.0_60.tar.gz"
jdkpath="/application/jdk1.8.0_60"
function install_jdk() {
java -version &>/dev/null
if [ $? -ne 0 ]
then
mkdir -p /application
tar -zxvf ${filedir}/${jdkpackage} -C $filedir &> /dev/null
ln -sv ${jdkpath} ${filedir}/jdk &> null
ln -sv ${filedir}/jdk/bin/java /usr/bin &>/dev/null
echo "export JAVA_HOME=${jdkpath}" >> /etc/profile
echo "export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH" >> /etc/profile
echo "export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib$JAVA_HOME/lib/tools.jar">>/etc/profile
echo -e "\n"
echo -e "\n"
source /etc/profile
java -version &>/dev/null
if [ $? -eq 0 ]
then
echo "jdk installed successfully!当前版本是:" && java -version|grep "java version"
else
echo "jdk installation failed! " && exit 8
fi
else
echo "当前环境已安装java环境,请确认后再进行安装!当前版本为:" && java -version|grep "java version"
fi
}
function test_jdk(){
java -version &>/dev/null
if [ $? -eq 0 ]
then
echo "jdk installed successfully!当前版本是:" && java -version
else
echo "jdk installation failed! " && exit 8
fi
}
install_jdk
2.2.2、启动jenkins
- 配置
vim /etc/sysconfig/jenkins
##启用端口
JENKINS_PORT="8088"
##使用启动的用户,建议生产不使用root,而是使用普通用户
JENKINS_USER="root"
- 启动
mkdir -p /application/jenkins
cd /application/jenkins
rz -y 将jenkins.war包上传到目录
nohup java -jar jenkins.war --httpPotr=80 &
2.3、 gitlab
gitlab是一个开源的仓库管理项目,使用git作为代码管理工具,gitlab常用来作为本地内部私有代码仓库使用。
2.3.1、 install gitlab
- 安装依赖包
yum install curl policycoreutils-python openssh-server postfix wget -y
- 启动sshd服务并开机自启
systemctl start sshd
systemctl enable sshd
- 启动postfix 并开机自启
systemctl start postfix
systemctl enable postfix
- 关闭防火墙或着添加ssh及http服务防火墙配置,环境不需要防火墙则可以直接关闭
##关闭
systemctl stop firewalld
systemctl disable firewalld
##添加防火墙配置
firewall-cmd-add-service=ssh-permanent
firewall-cmd-add-service=http-permanent
firewall-cmd-reload
- 下载安装gtilab
##dowload
wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-13.12.0-ce.0.el7.x86_64.rpm/download.rpm
##install
rpm -i gitlab-ce-13.12.0-ce.0.el7.x86_64.rpm
- config gitlab
vim /etc/gitlab/gitlab.rb
external_url 'http://111.229.26.175:82'
nginx['listen_port'] = 82
- gitlab 重载配置及重启
gitlab-ctl reconfigure
gitlab-ctl restart
2.3.2、添加组、添加账号、创建项目
2.3.2.1、创建组
点击首页右上方[GROUP] --> [Creat group]
在【Group name】输入组名称
组权限说明:
- Public projects
无需通过 HTTPS进行任何身份验证即可克隆公共项目。
它们列在/public所有用户的公共访问目录 ( ) 中。
任何登录用户都
对存储库具有访客权限。
- Internal projects
内部项目可以克隆用户除了通过登录任何外部用户。
它们也列在公共访问目录 ( /public) 中,但仅适用于登录用户。
除外部用户之外的任何登录用户都
对存储库具有访客权限。
- Private projects
私有项目只能被项目成员(来宾除外)克隆和查看。
它们仅出现在/public项目成员的公共访问目录 ( ) 中。
账号
2.3.2.2、创建项目
- 首页-->Project-->Your project-->New project
- 三个选项:创建空白项目 || 从模板创建 || 导入项目
- 选择【Create blank project】
- Project name -->选择需要分配给的组-->选择项目权限 public--> Create project
- 项目权限:
- Public Project
无需通过 HTTPS进行任何身份验证即可克隆公共项目。
它们列在/public所有用户的公共访问目录 ( ) 中。
任何登录用户都
对存储库具有访客权限。
Internal projects
内部项目可以克隆用户除了通过登录任何外部用户。
它们也列在公共访问目录 ( /public) 中,但仅适用于登录用户。
除外部用户之外的任何登录用户都
对存储库具有访客权限。
- Private Project
私有项目只能被项目成员(来宾除外)克隆和查看。
它们仅出现在/public项目成员的公共访问目录 ( ) 中。
2.3.2.3、创建账号
- 首页-->Admin area-->New User-->输入相关信息
- 点击Group-->将新添加账号添加到对应的组中
- 更改账号信息-->User -->Edit
开始使用jenkins
-
在浏览器访问地址 ip+port
-
选择离线安装(因为不能连接外网,后期安装插件可采取使用手动上传安装)
-
插件安装