gitlab-jenkins配合使用之 Jenkins持续集成平台(四)
jenkins 持久化
http://45.115.243.24/ root guochao77!
http://45.115.243.24:198 admin/111111
1.导出项目
[root@smallkolla ~]# git clone http://45.115.243.24/zsl/zsl-web.git
正克隆到 'zsl-web'...
Username for 'http://45.115.243.24': root
Password for 'http://root@45.115.243.24':
2.需要插件
Credentials Plugin(默认已经安装) #签名证书管理插件
Gitlab Plugin #安装后从 gitlab 获取代码
Git Plugin 和 Git Client Plugin ##用亍 jenkins 在 gitlab 中拉取源码
GitLab Hook #gitlab 触发 jenkins 构建项目 #hook [h?k] 钩子 ; plugin ['pl?g?n] 插件
gitlab Authentication # gitlab 和 jenkins 认证相关的插件
SSH Plugin #进程执行 shell 脚本
Publish Over SSH ##用亍通过 ssh 部署应用
汉化locale

3.
设置 gitlab 用户 root 可以通过 ssh 公钥直接下载代码 [root@localhost ~]# ssh-keygen cat .ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQ9gBuMpdbZf+PEoRFJoAynOywosqzlYQBmMQ+cQgCJdYp53ikclH/d6D7gJH9te/cGfgHfpU2OWL7sEnOVvYR5aCy2ForFlz9xYixZqftnjjFjg8Cs4uuOOx40J8Xn+NXp8/E3TH2HCu3gNJbPymBMg0P26QOyLBlV8Ex4ccGxRD+Yl0oQUPGGRx80NLCOkSqVNCUxDiOohwwQz6AnVDiWHZSwoHpbJao8RoKe5+D4Wil7n8JNsPiw/pEcCaPDnmPXsCzpVzmxnQJtgdub3hC6bPOM+3BP5Wd4WoaPzkMKgSTRC/o7uhVtvuTLh/+78ZUioO9gEzZDk3UmXC0DgM7 root@localhost.localdomain git clone http://45.115.243.24/zsl/zsl-web.git git clone git@45.115.243.24:zsl/zsl-web.git git clone ssh://git@45.115.243.24:10024/zsl/zsl-web.git #一次不行多试几次 写入权限记得给上

4.sshd服务端口修改过的话需要修改端口重启服务
vi /etc/gitlab/gitlab.rb gitlab_rails['gitlab_shell_ssh_port'] = 10024 使其生效 gitlab-ctl reconfigure
5.
Jenkins 添加 git 用户 root 的私钥
[root@localhost ~]# cat .ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA0PYAbjKXW2X/jxKERSaAMpzssKLKs5WEAZjEPnEIAiXWKed4
pHJR/3eg+4CR/bXv3Bn4B36VNjli+7BJzlb2EeWgsthaKxZc/cWIsWan7Z44xY4P
ArOLrjjseNCfF5/jV6fPxN0x9hwrt4DSWz8pgTIND9ukDsiwZVfBMeHHBsUQ/mJd
KEFDxhkcfNDSwjpEqlTQlMQ4jqIcMEM+gJ1Q4lh2UsKB6WyWqPEaCnufg+Fope5/
CTbD4sP6RHAmjw55j17As6Vc5sZ0CbYHbm94QumzzjPtwT+VneFqGj85DCoEk0Qv
6O7oVbb7ky4f/u/GVIqDvYBM2Q5N1JlwtA4DOwIDAQABAoIBAQCCX0mrd2MZwkyt
PjdKUZgge+ns1tSzMPDYcjDWaH0/oc25/VI2/6CLTF8jK3dqnO3XHFi0jFSaLTnF
oJqb44PJbMRTcUrooR5JssnzLQJO7a2sDFLvM4hNnfRj+H2aJsaX9PpbcEpwq+jW
p8gW6BSEJ+8gWsBD/RCZWiQOdDhRzteLCO43yVAGg4C0YkjxmQ9BShhuB9yBD8As
dYe/rDiEHPnLkdfCLtub8abA6D+yPNObNLMlplWCAzPHdJ7+Cy58xkgtYlZ99Um9
xQ4RYOewcfdBOwm7IRKNsM5/n5MGkCzSUAENNKfX8Ib5lVTy+vQAXa5Hh6wyu8fe
U/GKnmYBAoGBAOjT91JG1AyXF2q8zdDZfZEDuc1Rs3DUvRtZeegvb2Dq6Ttnh1a6
7s1oiIHQIEUeu100RMjiHmVtbk2UyaMv6sdixQCZPC5Y6QnIz48Hki87ZoXTDkCi
6uOjuXX4acrnfQ6k+aoLbS1u/D+nCOROHVQOZA8FzHT65+Hw+/70nWY7AoGBAOXB
8lNO0bWt0R8L5LJVnQKffbHmwo3B5PIJe4HY+KTQwHpRsTcKHKgVNQHR62fAsqIU
dKk/NX/u1adpDowFHRGVaKDIPxjgknfgc/9256WEy1NGlRUEKv/7jMvHPRy2uKWz
glE90by5yWXEIv0K7C9TIYZL90/XievhCWapnwcBAoGAEW3cs9INiau92wWrOpkt
Zy+qNw6IqkeiqGt4TsNOSSkMsJ+9Z+ayfbn3jhAwejwktoN1KrySnfElMrWSqp6p
qqdgK/1MngOV3l+j+gcNEHAX6qi0Bm6rusLE3WntMX1GxVPgRLR6Rc5rH7C3X6/h
TiuNnfpHJfKqbSWHF7zkE4UCgYB24Iu2KQD+hKm/65Jv5zYu5kDN7Hzbhegkh119
CLtV46DDaUNNHBFJsndTsr6fVyfWDslxzH+s6vFnBkd9kSPCNlEFZ7al84Q1PFAo
bOhcTsI5GzsFvbtV6VynDzaChdQyABg8WsULZgFbg0krLhyYO+YLq4CRsg7tmekY
UkkzAQKBgFxJlbx75XBK3iam5sVGDcJgznrmp7I4I4xWJS9xJxZHkn3bLDK1dBvy
V3b/eHn6QiPRAEBihsOEMuzf0mIULaCAKiPjW2RKvJczmqy+/Vumy5VwJ4OvvO+W
JnrCwi9OSBjLbAvzdgQoOB2HRDBDQa/5+UZuAUufocTajqZoi4++
-----END RSA PRIVATE KEY-----
ssh-copy-id -p 10024 root@45.115.243.24
ssh -p 10024 root@45.115.243.24
visudo
jenkins ALL=(ALL) NOPASSWD:/usr/bin/ssh
[root@xuegod63 ~]# vi deploy.sh #插入以下内容
#!/bin/bash
echo $USER
cd /root/zsl-web
git pull
scp -P 10024 -r ./* root@45.115.243.24:/var/www/html/
[root@xuegod63 ~]# chmod +x deploy.sh
[root@xuegod63 ~]# ./deploy.sh #确保可以无交互执行成功
rm -rf /var/www/html/index.html #把网页删除一下,一会还要测试jenkins 部署
sudo ssh -p 10024 root@45.115.243.24 ./deploy.sh
6.触发推送发布配置
#系统管理-管理插件-可选插件,安装这两个插件:Gitlab Hook Plugin 和 Build Authorization
Token Root 和 Build Token Trigger
配置身份验证令牌
生成 Token ,openssl rand 生成随机密码
[root@xuegod63 ~]# openssl rand -hex 12
f3de7e1521538102e6681845


http://45.115.243.24:198/buildByToken/build?job=zsl-web-test&token=f3de7e1521538102e6681845
有的版本钩子是在导入所有项目里




[root@xuegod63 xuegod-web]# cd /root/zsl-web/
[root@xuegod63 xuegod-web]# echo "token test" >> index.html
[root@xuegod63 xuegod-web]# git add index.html
[root@xuegod63 xuegod-web]# git commit -m "modify index.html"
[root@xuegod63 xuegod-web]# git push -u origin master
总结步骤: gitlab 创建代码项目-》gitlab 部署公钥-》jenkins 安装插件-》创建新项目-》绑定私钥-》添加触发器-》测试部署
其他账号推送
1005 git clone http://zsl3@45.115.243.24/zsl/zsl-web.git
1006 ls
1007 cd zsl-web/
1008 ls
1009 cat index.html
1010 vi index.html
1011 git add .
1012 git commit -m "mode index.html"
1013 git push
第二天推送失败重新部署一下触发器



git添加记住密码参数 vi .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = http://zsl3@45.115.243.24/zsl/zsl-web.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master [credential] helper = store

浙公网安备 33010602011771号