azure - 未找到连接插件“packer”
问题描述
我正在尝试使用 Packer 和 Ansible 预配 Azure 映像。
(同样的事情与 AWS 完美地工作)
Packer.json
文件定义了 Ansible 配置器:
{
"type": "ansible",
"playbook_file": "./gitlab/ansible/install-gitlab.yml",
"extra_arguments": [
"-vvvv"
]
}
我得到这个输出:
azure-arm: ansible-playbook 2.10.0.dev0
azure-arm: config file = None
azure-arm: configured module search path = [u'/Users/kdemiris/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
azure-arm: ansible python module location = /Library/Python/2.7/site-packages/ansible-2.10.0.dev0-py2.7.egg/ansible
azure-arm: executable location = /usr/local/bin/ansible-playbook
azure-arm: python version = 2.7.16 (default, Nov 9 2019, 05:55:08) [GCC 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1100.0.32.4) (-macos10.15-objc-s
azure-arm: No config file found; using defaults
azure-arm: setting up inventory plugins
azure-arm: host_list declined parsing /var/folders/1n/by1psykj793gpv8z6jxw2_n06ngr6v/T/packer-provisioner-ansible245962129 as it did not pass its verify_file() method
azure-arm: script declined parsing /var/folders/1n/by1psykj793gpv8z6jxw2_n06ngr6v/T/packer-provisioner-ansible245962129 as it did not pass its verify_file() method
azure-arm: auto declined parsing /var/folders/1n/by1psykj793gpv8z6jxw2_n06ngr6v/T/packer-provisioner-ansible245962129 as it did not pass its verify_file() method
azure-arm: Parsed /var/folders/1n/by1psykj793gpv8z6jxw2_n06ngr6v/T/packer-provisioner-ansible245962129 inventory source with ini plugin
azure-arm: Loading callback plugin default of type stdout, v2.0 from /Library/Python/2.7/site-packages/ansible-2.10.0.dev0-py2.7.egg/ansible/plugins/callback/default.pyc
azure-arm:
azure-arm: PLAYBOOK: install-gitlab.yml ***************************************************
azure-arm: Positional arguments: /Users/kdemiris/Documents/Projects/packer/gitlab/ansible/install-gitlab.yml
azure-arm: become_method: sudo
azure-arm: inventory: (u'/var/folders/1n/by1psykj793gpv8z6jxw2_n06ngr6v/T/packer-provisioner-ansible245962129',)
azure-arm: forks: 5
azure-arm: tags: (u'all',)
azure-arm: extra_vars: (u'packer_build_name=azure-arm packer_builder_type=azure-arm -o IdentitiesOnly=yes', u'ansible_ssh_private_key_file=/var/folders/1n/by1psykj793gpv8z6jxw2_n06ngr6v/T/ansible-key049101946')
azure-arm: verbosity: 4
azure-arm: connection: packer
azure-arm: timeout: 10
azure-arm: 2 plays in /Users/kdemiris/Documents/Projects/packer/gitlab/ansible/install-gitlab.yml
azure-arm:
azure-arm: PLAY [all] *********************************************************************
azure-arm:
azure-arm: TASK [Gathering Facts] *********************************************************
azure-arm: task path: /Users/kdemiris/Documents/Projects/packer/gitlab/ansible/install-gitlab.yml:2
azure-arm: fatal: [default]: FAILED! => {
azure-arm: "msg": "the connection plugin 'packer' was not found"
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:
==> azure-arm: Provisioning step had errors: Running the cleanup provisioner, if present...
有没有人遇到过这样的事情?
解决方案
在 playbook 旁边添加一个名为 connection_plugins 的目录。将以下 packer.py 文件添加到该目录。
详细信息可以在这里找到: https ://packer.io/docs/provisioners/ansible.html#winrm-communicator