1

我正在尝试使用 cloudify fabric 插件来运行一个简单的命令。当我安装蓝图时,出现以下错误。

Task failed 'fabric_plugin.tasks.run_commands' -> RecoverableError('FabricTaskError: Needed to prompt for a connection or sudo password (host: 10.10.1.10), but abort-on-prompts was set to True',)

下面是我的整个蓝图文件。

tosca_definitions_version: cloudify_dsl_1_0

imports:  
  - http://www.getcloudify.org/spec/cloudify/3.2/types.yaml
  - http://www.getcloudify.org/spec/fabric-plugin/1.2/plugin.yaml

inputs:

  host_ip:
      description: >
        The ip of the host the application will be deployed on

  agent_user:
      description: >
        Agent User.

  agent_private_key_path:
      description: >
        agent key path        

node_templates:

  host:
      type: cloudify.nodes.Compute
      properties:
        ip: { get_input: host_ip }
        install_agent:
          default: false
        cloudify_agent:
          user: { get_input: agent_user }
          key: { get_input: agent_private_key_path }

  example_node:
    type: cloudify.nodes.WebServer
    interfaces:
      cloudify.interfaces.lifecycle:
          start:
            implementation: fabric.fabric_plugin.tasks.run_commands
            inputs:
              commands:
                - ls -lh > ~/list-of-files.txt
    relationships:
    - type: cloudify.relationships.contained_in
      target: host

我的 inputs.yaml 是

agent_private_key_path: /root/.ssh/id_rsa
agent_user: vagrant
host_ip: 10.10.1.10

当我更新我的蓝图以使用以下内容时,它就可以工作了。但这有必要吗?我的意思是这个信息已经在主机中指定了。为什么我需要用fabric插件再给它一次。

     fabric_env:
        host_string: { get_input: host_ip }
        user: { get_input: agent_user }
        key_filename: { get_input: agent_private_key_path }

有什么我做错了吗。我只是这方面的初学者,所以任何帮助将不胜感激。

4

1 回答 1

0

Fabric 可能由于多种原因而失败,例如缺少密钥文件或错误的密钥文件......一般来说,当 SSH 进入应用程序 VM 时出现问题,使用私钥对的身份验证失败时,您会看到此类错误(因为它丢失或因为它是错误的),在这种情况下将回退到用户/密码身份验证。

如果没有有关您安装的 Cloudify 版本和操作系统(Ubuntu、Centos 等)的信息,我无法给出更详细的答案。

于 2015-07-16T09:40:35.677 回答