Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Travis CI不允许使用SShpass_Ssh_Continuous Integration_Travis Ci_Continuous Deployment - Fatal编程技术网

Travis CI不允许使用SShpass

Travis CI不允许使用SShpass,ssh,continuous-integration,travis-ci,continuous-deployment,Ssh,Continuous Integration,Travis Ci,Continuous Deployment,上下文 我有一个应用程序,在其中,我使用单元测试,我需要不断地交付它。我选择使用github+travis+docker 我的Docker容器是一个带有openSSL的Ubuntu12.04,我无法从外部连接,我对此没有任何问题 当travis构建正常时,我需要通过SSH连接docker容器并运行脚本 问题 实际上,我正在使用: 但这根本不起作用,因为sshpass不在白名单中。似乎我不能在安装命令之前告诉您,因为我使用的是基于容器的基础设施 注意:端口是22,我在拍照时错过了 问题 如何将

上下文

我有一个应用程序,在其中,我使用单元测试,我需要不断地交付它。我选择使用github+travis+docker

我的Docker容器是一个带有openSSL的Ubuntu12.04,我无法从外部连接,我对此没有任何问题

当travis构建正常时,我需要通过SSH连接docker容器并运行脚本

问题

实际上,我正在使用:

但这根本不起作用,因为sshpass不在白名单中。似乎我不能在安装命令之前告诉您,因为我使用的是基于容器的基础设施

注意:端口是22,我在拍照时错过了

问题

  • 如何将我的ssh容器从travis连接到部署我的应用程序(如果目录存在,则仅运行git clone/git pull的脚本)
  • 这是一个很好的方法让特拉维斯变成这样,还是存在其他的东西
编辑:

travis新文件:

日志呢

Using worker: worker-linux-968a87ce-1.bb.travis-ci.org:travis-linux-14
system_info
Build system information
Build language: node_js
Build image provisioning date and time
Wed Feb  4 18:22:50 UTC 2015
Operating System Details
Distributor ID: Ubuntu
Description:    Ubuntu 12.04 LTS
Release:    12.04
Codename:   precise
Linux Version
2.6.32-042stab090.5
Cookbooks Version
23bb455 https://github.com/travis-ci/travis-cookbooks/tree/23bb455
GCC version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
LLVM version
clang version 3.4 (tags/RELEASE_34/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
Pre-installed Ruby versions
ruby-1.9.3-p551
Pre-installed Node.js versions
v0.10.36
Pre-installed Go versions
1.4.1
Redis version
redis-server 2.8.19
riak version
2.0.2
MongoDB version
MongoDB 2.4.12
CouchDB version
couchdb 1.6.1
Neo4j version
1.9.4
Cassandra version
2.0.9
RabbitMQ Version
3.4.3
ElasticSearch version
1.4.0
Installed Sphinx versions
2.0.10
2.1.9
2.2.6
Default Sphinx version
2.2.6
Installed Firefox version
firefox 31.0esr
PhantomJS version
1.9.8
ant -version
Apache Ant(TM) version 1.8.2 compiled on December 3 2011
mvn -version
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T17:29:23+00:00)
Maven home: /usr/local/maven
Java version: 1.7.0_76, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-oracle/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-042stab090.5", arch: "amd64", family: "unix"
git.checkout
0.26s$ git clone --depth=50 --branch=master git://myPrivateRepo/Project
Cloning into 'user/Project'...
remote: Counting objects: 1363, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 1363 (delta 4), reused 0 (delta 0), pack-reused 1354
Receiving objects: 100% (1363/1363), 874.89 KiB | 0 bytes/s, done.
Resolving deltas: 100% (263/263), done.
Checking connectivity... done.
$ cd user/Project
$ git checkout -qf commitId
1.56s$ nvm install 0.10
######################################################################## 100.0%
Now using node v0.10.38
$ node --version
v0.10.38
$ npm --version
1.4.28
$ nvm --version
0.23.3
before_install
6.72s$ sudo apt-get install sshpass
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  libgeos-3.2.2
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
  sshpass
0 upgraded, 1 newly installed, 0 to remove and 102 not upgraded.
Need to get 10.5 kB of archives.
After this operation, 56.3 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/universe sshpass amd64 1.05-1 [10.5 kB]
Fetched 10.5 kB in 0s (234 kB/s)
Selecting previously unselected package sshpass.
(Reading database ... 75363 files and directories currently installed.)
Unpacking sshpass (from .../sshpass_1.05-1_amd64.deb) ...
Processing triggers for man-db ...
Setting up sshpass (1.05-1) ...
install
1.12s$ npm install 
npm WARN package.json UnitTest@0.0.0 No description
npm WARN package.json UnitTest@0.0.0 No repository field.
npm WARN package.json UnitTest@0.0.0 No README data
0.95s$ npm test
> UnitTest@0.0.0 test /home/travis/build/user/project
> node test
    First test should fail:   1) First test should fail
  0 passing (8ms)
  1 failing
  1) First test should fail:
      AssertionError: true == false
      + expected - actual
      -true
      +false

      at Context.<anonymous> (test/first.js:8:16)
The command "npm test" exited with 0.
after_success
0.91s$ sudo sshpass -p password ssh root@ip -p 7000
Done. Your build exited with 0.
使用worker:worker-linux-968a87ce-1.bb.travis ci.org:travis-linux-14
系统信息
构建系统信息
构建语言:node_js
生成映像配置日期和时间
2015年2月4日星期三18:22:50 UTC
操作系统详细信息
分发服务器ID:Ubuntu
说明:Ubuntu 12.04 LTS
发行日期:12.04
代号:精确
Linux版本
2.6.32-042stab090.5
食谱版
23bb455https://github.com/travis-ci/travis-cookbooks/tree/23bb455
GCC版本
gcc(Ubuntu/Linaro 4.6.3-1ubuntu5)4.6.3
版权所有(C)2011免费软件基金会。
这是自由软件;有关复制条件,请参见源。没有
担保甚至不是为了适销性或适合某一特定目的。
LLVM版本
clang版本3.4(标签/发行版\u 34/最终版)
目标:x86_64-unknown-linux-gnu
线程模型:posix
预安装的Ruby版本
ruby-1.9.3-p551
预装Node.js版本
v0.10.36
预安装的Go版本
1.4.1
Redis版本
redis服务器2.8.19
里亚克版本
2.0.2
MongoDB版本
MongoDB 2.4.12
CouchDB版本
couchdb 1.6.1
Neo4j版本
1.9.4
卡桑德拉版本
2.0.9
RabbitMQ版本
3.4.3
弹性搜索版本
1.4.0
已安装Sphinx版本
2.0.10
2.1.9
2.2.6
默认斯芬克斯版本
2.2.6
已安装Firefox版本
Firefox31.0esr
幻影JS版本
1.9.8
蚂蚁版本
ApacheAnt(TM)版本1.8.2于2011年12月3日编译
mvn-版本
ApacheMaven 3.2.5(12a6b3acb947671f09b81f49094c53f426d8cea1;2014-12-14T17:29:23+00:00)
Maven home:/usr/local/Maven
Java版本:1.7.0_76,供应商:Oracle公司
Java主页:/usr/lib/jvm/Java-7-oracle/jre
默认区域设置:en,平台编码:UTF-8
操作系统名称:“linux”,版本:“2.6.32-042stab090.5”,拱:“amd64”,系列:“unix”
吉特结帐
0.26s$git克隆--深度=50--分支=mastergit://myPrivateRepo/Project
正在克隆到“用户/项目”。。。
远程:计数对象:1363,完成。
远程:压缩对象:100%(9/9),完成。
远程:总计1363(增量4),重复使用0(增量0),包重复使用1354
接收对象:100%(1363/1363),874.89千字节/秒,完成。
解析增量:100%(263/263),完成。
正在检查连接。。。完成。
$cd用户/项目
$git结帐-qf佣金
1.56s$nvm安装0.10
######################################################################## 100.0%
现在使用节点v0.10.38
$node—版本
v0.10.38
$npm——版本
1.4.28
$nvm--版本
0.23.3
安装前
6.72s$sudo apt获取安装sshpass
正在阅读软件包列表。。。多恩
构建依赖树
正在读取状态信息。。。多恩
以下软件包已自动安装,不再需要:
libgeos-3.2.2
使用“apt get autoremove”删除它们。
将安装以下新软件包:
sshpass
0已升级,1已新安装,0已删除,102未升级。
需要获得10.5 kB的档案。
执行此操作后,将使用56.3 kB的额外磁盘空间。
获得:1http://us.archive.ubuntu.com/ubuntu/ 精密/宇宙sshpass amd64 1.05-1[10.5 kB]
在0秒内获取了10.5 kB(234 kB/s)
选择以前未选择的包sshpass。
(正在读取当前安装的数据库…75363个文件和目录。)
拆包sshpass(从…/sshpass_1.05-1_amd64.deb)。。。
正在处理man db的触发器。。。
正在设置sshpass(1.05-1)。。。
安装
1.12s$npm安装
npm WARN package.jsonUnitTest@0.0.0没有描述
npm WARN package.jsonUnitTest@0.0.0没有存储库字段。
npm WARN package.jsonUnitTest@0.0.0没有自述文件数据
0.95s$npm测试
> UnitTest@0.0.0测试/主页/特拉维斯/构建/用户/项目
>节点测试
第一次测试应该失败:1)第一次测试应该失败
0通过(8毫秒)
1失败
1) 第一次测试应失败:
AssertionError:true==false
+预期-实际
-真的
+假的
在上下文中。(test/first.js:8:16)
命令“npm test”以0退出。
成功后
0.91s$sudo sshpass-p密码sshroot@ip-P7000
完成。您的生成以0退出。

我认为有两种可能的解决方案可以解决您的问题:

  • 通过在.Travis文件中添加
    sudo:true
    ,切换到非基于容器的Travis CI基础架构,这样您就可以安装所需的软件包
  • 要求在中添加
    sshpass
    。可在此处完成请求:

您可以使用SSH密钥而不是
sshpass
?这样,您就可以简单地使用SSH密钥连接到Docker容器,而不是使用密码。

sshpass可以通过添加以下内容安装到Travis CI容器中:

addons:
  apt:
    packages:
    - sshpass

我试过了,什么也没发生。没有错误消息,但没有任何消息告诉我它正在工作…:(@Skahrz)您可以发布一个指向您的.travis配置文件的链接吗?您上一次的构建日志也可能会有所帮助。私人存储库包含私人信息。我编辑我的帖子是为了向您展示screenshots@Skahrz谢谢。我认为当连接工作时,sshpass不会告诉你任何事情。所以它应该在这里工作。现在,你应该试着运行一个command使用yo