Ansible-vault无法加密短横线开头字符串,如何正确转义?
解决ansible-vault加密
--开头字符串的问题 当字符串以--开头时,命令行工具会默认把它当成命令选项解析,导致报错。给你几个可行的解决办法:
1. 用--分隔符明确标记参数结束
在encrypt_string后面加--,告诉ansible-vault后面的内容是要加密的目标字符串,不再解析为命令选项:
ansible-vault encrypt_string -- '--IcannotCh@ngeThisPassword'
2. 通过标准输入传递字符串(更安全)
不想在命令行直接明文暴露密码的话,用管道传递:
echo '--IcannotCh@ngeThisPassword' | ansible-vault encrypt_string
或者直接运行ansible-vault encrypt_string,等工具提示输入时,直接敲入--IcannotCh@ngeThisPassword就行。
3. 指定变量名的同时从标准输入读取(Ansible 2.10+可用)
如果需要生成带变量名的加密输出(方便写入Ansible变量文件),可以用--stdin-name参数:
echo '--IcannotCh@ngeThisPassword' | ansible-vault encrypt_string --stdin-name 'my_password'
内容的提问来源于stack exchange,提问作者janw
相关产品推荐
相关产品推荐

