[root@node3 ~]# git init myproject
初始化空的 Git 版本库于 /root/myproject/.git/
[root@node3 ~]# ls -A myproject/
.git
[root@node3 ~]# mkdir devops
[root@node3 ~]# cd devops/
[root@node3 devops]# echo 'Hello World!
' > index.html
[root@node3 devops]# git init .
初始化空的 Git 版本库于 /root/devops/.git/
[root@node3 devops]# ls -A
.git index.html
[root@node3 devops]# git status # 状态
[root@node3 devops]# git status -s # 简要信息
?? index.html
[root@node3 devops]# git add . # 将目录下所有内容加入暂存区,开始跟踪
[root@node3 devops]# git status -s
A index.html
[root@node3 devops]# git commit -m "modify index.html, add hosts" # 确认至版本库,需要写日志
[root@node3 devops]# git log # 查看所有的提交
commit 0fff998482d7630caa531f28d51587884745b423
Author: zzg <[email protected]>
Date: Tue May 21 14:16:04 2019 +0800
modify index.html, add hosts
恢复误删除的文件
[root@node3 devops]# rm -rf *
[root@node3 devops]# ls
[root@node3 devops]# git status
# 位于分支 master
# 尚未暂存以备提交的变更:
# (使用 "git add/rm ..." 更新要提交的内容)
# (使用 "git checkout -- ..." 丢弃工作区的改动)
#
# 删除: hosts
# 删除: index.html
#
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
[root@node3 devops]# git checkout -- *
[root@node3 devops]# ls
hosts index.html
[root@git devops]# git checkout \ 0fff998482d7630caa531f28d51587884745b423 #切换到目的版本
现在目录下出现了index.html和hosts两个文件
[root@node3 devops]# ls
index.html hosts
# 返回到最新的提交
[root@node3 devops]# git checkout master
# 查看分支
[root@node3 devops]# git branch
* master
[root@node3 devops]# ls
index.html mima
# 新建分支
[root@node3 devops]# git branch fn1
[root@node3 devops]# git branch
fn1
* master
# 切换分支
[root@node3 devops]# git checkout fn1
切换到分支 'fn1'
[root@node3 devops]# git branch
* fn1
master
# 在fn1分支中编写程序
[root@node3 devops]# cp ~/anaconda-ks.cfg .
[root@node3 devops]# git add .
[root@node3 devops]# git commit -m "fn1 add anaconda"
[fn1 619f6fb] fn1 add anaconda
1 file changed, 65 insertions(+)
create mode 100644 anaconda-ks.cfg
[root@node3 devops]# ls
anaconda-ks.cfg index.html mima
# 切换回master分支
[root@node3 devops]# git checkout master
切换到分支 'master'
[root@node3 devops]# ls
index.html mima
# 合并fn1分支到主干
[root@node3 devops]# git merge fn1
更新 8e1c9eb..619f6fb
Fast-forward
anaconda-ks.cfg | 65 ++++++++++++++++++++++++++++++++++++
1 file changed, 65 insertions(+)
create mode 100644 anaconda-ks.cfg
[root@node3 devops]# ls
anaconda-ks.cfg index.html mima
# fn1分支使命已经达成,可以删除
[root@node3 devops]# git branch -d fn1
已删除分支 fn1(曾为 619f6fb)。
[root@node3 devops]# git branch
* master
为devops组中的成员创建用户zzg。新建用户的时候,不能创建密码。用户建立好之后,修改用户,可以为其加密码。
新建组,名为devops。群组等级为公开。
为devops组中的成员创建用户zzg。新建用户的时候,不能创建密码。用户建立好之后,修改用户,可以为其加密码。
新建项目devops。新建的用户zzg是新项目的主程序员。可见等级为公开。项目创建完成后,点击左下角的“折叠边栏”=>“设置”=>“成员”=>邀请上一步创建的用户,角色是“主程序员”。
上传代码有两种方式,一种是http的方式,这种方式,每次上传代码都需要填写用户名和密码。另一种是通过ssh实现免密登陆。
[root@node3 devops]# ssh-keygen -t rsa -C "[email protected]" -b 4096
[root@node3 devops]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC4l7/lm33v5VV1Pspkea0ldWlwgZgAJ+Z64HoVkLX+0oudHuuPhKGf9pnzRpGklWVPaoA9M3pMAjuNaiWc5OIeOwYKHP3XPV3fTR5M1iWr034/zcWrSm0MJ5BXtqnpamWH8Fy1i9WhyPR98/Sn8k0EaHt7c5PyQLqM2li2YG7HtWf2Z6CuxI83rUBVlN2TwnIhWzLKheUzMb1zCYi83I6WDX5FNvGYG+3kw7SisKmCl54ex1uQMoDLRjCjnEsLoCg4fZRGBXWH3/4K1Fn+mPxxDsKyHlusU5lgtTNu3XHdfuxJRlL8luUKHGrBKd73fo7Vo5lxpy+/75OlXd/9ybXaRVvXsJ2t8xitLgyT2ov4mL5sR996EkTsy7ZWQiJY3mDCDBlNnpwkK02IlXOlWQ8xnVAT/XW3druFASCDUdUFh92+zEG1LP1NwMX1msuflRy/1p+GqphCCQXO1VIefWtZ3I5Q+UaWgE8cGq9ol3G/WUKnCJ8XCLM45EMSBPZiPtwn2xd417C8COGe+J7XRO0Vy3wf5w0ODKDonEzFmob2FhGYqyax4SJk/RniOgMFORPBO0DMzEU5YkHKuthNU7EUhiDfeHWROtr4ja8bqDEPpbSf56e9hqfnoOCp6USbjMbQCPp/ZrC1KNV3JDH2N1FqS3pKJBaH9y40Ted/ZbNeRw== [email protected]
[root@node3 devops]# mkdir myweb #创建版本仓库目录
[root@node3 devops]# cd myweb
echo 'Hello World!
' > index.html #创建测试页面
[root@node3 devops]# git init . #创建Git仓库
echo 'text web 2.0
' >> index.html #更新为web页面内容
[root@node3 devops]# git add . #添加到缓冲区
[root@node3 devops]# git commit -m "web test 2.0" #添加到工作区
[root@node3 devops]# git tag #打上标记
[root@node3 devops]# git remote rename origin old-origin #在Gitlab定义
如果出现以下报错,忽略
error: 不能重命名配置小节 'remote.origin' 到 'remote.old-origin'
[root@node3 devops]# git remote add origin \ [email protected]:devops/myweb.git #Gitlab服务器地址
[root@node3 devops]# git remote rm origin #如不小心将git远程地址配错了需要删除后在重新添加
[root@node3 devops]# git push -u origin --all #将本地文件上传到Gitlab服务器
[root@node3 devops]# git push -u origin --tags #将版本标记上传到Gitlab服务器
[root@node4 ~]# yum -y install java-1.8.0-openjdk
[root@node4 ~]# yum install -y jenkins-2.138.2-1.1.noarch.rpm
[root@node4 ~]# systemctl start jenkins
[root@node4 ~]# systemctl enable jenkins
[root@jenkins ~]# yum install -y httpd
[root@jenkins ~]# systemctl start httpd
[root@jenkins ~]# systemctl enable httpd
[root@jenkins ~]# mkdir -p /var/www/html/deploy/pkgs
# /var/www/html/deploy/: 保存livever、lastver,即当前版本和前一个版本的版本号
# /var/www/html/deploy/pkgs/: 保存软件压缩包和它的md5值
[root@jenkins ~]# chown -R jenkins.jenkins /var/www/html/deploy/
# 因下载后默认为用户jenkins写入数据,将deploy文件夹改成jenkins所有确保能正常使用
deploy_dir=/var/www/html/deploy
pkgs_dir=/var/www/html/deploy/pkgs
cp -r myweb-$webver $pkgs_dir
# 将下载的软件目录拷贝到web服务器目录
cd $pkgs_dir
rm -rf myweb-$webver/.git
# 删除版本库文件
tar czf myweb-$webver.tar.gz myweb-$webver
# 打包压缩
md5sum myweb-$webver.tar.gz | awk '{print $1}' > myweb-$webver.tar.gz.md5 # 计算并保存md5值
rm -rf myweb-$webver
# 删除程序目录
cd $deploy_dir
[ -f livever ] && cat livever > lastver
echo $webver > livever
# 将当前版本内容写到前一版本文件
# 更新当前版本