Jenkins阻止Execute shell输出命令内容

默认情况下,Jenkins在构建的时候会输出脚本中命令的具体内容,原因是在执行脚本的时候,使用的是-e参数执行的。

但是当我们的脚本中存在用户名,密码等关键信息的时候,这些内容会被输出到编译日志中,这样就容易导致安全问题。

解决办法是在脚本的最前面增加#!/bin/bash,来覆盖脚本执行的默认参数,如下图:

继续阅读Jenkins阻止Execute shell输出命令内容

Centos 7配置Jenkins构建Android持续集成(离线内网环境)

安装配置Jenkins

为了安全考虑,首先需要解锁Jenkins

继续阅读Centos 7配置Jenkins构建Android持续集成(离线内网环境)

Gradle传递System Property

最近在搭建Jenkins环境,实现Android自动化编译的过程中,由于内网服务器不能访问外网,因此只能配置Robolectric访问内网的服务器。

根据官方文档 Configuring Robolectric,发现如果要更改Robolectric默认的下载服务器链接地址,需要在项目的每个lib库中都配置如下参数,才能实现:

但是这样配置有一个问题,就是没办法动态调整链接地址。

而我们使用

手工指定的参数,并没有在编译的时候生效。

参数丢失的原因是因为测试用例在新的JVM中执行,传入的参数不会自动带给新创建的JVM

这时需要在Gradle脚本中将读到的值重新设到系统属性里面,才可以被Java程序读到。

每个项目的build.gradle中都增加上面的配置之后,就可以保证在外部编译的时候动态指定参数了。

Android Studio Chipmunk | 2021.2.1 Patch 1 以及以上的版本,可能会发生如下报错:

该报错的原因是 Android Studio 没有正确读取我们配置的 robolectric.dependency.repo.url 环境变量,导致无法成功下载,当然也可能是由于高版本不支持 HTTP ,链接地址必须是 HTTPS 导致此问题,这个没有深究。

解决方法是,在命令行执行

确保在当前用户目录下的 .m2 目录下,成功完成 robolectric 需要的全部文件的下载。这样,执行测试用例的时候,就可以从本地获取依赖文件,而不需要再去服务器上获取。

参考链接


Ubuntu Server 18.04 LTS隐藏Tomcat-9.0.16.0的版本号与操作系统类型

推荐方案

另外更推荐的方法是通过 Tomcat 的配置文件完成,而不是修改代码,具体配置方法为:

conf/server.xml 配置文件中的 <Host> 配置项中添加如下配置:

配置项说明:

  • showReport:默认值为true,默认显示报错信息
  • showServerInfo:默认值为true,默认显示Tomcat的版本号

其他方案

其他的方案跟  Ubuntu 14.04隐藏Tomcat-7.0.52的版本号与操作系统类型 是一致的,但是具体的细节上存在不小的差异,还是需要记录一下。

可以看到里面的内容如下:

直接注释掉里面的内容,如下:

修改完成后,把修改完成的数据存储到catalina.jar中。

把修改后的catalina.jar放回到Tomcat的目录下面:

重启Tomcat的服务

参考链接


腾讯云Ubuntu Server 16.04.7 LTS升级系统到Ubuntu Server 18.04.5 LTS之后letsencrypt证书更新出现异常“ImportError: cannot import name _remove_dead_weakref”

腾讯云Ubuntu Server 16.04.7 LTS升级系统到Ubuntu Server 18.04.5 LTS之后,letsencrypt证书更新出现异常,如下:

原因为系统版本变化过大导致以前安装的Python组件不能适应最新的系统,最简单的方法就是删除之前安装的Python组件,让letsencrypt重新安装即可。

参考链接


Cannot renew certificate “ImportError: cannot import name _remove_dead_weakref”

腾讯云Ubuntu Server 16.04.7 LTS升级系统到Ubuntu Server 18.04.5 LTS

参考 阿里云ECS ubuntu 14.04.5 LTS升级到ubuntu 16.04.2 LTS / 阿里云从ubuntu16.04.5升级到ubuntu 18.04.3后调整PHP 7.0到PHP 7.2 整个的升级步骤是差不多的,腾讯的升级流程更加顺利。

但是在升级完成之后,遇到了一个域名解析问题,报错如下:

这个原因是因为我们在安装过程中,覆盖了腾讯设置的域名解析服务配置文件。

这个配置文件是/etc/resolv.conf

但是,在Ubuntu Server 18.04.5 LTS系统上,直接修改/etc/resolv.conf的话,重启系统之后,设置会被还原。我们需要修改/etc/systemd/resolved.conf才行。

根据地域的不同,服务器的地址存在差异,参考下面的脚本即可。

广州服务器:

上海服务器:

香港服务器:

参考链接