实验环境为局域网内
主机:
主机名/ip | |
---|---|
jenkins | 192.168.2.40 |
gitlab | 192.168.2.50 |
可以从清华源下载相应版本
shell`rpm包下载地址
# https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
`我这里选择的是12.0版本的,这是下载地址
#https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.0.0-ce.0.el7.x86_64.rpm
shell`安装依赖 [root@gitlab ~]# yum install -y curl policycoreutils openssh-server openssh-clients postfix policycoreutils-python `安装命令 要保证centos主机有网,并且有配置yum源 [root@gitlab ~]# ls /usr/bin/wget || yum -y install wget && wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.0.0-ce.0.el7.x86_64.rpm --no-check-certificate
shell`rpm包安装命令比较简单 [root@gitlab ~]# rpm -ivh gitlab-ce-12.0.0-ce.0.el7.x86_64.rpm `出现下面这个狐狸图像表示安装成功
shell`修改配置文件` [root@gitlab ~]# sed -i "/^external_url/cexternal_url 'http://192.168.1.1'" /etc/gitlab/gitlab.rb `重置gitlab,过程比较慢` [root@gitlab gitlab]# gitlab-ctl reconfigure `重置完之后会默认启动几个服务,这些都是gitlab必须的服务,包里面自带,如果重置没有成功的话,查看一下自己端口有没有被占用,尽量还是在新环境下部署gitlab`
gitlab启动成功
设置新的管理员密码
注意:在 GitLab 中配置的中文并不是全部都是中文,你们可以安装中文插件,我这边使用的是谷歌浏览器转换。
shell[root@gitlab ~]# vim /etc/gitlab/gitlab.rb # 在第 57 行后添加以下内容 gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = 'smtp.qq.com' # SMTP 服务器 gitlab_rails['smtp_port'] = 465 # SMTP 服务器端口号 gitlab_rails['smtp_user_name'] = '2261665821@qq.com' # 邮件账号 gitlab_rails['smtp_password'] = '保密' # 邮件授权码 gitlab_rails['smtp_authentication'] = 'login' gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true gitlab_rails['gitlab_email_from'] = '2261665821@qq.com'
shell`重置gitlab` [root@gitlab ~]# gitlab-ctl reconfigure
登录控制台发送测试邮件
shell[root@gitlab ~]# gitlab-rails console irb(main):001:0> Notify.test_email('接收人的邮箱@qq.com','Test','Hello ZhangYan').deliver_now
创建一个群组 ,设置为内部群组
设置账户名和邮箱,使用权设置为root,密码需要用户收到邮件后自己设置
点进去设置密码
设置新密码
将两个用户都添加到刚刚创建的test_grup群组中
创建一个新项目,使用的是刚刚创建的zhangyan用户
需要选择的只有下面这两项
创建成功了之后,创建一个新文件
写上文件名,写一些内容,点击完成
shell`生成秘钥` [root@gitlab ~]# ssh-keygen `查看秘钥并复制秘钥内容` [root@gitlab ~]# cat /root/.ssh/id_rsa.pub
验证(克隆过程中不需要输入密码即可)
shell[root@gitlab ~]# git clone git@192.168.2.50:zhangyan/web-zhangyan [root@gitlab ~]# ls anaconda-ks.cfg web-zhangyan [root@gitlab ~]# `如果输入命令显示git命令找不到,直接yum -y install git就可以安装`
shell`因为jenkins是需要在java上运行的,所以要安装java [root@jenkins ~]# ls anaconda-ks.cfg jdk-8u171-linux-x64.tar.gz `解压缩` [root@jenkins ~]# tar -xf jdk-8u171-linux-x64.tar.gz -C /usr/local/ [root@jenkins ~]# ls /usr/local/ bin etc games include jdk1.8.0_171 lib lib64 libexec sbin share src `编写环境变量` [root@jenkins ~]# cat /etc/profile.d/java.sh JAVA_HOME=/usr/local/jdk1.8.0_171/ PATH=$JAVA_HOME/bin:$PATH CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar export PATH JAVA_HOME CLASSPATH `生效环境变量` [root@jenkins ~]# source /etc/profile.d/java.sh `查看版本,无问题` [root@jenkins ~]# java -version java version "1.8.0_171" Java(TM) SE Runtime Environment (build 1.8.0_171-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
shell`我这里下载的jenkins也是从清华源网站下载的` [root@jenkins ~]# ls /usr/bin/wget || yum -y install wget && wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.331-1.1.noarch.rpm --no-check-certificate `安装包下载好了` [root@jenkins ~]# ls anaconda-ks.cfg jdk-8u171-linux-x64.tar.gz jenkins-2.332.3-1.1.noarch.rpm `安装依赖` [root@jenkins ~]# yum install java-1.8.0-openjdk* -y [root@jenkins ~]# yum -y install jenkins-2.332.3-1.1.noarch.rpm `安装完成` `修改配置文件` [root@Jenkins ~]# sed -i '/^JENKINS_USER/cJENKINS_USER="root"' /etc/sysconfig/jenkins
jenkins启动时卡在启动界面解决方案 把/var/lib/jenkins/hudson.model.UpdateCenter.xml文件里的默认地址改为 http://mirror.xmission.com/jenkins/updates/update-center.json
这里忘记截图了,从网上找了一张,这一步的截图
进入jenkins
shellCredentials # 签名证书管理插件 Gitlab # 安装后从 GitLab 获取代码 Git 和 Git Client # 用于 Jenkins 在 GitLab 中拉取源码 GitLab Hook # GitLab 触发 Jenkins 构建项目 Gitlab Authentication # GitLab 和 Jenkins 认证插件 SSH Plugin # 进程执行 Shell 脚本 Publish Over SSH # 用于通过 SSH 部署应用
shell`生成秘钥` [root@jenkins jenkins]# ssh-keygen `查看` [root@jenkins jenkins]# cat /root/.ssh/id_rsa.pub
shell`查看私钥` [root@jenkins jenkins]# cat /root/.ssh/id_rsa
测试构建无问题
**大概意思就是在gitlab上修改内容,通过jenkins重新构建到web的工作目录 **
shell`安装httpd服务`
[root@jenkins ~]# yum -y install httpd
`写个脚本`
[root@jenkins ~]# cat web.sh
#!/bin/bash
scp /var/lib/jenkins/workspace/web/* root@192.168.2.30:/var/www/html/
`配置免密,使scp的时候免密拷贝`
[root@jenkins ~]# ssh-copy-id 192.168.2.30
#最后运行脚本测试是否能够免密拷贝
测试构建成功
拷贝也成功了
shell`安装插件 Gitlab Hook Plugin Build Authorization Token Root Build Token Trigger
shell`配置身份令牌
[root@jenkins ~]# openssl rand -hex 12
44ede7a7f0d497cf6521b2ff
# -hex 输出结果为 16 进制数据,数字 12 是指定生成的随机字符为 12 字节,即 24 个 16 进制个数。
构建触发器
推送测试
测试推送失败的话,可以到jenkins端配置下面这些
点进去往下拉找到 Enable authentication for '/project' end-point
如果再不行的话 就把匿名用户可读权限勾选上
现在是这样的网页
我在gitlab上进行修改
这时候jenkins会出现一个正在构建的队列
再次刷新网页 网页已经变化了
本文作者:ZYW
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 ™ 许可协议。转载请注明出处!