Packer: ansible 2.8中断了打包程序ansible Provisioner

创建于 2019-05-20  ·  45评论  ·  资料来源: hashicorp/packer

最近发布的ansible 2.8(从ansible 2.7.10升级)似乎破坏了打包程序ansible供应商。 我正在运行相同的打包程序模板和剧本。 当我使用ansible 2.8运行时,预配器挂起了收集事实任务,并且不会移动。 我确认直接运行ansible(无需预配器)即可正常运行。 一切都可以在ansible 2.7.10上正常运行。

模板代码段:

{ "type": "ansible", "playbook_file": "/home/ubuntu/", "command": "ansible-playbook" }

Packer –版本1.4.1在EC2实例上使用AWS EBS构建器(以下详细信息)

操作系统详细信息:
NAME =“ Ubuntu”
VERSION =“ 18.04.2 LTS(Bionic Beaver)”
ID = ubuntu
ID_LIKE = debian
PRETTY_NAME =“ Ubuntu 18.04.2 LTS”
VERSION_ID =“ 18.04”
HOME_URL =“ https://www.ubuntu.com/
SUPPORT_URL =“ https://help.ubuntu.com/
BUG_REPORT_URL =“ https://bugs.launchpad.net/ubuntu/
PRIVACY_POLICY_URL =“ https://www.ubuntu.com/legal/terms-and-policies/privacy-policy
VERSION_CODENAME =仿生
UBUNTU_CODENAME =仿生

bug community-supported plugin need-repro provisioneansible-remote

最有用的评论

遇到了完全相同的问题-降级到ansible 2.7.10,并且运行良好

所有45条评论

遇到了完全相同的问题-降级到ansible 2.7.10,并且运行良好

还有其他人可以复制吗?

同样在这里。 我不得不降级。

在2019年5月28日星期二20:58,AndrewCi [email protected]写道:

还有其他人可以复制吗?

-
您收到此消息是因为您已订阅此线程。
直接回复此电子邮件,在GitHub上查看
https://github.com/hashicorp/packer/issues/7667吗
或使线程静音
https://github.com/notifications/unsubscribe-auth/AAAAFFFYN7SKLPFDER6IOYDPXV6GTANCNFSM4HOEP2HQ

我还可以使用Azure ARM供应商重现此内容

是的,也降级了

我认为我们正在Ansible 2.6.2上实现这一目标

@intinig您降级到哪个版本?

回滚到2.7.10已为我修复。

对我来说,我通过删除-vv选项解决了这个问题。 野生!

2.7.10

在2019年5月30日星期四19:50,adamday2 [email protected]写道:

回滚到2.7.10已为我修复。

-
您收到此邮件是因为有人提到您。
直接回复此电子邮件,在GitHub上查看
https://github.com/hashicorp/packer/issues/7667吗
或使线程静音
https://github.com/notifications/unsubscribe-auth/AAAAFFESVO36RH5QHKQV2F3PYAHWNANCNFSM4HOEP2HQ

这(至少在某些情况下)与添加到Ansible 2.8中的自动Python解释器发现有关; 硬编码/usr/bin/python解决了我观察到的问题。

      "extra_arguments": [
        "--extra-vars",
        "ansible_python_interpreter=/usr/bin/python"
      ],

达到此目的,但对于某些已发布的vSphere增强模块确实需要2.8。

因为这是一个很受欢迎的问题,所以在这里做个说明-这个供应商是我们社区支持的供应商之一,这意味着HashiCorp的维护者不会花很多工程时间; 这意味着将您的建议纳入Packer的最佳方法是打开PR。

@flowerysong感谢您的提示,它有效! virtualenv提供帮助。

带有打包程序连接的Windows机器存在相同的问题,有人可以解决吗?

至少有人至少有导致此挂起的根源,并有解决此问题的潜在计划吗? 很乐意在可能的地方提供帮助,但对Go并不熟悉(可能会在正确的方向使用更多点)。

另外,从其他操作系统运行打包程序是否会有所作为?

一样。 尝试使用打包程序1.3.3、1.3.4、1.4.1、1.4.2,ansible版本2.7.10、2.8.0和2.8.1都表现出相同的行为。 成功设置ANSIBLE_PYTHON_INTERPRETER env var。

今天我快速浏览了一下; 根据您的ansible_python_interpreter发现,我的直觉是,使用后备列表时生成的警告导致挂起,因为我们在某处未正确处理stderr。

在大约一个小时的时间里,我修补了一下,在重现这种情况时,我可能会生成此后备警告以测试该理论,但我遇到了麻烦。 如果遇到这个问题的任何人都可以共享您的来宾操作系统体系结构以及安装了哪个版本的python(以及安装的位置),那将非常有帮助,因此我无需花费大量时间来尝试得到一个repro案例。

现在,听起来就像设置ansible_python_interpreter直接适合所有人。 我很想知道将其设置为值ansible_python_interpreter=auto_silent是否足以解决此问题; 这将使我的理论更加可信,因为我的理论是Packer误操作了警告即将通过某处的管道。

@SwampDragons流水线导致

可以通过在解释器发现中添加超时来解决Ansible方面的问题,但是该修复程序目前没有任何时间表。

@flowerysong感谢您的信息。 您是否有GH问题的链接,或者是否有我们可以在此处跟踪的有关超时讨论的内容?

SO @SwampDragons-根据您的问题,我可以使用以下方法进行确认:
“ extra_arguments”:[
“ --extra-vars”,
“ ansible_python_interpreter = auto_silent”
]
使用以下命令允许使用ansible-local的linux执行工作而不会出现问题:
Ansible 2.8.1
打包机1.4.2
RHEL7的KVM构建

但是-当尝试使用以下错误来配置WINDOWS Server 2019主机时,这些相同的参数仍然导致错误:

2019-07-15T14:05:46-04:00:==> qemu:执行Ansible:ansible-playbook --extra-vars packer_build_name = qemu packer_builder_type = qemu -o IdentitiesOnly =是-i / tmp / packer-provisioner- ansible556061269 /opt/jenkins/workspace/-templates_2019_imagebuild_PR-10/windows/ansible/initial_config.yaml -e ansible_ssh_private_key_file = / tmp / ansible-key458833230 --extra-vars packer_http_addr = 10.0.2.2:8084 --connection packer --extra- vars ansible_shell_type = powershell ansible_shell_executable =无ansible_python_interpreter = auto_silent

2019-07-15T14:05:55-04:00:qemu:

2019-07-15T14:05:55-04:00:qemu:玩[全部] * * * * * * * * * * * * * * * * * * * * * * **

2019-07-15T14:05:55-04:00:qemu:

2019-07-15T14:05:55-04:00:qemu:任务[聚会事实] * * * * * * * * * * * * * * * * * * * **

2019-07-15T14:05:56-04:00:qemu:致命:[默认]:失败! => {“ ansible_facts”:{},“已更改”:false,“ msg”:“以下模块执行失败:setup \ n setup:MODULE FAILURE \ n请参阅stdout / stderr了解确切错误\ n”}

2019-07-15T14:05:56-04:00:qemu:

2019-07-15T14:05:56-04:00:qemu:PLAY RECAP * * * * * * * * * * * * * * * * * * * * * * **

2019-07-15T14:05:56-04:00:qemu:默认:ok = 0更改= 0不可达= 0失败= 1跳过= 0获救= 0忽略= 0

2019-07-15T14:05:56-04:00:qemu:

2019-07-15T14:05:56-04:00:==> qemu:正在删除输出目录...

2019-07-15T14:05:56-04:00:构建'qemu'错误:执行错误Ansible:非零退出状态:退出状态2

因此,我认为在等待ansible核心中的管道“修复”时,我们有一个针对“ Linux”的有效解决方法,但是“ Windows”仍然需要更多的功能才能暂时运行?

目前正在从事此工作的人或对解决方法有任何想法吗?

不是我知道的。

我的解决方法是添加此内容: "extra_arguments": ["-e", "ansible_python_interpreter=/usr/bin/python", "-vv"]

我仍然无法重现此问题以挽救生命,但我已决定继续尝试基于以下问题创建一种解决方法,即潜在问题是Packer的ssh代理,该代理是它为转发Ansible调用而创建的。

我从一个分支创建了PR#8625,该分支完全删除了该localhost代理,并修改了配置程序以改为使用清单文件中的主机IP。 我希望所有受到错误影响的人都可以取消构建(可在此处找到:https://circleci.com/gh/hashicorp/packer/29969#artifacts/containers/0),并让我知道是否它为您解决了这个问题。 请注意,就目前而言,该分支中断了Docker构建。 在确定此举是否能真正解决问题之后,我将弄清楚如何对其进行分解。

还请让我知道代理删除是否为您造成问题; PR非常处于“进行中”状态。

是否有任何测试上述PR的参与者,并让我知道它是否解决了2.8+的不兼容问题? 我有新的版本,可在这里找到: https ://circleci.com/gh/hashicorp/packer/32248#artifacts/containers/0,它允许您基于布尔选项“ use_proxy”使用或不使用代理适配器(当前默认为true,但如果有必要,我会在将来更改默认值)

@SwampDragons ,感谢您提供了这些新的

我已经在macOS(Python 3.7.3)和docker上尝试了这个新的1.5.2构建
容器(Python 3.6.9),但是打包程序的构建现在在运行ansible设置程序之前停滞了:

==> azure-arm: Waiting for WinRM to become available...
==> azure-arm: Timeout waiting for WinRM.

...在两种架构上。

如果我恢复为打包程序1.5.1,则与WinRM的连接成功,PowerShell
设置程序成功运行,但无论如何,ansant设置程序都会失败
选项或其他参数。 'ansible_python_interpreter'解决方法
不幸的是,上述提及对我不起作用。

我尝试构建的2个环境:
1. macOS [Darwin内核版本19.3.0: root:xnu-6153.81.5〜1 / RELEASE_X86_64 x86_64]
-封隔器1.5.1
-建筑商:天蓝色武器
-os_type:Windows
-传播者:winrm
-Ansible 2.9.2
-Python 3.7.3

  1. Docker / mcr.microsoft.com/azure- cli:latest [Linux 1cba84bd80dd
    4.19.76-linuxkit#1 SMP 10月17日星期四19:31:58 UTC 2019 x86_64 Linux]
  2. 封隔器1.5.1

    • 制造商:天蓝色的胳膊

    • os_type:Windows

    • 传播者:winrm

  3. 安思2.9.4
  4. Python 3.6.9
debug logs:

---------
    azure-arm: [azure-arm]
    azure-arm: XX.XXX.142.52
==> azure-arm: Provisioning with Ansible...
==> azure-arm: Executing Ansible: ansible-playbook --extra-vars packer_build_name=azure-arm packer_builder_type=azure-arm -o IdentitiesOnly=yes -i /var/folders/08/_km87dpn38zf4c0yr8lnq8880000gp/T/packer-provisioner-ansible557376101 /Users/Laurent/work/ansible/win-playboom.yml -e ansible_ssh_private_key_file=/var/folders/08/_km87dpn38zf4c0yr8lnq8880000gp/T/ansible-key717334430 -vvvv --connection packer --inventory-file=../ansible/inventory/inventory_azure_rm.yml --extra-vars ansible_python_interpreter=/Users/Laurent/.pyenv/shims/python ansible_shell_type=powershell ansible_shell_executable=None
    azure-arm: ansible-playbook 2.9.2
    azure-arm: <XX.XXX.142.52> ESTABLISH WINRM CONNECTION FOR USER: packer on PORT 5986 TO XX.XXX.142.52
    azure-arm: fatal: [pkrvmnzc8laeuz0_3a38]: UNREACHABLE! => {
    azure-arm:     "changed": false,
    azure-arm:     "msg": "ssl: the specified credentials were rejected by the server",
    azure-arm:     "unreachable": true
    azure-arm: }
...
    azure-arm: fatal: [default]: FAILED! => {
    azure-arm:     "ansible_facts": {},
    azure-arm:     "changed": false,
    azure-arm:     "failed_modules": {
    azure-arm:         "setup": {
    azure-arm:             "failed": true,
    azure-arm:             "module_stderr": "OpenSSH_7.9p1, LibreSSL 2.7.3\r\ndebug1:
    ...
    ...
        azure-arm:             "module_stdout": "",
    azure-arm:             "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    azure-arm:             "rc": 1
    azure-arm:         }
    azure-arm:     },
    azure-arm:     "msg": "The following modules failed to execute: setup\n"
    azure-arm: }
    azure-arm:
    azure-arm: PLAY RECAP *********************************************************************
    azure-arm: default                    : ok=0    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0
    azure-arm: pkrvmnzc8laeuz0_3a38       : ok=0    changed=0    unreachable=1    failed=0    skipped=0    rescued=0    ignored=0

---------

感谢您的更新-我推送了一些修复程序,可以在PR上找到新的二进制文件。 不过,我还没有机会为winrm设置no-proxy选项。

我终于能够重现该挂起,并可以确认禁用代理(尽可能在链接的Pr中)解决了SSH构建的问题。 我还没有机会研究和实施WinRM的修复程序。

可以在以下位置找到需要SSH解决方案的人工工件: https :

因为我还没有在Windows上使用它,所以可能不会将它纳入1.5.2版本中,但是我将对其进行备份,并在几天后继续进行操作。

谢谢@SwampDragons ,这是个好消息! 当您能够继续进行Windows构建时,期待获得这些修复。

我可以确认使用上述构建可以解决Ansible通过SSH连接到Packer实例的问题。 🚀

我在winrm的ansible 2.9中遇到了相同的问题。 然后我将ansible降级到2.7,然后一次正常工作。 但是现在我在ansible 2.7中也遇到了同样的问题。

ansible = 2.7.0
python版本= 3.7.6
封隔器= 1.5.4

<127.0.0.1>(0,b'',b'OpenSSH_7.9p1,LibreSSL 2.7.3 \ r \ ndebug1:读取配置数据/ etc / ssh / ssh_config \ r \ ndebug1:/ etc / ssh / ssh_config第48行:为* \ r \ ndebug2应用选项:resolve_canonicalize:主机名127.0.0.1是地址\ r \ ndebug1:auto-mux:尝试现有的master \ r \ ndebug2:fd 3设置O_NONBLOCK \ r \ ndebug2:mux_client_hello_exchange:主版本4 \ r \ ndebug3:mux_client_forwards:请求转发:0本地,0远程\ r \ ndebug3:mux_client_request_session:进入\ r \ ndebug3:mux_client_request_alive:输入\ r \ ndebug3:mux_client_request_alive:完成pid = 14869 \ r \ n_session_quest:会话请求:mux_client_request_session \ r \ n#<CLIXML \ r \ nSystem.Management.Automation.PSCustomObject系统对象1准备首次使用的模块。0-1-1已完成-1 debug3:mux_client_read_packet:读取标头失败:管道损坏\ r \ ndebug2:接收到来自主站0 \ r \ n'的退出状态

@SwampDragons运气好的Windows更新

尚未-我去旅行了,这周还没手键盘。 不过,我会在下周尝试备份任务。

@SwampDragons在Windows上有状态吗? 谢谢!

是! 星期五,我获得了使用WinRM和基本身份验证的无代理Windows构建的POC,但是我仍然需要进行测试以确保它可以与ssl一起使用。

它活着! 可以在以下位置下载与winrm兼容的二进制文件: https :

请参阅PR中添加的文档以获取详细的使用说明: https :

@SwampDragons谢谢您所做的所有工作(以及其他报告工作)! :)
我已经尝试了上面列出的每晚构建,但对我而言仍然失败。 我仍然必须回滚到Ansible 2.7.10才能为我工作。
[dev-user@centos-7-dev Downloads]$ ansible --version ansible 2.9.6 config file = /etc/ansible/ansible.cfg configured module search path = [u'/home/dev-user/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/site-packages/ansible executable location = /usr/bin/ansible python version = 2.7.5 (default, Aug 7 2019, 00:51:29) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] [dev-user@centos-7-dev Downloads]$ packer --version 1.5.6 [dev-user@centos-7-dev Downloads]$
这是来自使用vsphere-iso的Centos 7.7主机的(现在很高兴看到它已经内置!),它构建了Centos 7.7最小图像。
还有其他人发现其他问题吗?

@ChrisGWarp我需要一个完整的

packer_test.zip
做完了!
包括失败,纠正(可降级)和成功的日志。
希望这可以帮助。 :)

因此,查看您的配置:

        {
            "type":            "ansible",
            "playbook_file":   "./ansible/packer-test.yml",
            "galaxy_file":     "./ansible/requirements.yml",
            "user":            "root",
            "extra_arguments": [ "-v" ]
        }

现在,我没有在Galaxy上进行测试,但是在您的配置中,似乎还没有真正关闭代理。

        {
            "type":            "ansible",
            "playbook_file":   "./ansible/packer-test.yml",
            "galaxy_file":     "./ansible/requirements.yml",
            "user":            "root",
            "use_proxy": false,
            "extra_arguments": [ "-v" ]
        }

您可以在您的环境中使用PACKER_DEBUG = 1尝试上述操作以获取详细的日志吗,并将其链接为要点吗?

好的,我设法走得更远,但随后遇到其他问题。
这是我发现/观察到的:

我不确定use_proxy是需要更改其现有值的参数还是新参数。

Packer 1.5.5对此感到窒息,因此我假设使用新变量,因此不向后兼容。

Packer 1.5.6-dev可以正常工作,因为它没有在收集事实阶段挂起(是!),但是随后在主机密钥问题上被阻塞。 它从哪里加载ansible.cfg? 或者,以另一种方式提出相同的问题,从何处(在哪个目录中)生成ansible-playbook?

这是.json文件的片段,env vars似乎没有更改主机密钥的行为。

"provisioners": [ { "type": "ansible", "playbook_file": "./ansible/packer-test.yml", "galaxy_file": "./ansible/requirements.yml", "user": "root", "use_proxy": false, "ansible_env_vars": [ "ANSIBLE_HOST_KEY_CHECKING=False", "ANSIBLE_NOCOLOR=True" ], "extra_arguments": [ "-v" ] } ]

这是日志输出:

`[ dev-user @ centos-7-dev packer-test] $ PACKER_LOG = 1 Packer build -force vsphere-packer-test-x86_64.json
2020/04/26 20:46:14 [INFO] Packer版本:1.5.6-dev(d824b7e969d0d54ce23b42aa2a577a73a4780765)[go1.13.9 linux amd64]
2020/04/26 20:46:14检查'PACKER_CONFIG'以获取配置文件路径
2020/04/26 20:46:14未设置'PACKER_CONFIG'; 检查默认配置文件路径
2020/04/26 20:46:14尝试打开配置文件:/home/dev-user/.packerconfig
2020/04/26 20:46:14 [WARN]配置文件不存在:/home/dev-user/.packerconfig
2020/04/26 20:46:14设置缓存目录:/ home / dev-user / eclipse-workspace / packer-test / packer_cache
2020/04/26 20:46:14为路径创建插件客户端:/ usr / bin / packer
2020/04/26 20:46:14启动插件:/ usr / bin / packer [] string {“ / usr / bin / packer”,“ plugin”,“ packer-builder-vsphere-iso”}
2020/04/26 20:46:14等待RPC地址用于:/ usr / bin / packer
2020/04/26 20:46:14收到/ usr / bin / packer的unix RPC地址:addr为/ tmp / packer-plugin421608791
2020/04/26 20:46:14 packer-builder-vsphere-iso插件:[INFO] Packer版本:1.5.6-dev(d824b7e969d0d54ce23b42aa2a577a73a4780765)[go1.13.9 linux amd64]
2020/04/26 20:46:14 packer-builder-vsphere-iso插件:检查'PACKER_CONFIG'是否有配置文件路径
2020/04/26 20:46:14 packer-builder-vsphere-iso插件:未设置'PACKER_CONFIG'; 检查默认配置文件路径
2020/04/26 20:46:14 packer-builder-vsphere-iso插件:尝试打开配置文件:/home/dev-user/.packerconfig
2020/04/26 20:46:14 packer-builder-vsphere-iso插件:[WARN]配置文件不存在:/home/dev-user/.packerconfig
2020/04/26 20:46:14 packer-builder-vsphere-iso插件:设置缓存目录:/ home / dev-user / eclipse-workspace / packer-test / packer_cache
2020/04/26 20:46:14 packer-builder-vsphere-iso插件:args:[] string {“ packer-builder-vsphere-iso”}
2020/04/26 20:46:14 packer-builder-vsphere-iso插件:插件地址:unix / tmp / packer-plugin421608791
2020/04/26 20:46:14 packer-builder-vsphere-iso插件:正在等待连接...
2020/04/26 20:46:14 packer-builder-vsphere-iso插件:正在为插件连接服务...
2020/04/26 20:46:14为路径创建插件客户端:/ usr / bin / packer
2020/04/26 20:46:14启动插件:/ usr / bin / packer [] string {“ / usr / bin / packer”,“ plugin”,“ packer-provisioner-ansible”}
2020/04/26 20:46:14等待RPC地址用于:/ usr / bin / packer
2020/04/26 20:46:14收到/ usr / bin / packer的unix RPC地址:addr为/ tmp / packer-plugin434205582
2020/04/26 20:46:14 packer-provisioner-ansible插件:[INFO] Packer版本:1.5.6-dev(d824b7e969d0d54ce23b42aa2a577a73a4780765)[go1.13.9 linux amd64]
2020/04/26 20:46:14 packer-provisioner-ansible插件:检查'PACKER_CONFIG'是否有配置文件路径
2020/04/26 20:46:14 packer-provisioner-ansible插件:未设置'PACKER_CONFIG'; 检查默认配置文件路径
2020/04/26 20:46:14 Packer-provisioner-ansible插件:尝试打开配置文件:/home/dev-user/.packerconfig
2020/04/26 20:46:14 packer-provisioner-ansible插件:[WARN]配置文件不存在:/home/dev-user/.packerconfig
2020/04/26 20:46:14 packer-provisioner-ansible插件:设置缓存目录:/ home / dev-user / eclipse-workspace / packer-test / packer_cache
2020/04/26 20:46:14 packer-provisioner-ansible插件:args:[] string {“ packer-provisioner-ansible”}
2020/04/26 20:46:14 packer-provisioner-ansible插件:插件地址:unix / tmp / packer-plugin434205582
2020/04/26 20:46:14 packer-provisioner-ansible插件:等待连接...
2020/04/26 20:46:14 Packer-provisioner-ansible插件:正在为插件连接服务...
vsphere-iso:输出将采用这种颜色。

2020/04/26 20:46:14构建调试模式:false
2020/04/26 20:46:14力量建设:真实
2020/04/26 20:46:14发生错误:
2020/04/26 20:46:14正在准备构建:vsphere-iso
2020/04/26 20:46:15等待构建完成...
2020/04/26 20:46:15开始构建运行:vsphere-iso
2020/04/26 20:46:15正在运行的构建器:vsphere-iso
2020/04/26 20:46:15 [INFO](遥测)开始构建器vsphere-iso
2020/04/26 20:46:15 packer-provisioner-ansible插件:ansible-playbook版本:2.9.6
==> vsphere-iso:正在创建VM ...
==> vsphere-iso:定制硬件...
==> vsphere-iso:正在挂载ISO映像...
2020/04/26 20:46:17 packer-builder-vsphere-iso插件:在控制器'&{{{} 200'上创建CD-ROM 200 0xc00055e2a00} 0 []}'与iso'[ISOs] CentOS / CentOS-7-x86_64-Minimal-1908.iso'
==> vsphere-iso:正在创建软盘...
vsphere-iso:从floppy_files平面复制文件
2020/04/26 20:46:18 packer-builder-vsphere-iso插件:软盘路径:/ tmp / packer579447498
2020/04/26 20:46:18 packer-builder-vsphere-iso插件:初始化由临时文件支持的块设备
2020/04/26 20:46:18 packer-builder-vsphere-iso插件:使用FAT文件系统格式化块设备...
2020/04/26 20:46:18 packer-builder-vsphere-iso插件:在块设备上初始化FAT文件系统
2020/04/26 20:46:18 packer-builder-vsphere-iso插件:从文件系统读取根目录
vsphere-iso:复制文件:http / ks-7.7-minimal-static.cfg
vsphere-iso:从floppy_files复制文件
vsphere-iso:从floppy_dirs收集路径
vsphere-iso:floppy_dirs的结果路径:[]
vsphere-iso:从floppy_dirs复制路径
==> vsphere-iso:上传创建的软盘映像
==> vsphere-iso:添加生成的软盘...
==> vsphere-iso:在端口8081上启动HTTP服务器
2020/04/26 20:46:19 packer-builder-vsphere-iso插件:找到可用端口:8081,IP:0.0.0.0
==> vsphere-iso:暂时设置启动顺序...
==> vsphere-iso:启动VM ...
==> vsphere-iso:等待10秒钟启动...
==> vsphere-iso:HTTP服务器正在http:// ABCE:8081 /运行
==> vsphere-iso:输入启动命令...
2020/04/26 20:46:32 packer-builder-vsphere-iso插件:特殊代码'找到,替换为:CodeTab
2020/04/26 20:46:40 packer-builder-vsphere-iso插件:特殊代码'找到,替换为:CodeReturnEnter
2020/04/26 20:46:40 packer-builder-vsphere-iso插件:等待1秒
==> vsphere-iso:正在等待IP ...
2020/04/26 20:46:41 packer-builder-vsphere-iso插件:[INFO]等待IP,最大超时时间:30m0s,稳定超时时间:5s
2020/04/26 20:55:12 packer-builder-vsphere-iso插件:获得的VM IP:ABCD
2020/04/26 20:55:12 packer-builder-vsphere-iso插件:VM IP仍然相同:ABCD
2020/04/26 20:55:13 packer-builder-vsphere-iso插件:VM IP仍然相同:ABCD
2020/04/26 20:55:14 packer-builder-vsphere-iso插件:VM IP仍然相同:ABCD
2020/04/26 20:55:15 packer-builder-vsphere-iso插件:VM IP仍然相同:ABCD
2020/04/26 20:55:16 packer-builder-vsphere-iso插件:VM IP仍然相同:ABCD
==> vsphere-iso:IP地址:ABCD
2020/04/26 20:55:17 packer-builder-vsphere-iso插件:VM IP仍然相同:ABCD
2020/04/26 20:55:17 packer-builder-vsphere-iso插件:VM IP似乎足够稳定:ABCD
==> vSphere-iso:使用ssh通讯器进行连接:ABCD
==> vsphere-iso:等待SSH可用...
2020/04/26 20:55:17 packer-builder-vsphere-iso插件:[INFO]等待SSH,超时:5m0s
2020/04/26 20:55:17 packer-builder-vsphere-iso插件:[INFO]尝试通过SSH连接到ABCD:22 ...
2020/04/26 20:55:17 packer-builder-vsphere-iso插件:[DEBUG]重新连接到SSH的TCP连接
2020/04/26 20:55:17 packer-builder-vsphere-iso插件:[DEBUG]与SSH握手
2020/04/26 20:55:17 packer-builder-vsphere-iso插件:[DEBUG]握手完成!
2020/04/26 20:55:17 packer-builder-vsphere-iso插件:[DEBUG]打开新的ssh会话
==> vsphere-iso:已连接到SSH!
2020/04/26 20:55:17 packer-builder-vsphere-iso插件:[INFO]代理转发已启用
2020/04/26 20:55:17 packer-builder-vsphere-iso插件:运行供应挂钩
2020/04/26 20:55:17 [INFO](遥测)启动供应商ansible
==> vsphere-iso:使用Ansible进行配置...
vsphere-iso:不将代理适配器用于Ansible运行:
vsphere-iso:使用Packer通信器中的ssh键...
vsphere-iso:使用Packer通信器中的ssh键...
2020/04/26 20:55:17 packer-provisioner-ansible插件:为Ansible运行创建库存文件...
vsphere-iso:执行Ansible Galaxy
vsphere-iso:[警告]:-已经安装了dovry.ansible_role_sample(master)-使用
vsphere-iso:--force将版本更改为未指定
2020/04/26 20:55:18 packer-provisioner-ansible插件:Megan cmd是&exec.Cmd {Path:“ / usr / bin / ansible-playbook”,Args:[] string {“ ansible-playbook”,“ -e”,“ packer_build_name = vsphere-iso”,“-e”,“ packer_builder_type = vsphere-iso”,“-e”,“ ansible_ssh_private_key_file = / tmp / ansible-key848613781”,“-e”,“ packer_http_addr = ABCE” :8081“,”-ssh-extra-args“,”-o IdentitiesOnly = yes“,”-i“,” / tmp / packer-provisioner-ansible807514096“,” / home / dev-user / eclipse-workspace / packer-test / ansible / packer-test.yml“,” -v“},Env:[] string(nil),Dir:”“,Stdin:io.Reader(nil),Stdout:io.Writer(nil) ,Stderr:io.Writer(nil),ExtraFiles:[] os.File(nil),SysProcAttr :( syscall.SysProcAttr)(nil),Process :( os.Process)(nil),ProcessState :( os.ProcessState) (nil),ctx:context.Context(nil),lookPathErr:error(nil),finished:false,childFiles:[] os.File(nil),closeAfterStart:[] io.Closer(nil),closeAfterWait:[] io.Closer(nil),goroutine:[] func()错误(nil),errch:(chan错误)(nil),waitDone:(chan struct {})(nil)}==> vsphere-iso:执行Ansible:ansible-playbook -e packer_build_name = vsphere-iso -e packer_builder_type = vsphere-iso -e ansible_ssh_private_key_file = / tmp / ansible-key848613781 -e packer_http_addr = ABCE:8081 --ssh-extra- args -o IdentitiesOnly =是-i / tmp / packer-provisioner-ansible807514096 /home/dev-user/eclipse-workspace/packer-test/ansible/packer-test.yml -vvsphere-iso:使用/etc/ansible/ansible.cfg作为配置文件vsphere-iso:vsphere-iso:PLAY [配置基本VM] * * * * * * * * * * * * * * * *


vsphere-iso:
vsphere-iso:任务[收集事实] * * * * * * * * * * * * * * * * * *
输入密钥'/ tmp / ansible-key848613781'的密码:
vsphere-iso:致命:[默认]:不可更改! => {“已更改”:false,“ msg”:“无法通过ssh连接到主机:警告:将'ABCD'(ECDSA)永久添加到已知主机列表中。\ r \ n权限被拒绝(publickey,gssapi- keyex,gssapi-with-mic,password)。“,” unreachable“:true}
vsphere-iso:
vsphere-iso:PLAY RECAP * * * * * * * * * * * * * * * * * * * * * *
vsphere-iso:默认值:ok = 0更改= 0不可达= 1失败= 0跳过= 0拯救= 0忽略= 0
vsphere-iso:
2020/04/26 20:55:50 [INFO](遥测)结束ansible
==> vsphere-iso:供应步骤有错误:运行清除供应器(如果存在)...
==> vsphere-iso:清除启动顺序...
==> vsphere-iso:关闭VM ...
==> vsphere-iso:删除软盘映像...
==> vsphere-iso:正在销毁VM ...
2020/04/26 20:55:51 packer-builder-vsphere-iso插件:删除软盘:/ tmp / packer579447498
构建'vsphere-iso'错误:执行错误Ansible:非零退出状态:退出状态4

==>一些构建未成功完成,并出现错误:
-> vsphere-iso:执行错误Ansible:非零退出状态:退出状态4

==>构建完成,但未创建任何构件。
2020/04/26 20:55:52 [INFO](遥测)结束vSphere-iso
2020/04/26 20:55:52机器可读:错误计数[] string {“ 1”}
==>一些构建未成功完成,并出现错误:
2020/04/26 20:55:52机器可读:vsphere-iso,error [] string {“执行错误Ansible:非零退出状态:退出状态4”}
==>构建完成,但未创建任何构件。
2020/04/26 20:55:52 [INFO](遥测)完成。
2020/04/26 20:55:53等待所有插件过程完成...
2020/04/26 20:55:53 / usr / bin / packer:插件进程已退出
2020/04/26 20:55:53 / usr / bin / packer:插件进程已退出
[ dev-user @ centos-7-dev packer-test] $
`

Packer 1.5.5对此感到窒息,因此我假设使用新变量,因此不向后兼容。

正确。 可以在链接的PR中找到有关新功能的文档。

Packer 1.5.6-dev可以正常工作,因为它没有在收集事实阶段挂起(是!),但是随后在主机密钥问题上被阻塞。 它从哪里加载ansible.cfg? 或者,以另一种方式提出相同的问题,从何处(在哪个目录中)生成ansible-playbook?

ansible-playbook从运行Packer的同一目录中产生。

我将锁定此问题,因为它已关闭_30天_⏳。 这可以帮助我们的维护人员发现并集中精力解决当前存在的问题。

如果您发现了一个与此相似的问题,请打开一个新问题并完成问题模板,以便我们捕获所有必要的详细信息以进行进一步调查。

此页面是否有帮助?
0 / 5 - 0 等级