Amazon ec2 测试厨房几乎每次传输文件都会失败

Amazon ec2 测试厨房几乎每次传输文件都会失败,amazon-ec2,chef-infra,test-kitchen,Amazon Ec2,Chef Infra,Test Kitchen,几乎每次我运行kitchen converge with ec2驱动程序时,它都能够创建服务器并建立ssh连接,但在检测到chef omnibus安装后,它尝试传输文件,但失败了,出现了一个毫无帮助的错误。我尝试过使用不同版本的netssh并重新安装chefdk。我已经让它在30次中成功地收敛了一次,但我不知道有什么不同 还有其他人遇到过这个问题吗 -----> Starting Kitchen (v1.10.2) -----> Creating <default-rhel7&

几乎每次我运行kitchen converge with ec2驱动程序时,它都能够创建服务器并建立ssh连接,但在检测到chef omnibus安装后,它尝试传输文件,但失败了,出现了一个毫无帮助的错误。我尝试过使用不同版本的netssh并重新安装chefdk。我已经让它在30次中成功地收敛了一次,但我不知道有什么不同

还有其他人遇到过这个问题吗

-----> Starting Kitchen (v1.10.2)
-----> Creating <default-rhel7>...
       If you are not using an account that qualifies under the AWS
free-tier, you may be charged to run these suites. The charge
should be minimal, but neither Test Kitchen nor its maintainers
are responsible for your incurred costs.

       Instance <i-167bf188> requested.
       Polling AWS for existence, attempt 0...
       Attempting to tag the instance, 0 retries
       EC2 instance <i-167bf188> created.
       Waited 0/600s for instance <i-167bf188> to become ready.
       Waited 5/600s for instance <i-167bf188> to become ready.
       Waited 10/600s for instance <i-167bf188> to become ready.
       Waited 15/600s for instance <i-167bf188> to become ready.
       Waited 20/600s for instance <i-167bf188> to become ready.
       Waited 25/600s for instance <i-167bf188> to become ready.
       Waited 30/600s for instance <i-167bf188> to become ready.
       Waited 35/600s for instance <i-167bf188> to become ready.
       Waited 40/600s for instance <i-167bf188> to become ready.
       Waited 45/600s for instance <i-167bf188> to become ready.
       Waited 50/600s for instance <i-167bf188> to become ready.
       Waited 55/600s for instance <i-167bf188> to become ready.
       EC2 instance <i-167bf188> ready.
       Waiting for SSH service on 10.254.105.26:22, retrying in 3 seconds
       Waiting for SSH service on 10.254.105.26:22, retrying in 3 seconds
       Waiting for SSH service on 10.254.105.26:22, retrying in 3 seconds
       [SSH] Established
       Finished creating <default-rhel7> (1m56.70s).
-----> Converging <default-rhel7>...
       Preparing files for transfer
       Preparing dna.json
       Preparing current project directory as a cookbook
       Removing non-cookbook files before transfer
       Preparing validation.pem
       Preparing client.rb
-----> Chef Omnibus installation detected (install only if missing)
       Transferring files to <default-rhel7>
C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/ruby_compat.rb:25:in `select': closed stream (IOError)
    from C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/ruby_compat.rb:25:in `io_select'
    from C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/transport/packet_stream.rb:75:in `available_for_read?'
    from C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/transport/packet_stream.rb:87:in `next_packet'
    from C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/transport/session.rb:193:in `block in poll_message'
    from C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/transport/session.rb:188:in `loop'
    from C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/transport/session.rb:188:in `poll_message'
    from C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/connection/session.rb:474:in `dispatch_incoming_packets'
    from C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/connection/session.rb:225:in `preprocess'
    from C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/connection/session.rb:206:in `process'
    from C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/connection/session.rb:170:in `block in loop'
    from C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/connection/session.rb:170:in `loop'
    from C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/connection/session.rb:170:in `loop'
    from C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/connection/session.rb:119:in `close'
    from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/test-kitchen-1.10.2/lib/kitchen/transport/ssh.rb:115:in `close'
    from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/test-kitchen-1.10.2/lib/kitchen/transport/ssh.rb:97:in `cleanup!'
    from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/test-kitchen-1.10.2/lib/kitchen/instance.rb:274:in `cleanup!'
    from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/test-kitchen-1.10.2/lib/kitchen/command.rb:209:in `run_action_in_thread'
    from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/test-kitchen-1.10.2/lib/kitchen/command.rb:173:in `block (2 levels) in run_action'
    from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/logging-2.1.0/lib/logging/diagnostic_context.rb:450:in `call'
    from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/logging-2.1.0/lib/logging/diagnostic_context.rb:450:in `block in create_with_logging_context'
----->启动厨房(v1.10.2)
----->创建。。。
如果您没有使用符合AWS规定的帐户
免费层,您可能需要支付运行这些套件的费用。指控
应该是最小的,但既不是测试厨房也不是它的维护者
你要对你所发生的费用负责。
请求实例。
正在轮询AWS是否存在,尝试0。。。
正在尝试标记实例,重试0次
已创建EC2实例。
例如,等待0/600秒以准备就绪。
例如,等待5/600秒以准备就绪。
例如,等待10/600秒以准备就绪。
例如,等待15/600秒以准备就绪。
例如,等待20/600秒以准备就绪。
例如,等待25/600秒以准备就绪。
例如,等待30/600秒以准备就绪。
例如,等待35/600秒以准备就绪。
例如,等待40/600秒以准备就绪。
例如,等待45/600秒以准备就绪。
例如,等待50/600秒以准备就绪。
例如,等待55/600秒以准备就绪。
EC2实例就绪。
正在等待10.254.105.26:22上的SSH服务,3秒钟后重试
正在等待10.254.105.26:22上的SSH服务,3秒钟后重试
正在等待10.254.105.26:22上的SSH服务,3秒钟后重试
[SSH]已建立
完成创建(1m56.70s)。
----->会聚。。。
准备要传输的文件
准备dna.json
将当前项目目录准备为烹饪书
传输前删除非cookbook文件
准备validation.pem
准备client.rb
----->检测到Chef Omnibus安装(仅在缺少时安装)
将文件传输到
C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/ruby_compat.rb:25:in“选择”:封闭流(IOError)
来自C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/ruby_compat.rb:25:in'io_select'
来自C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/transport/packet\u stream.rb:75:“可供读取吗?”
来自C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/transport/packet_stream.rb:87:“下一个_packet”中
来自C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/transport/session.rb:193:in'block in poll_message'
来自C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/transport/session.rb:188:in'loop'
来自C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/transport/session.rb:188:in'poll_message'
来自C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/connection/session.rb:474:“发送\传入\数据包”
来自C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/connection/session.rb:225:在“预处理”中
来自C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/connection/session.rb:206:在“进程”中
来自C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/connection/session.rb:170:in‘block-in-loop’
来自C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/connection/session.rb:170:in'loop'
来自C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/connection/session.rb:170:in'loop'
来自C:/Users/AlexKiaie/AppData/Local/chefdk/gem/ruby/2.1.0/gems/net-ssh-3.2.0/lib/net/ssh/connection/session.rb:119:在“关闭”中
来自C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/test-kitchen-1.10.2/lib/kitchen/transport/ssh.rb:115:in'close'
来自C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/test-kitchen-1.10.2/lib/kitchen/transport/ssh.rb:97:in“cleanup!”
来自C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/test-kitchen-1.10.2/lib/kitchen/instance.rb:274:in“cleanup!”
来自C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/test-kitchen-1.10.2/lib/kitchen/command.rb:209:in'run_action_in_thread'
来自C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/test-kitchen-1.10.2/lib/kitchen/command.rb:173:run\u操作中的“块(2个级别)”中
来自C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/logging-2.1.0/lib/logging/diagnostic_context.rb:450:“调用”中
来自C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/logging-2.1.0/lib/logging/diagnostic_context.rb:450:“使用_logging_context创建_中的块”

我也有类似的问题。经过大量挖掘,我在/var/log/secure中发现了一条有趣的消息-

“localhost sshd[1081]:错误:没有更多会话”

默认情况下,SSHD允许10个会话;这些未登录会话。如果由于某种原因,存在未正确关闭或打开的会话,您将收到此错误

然后我走进我的.厨房.yml并补充道:

max_ssh_sessions: 1
去运输科。所以现在看起来像:

transport:
  ssh_key: ./kitchen.pem
  # need to get this key from vault, then place it on the kitchen ecs container
  connection_timeout: 10
  connection_retries: 5
  max_ssh_sessions: 1
  username: centos
当我运行TestKitchen时,速度明显变慢了。然而,它在100%的时间都能工作。我认为正在发生的是,kitchen正在打开多个SSH会话,以加快所需工具的安装。例如,对于ansible/git/whatever,使用yum;对于chef,使用/tmp/install.sh

希望这对别人有帮助。我花了一点时间