git、gitlab与jenkins的使用

#gitlab配置
git config --global user.name "用户名"	#使用用户名
git config --global user.email "邮箱"	#邮箱地址
git init				#初始化当前目录为仓库目录,目录里所有文件都会被git管理
git status				#查看当前仓库状态
git rm 文件名				#删除在暂存区的文件
git mv 文件名 文件名1			#修改文件名,直接提交在暂存区

git clone http://主机IP/项目地址		#在web端创建项目,查看项目地址,复制到本地
git add 文件名				#添加修改记录(提交到暂存区)
git commit -m "标签名"			#提交修改打标签
git tag v1(版本号)			#添加版本号标签
git push origin master			#推送数据到服务器
git push origin v1			#推送版本到服务器

#客户端生成ssh密钥免密方式上传
rm -rf /root/.ssh/known_hosts  #删除之前的ssh远程记录
ssh-keygen                   #生成ssh密钥文件
cat ~/.ssh/id_rsa.pub       #查看密钥文件
#复制密钥,在web中通过个人信息-设置-ssh密钥添加
#查看项目基于ssh连接方式的链接,保存地址
git remote remove origin
git remote add origin ssh连接方式地址
#之后就可以免密上传文件
#jenkins配置
#登陆后点击新建任务,填写任务名称,选择构建一个自由风格的软件项目,点击确认
#选择参数化构建过程为Git参数,名称描述自定义,参数类型选择分支或标签,默认值为origin/master
#定义Respository URL(git仓库路径)
#点击保存退出

#选择项目进入控制面板
#在项目菜单下选择Build with Parameters
#此时Jenkins会自动连接GitLab服务器获取仓库数据,我们可以选择一个版本,点击开始构建,控制台输出可查看构建日志
#默认Jenkins会加拉取的代码数据保存到/var/lib/Jenkins/workspace/目录

#构建分发服务器
#安装vsftpd
yum -y install vsftpd
vim /etc/vsftpd/vsftpd.conf            #修改vsftpd配置文件
anonymous_enable=YES                       #12行          #允许匿名访问ftp
mkdir -p /var/ftp/deploy/packages
#创建目录,未来jenkins将拉取的代码数据拷贝到该目录,共享给应用服务器
#-p是创建多级子目录
chown -R :jenkins /var/ftp/deploy/
#修改权限将目录所属组修改为jenkins
chmod -R 775 /var/ftp/deploy/
#修改权限让jenkins组对该目录有读写权限
systemctl enable vsftpd --now

#修改jenkins项目配置,添加构建步骤,选择执行shell
#编写构建脚本
pkg_dir=/var/ftp/deploy/packages	#定义变量pkg_dir,变量值为ftp共享目录
cp -r 项目目录 $pkg_dir			#将jenkins拉取到/var/lib/Jenkins/workspace/目录的数据拷贝到ftp共享目录
rm -rf $pkg_dir/项目目录/.git  		#上一步拷贝过来的数据目录下包含一个隐藏.git目录,删除该git仓库目录
cd $pkg_dir/				#cd到ftp共享目录下
tar czf 项目名.tar.gz 项目目录		#将ftp共享目录下的代码数据打包
rm -rf 项目目录				#将ftp共享目录下的代码数据目录删除(上一步已经打包数据)
#应用服务器安装所需软件
yum -y install httpd wget tar
#编写自动化上线脚本
vim down_file.sh
#!/bin/bash
#定义变量,指定FTP共享路径
ftp_url=ftp://ftp地址
#定义变量,指定网页根路径
web_dir=/var/www/html
#定义函数,行数名为down_file,该函数的作用是从FTP服务器下载代码数据到网站根目录
down_file(){
#wget为下载工具(如果没有则需要安装),-q选项为静默模式下载,不显示下载过程
#-O选项可以指定将文件下载到哪里
#下载代码数据的打包文件,根据前面获取的版本号,下载对应的版本数据打包文件
  wget -q $ftp_url/packages/压缩包 -O $web_dir/压缩包名
#将数据解压到网站根目录下/var/www/html/
tar -xf $web_dir/压缩包 -C $web_dir
}
down_file

chmod +x down_file.sh #添加可执行权限
./down_file.sh #执行脚本