1.docker搭建的平台迁移后,gerrit同步不了gitlab。
报错:在replication_log中显示
报错:
Caused by: org.eclipse.jgit.errors.UnsupportedCredentialItem: ssh://git@ip:2289: The authenticity of host 'ip' can't be established.
RSA key fingerprint is 7d:0a:ec:75:66:71:84:19:db:cc:9a:df:d9:bf:2a:54.
Are you sure you want to continue connecting?
和
报错: Auth fail
解决方法:是因为迁移完数据后同步到gitlab是不会成功的,报错为Auth fail,ssh_host文件值是之前服务器的值,容器内/var/gerrit/etc/下的ssh_host文件值是不会变的,需要重新生成ssh-host文件。在新服务器内创建新的gerrit容器,将/var/gerrit/ect/目录下的ssh_host所有文件拷贝到以前的数据目录内。重启后同步就会正常运行。
2.docker搭建的Jenkins 执行job Console Output中文乱码
由于slave节点也是容器,先看其他容器是否也一样中文乱码,如果是一样,则可以配置Jenkins--->Manage Jenkins--->Configure System--->Global properties
设置
Name:LANG
Value:es_EN.UTF-8
Name:JAVA_TOOL_OPTIONS -Dfile.encoding
Value:UTF8
Name:file.encoding
Value:UTF-8
也可以配置slave节点的环境变量,或者job内写入环境变量。
其他slave节点是可以显示中文的,那就说明是容器有问题,
那么就可以在容器内配置环境变量,或者是启动Jenkins agent.jar的时候配置环境变量
java -Dfile.encoding=UTF-8 -jar agent.jar -jnlpUrl ....
3.ubuntu ssmtp发送邮件显示root xxx@xxx.com
需要更改/etc/ssmtp/ssmtp.conf
FromLineOverride=YES
FromLineOverrideFrom=xxx@soimt.com
写上你想更改的邮箱
并且使用mail命令需要加上-aFrom:"xxx@soimt.com"
如:
mail -s "$(echo ""Account Password Expiration Notice"\nContent-Type: text/html; charset=utf-8")" -aFrom:"xxx@soimt.com" zhangyishuai@qq.com
然后发件人就会显示xxx@soimt.com。
4. Jfrog日志时区问题
Artifactory 日志时区问题
更改 Artifactory 日志文件中的时区可以通过更改“logback.xml”文件中的时区来完成。该文件位于 $JFROG_HOME/var/etc/artifactory/logback.xml
需要将所有“UTC”时区替换为所需的 GMT+8北京时区。您需要更改“UTC”八次,并且需要更改REQUEST块的时区
在所有 appender name="REQUEST*" 所有的request块中添加
不用重新启动 会自动加载
5.使用filebeat es pipeline解析日志,发送到kibana上进行查看报错
报错内容:
{"type":"mapper_parsing_exception","reason":"object mapping for [agent] tried to parse field [agent] as object, but found a concrete value"}, dropping event!
"agent" 字段的 mapping 映射错误,这表明 Elasticsearch 尝试将该字段解释为对象,但实际上却找到了一个具体的值,导致出现了映射解析异常
解决问题:
只需要在kibana中找到索引模板。将索引模板中的agent字段类型(Field type)改为Text,然后删除索引,不能删除模板。再继续给filebeat传入数据,然后创建索引再次打开Discover就可以看到已经被解析出来的message字段。
6.修改influxdb数据库名称
1.在命令行下执行数据库备份命令
-database后面是备份的数据库名称,最后是备份文件存放的地址
influxd backup -portable -database 数据库 /root/jfrog
2.然后把备份的数据导入到新的数据库中
influxd restore -portable -db 老数据库 -newdb 新数据库 /root/jfrog
7.gitlab点击项目报500错误
是在创建项目的时候多次创建,然后冲突。web页面上显示没有这个群组和项目,但是使用gitlab api查看是有这个群组的
查看命令
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups?search=<your-group-path>"
将其查看出来的群组id删除即可,删除命令
curl --header "PRIVATE-TOKEN: <your_access_token>" --request DELETE "https://your-gitlab-domain.com/api/v4/groups/ID"
8.gitlab仓库名称转换
gitlab创建仓库后,如果名称里有小数点,如4.1.2,就会在克隆的时候自动转换为4-1-2。
9.artifactory 上传文件后,创建的时区不一致
点击文件后发现Created显示的时区少八个小时
需要更改容器内/opt/jfrog/artifactory/app/bin/artifactory.default文件
DEFAULT_JAVA_OPTIONS="${DEFAULT_JAVA_OPTIONS} -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true -Djava.security.egd=file:/dev/./urandom -Duser.timezone=UTC+8"
最后面加上-Duser.timezone=UTC+8然后重启容器即可完成
注意:还需要进入容器内chown artifactory.artifactory artifactory.default
10.Jenkins ui与api都查不到node节点,但是创建节点的时候报错显示已经存在
报错:Agent called ‘slave’ already exists
使用Jenkins控制台,然后粘贴下面的命令,删除名为slave节点。
Jenkins.instance.slaves.find { it.name == 'slave' }.each { Jenkins.instance.removeNode(it) }
11.gerrit push代码报错
ERROR: commit e704ae2: missing Change-Id in message footer
使用其中的命令后又报错
gitdir=$(git rev-parse --git-dir); scp -p -P xxx xxx@xxx:hooks/commit-msg ${gitdir}/hooks/
subsystem request failed on channel 0
scp: Connection closed
解决办法:将提示方法中的scp -p改为scp -O,问题解决
gitdir=$(git rev-parse --git-dir); scp -O -P xxx xxx@xxx:hooks/commit-msg ${gitdir}/hooks/
之后重新进行git commit --amend --no-edit
然后继续git push即可
12.Jenkins使用publish html report插件展示HTML报告的方法
下载了html publish plugin插件后,在html report还是没有格式,点击 Mange Jenkins 页面,找到Script Console
运行命令:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
必须清除浏览器缓存重新进入Jenkins后才生效
13.重启docker容器后容器里的hosts文件配置消失
在创建容器的时候加上--network host即同步主机的hosts文件,就可以解决
14.在容器内,/etc/profile里配置的环境变量每次退出后都需要再source /etc/profile才会生效
解决办法:
编辑
vim ~/.bashrc
在最后面增加
if [ -f /etc/profile ]; then
. /etc/profile
fi
15.No Subject Alternative Names
在对接SSO的时候,SSO使用的是自签名证书,还使用的是https+IP地址
报错内容:No Subject Alternative Names
创建 SSL 证书之前,使用openssl.cnf您的 IP 配置代理计算机中的文件:YYY.YYY.YYY.YYY
/etc/ssl/openssl.cnf
1.搜索[ req ]文件内的部分并设置以下行
req_extensions = v3_req
2.然后,搜索[ v3_req ]部分并添加以下行:
subjectAltName = @alt_names
3.在文件底部创建以下行:
[ alt_names ]
IP.1 = <YYY.YYY.YYY.YYY>
4.创建证书时,您可能需要在命令中添加以下参数以确保确实添加了备用名称
-extensions v3_req -extfile /etc/ssl/openssl.cnf
5.创建证书
openssl genrsa -out server.key 2048 -extensions v3_req -extfile /etc/ssl/openssl.cnf
openssl req -new -key server.key -out server.csr
#下面是一条命令
openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650 -extensions v3_req -extfile /etc/ssl/openssl.cnf
6.导入证书
#导入证书
/java/bin/keytool -import -alias server.crt -file /root/server.crt -keystore /java/lib/security/cacerts -storepass changeit -keyalg RSA -ext san=ip:10.0.0.10
#删除证书
/java/bin/keytool -delete -alias server.crt -keystore /java/lib/security/cacerts -storepass changeit
16.vim删除当前所在行之前的所有内容
在当前行输入以下内容并回车
:1,.-1d