与Packer一起使用

时间:2018-11-23 22:40:48

标签: ansible packer

我试图让包装商ansible供应商使用用户名和密码,但是由于认证步骤失败,具有ansible的配置一直停滞不前。

这是我的Packer Ansible设置程序脚本。

    {
  "type": "ansible",
  "user": "pi",
  "playbook_file": "playbook.yml",
  "extra_arguments": [
    "--extra-vars",
    "ansible_python_interpreter=/usr/bin/python3",

    "--extra-vars",
    "ansible_user=pi",

    "--extra-vars",
    "ansible_ssh_pass=raspberry",

    "-vvv"
  ]
}

我完全不知道为什么这行不通。

卡住的输出如下。

    armpi: ==> arm-image: Executing Ansible: ansible-playbook --extra-vars packer_build_name=arm-image packer_builder_type=arm-image -i /tmp/packer-provisioner-ansible288108417 playbook.yml -e ansible_ssh_private_key_file=/tmp/ansible-key528332842 --extra-vars ansible_python_interpreter=/usr/bin/python3 --extra-vars ansible_ssh_user=pi --extra-vars ansible_ssh_pass=raspberry -vvv

看起来它正在尝试使用ansible_ssh_private_key_file=/tmp/ansible-key528332842,但我不希望它使用我真的只是希望它使用用户名和密码登录。

1 个答案:

答案 0 :(得分:4)

ansible预配器文档的顶部开始:

  

ansible Packer设置程序运行Ansible剧本。动态地   创建一个配置为使用SSH的Ansible清单文件,运行SSH   服务器,执行ansible-playbook,并通过   SSH服务器连接到Packer所配置的计算机。

     

注意:任务中定义的任何remote_user都将被忽略。打包机将   为此总是与json配置中给定的用户连接   供应商。

ansible预配器无法实现您要执行的操作。但是您可以通过使用shell-local预配器运行ansible来实现您尝试做的事情。

(要获取在Ansible清单中使用的VM的IP地址,您可以遵循我在this post中提出的一般模式。)