带有 git 模块的 Ansible 任务失败并显示“并且无法转换为 dict.The 错误是:需要超过 1 个值到 unpack\n”
Ansible task with git module fails with ' and could not be converted to an dict.The error was: need more than 1 value to unpack\n'
一直在开发一个简单的 ansible-playbook,其中一项任务是 运行 一个 git 拉到一个文件夹,昨天它运行完美,提交然后重新启动 mi pc 到 windows(来自 ubuntu)。
再次使用 ubuntu 重新启动并 运行 运行剧本后,我开始遇到奇怪的错误,首先从 delegate_to: localhost
任务到本地主机的 ssh 无法 ssh 并通过添加修复[local]
阻止库存。
现在 git 拉取任务失败并出现错误:
fatal: [127.0.0.1]: FAILED! => {
"msg": "the field 'args' has an invalid value ({u'repo': u'https://{{ github_user | urlencode }}:{{ github_password | urlencode }}@github.com/{{ repo_url }}.git', u'dest': u'{{ local_build_path }}/freedom_integration_ant'}), and could not be converted to an dict.The error was: need more than 1 value to unpack\n\nThe error appears to be in '/home/jquiroga/Documents/rokketlabs/freedom_customer_deployment/deploy_tuggers.yaml': line 15, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n - name: Get updated files from git repository\n ^ here\n"
}
这并没有告诉我太多信息(甚至用 - debug: var=vars
进行了检查并且 var 正在正常传递,任务是:
- name: Get updated files from git repository
git:
repo: "https://{{ github_user | urlencode }}:{{ github_password | urlencode }}@github.com/{{ repo_url }}.git"
dest: "{{ local_build_path }}/my_repo"
delegate_to: localhost
github_password 使用 ansible 保险库加密,我 运行 使用 --ask-vault-pass
创建脚本
{{ github_user | urlencode }} 和 {{ github_password | urlencode }} 导致问题,删除 |来自 vars 的 urlencode 解决了这个问题。
一直在开发一个简单的 ansible-playbook,其中一项任务是 运行 一个 git 拉到一个文件夹,昨天它运行完美,提交然后重新启动 mi pc 到 windows(来自 ubuntu)。
再次使用 ubuntu 重新启动并 运行 运行剧本后,我开始遇到奇怪的错误,首先从 delegate_to: localhost
任务到本地主机的 ssh 无法 ssh 并通过添加修复[local]
阻止库存。
现在 git 拉取任务失败并出现错误:
fatal: [127.0.0.1]: FAILED! => {
"msg": "the field 'args' has an invalid value ({u'repo': u'https://{{ github_user | urlencode }}:{{ github_password | urlencode }}@github.com/{{ repo_url }}.git', u'dest': u'{{ local_build_path }}/freedom_integration_ant'}), and could not be converted to an dict.The error was: need more than 1 value to unpack\n\nThe error appears to be in '/home/jquiroga/Documents/rokketlabs/freedom_customer_deployment/deploy_tuggers.yaml': line 15, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n - name: Get updated files from git repository\n ^ here\n"
}
这并没有告诉我太多信息(甚至用 - debug: var=vars
进行了检查并且 var 正在正常传递,任务是:
- name: Get updated files from git repository
git:
repo: "https://{{ github_user | urlencode }}:{{ github_password | urlencode }}@github.com/{{ repo_url }}.git"
dest: "{{ local_build_path }}/my_repo"
delegate_to: localhost
github_password 使用 ansible 保险库加密,我 运行 使用 --ask-vault-pass
{{ github_user | urlencode }} 和 {{ github_password | urlencode }} 导致问题,删除 |来自 vars 的 urlencode 解决了这个问题。