赞
踩
安装
yum install git
配置
# 配置git使用的用户
[root@rh2 ~]# git config --global user.name "tony"
#配置git使用的邮箱
[root@rh2 ~]# git config --global user.email "kkang@bj-tangseng.com"
#配置语法高亮
[root@rh2 ~]# git config --global color.ui true
查看配置
[root@rh2 ~]# git config --list
user.name=tony
user.email=kkang@bj-tangseng.com
color.ui=true
[root@rh2 ~]#
[root@rh2 ~]# cat .gitconfig
[user]
name = tony
email = kkang@bj-tangseng.com
[color]
ui = true
初始化工作目录
[root@rh2 ~]# mkdir /gitdata
[root@rh2 ~]# cd /gitdata/
# 初始化
[root@rh2 gitdata]# git init
Initialized empty Git repository in /gitdata/.git/
# 查看工作区状态
[root@rh2 gitdata]# git status
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
branches:分支目录
config:定义项目特有的配置选项
description:仅供git web程序使用
HEAD:指示当前的分支
hooks:包含git钩子文件
info:包含一个全局排除文件(exclude文件)
objects:存放所有数据内容,有info和pack两个子文件夹
refs:存放指向数据(分支)的提交对象的指针
index:保存暂存区信息,在执行git init时,这个文件还没有
1. 红色:新值的文件/修改了已经commit的文件 --> git add 文件名
2. 绿色:文件已被暂存,已被git管理起来 --> git commit -m '描述信息'
3. 生成版本
工作目录:执行git init的那个目录
暂存区域:工作目录中.git/index目录
本地仓库:工作目录中.git/objects目录
reset --hard: 会在重置 HEAD 和branch的同时,重置stage区和工作目录里的内容。当你在 reset 后面加了 --hard 参数时,你的stage区和工作目录里的内容会被完全重置为和HEAD的新位置相同的内容。换句话说,就是你的没有commit的修改会被全部擦掉。
reset --soft: 重置 HEAD 和branch,但保留工作区和暂存区的差异。
reset --mixed: 重置 HEAD 和branch,重置stage区内容,但保留工作区的差异。
git checkout -- <file> 拉取暂存区文件 并将其替换成工作区文件
git reset HEAD -- <file> 拉取最近一次提交到版本库的文件到暂存区 该操作不影响工作区
rebase的作用是使git记录变得简洁
本地分支改名
git branch -m master local1
设置本地分支和远程仓库分支的跟踪信息:
设置本地分支与远程分支的追踪:
git branch --set-upstream-to=origin/远程分支名 本地分支名
//或
git branch --set-upstream 远程分支名
//或
git branch -u 远程分支名
[root@rh2 gitdata]# git rm --cached a
[root@rh2 gitdata]# rm -rf a
git rm -f 文件名
[root@rh2 gitdata]# mv b b.txt [root@rh2 gitdata]# ll total 0 -rw-r--r-- 1 root root 0 Jun 21 15:32 b.txt -rw-r--r-- 1 root root 0 Jun 21 15:32 c [root@rh2 gitdata]# git status On branch master Changes not staged for commit: (use "git add/rm <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) deleted: b Untracked files: (use "git add <file>..." to include in what will be committed) b.txt no changes added to commit (use "git add" and/or "git commit -a") [root@rh2 gitdata]# git rm --cached b rm 'b' [root@rh2 gitdata]# git status On branch master Changes to be committed: (use "git restore --staged <file>..." to unstage) deleted: b Untracked files: (use "git add <file>..." to include in what will be committed) b.txt [root@rh2 gitdata]# git add b.txt [root@rh2 gitdata]# git status On branch master Changes to be committed: (use "git restore --staged <file>..." to unstage) renamed: b -> b.txt [root@rh2 gitdata]# git commit -m "rename b b.txt" [master 2ea7e4c] rename b b.txt 1 file changed, 0 insertions(+), 0 deletions(-) rename b => b.txt (100%) [root@rh2 gitdata]# git status On branch master nothing to commit, working tree clean
[root@rh2 gitdata]# git mv b.txt b
[root@rh2 gitdata]# git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
renamed: b.txt -> b
[root@rh2 gitdata]# git commit -m "modify b.txt->b"
[master 2c7e94d] modify b.txt->b
1 file changed, 0 insertions(+), 0 deletions(-)
rename b.txt => b (100%)
[root@rh2 gitdata]# git status
On branch master
nothing to commit, working tree clean
对比本地工作区和暂存区的不同
git diff
对比暂存区和本地仓库的不同
git diff --cached
修改完一个文件后,可以用一条命令提交到本地仓库
git commit -am “change c”
git log:执行git commit就相当于虚拟机的镜像,任何操作都被做了一次快照,可以恢复到任意一个位置。git log查看历史的git commit快照操作
git log --oneline:一行显示commit信息
git log --oneline --decorate:一行显示commit信息加指针
git log -p: 加p参数会显示具体的变更信息
git log -1: 加参数数字,只显示最近的几条
git reflog:查看所有镜像
git reset --hard 0bb7100:将本地仓库中的代码回滚到某一个镜像
查看已经配置的远程仓库
删除已经配置的远程仓库
git remote remove 远程仓库名
添加一个远程仓库
git remote add 远程仓库名 远程仓库url
查看所有配置的远程仓库
给远程仓库重命名
git remote rename 原名 新名
将本地仓库某个branch的代码推送到远程仓库
git push -u 要推送到的远程仓库 推送哪个branch到远程仓库
[root@rh2 ~]# mkdir /test [root@rh2 ~]# cd /test/ [root@rh2 test]# git init Initialized empty Git repository in /test/.git/ [root@rh2 test]# touch app.txt [root@rh2 test]# git add . [root@rh2 test]# git commit -m "第一版" [master (root-commit) ccf0aec] 第一版 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 app.txt [root@rh2 test]# git branch * master [root@rh2 test]# git remote add origin https://github.com/clearsight-org/test.git [root@rh2 test]# git push -u origin master Username for 'https://github.com': clearsight51 Password for 'https://clearsight51@github.com': Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Writing objects: 100% (3/3), 215 bytes | 215.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 To https://github.com/clearsight-org/test.git * [new branch] master -> master Branch 'master' set up to track remote branch 'master' from 'origin'. [root@rh2 test]#
[root@rh2 test]# git checkout -b dev
Switched to a new branch 'dev'
[root@rh2 test]# git push origin dev
Username for 'https://github.com': clearsight51
Password for 'https://clearsight51@github.com':
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: Create a pull request for 'dev' on GitHub by visiting:
remote: https://github.com/clearsight-org/test/pull/new/dev
remote:
To https://github.com/clearsight-org/test.git
* [new branch] dev -> dev
[root@rh2 test]#
在组织中默认所有项目对所有邀请来的member给只读权限
所以需要在要让开发做开发的项目中再次邀请该开发人员并授予写权限
[root@rh2 ~]# mkdir /game [root@rh2 ~]# cd /game/ [root@rh2 game]# git clone https://github.com/clearsight-org/test.git Cloning into 'test'... remote: Enumerating objects: 3, done. remote: Counting objects: 100% (3/3), done. remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), 195 bytes | 195.00 KiB/s, done. [root@rh2 game]# cd test/ [root@rh2 test]# git checkout dev Branch 'dev' set up to track remote branch 'dev' from 'origin'. Switched to a new branch 'dev' [root@rh2 test]# git checkout -b game Switched to a new branch 'game' [root@rh2 test]# touch game.py [root@rh2 test]# git add . [root@rh2 test]# git commit -m "游戏功能开发完毕" [game 9467a0a] 游戏功能开发完毕 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 game.py [root@rh2 test]# git push -u origin game Username for 'https://github.com': clearsight51 Password for 'https://clearsight51@github.com': Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Delta compression using up to 8 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (2/2), 272 bytes | 272.00 KiB/s, done. Total 2 (delta 0), reused 0 (delta 0), pack-reused 0 remote: remote: Create a pull request for 'game' on GitHub by visiting: remote: https://github.com/clearsight-org/test/pull/new/game remote: To https://github.com/clearsight-org/test.git * [new branch] game -> game Branch 'game' set up to track remote branch 'game' from 'origin'. [root@rh2 test]#
方法是在github上给分支dev设置merge request
[root@rh2 test]# mkdir /fixbug [root@rh2 test]# cd /fixbug/ [root@rh2 fixbug]# git clone https://github.com/clearsight51/tornado.git Cloning into 'tornado'... remote: Enumerating objects: 24144, done. remote: Counting objects: 100% (95/95), done. remote: Compressing objects: 100% (50/50), done. remote: Total 24144 (delta 52), reused 76 (delta 45), pack-reused 24049 Receiving objects: 100% (24144/24144), 8.85 MiB | 2.33 MiB/s, done. Resolving deltas: 100% (17811/17811), done. [root@rh2 fixbug]# cd tornado/ [root@rh2 tornado]# touch bug.py [root@rh2 tornado]# git add . [root@rh2 tornado]# git commit -m "修复了一个bug" [master 7b38cbfa] 修复了一个bug 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 bug.py [root@rh2 tornado]# git push origin master Username for 'https://github.com': clearsight51 Password for 'https://clearsight51@github.com': Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 8 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 286 bytes | 286.00 KiB/s, done. Total 3 (delta 1), reused 1 (delta 0), pack-reused 0 remote: Resolving deltas: 100% (1/1), completed with 1 local object. To https://github.com/clearsight51/tornado.git aa9d32d5..7b38cbfa master -> master
项目/.git/config
git config --local user.name andy
~/.gitconfig
git config --global user.name andy
/etc/.gitconfig
git config --system user.name andy
git remote add时将url地址带上用户名和密码
原来的地址:https://github.com/clearsight51/test.git
修改的地址:https://用户名:密码@github.com/clearsight51/test.git
git remote add origin https://用户名:密码@github.com/clearsight51/test.git
git push orgin master
拷贝公钥的内容到github中
分支是平行空间,当需要研发一个新功能时,先在自己本地创建一个分支,别人看不到,等在这个新功能完成再与原来的主分支合并
一般实际项目开发中我们尽量保证master分支是稳定的,仅用于发布新版本,而工作时可以建立不同的工作分支,等工作完成后再合并到master分支上面。
master分支:用于发布新版本
热修复分支:用于修复线上版本的bug
dev分支:用于新功能的开发
[root@rh2 gitdata]# git branch dev
[root@rh2 gitdata]# git branch
dev
* master
查看全部分支要带参数a
切换分支 git checkout 分支名
[root@rh2 gitdata]# git checkout dev
Switched to branch 'dev'
[root@rh2 gitdata]# git checkout -b test
Switched to a new branch 'test'
[root@rh2 gitdata]# git branch -d dev
Deleted branch dev (was 0bb7100).
git merge dev
分支使用实战:在master分支commit aaa,bbb,ccc三个文件,然后创建分支dev,然后在dev分支commit dev-ddd文件,在master分支创建master-eee文件。最后需要把dev分支合并到master分支让master分支也有文件dev-ddd
# 将aaa,bbb,ccc三个文件commit touch aaa bbb ccc git add aaa git commit -m "add aaa" git add bbb git commit -m "add bbb" git add ccc git commit -m "add ccc" # 新建并切换到dev分支 git checkout -b dev # 将文件dev-ddd commit到dev分支 touch dev-ddd git add dev-ddd git commit -m "add newfile dev-ddd" # 将文件master-eee commit到master分支 git checkout master touch master-eee git add master-eee git commit -m "add newfile master-eee" # 合并dev到master git merge dev # 删除dev分支 git branch -d dev
当要合并的分支上的文件内容和本分支上的不一致时,合并后有冲突,需要手动修改一下文件后再次commit -am一次
代码合并冲突实例:
创建空文件1.txt,然后创建一个分支dev,然后在master分支上编辑1.txt内容为master,在dev分支上编辑1.txt内容为dev,然后将dev分支合并到master分支,提示有冲突后,手动修改1.txt后再次git commit -am
[root@rh2 gitdata]# touch 1.txt [root@rh2 gitdata]# git add . [root@rh2 gitdata]# git commit -m "add empty 1.txt" [master c475848] add empty 1.txt [root@rh2 gitdata]# git branch dev [root@rh2 gitdata]# echo master >> 1.txt [root@rh2 gitdata]# git commit -am "modifide 1.txt add master" [root@rh2 gitdata]# git checkout dev [root@rh2 gitdata]# echo dev >> 1.txt [root@rh2 gitdata]# git commit -am "modify 1.txt add dev" [root@rh2 gitdata]# cat 1.txt dev [root@rh2 gitdata]# git checkout master Switched to branch 'master' [root@rh2 gitdata]# git merge dev Auto-merging 1.txt CONFLICT (content): Merge conflict in 1.txt Automatic merge failed; fix conflicts and then commit the result. [root@rh2 gitdata]# cat 1.txt <<<<<<< HEAD master ======= dev >>>>>>> dev [root@rh2 gitdata]# git commit -am "merge dev" [master 3e7d579] merge dev [root@rh2 gitdata]# git status On branch master nothing to commit, working tree clean
对于一个里程碑意义的大版本可以打tag,打了tag就可以直接回滚到tag版本
[root@rh2 gitdata]# git tag -a v1.0 -m "create v1.0" [root@rh2 gitdata]# git log --oneline --decorate 3e7d579 (HEAD -> master, tag: v1.0) merge dev 79ce3c2 (dev) modify 1.txt add dev 1a70c1a modifide 1.txt add master c475848 add empty 1.txt b76ac37 rm files ac09b98 Merge branch 'dev' b6ed65e add newfile master-eee 13183f1 add newfile dev-ddd 74a92d2 add ccc 47bc2bb add bbb 9cf4de2 add aaa 0bb7100 add b c [root@rh2 gitdata]# git tag v1.0
[root@rh2 gitdata]# git tag -a v2.0 0bb7100 -m "v2.0" [root@rh2 gitdata]# git tag v1.0 v2.0 [root@rh2 gitdata]# git log --oneline --decorate 3e7d579 (HEAD -> master, tag: v1.0) merge dev 79ce3c2 (dev) modify 1.txt add dev 1a70c1a modifide 1.txt add master c475848 add empty 1.txt b76ac37 rm files ac09b98 Merge branch 'dev' b6ed65e add newfile master-eee 13183f1 add newfile dev-ddd 74a92d2 add ccc 47bc2bb add bbb 9cf4de2 add aaa 0bb7100 (tag: v2.0) add b c
[root@rh2 gitdata]# git show v1.0 tag v1.0 Tagger: tony <kkang@bj-tangseng.com> Date: Tue Jun 22 14:02:39 2021 +0800 create v1.0 commit 3e7d5797a9a14818b2653ffa8402b0641694e3a6 (HEAD -> master, tag: v1.0) Merge: 1a70c1a 79ce3c2 Author: tony <kkang@bj-tangseng.com> Date: Tue Jun 22 11:48:38 2021 +0800 merge dev diff --cc 1.txt index 1f7391f,38f8e88..0010ca6 --- a/1.txt +++ b/1.txt @@@ -1,1 -1,1 +1,5 @@@ ++<<<<<<< HEAD +master ++======= + dev ++>>>>>>> dev
[root@rh2 gitdata]# git reset --hard v1.0
HEAD is now at 3e7d579 merge dev
[root@rh2 gitdata]# git tag -d v1.0
Deleted tag 'v1.0' (was b53a8e8)
[root@rh2 gitdata]# mkdir /perform [root@rh2 gitdata]# cd /perform/ [root@rh2 perform]# git init Initialized empty Git repository in /perform/.git/ [root@rh2 perform]# git add . [root@rh2 perform]# git commit -m "first commit" [master (root-commit) ef7cf7a] first commit 14 files changed, 3860 insertions(+) create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/workspace.xml create mode 100644 ".idea/\345\207\206\345\205\245\346\216\247\345\210\266\347\253\257\345\256\242\346\210\267\347\253\257\350\257\267\346\261\202\346\200\247\350\203\275\346\265\213\350\257\225.iml" create mode 100644 111.py create mode 100644 client_version.sh create mode 100644 db.sh create mode 100644 newdb.sh create mode 100644 params.csv create mode 100644 performance_test.jmx create mode 100644 terminal.csv create mode 100644 terminal.csv.beijing create mode 100644 terminal_performance_test.py create mode 100644 test.log [root@rh2 perform]# git branch -M main [root@rh2 perform]# git remote add origin git@github.com:clearsight51/performance_test.git [root@rh2 perform]# git push -u origin main Warning: Permanently added the RSA host key for IP address '13.229.188.59' to the list of known hosts. Enumerating objects: 17, done. Counting objects: 100% (17/17), done. Delta compression using up to 8 threads Compressing objects: 100% (17/17), done. Writing objects: 100% (17/17), 41.16 KiB | 4.12 MiB/s, done. Total 17 (delta 2), reused 0 (delta 0), pack-reused 0 remote: Resolving deltas: 100% (2/2), done. To github.com:clearsight51/performance_test.git * [new branch] main -> main Branch 'main' set up to track remote branch 'main' from 'origin'.
官网安装包地址:https://about.gitlab.com/install/
dnf install -y curl policycoreutils openssh-server perl
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
dnf install -y gitlab-ee
# 更改url为本机ip地址
vim /etc/gitlab/gitlab.rb
gitlab-ctl reconfigure
[root@rh3 ~]# gitlab-ctl status run: alertmanager: (pid 8141) 37s; run: log: (pid 7359) 184s run: gitaly: (pid 8031) 40s; run: log: (pid 6714) 433s run: gitlab-exporter: (pid 8023) 40s; run: log: (pid 7273) 204s run: gitlab-workhorse: (pid 7988) 41s; run: log: (pid 7165) 229s run: grafana: (pid 8164) 36s; run: log: (pid 7846) 89s run: logrotate: (pid 6629) 452s; run: log: (pid 6637) 451s run: nginx: (pid 8294) 1s; run: log: (pid 7201) 221s run: node-exporter: (pid 8004) 41s; run: log: (pid 7242) 212s run: postgres-exporter: (pid 8154) 37s; run: log: (pid 7407) 174s run: postgresql: (pid 6856) 419s; run: log: (pid 6872) 415s run: prometheus: (pid 8041) 40s; run: log: (pid 7327) 191s run: puma: (pid 7102) 242s; run: log: (pid 7109) 241s run: redis: (pid 6664) 441s; run: log: (pid 6672) 440s run: redis-exporter: (pid 8025) 40s; run: log: (pid 7289) 200s run: sidekiq: (pid 7123) 236s; run: log: (pid 7135) 235s
停止gitlab服务
gitlab-ctl stop
停止gitlab中的某个服务
gitlab-ctl stop nginx
查看所有服务的日志
gitlab-ctl tail
gitlab数据仓库存放位置
/var/opt/gitlab/git-data
在Admin Area->Appearance页面修改
Admin Area->Overview->Groups
一个项目就是一个远程的代码仓库
Admin Area->Overview->Projects
[root@rh2 ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:DCxCOrXdBYI9vZB1UvLzqML6V6AXbHN+N+uxQJ0X8vU root@rh2 The key's randomart image is: +---[RSA 2048]----+ | oo.+=o+ | | +.o=+.* | |o o o++.o . . .| | . . .Bo.+ . + o.| | o *S o o o E| | .. ..o.. o. | | o... ....o | | . .. ..o | | .... .o | +----[SHA256]-----+ [root@rh2 ~]# cat .ssh/ id_rsa id_rsa.pub known_hosts [root@rh2 ~]# cat .ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHUCtGx8QkTMrMlbiW/x78UafbHf0MfPnWmdEt4ZaOfdZZ9mRFg76IV6DMhzZvCqQdTqgmw5yF7nFRoQjkrz5pD67dGJDsABx33XRRj3BoUpSAuyzLLQBBhLhrvuhK1I5/xON2QqBpYXHd5bvR87rrGTHaaj0j99XQjGaH/6qedDwxskzj/QKuI7Gz5D+TwzXCsa5kEFc9E20U3BvStUKtzTcDg4/PjuzDtp+VCJxSQ0U45J9oHePog4k0BLi3nPyqqjsmsp6o2+rYqUKHg4uNjpUpMmzA05d97yScw0UsXGmHEL1z07OhOja6aaxZ3qdFzUvDW249IARPPAhfPMSf root@rh2
git remote add gitlab_performance git@192.168.30.3:tester/tstc.git
git push -u gitlab_performance master
创建新用户andy
git clone git@192.168.30.3:tester/tstc.git
cd tstc/
vim test.log
git add .
git commit -m "change test.log, add test1.log"
git push -u origin master
[root@rh2 ~]# mkdir /test
[root@rh2 ~]# cd /test/
[root@rh2 test]# git clone git@192.168.30.3:tester/tstc.git
Cloning into 'tstc'...
remote: Enumerating objects: 12, done.
remote: Counting objects: 100% (12/12), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 40 (delta 2), reused 0 (delta 0), pack-reused 28
Receiving objects: 100% (40/40), 38.97 KiB | 1.69 MiB/s, done.
Resolving deltas: 100% (9/9), done.
[root@rh2 tstc]# git branch dev
[root@rh2 tstc]# git checkout dev
Switched to branch 'dev'
[root@rh2 tstc]# vim test.log
[root@rh2 tstc]# git add .
[root@rh2 tstc]# git commit -m "change test.log"
[dev c8af44d] change test.log
1 file changed, 6 insertions(+), 1957 deletions(-)
rewrite test.log (100%)
[root@rh2 tstc]# git remote origin [root@rh2 tstc]# git push -u origin dev Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 273 bytes | 273.00 KiB/s, done. Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 remote: remote: To create a merge request for dev, visit: remote: http://192.168.30.3/tester/tstc/-/merge_requests/new?merge_request%5Bsource_branch%5D=dev remote: To 192.168.30.3:tester/tstc.git * [new branch] dev -> dev Branch 'dev' set up to track remote branch 'dev' from 'origin'.
用普通账号登录gitlab页面,然后发送dev分支合并入master分支的请求
用管理端登录gitlab页面,然后将dev分支合并到master分支
需要两台服务器
一台jenkins 192.168.30.2
一台nexus 192.168.30.4
安装jdk和jenkins
rpm -ivh jdk-8u181-linux-x64.rpm
rpm -ivh jenkins-2.99-1.1.noarch.rpm
jenkins主要目录
/usr/lib/jenkins/: jenkins安装目录,WAR包会放在这里
/etc/sysconfig/jenkins: jenkins配置文件,“端口”,“JENKINS_HOME”等都在这里配置
/var/lib/jenkins/: 默认的JENKINS_HOME
/var/log/jenkins/jenkins.log: jenkins日志文件
build时jenkins192.168.30.2从gitlab192.168.30.3的项目上git拉取最新代码到jenkins本地工作目录/var/lib/jenkins/workspace/web;
然后通过在jenkins项目上配置的ssh脚本将工作目录/var/lib/jenkins/workspace/web中的代码打包成1.tar.gz, 然后通过免密登录scp到线上web服务器192.168.30.7的相应站点目录中
[root@rh2 tstc]# su -s /bin/bash jenkins bash-4.4$ cd ~ bash-4.4$ pwd /var/lib/jenkins bash-4.4$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/var/lib/jenkins/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /var/lib/jenkins/.ssh/id_rsa. Your public key has been saved in /var/lib/jenkins/.ssh/id_rsa.pub. The key fingerprint is: SHA256:0A240sxCJbnSStYH7LmrsDlrd1mmmN4PrRiB22OL590 jenkins@rh2 The key's randomart image is: +---[RSA 2048]----+ | ..o... | | =... o | | = B... . | | = O *. | | + + = S | | + o .o | |.. =oo=. | |.=o=O++ | |=+**.+.E | +----[SHA256]-----+ bash-4.4$ cat id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9Vl+zcRdOq9DvqNIMRuulDD/X/yDEeKYZZI7+jL+IgG1CBXzQD0Bez669mOIynhQSxzn3FMTIPPpIOXNNPtluvo+kPuSsiJqTlKj0/eeJbp1KZaN/kNzF08g1NMZ7tWCSit6ysFmdz0zZfKXZkg9O5GzG89sYeI5d/Ayo+YhQDERyXP8O9zNA0OVExf30zgeendRHt54edk2aJ1auuczqbKNXcHa16elrNlppd1nummUK5XlqoTjDv7KtDkZzN676WDrLu3DpYvsDCWJqVq6LrgVkEtYCoO1Z6kYXuZgz+ZhqZ8ZUw/iao70tJQeawoSQ+8W+O/5pXEjiRrewNh7l jenkins@rh2
原因:由于Jenkins的安全策略配置了CSRF跨站点保护。
解决方案:进入Jenkins,系统管理-->全局安全配置,勾选匿名用户具有可读权限和去掉CSRF防止跨站点请求伪造:
2.在jenkins中先用从gitlab中创建的access token创建一个访问gitlab用的api token;然后用这个token配置和gitlab的连接
Jenkins: Manage Jenkins->Configure System
3. jenkins: 在项目的Post-build Actions中将构建结果发送到gitlab
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。