如何为Ansible-playbook调用的SSH添加-vvv详细日志参数?
为Ansible Playbook的SSH连接添加-vvv详细日志的正确方法
你的报错是因为shell未正确将-vvv作为单个完整参数传递给--ssh-extra-args,可以通过以下两种方式解决:
方法一:调整命令行参数格式
将--ssh-extra-args '-vvv'改为等号连接或双引号包裹的形式,确保参数被完整识别:
ansible-playbook -vvvv --ssh-extra-args="-vvv" --inventory ${INVENTORYFILE} --vault-password-file ${VAULT_PASSWORD_FILE} ansible/playbook-program-installation.yaml --extra-vars "target=$HOST_TARGET" "$@"
在bash环境下,也可以通过调整单引号的使用场景来解决(确保shell不拆分参数):
ansible-playbook -vvvv --ssh-extra-args '-vvv' --inventory ${INVENTORYFILE} --vault-password-file ${VAULT_PASSWORD_FILE} ansible/playbook-program-installation.yaml --extra-vars "target=$HOST_TARGET" "$@"
方法二:通过ansible.cfg永久配置
如果需要每次运行Playbook都自动启用SSH详细日志,可修改ansible.cfg文件,在[ssh_connection]段添加配置:
[ssh_connection] ssh_args = -vvv
配置后无需每次命令行手动添加参数,Ansible会自动将-vvv传递给SSH连接命令。
报错原因说明
当使用--ssh-extra-args '-vvv'时,部分shell环境或脚本中,单引号的解析逻辑会导致-vvv被拆分为无效的零散参数,使得Ansible判定--ssh-extra-args未接收到预期的完整参数,从而抛出error: argument --ssh-extra-args: expected one argument错误。调整参数格式后,能确保-vvv作为单个参数被正确传递。
内容的提问来源于stack exchange,提问作者Lars
相关产品推荐
相关产品推荐

