jenkins部署应用(docker版本)

系统运维

一、安装
1.docker镜像运行jenkins

安装详细步骤参考官方文档https://jenkins.io/zh/doc/book/installing/

docker run \\\\
  -u root \\\\
  --rm \\\\
  -d \\\\
  -p 8080:8080 \\\\
  -p 50000:50000 \\\\
  -v jenkins-data:/var/jenkins_home \\\\
  -v /var/run/docker.sock:/var/run/docker.sock \\\\
  jenkinsci/blueocean

docker提示没有开启转发解决方法

vim /usr/lib/sysctl.d/00-system.conf
net.ipv4.ip_forward=1 #新添加

重启network

浏览器访问8080端口

如果界面提示Jenkins正在启动,请稍后…或者提示
Please wait while Jenkins is getting ready to work…

解决方法:

需要你进入jenkins的工作目录,打开 hudson.model.UpdateCenter.xml 把 http://updates.jenkins-ci.org/update-center.json 改成 http://mirror.xmission.com/jenkins/updates/update-center.json

Jenkins对离线和插件安装慢解决方法

 cd /var/jenkins_home/updates/
 sed -i \\\'s/http:\\\\/\\\\/updates.jenkins-ci.org\\\\/download/https:\\\\/\\\\/mirrors.tuna.tsinghua.edu.cn\\\\/jenkins/g\\\' default.json && \\\\
sed -i \\\'s/http:\\\\/\\\\/www.google.com/https:\\\\/\\\\/www.baidu.com/g\\\' default.json

时间不一致问题解决办法

Docker 容器时间跟主机时间保持同步

docker cp  /usr/share/zoneinfo/Asia/Shanghai  jenkins02:/etc/localtime

Jenkins系统上的时间不正确问题

很简单,点击系统管理,选择执行脚本命令:

打开 【系统管理】->【脚本命令行】运行下面的命令

System.setProperty(\\\'org.apache.commons.jelly.tags.fmt.timeZone\\\', \\\'Asia/Shanghai\\\')

2.docker运行gitlab

先创建需要挂载的三个目录:配置 (etc) 、 日志 (log) 、数据 (data)

mkdir -p /mnt/gitlab/etc
mkdir -p /mnt/gitlab/log
mkdir -p /mnt/gitlab/data

运行gitlab

docker container run -it \\\\
-p 8090:80 -p 8443:443 -p 8022:22 \\\\
--restart unless-stopped \\\\
-v /mnt/gitlab/etc:/etc/gitlab  \\\\
-v /mnt/gitlab/log:/var/log/gitlab \\\\    
-v /mnt/gitlab/data:/var/opt/gitlab  \\\\
--name gitlab gitlab/gitlab-ce:latest

进入容器 修改配置

把external_url改成部署机器的域名或者IP地址

vim /etc/gitlab/gitlab.rb
external_url \\\'http://192.168.100.107\\\'
gitlab_rails[\\\'gitlab_ssh_host\\\'] = \\\'192.168.100.107\\\'
gitlab_rails[\\\'gitlab_shell_ssh_port\\\'] = 8022
gitlab_rails[\\\'gitlab_shell_git_timeout\\\'] = 800

重启容器

docker restart gitlab

修改克隆时的端口,默认是80,但我们映射成了8090,因此需要修改
每次重启容器 都需要执行者一步

进入容器执行

root@6129313605ed:/# cd /var/opt/gitlab/gitlab-rails/etc/
vim gitlab.yml
  gitlab:
    ## Web server settings (note: host is the FQDN, do not include http://)
    host: 192.168.100.107
    port: 8090  #此处修改为8090
    https: false

gitlab-ctl restart #重启

常用的几个Gitlab命令

# 重新应用gitlab的配置
gitlab-ctl reconfigure

# 重启gitlab服务
gitlab-ctl restart

# 查看gitlab运行状态
gitlab-ctl status

#停止gitlab服务
gitlab-ctl stop

# 查看gitlab运行日志
gitlab-ctl tail

# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sideki

二、jenkins应用
1.jenkins权限管理

安装插件:

启用插件

此时再点击系统管理,会多出一项:Manage and Assign Roles

创建一个用户:deva

点击

使用Manage and Assign Roles 管理分配用户

管理用户

分配用户

这样 deva用户 就只能看到dev- 的job了,并且 只有执行job的权限。

2.jenkins执行脚本

在节点上写一个测试脚本,并给脚本赋予执行权限

[root@vm2 ~]# cat test.sh 
#!/bin/bash
echo lingxd
echo $1

创建自由风格job

参数化构建

点击构建 选择参数

3.pipeline 初探

创建job

配置

脚本内容

node {
    stage(\\\'Code PUll\\\'){
        echo Code PUll
        git credentialsId: \\\'ee5eb9ea-39a9-48c3-9b02-0b6985ed092a\\\', url: \\\'http://192.168.100.117:8090/root/bk.git\\\'
    }
    stage(\\\'Code Build\\\'){
        echo code build
        sh \\\'/root/mvn/apache-maven-3.6.3/bin/mvn clean compile\\\'
    }
    stage(\\\'Unit Test\\\'){
        echo unit test
    }
    stage(\\\'是否部署\\\'){
        input \\\'部署测试环境\\\'
    }
    stage(\\\'Deploy Test ENV\\\'){
        sh \\\'/root/test.sh 123\\\'
    }
}

4.Jenkins和gitlab集成自动触发

jenkins插件管理安装GitLab Plugin插件

去gitlab生成token

系统管理–>系统配置 配置gitlab

创建pipeline 类型job

登录gitlab配置项目集成,添加webhook

先点击进入你要配置的项目,找到设置,点击集成

上面要填的url和token,看上一步骤

如果创建webhook失败,提示不可以本地网络认证,需要在设置里面设置下。

这样 就实现了dev分支只要有代码提交,就会自动触发jenkins的job

更多关于云服务器域名注册虚拟主机的问题,请访问西部数码官网:www.west.cn

赞(0)
声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-62778877-8306;邮箱:fanjiao@west.cn。本站原创内容未经允许不得转载,或转载时需注明出处:西部数码知识库 » jenkins部署应用(docker版本)

登录

找回密码

注册