CD(Continuous Deployment)实战问题之unable to read askpass解决
自动部署
通过自动化部署流程可以实现每日部署(Daily build),自动化流程包括:
- 自动化部署触发
- 自动化获取最新代码
- 自动化编译
- 自动化打包
- 自动化测试
- 自动化应用更新
- 自动化更新提示等
实战环境介绍
这里是企业内部应用,实现自动化部署的机器有四台:
- Jenkins 服务器,安装在Windows系统
- Git远端库
- Build Server, 编译服务器, 编写脚本用于从Git获取最新代码、编译、打包、测试和部署等。
- Web Server, Web应用服务器。
注: Jenkins本身可以集成Git拉取最新代码, 这里使用GIt命令拉取代码, Git命名集成在运行脚本中。
实现流程:
实现流程如下:
- Jenkins通过SSH执行 Build Server上的脚本,该脚本包括获取源码、编译、部署。
- Build Server从Git远端库获取源码
- 编译、打包
- 通过脚本更新应用
出现的问题
- 问题1: 在Build Server通过命令获取代码时,会弹出输入密码的对话框
- 问题2:上面的问题解决后, Jenkins会报unable to read askpass的问题
- 问题3:如果修改了Git账号的密码, 则问题1 和问题2 会再一次出现。
问题解决
问题1 : 获取Git代码时每次都需要输入密码,脚本获取会出错
错误输出如下:
(gnome-ssh-askpass:12666): Gtk-WARNING **: cannot open display:
error: unable to read askpass response from ‘/usr/libexec/openssh/gnome-ssh
解决思路:
设置Linux不弹出密码询问对话框, 将Git的密码保存在文件中.
解决方式是执行下面的命令:
unset SSH_ASKPASS
git config --global credential.helper store
unset 是Linux的命令, 第二条 git config命令启用 credential.helper store,会将密码以明文方式存储在.gitconfig文件同目录下的.git-credentials中。
注: 这种明文密码存在安全隐患, 可以考虑使用git-credential-winstore替代, git-credential-winstore全称是Windows Credential Store for Git,可以将https方式的Git登陆用户名和密码保存在Windows自带的凭据管理系统中,比credential.helper方式更加安全。
问题2 , 在问题1解决的基础上, Jenkins控制台还是会报unable to read askpass的错误.
解决方法: 在Jenkins服务器的控制台,执行一下脚本, 成功执行之后, Jenkins调用也正常了
CD(Continuous Deployment)实战问题之unable to read askpass解决相关推荐
- Github continuous deployment (CD) 最佳实践
About continuous deployment 您可以使用 GitHub 操作直接在 GitHub 存储库中创建自定义持续部署 (CD) 工作流. About continuous deplo ...
- MATLAB实战系列(十九)-遗传算法解决TSP(旅行商)问题-应用及解析(文末附MATLAB源码)
接上篇MATLAB实战系列(十八)-遗传算法解决TSP(旅行商)问题-算法原理 https://wenyusuran.blog.csdn.net/article/details/114060030 感 ...
- unable to read askpass response from '/usr/libexec/openssh/gnome-ssh-askpass
今天在git push origin master 时,竟然出现了错误 unable to read askpass response from '/usr/libexec/openssh/gnome ...
- android studio git 错误 unable to read askpass
最近在git push 代码的出现了这个错误 error: unable to read askpass response from 'C:\Users\45766\AppData\Local\Goo ...
- IDEA(或Android Studio)推送(push)代码报错 unable to read askpass response from ‘C:\Users\Urasaki\AppData\Loc
推送给代码报错 unable to read askpass response from 'C:\Users\Urasaki\AppData\Local\Google\AndroidStudio202 ...
- Artifact storage:war exploded: Error during artifact deployment. See server log for details 之一种解决方法
最近使用idea,早晨起来打开电脑,启动项目,就报这个错.前一天明明一点问题没有,很奇怪...... 我的习惯,先给我自己的出解决办法,没有时间的伙伴可以直接借鉴做法 如上图,给tomcat一个固定的 ...
- 第25课 Altium Designer20(AD20)+VESC6.4实战教程:DRC规则检查及解决方法(北冥有鱼)
第25课 Altium Designer20(AD20)+VESC6.4实战教程:DRC规则检查及解决方法(北冥有鱼)
- Gitlab CI/CD教程以及实战docker自动部署前端项目(全)
目录 前言 1. 技术知识 1.1 docker安装gitlab 1.2 docker安装gitlab-runner 1.3 .gitlab-ci.yml编写 1.4 使用docker部署前端项目 1 ...
- TDengine下载安装以及Unable to resolve FQDN解决还有Java配置
TDengine的下载安装 https://www.taosdata.com/docs/cn/v2.0/getting-started#install 在官网下载自己对应的版本,官网也有相应的安装方式 ...
最新文章
- 万万想不到,你是这样的“闲鱼”!
- Java学习笔记27
- linux几个常用的环境变量配置文件
- java中使用什么来做错误处理_JAVA基础--如何通过异常处理错误
- ASP.NET WebAPI 集成 Swagger 启用 OAuth 2.0 配置问题
- boost::hana::remove用法的测试程序
- 7-9 设计一个能处理异常的Loan类 (20 分)
- python机器学习算法.mobi_机器学习之ID3算法详解及python代码实现
- 博客园 文章和随笔区别
- Angular.js示例应用程序
- java httpclient 进度条_SpringBoot如何实现一个实时更新的进度条的示例代码
- Python:hashlib加密,flask模块写接口
- 进程以及状态 进程的创建
- web平台安全测试方案
- vs2015-devexpress 安装
- cad打开服务器上的文件很慢,cad2018启动慢怎么处理_cad2018打开很慢的解决教程
- yield在python中是什么意思_python中的yield代表什么
- 四大组件之Activity(下)——Activity的常用Manifest属性、启动模式、ADB调试
- 语音识别(ASR)--语音转文字
- 【论文阅读】Dense Passage Retrieval for Open-Domain Question Answering