AzureDevops任务使用及问题

标签: Azure 分类: 软件 创建时间:2020-09-16 06:16:41 更新时间:2025-01-20 09:45:23

AzureDevops的任务,就是在一个个阶段中编写的脚本,任务可以是ssh复制文件,可以是cmd命令行,还可以是PowerShell等。

1.问题

(1) EPERM: operation not permitted

我在代理阶段添加了一个命令行任务

当我启动发布,执行命令时,出现了权限禁止的问题(以前是好的,不知道怎么就抽风了。)。

解决方法,就是右键文件夹属性,然后选择安全,对User用户或其他的用户添加完全控制的选项

参考文章:
1.Error: EPERM: operation not permitted, unlink on npm install (没啥用)
2.运行node出现“ operation not permitted”错误解决办法 (这篇是nodejs的问题,和我的问题有些差距)

(2) Host key verification failed.

使用命令行下载仓库的时候,总是会出现这样的问题:

但是我在代理机器上直接执行git pull,确实可以下载代码的,到了Azure Devops 的命令行中,一切都不行了。我删除了C:\Users\Administrator.ssh\known_hosts文件,重新下载,还是不行。

经过我的查看,原来Azure命令行执行 git命令的时候,使用的是自己内部版本的git,而不是代理服务器上安装的git,虽然两者安装在一台机器上,命令行中执行的是:C:\Program Files\Azure DevOps Server 2019\Version Control Proxy\MinGit\cmd 路径下的git,而不是我自己安装的:C:\Program Files\Git\cmd 路径下的git,就像下面的图片一样:

(3) 于是我在该命令行工具中,添加了绝对路径进行git的执行

1
2
3
4
e:
cd E:\phjk\PhWebVue
"C:\Program Files\Git\cmd"\git.exe --version
"C:\Program Files\Git\cmd"\git.exe pull

结果还是不行,出现了新的问题:Unable to negotiate with 192.168.1.241 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1,diffie-hellman-group14-sha1

虽然我已经在C:\Users\Administrator.ssh目录下创建了config文件,并配置了下面的内容,但是不起作用。

1
2
Host *
KexAlgorithms +diffie-hellman-group14-sha1
参考文章:
1.解决Host key verification failed.(亲测有效) (这篇文章虽然说有效,但是我执行了之后,还是不行。我还执行了ssh-keyscan -t rsa 192.168.1.241 >> /.ssh/known_hosts,也还是不行的。)
2.ssh 登录旧设备的问题解决 (这是使用ssh时的配置)
3.关于no matching key exchange method found. Their offer: diffie-hellman-group1-sha1的解决办法 (也是编写
/.ssh/config,填入上面的内容)
4.ssh unable to negotiate - no matching key exchange method found
5.8.1 自定义 Git - 配置 Git (这是官网的git说明)
6.Upgrade your deployment to the latest version of Azure DevOps Server (这是如何升级Azure Devops 2020)

2.SSH远程文件复制

1.CopSSH作为服务端

我最近的一个服务器就是使用的CopSSH作为服务端进行的,这里还是有些要注意的地方。

(1) 新建服务连接

(2) 选择ssh服务

(3) 填入对应的服务器信息

填入相应的对应的主机名(主机地址),端口号,用户名,还有就是私钥,密码可以不用填,因为我使用的是公私钥进行验证,我先将id_rsa.pub复制到安装了CopSSH服务器的机器上D:\ICW\home[用户名].ssh\authorized_keys文件中,然后这里的私钥就可以使用要连接CopSSH服务器的机器的.ssh目录下的id_rsa中的内容。

小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。