【问题标题】:bootstrapping a windows client in chef在 Chef 中引导 Windows 客户端
【发布时间】:2014-01-16 17:16:09
【问题描述】:

我正在尝试将我的客户端(Windows 机器)引导到托管的 Chef 服务器(来自 opscode)。

  1. 我已经成功地在我的客户端机器上安装了刀。

  2. 我在 users/ 文件夹的 chef-repo 中并已开始执行。

  3. 我无法使用 chef-server 进行引导。

基本上,chef-repo>knife bootstrap ipaddress -x user -P password 不适合我。

我收到一个错误:

错误:网络错误。由于目标机器主动拒绝,无法建立连接。

在示例中,人们使用 opscode 作为用户名和密码。那么理想情况下我应该如何使用它呢?

ipaddress 是客户端 IP 地址吗?我要将食谱上传到服务器的机器?

【问题讨论】:

    标签: chef-infra bootstrapping


    【解决方案1】:

    在 Windows 系统上引导 Chef 需要一个额外的刀插件,knife-windows 此插件使用WinRM 允许您在 Windows 中远程调用本机对象。

    该插件添加了一些子命令,特别是 knife bootstrap windows winrmknife bootstrap windows ssh,以及为 Windows 设计的自定义引导模板。

    安装了knife-windows 插件后,您应该能够使用类似于以下的命令引导您的Windows 系统:

    knife bootstrap windows winrm ipaddress -x Administrator -P 'super_secret_password'
    

    【讨论】:

    • 在您提到的命令中, ipaddress 的值是多少?是客户端机器的IP地址还是托管的厨师服务器? -x 管理员是什么?是客户端windows用户名的log​​inid吗?
    • 'ipaddress' 是目标节点机器的 IP 地址(即您尝试使用 Chef 管理的 Windows 系统)。 '-x Administrator' 只是设置将运行 chef-client 命令的用户的标志。管理员是最常见的,但您可以使用任何具有适当权限的用户来安装软件和更新环境设置。
    • 我不断收到Waiting on remote response before Bootstrapping............ 并且它一直在制造周期。这是从linux盒子到windows盒子。 WinRM 设置已配置,但我觉得缺少某些内容。
    【解决方案2】:

    首先回答你的两个问题:

    1. -x username 和 -P password 参数是您要引导的节点的凭据。因此,如果您有一个以管理员/密码登录的 Windows VM,那么您将通过 -x Administrator -P password

    2. 是的,ipaddress 是您要引导以供厨师管理的节点的地址。

    但是不,ipaddress 不是“我想将食谱上传到服务器的机器?”这让我觉得你有误解......

    • 您从工作站将食谱上传到服务器。
    • 您使用knife configure --initial 初始化您的工作站。
    • 然后您可以使用knife cookbook upload cookbook_name 上传食谱

    然而……

    • 您使用knife bootstrap(在您的工作站上)安装chef-client,并注册为chef-server的节点,您希望管理为chef节点的远程机器。
    • 您不需要knife bootstrap 您的工作站。

    关于引导 Windows 节点,如果这是您想要做的,@Michael 让您走在正确的轨道上。

    【讨论】:

      【解决方案3】:

      使用 WinRM 要求 Windows 正在侦听 HTTPS 请求(端口 5986 )。因此 WinRM 必须在 Windows 机器上启动。但这样做需要机器也安装了证书,否则 https 将无法工作。据我所知,带有 winrm 的刀引导程序只会使用安全通信。

      例如...

      winrm quickconfig -transport:https
      

      消息 = 无法在 HTTPS 上创建 WinRM 侦听器,因为此计算机没有适当的证书。要用于 SSL,证书必须具有与主机名匹配的 CN,适用于服务器身份验证,并且没有过期、撤销或自签名。

      所以...安装一个属性证书,确保 winrm 已开始监听等

      使用它来查看状态...

      winrm enumerate winrm/config/listener
      

      【讨论】:

        【解决方案4】:

        在 Windows 客户端节点 Powershell 上运行以下命令

         set-item wsman:\localhost\shell\maxmemorypershellmb 1024
         set-item wsman:\localhost\MaxTimeoutms 300000
         set-item wsman:\localhost\service\allowunencrypted $true
         set-item wsman:\localhost\service\auth\basic $true
        

        然后在厨师工作站上运行以下命令

        knife bootstrap -o winrm "ip_address" -U "Administrator" -P "password" -N "window_node"

        【讨论】:

          【解决方案5】:

          用于引导 Windows 节点的新更新命令

          knife bootstrap -o winrm IP-Address -N 'Node-Name' -U Domain-OR-Local-User -P 'Password'
          

          节点名称:它将显示在 Chef Automate 控制台中

          【讨论】:

            【解决方案6】:

            请检查您是否可以从工作站远程登录到您尝试访问的节点。

            这可以通过在命令提示符下键入 telnet 来检查。

            如果 telnet 未被识别为命令,则按照以下步骤操作:

            1. 右击“我的电脑”>管理>功能
            2. 点击“添加功能”
            3. 选择“Telnet 客户端”
            4. 按安装按钮

            安装需要一些时间。

            安装后,您可以从工作站的命令提示符到厨师节点执行相同的 telnet

            telnet <ip_address> 5985 //5985 is the port you want to do telnet.
            

            【讨论】:

            • 这是通用的 TCP 故障排除,不是问题的答案。
            • 我假设,user1907849 已按照流程设置 Chef Server、Workstation,并创建了 Windows VM。如果 Windows 虚拟机在 AWS 上,那么 user1907849 必须获得 AWS 生成的用户名和密码。 user1907849 面临从工作站到节点的连接问题的错误,这似乎是网络问题。我已经暗示过了。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-01-22
            • 1970-01-01
            • 1970-01-01
            • 2014-09-10
            • 1970-01-01
            • 1970-01-01
            • 2011-05-15
            相关资源
            最近更新 更多