测试厨房几乎每次都在传输文件时失败

问题描述 投票:2回答:1

几乎每次我运行厨房与ec2驱动程序汇合时,它都能够创建服务器并建立一个ssh连接,但是在检测到厨师综合安装后,它会尝试传输文件,但失败并出现无用的错误。我尝试过使用不同版本的net-ssh并重新安装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'
amazon-ec2 chef test-kitchen
1个回答
3
投票

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

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

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

然后我进入我的.kitchen.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

当我运行测试厨房时,它明显变慢。但是,它100%的工作时间。我认为正在发生的是,厨房正在打开多个SSH会话,以加快所需工具的安装。例如yum为ansible / git / whatever和/tmp/install.sh为chef。

希望这有助于某人。我花了一点时间才发现。

© www.soinside.com 2019 - 2024. All rights reserved.