【发布时间】:2020-05-06 14:00:11
【问题描述】:
我正在尝试使用 Packer 构建 Docker 映像并使用 Ansible 来配置所述映像。我想使用将在配置文件中定义的自定义 Ansible 插件,但似乎无法让 Packer 正确定位配置文件。我尝试将配置文件的路径放在ansible_env_vars 中,并且还尝试使用extra_arguments 块来指向配置文件。我还想指出,Packer 构建仍然会构建 Docker 映像,无论它是否可以正确定位自定义配置文件。
下面是我的Ansible Provisioner 块的外观示例、我的文件结构以及 Packer 构建输出日志。任何建议将不胜感激。
封隔器块
"provisioners": [
{
"type": "ansible",
"playbook_file": "src/playbook.yml",
"ansible_env_vars": "src/ansible.cfg",
"extra_arguments": [
"-vvv",
"--extra-vars",
"'variable={{ user `variable` }} ..... '"
]
}
],
打包程序构建输出
docker: ansible-playbook 2.9.2
docker: config file = None
docker: configured module search path = ['/Users/andrewgonzalez/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
docker: ansible python module location = /usr/local/lib/python3.7/site-packages/ansible
docker: executable location = /usr/local/bin/ansible-playbook
文件结构
请记住,我有一个 Makefile,它将构建 Docker 映像并且位于我的 Packer 目录中。我在根目录下还有一个 Makefile 会调用 Packer 目录下的 Makefile 来执行构建。
$ tree -d -L 2
.
├── packer
│ ├── log
│ └── src
├── packerenv
│ ├── bin
│ ├── include
│ └── lib
└── test
【问题讨论】:
-
所以在那个输出中,我没有看到任何错误消息——或者你的问题是为什么
packer build的输出只有 5 行? -
我的问题是如何正确设置 ansible 配置文件。我放置了一部分输出来说明打包程序没有正确设置配置文件。