
Devops
地狱之光
无无无无
展开
-
jenkins触发远程构建gitlab报404解决方法
需求:想实现当研发人员往gitlab仓库提交代码后自动触发Jenkins中对应JOB的构建。方案一:通过jenkins自带的“触发远程构建”方式,具体配置:1.配置JOB2.配置gitlab项目的webhook点击测试报404错误,如下图:问题排查:通过日志发现并没有请求过来,判定可能是权限问题,但不知道为什么是报404而不是报30X权限相关错误,抱着测试的态度...原创 2020-03-26 22:36:35 · 8049 阅读 · 5 评论 -
spring-boot框架开发的系统读取到的数据库数据相差8小时的问题解决
发现数据库中的时间是正常的,但系统后台(读取出来)的时间比数据库中的时间要早8小时,查阅资料解决办法如下:请在application.properties文件中加 如下配置即可解决,是spring-boot的问题:spring.jackson.time-zone=GMT+8,修改后重启tomcat容器即可。原创 2017-12-21 20:37:48 · 2422 阅读 · 0 评论 -
jenkins插件之Active Choices Parameter
勾选Groovy Script在 Script----Groovy Script中输入:def connection = new URL("http://10.103.27.177:8090/project/getBranchList?clusterName=jianlc-mgmt").openConnection();connection.setRequestMethod('GET原创 2017-12-22 20:43:36 · 6491 阅读 · 0 评论 -
非root用户执行java进程报错:fork: retry:资源暂时不可用
vim /etc/security/limits.conf# End of file* soft nproc 65535* hard nproc 65535* hard nofile 1000000* soft nofile 1000000* soft core unlimited* s转载 2017-12-22 20:46:48 · 782 阅读 · 0 评论 -
gitlab之web hook设置
有些需求可能会通过web hook来实现,如果是指定项目可以直接修改项目.git/hooks下对应的钩子文件,如果是全局的(针对所有项目的,则修改/opt/gitlab/embedded/service/gitlab-shell/hooks中的。原创 2017-11-21 17:01:57 · 27173 阅读 · 0 评论 -
前段node项目构建常见问题
1.npm install 报权限错误,如: 解决办法:添加--unsafe-perm 参数,如#npm install --registry=https://registry.npm.taobao.org --unsafe-perm说明:npm会有生命周期,某个包会有生命周期来执行一些东西,安全起见会自动降级导致没有权限执行一些操作,通过--unsafe-perm参原创 2017-12-15 16:12:39 · 4853 阅读 · 1 评论 -
gitlab禁止用户创建组
1.限制普通用户创建组 当然通过管里用户在后台新建用户或修该用户的时候去掉创建组的复选框。。但针对开发注册或与ldap集成的用户怎么配置成默认就不能创建呢?解决办法: 在/etc/gitlab/gitlab.rb中 gitlab_rails['gitlab_default_can_create_group'] = fasle 保存,重新gitlab原创 2017-11-08 11:43:14 · 9039 阅读 · 1 评论 -
jenkins之Multibranch Pipeline类型job
Multibranch Pipeline类型的job好处就是可以自动扫描git工程所有分支,并创建对应的job(前提是分支根目录中包含有Jenkinsfile文件。可以通过Scan Multibranch Pipeline Triggers 来设置每隔多长时间扫描一下各分支,如有提交则构建。优化:上面的触发条件总感觉很多时候比较浪费系统资源,也原创 2018-01-02 18:16:38 · 6799 阅读 · 1 评论 -
让jenkins跑在jdk1.8,却实现用jdk1.7构建
项目背景:目前公司内部项目统一用的jdk1.7,但搭建sonarqube平台用的6.7版本必须要求使用jdk1.8及以上。实现方案:通过tomcat启动jenkins,在tomcat的bin/start.sh后面追加:这样的话宿主系统还是用自身默认的jdk版本,而jenkins却已通过jdk1.8启动了,这个时候通过jenkins构建默认的jdk是1.8,如何让其默认是jdk1原创 2018-01-12 13:14:03 · 6841 阅读 · 3 评论 -
RabbitMQ开机自启动
如通过yum安装的话直接通过chkconfig rabbitmq-server on 就可以设置为开机自启动,但公司这边是通过源代码进行安装,如何也通过系统服务来自启动呢?步骤:1.增加自启动脚本:在/etc/init.d目录下新建一个rabbitmq-server文件,内容如下:#!/bin/sh## rabbitmq-server RabbitMQ broker#原创 2018-01-15 16:04:22 · 15359 阅读 · 3 评论 -
jenkins为build设置description
需求: 在持续集成过程中,随着feature的不断加入,版本越来越多,你希望每个build成功之后能显示一些很重要的信息,比如版本号,当前该build支持的主要feature等。这样不论是开发还是测试,在拿build的时候都能一眼就看出该build对应的版本号以及主要的feature。这里主要介绍两种方式:一.通过调用jenkins内部命令原创 2017-11-16 11:54:03 · 12483 阅读 · 0 评论 -
通过http协议克隆gitlab上的代码免账号密码输入
大家都是知道克隆gitlab上的代码一般都是通过ssh协议以达到免秘钥输入的目的,但今天因公司gitlab服务器的问题,导致ssh方式老出现认证失败,很多开发人员发来求教,也有几个提出了通过http/https方式能不能免费账号密码的输入呢?这里提供两个方法:1.可以利用宿主目录下的.netrc文件(大家可用百度下) 在宿主目录下创建.netrc,并增加如下内容保存:原创 2017-10-20 14:29:34 · 13437 阅读 · 0 评论 -
在k8s集群中部署nginx-ingress-controller.yaml遇到的问题
按照官方的方式下载并部署nginx-ingress-controller.yaml(参考https://github.com/kubernetes/ingress/tree/master/examples/deployment/nginx)结果发现pod失败,失败在健康检查,导致不断重试查阅网上资料发现这是因为跟apiserver通信采用的serviceaccount不是默认的原创 2017-08-11 20:28:29 · 28985 阅读 · 4 评论 -
gitlab一键安装
系统:centos71.安装依赖(如果想作为发邮件的服务器则安装postfix)sudo yum install curl policycoreutils openssh-server openssh-clientssudo systemctl enable sshdsudo systemctl start sshdsudo yum install postfixsudo sy原创 2017-07-21 19:43:03 · 632 阅读 · 0 评论 -
gitlab9.4邮件不能发信问题
通过docker方式部署gitlab9.4版本,发现不能正常发送邮件(默认注册用户是不发邮件的,而添加ssh key或管理后台添加用户是发邮件的)通过不断尝试发现docker方式必须通过smtp方式来发送邮件,参考配置:https://docs.gitlab.com/omnibus/settings/smtp.html注意修改完gitlab.rb后执行 sudo gitlab-ctl原创 2017-08-24 18:00:17 · 3754 阅读 · 0 评论 -
docker容器内通过supervisor来守护进程
安装:可通过easy install supervisor或pip install supervisor,当然还可以通过下载源码通过python setup.py install 来安装(注意:要在python2.x下进行安装)还可以通过linxu下的包管理来安装,如yum install supervisor使用:.为要维护的进程创建.ini文件,并放到/et原创 2017-08-23 01:53:43 · 8397 阅读 · 0 评论 -
容器和本地时间相差8小时
因为搭建的服务用的是官方镜像,发现其是用的美国时区,导致和本地时间相差8小时。解决办法:方法一:重启容器,添加参数-v /etc/localtime:/etc/localtime:ro方法二:不重启容器的话,复制文件到容器中 docker cp /etc/localtime [containerId]:/etc/localtime验证:查看容器原创 2017-09-05 13:16:22 · 2959 阅读 · 0 评论 -
docker容器limit和inode问题
之前以为只是aufs或overlay才有这个问题。。。但今天发现devicemapper存储也存在该问题。解决:编辑docker配置文件 /etc/sysconfig/dockerother_args="-g /home/q/docker --default-ulimit nofile=65535 --log-driver=none"保存后,重启docker服务。原创 2017-08-28 12:02:22 · 3745 阅读 · 0 评论 -
在centos7下安装gitlab-runner
记录一下安装步骤:1.下载安装包并设置执行权限sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-ci-multi-runner-linux-amd64sudo chmod +x /原创 2017-08-30 19:04:33 · 6830 阅读 · 0 评论 -
centos 7 Docker容器启动报WARNING: IPv4 forwarding is disabled. Networking will not work
问题:如题解决办法:# vi /etc/sysctl.conf或者# vi /usr/lib/sysctl.d/00-system.conf添加如下代码: net.ipv4.ip_forward=1重启network服务# systemctl restart network查看是否转载 2017-07-27 17:37:51 · 34027 阅读 · 5 评论 -
Helm简介,安装与使用
Helm简介: Helm把Kubernetes资源(比如deployments、services或 ingress等) 打包到一个chart中,而chart被保存到chart仓库。通过chart仓库可用来存储和分享chart。Helm使发布可配置,支持发布应用配置的版本管理,简化了Kubernetes部署应用的版本控制、打包、发布、删除、更新等操作。安装i.Helm原创 2017-09-20 20:23:18 · 47371 阅读 · 7 评论 -
linux下查看swap占用情况
centos6下: top 进入后,按下shift+o(字母),选择swap(输入p),但在centos7下不好使;通用方法:1.for i in $(cd /proc;ls | grep "^[0-9]" | awk '$0>100'); do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps;do原创 2017-06-09 14:39:41 · 16417 阅读 · 0 评论 -
jenkins插件之Ansible Plugin
本文重点说下在pipeline下的配置:pipeline { agent { label 'master' } options { timestamps() } stages { stage('deploy_test') { when {anyOf {environment name:'env',value:'原创 2018-01-16 16:23:00 · 4603 阅读 · 0 评论 -
jenkins插件之Email Extension Plugin
这里不具体讲解该软件的配置和使用,重点说下自带模板出处及在PIPELINE中的使用系统自带的邮件模板其实都在$JENKINS_HOME/plugins/email-ext/WEB-INF/lib下的email-ext.jar中,所以如果想对现有模板进行修改可以将解压后的模板(hudson\plugins\emailext\templates)拷贝到$JENKINS_HOME/email-tem原创 2018-01-23 10:07:44 · 3023 阅读 · 0 评论 -
找回vmware虚拟磁盘中的数据
背景:公司的某一虚拟机系统崩溃,其中第二块虚拟磁盘的数据很重要,需要保留,将其直接挂到其他的linux系统虚拟机下无法识别。解决方案:方案一.将该虚拟磁盘挂载到WINDOWS虚拟机下(用的WIN7),在WINDOWS系统下使用DiskGenius工具能够很好的识别ext3,ext4等多种LINUX文件格式。但注意免费版只能恢复小于1M的文件,至于大文件的恢复大家都懂的:)原创 2018-03-01 18:03:12 · 4314 阅读 · 0 评论 -
fabric获取shell命令返回值
alarm_msg = local(zabbix_off,capture=True)说明:capture=True参数默认值是False,表示输出到终端)原创 2018-03-01 18:06:04 · 2850 阅读 · 0 评论 -
jenkins插件之Build Pipeline Plugin和Delivery Pipeline Plugin
pipeline字面意思就是流水线,将很多步骤按顺序排列好,做完一个执行下一个。下面简单介绍下如何使用该插件帮我们完成一些流水线型的任务一,安装pipeline。进入jenkins的【系统管理】--【插件管理】页面,选择【可选插件】然后搜索pipeline。 然后选择直接安装,它会将依赖的一些插件也一并安装。安装完成后重启jenkins就可以使用了。二,使用pipeline。1.在je...转载 2016-10-27 16:53:31 · 5842 阅读 · 0 评论 -
后端应用健康检查的几种解决方案
以下只是适合现在所在公司的方案:方案一:通过nginx的healthcheck_nginx_upstreams模块来实现缺点是:属于第三方模块,需要独立编译安装,且2年多没有更新了,不知道对1.6以上的nginx版本支持如何;项目的仓库地址:https://github.com/cep21/healthcheck_nginx_upstreams方案二:使用Tengine,自带了ngx_http_u...原创 2018-03-16 23:59:04 · 7090 阅读 · 0 评论 -
获取java应用PID的几种方式
方式一:通过端口获取-缺点:对于通过tomcat容器方式启动的话,可能会出现进程存在,但服务没有启动的情况,此时通过该方案无法通过端口无法获取到PID,导致进程存在的情况下再此启动;比如:ss -lntp sport = :8080 | awk 'NR > 1 {print $NF}' | cut -d ',' -f 2 | head -n 1 | sed 's/pid=//'原创 2018-03-30 15:59:44 · 3583 阅读 · 0 评论 -
kuberntes相关镜像下载
在安装kubernets或创建kubernets中的pod时,引用的镜像默认都是从gcr.io中下载,但该网站在国内属于被墙的范围。docker pull gcr.io/google_containers/pause-amd64:3.0提示下面的错误:Error response from daemon: Get https://gcr.io/v2/: net/http: request ca原创 2018-04-08 15:45:10 · 819 阅读 · 0 评论 -
Jenkins X介绍及安装
Jenkins X 是一个高度集成化的CI/CD平台,基于Jenkins和Kubernetes实现,旨在解决微服务体系架构下的云原生应用的持续交付的问题,简化整个云原生应用的开发、运行和部署过程。Jenkins X 部分新特性1. 自动化一切:自动化CI/CD流水线选择项目类型自动生成Jenkinsfile定义流水线自动生成Dockerfile并打包容器镜像自动创建Helm Chart并运...原创 2018-03-31 20:00:45 · 11859 阅读 · 1 评论 -
nginx设置访问白名单(ip)
针对要配置的域名配置文件:server { listen 443; server_name abc.com; #access_log /server/nginx/log/abc.com.log main; ssl on; ssl_certificate /server/nginx/sslcom/dom原创 2018-03-26 20:52:29 · 17351 阅读 · 0 评论 -
mac shell下sed的用法
原有的sed命令在linux下正常,但切换到mac下执行各种报错,查阅资料了解到mac系统是原生于bds系统的,sed命令和gnu不同,区别如下:1.替换文件内容----替换匹配到的下行将0修改为1 linux下: $sed -i '' '/com/n;s/0/1/' project.pbxproj mac shell下:$sed -i '' '/com/n;s/0/1/' project.pb...原创 2018-05-17 00:58:27 · 11429 阅读 · 3 评论 -
zabbix3.4安装注意点
以centos7下安装为例,完全是参考的官方https://www.zabbix.com/download这里只是记录下注意事项:1.关闭selinux,不然zabbix-server启动不了,discovery功能不能正常使用; 临时设置可以通过命令setenforce 0,永久办法修改/etc/selinux/config(需重启)2.提前安装好数据库,在centos7上安装的mysql ...原创 2018-02-17 23:33:51 · 1561 阅读 · 0 评论 -
ios版本发布
简单记录下过程1.通过jenkins挂载一个ios系统的slave; 。安装Java 。配置git 。连接slave2.搭建ios的编译环境 。安装Xcode 。安装证书及证书描述文件3.编译,导出包(ipa),推送到蒲公英; 。xcodebuild clean 。xcodebuild -target 11 -configuration $BUILD_TYPE 。xcrun ...原创 2018-03-07 21:28:56 · 402 阅读 · 0 评论 -
centos7下通过yum安装nginx及配置
1.安装因centos7默认的源中没有nginx,所以需要先安装nginx的库,然后通过yum安装即可;rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm2.配置中遇到的问题: i.修改主目录访问的时候提示403,找不到原创 2018-01-31 18:15:52 · 943 阅读 · 0 评论 -
nexus 3.6做docker私服
1.登录系统后台 http://ip:8081,输入管理用户admin/admin1232.创建仓库,选择docker类型的仓库,这里以docker(hosted)为例 3.配置仓库 仓库指定一个唯一的名字,然后是选择http或https,这里只是测试用,所以走的http注意:端口那里要确定好。4.客户端配置 因为使用的是http,所以需原创 2018-01-04 23:41:42 · 1681 阅读 · 0 评论 -
git clone 过程中 git-pack-objects died问题的解决办法
通过网上参考文档发现可能是内存问题,于是重启了下,再次git clone发下一切OK。原创 2018-01-26 20:39:33 · 7438 阅读 · 0 评论 -
git工程导入到新的gitlab服务器中
记录一下操作步骤:1.git clone到本地2.目标服务器先创建一个git project3.本地git关联新git #git remote add new git@test.com:test/test.git4.push到新git #git push -u new --all #git push -u new --tags注意:需要先将原创 2018-02-03 16:38:31 · 1270 阅读 · 0 评论 -
Phabricator安装及配置
一.安装用的是docker镜像hachque/phabricator启动:#docker run -d --restart=always -p 80:80 -p 443:443 -p 22:22 --env PHABRICATOR_HOST=cr.abc.com --env MYSQL_HOST=ip --env MYSQL_USER=user --env MYSQL_PASS...原创 2017-12-28 20:54:01 · 3833 阅读 · 0 评论