首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ansible-playbook命令行中传递用户名和ssh密码-竹子

问如何在ansible-playbook命令行中传递用户名和ssh密码-竹子
EN

Stack Overflow用户
提问于 2019-08-16 12:41:27
回答 1查看 3.3K关注 0票数 0

我有一个由ansible-playbook -u <username> -k playbooks/example.yml从命令行手动运行的ansible攻略

上面的方法运行良好。它会提示我输入SSH密码并运行攻略。

The ansible version in my linux machine: 2.7.7

作为我的构建计划的一部分,我需要在竹子中运行它。在竹子中,我不能输入密码,因为它不会提示我。所以我希望将用户名和ssh密码作为参数作为命令的一部分进行传递。

我试过了

代码语言:javascript
复制
ansible-playbook playbooks/monitor-linux-node.yml -e "ansible_user=<username> ansible_ssh_pass=password"

这将抛出此错误

代码语言:javascript
复制
ERROR: blockinfile is not a legal parameter in an Ansible task or handler

我也试过这个

代码语言:javascript
复制
ansible-playbook -u <username> playbooks/monitor-linux-node.yml -e "ansible_ssh_pass=password"

这将抛出Usage: ansible-playbook playbook.yml并列出我们可以使用的参数。

任何关于如何在命令行中传递用户名和ssh密码的建议都将非常有用。

The ansible version in Bamboo machine: 1.9.4

EN

回答 1

Stack Overflow用户

发布于 2019-12-25 21:53:19

考虑使用sshpass

代码语言:javascript
复制
sshpass -p <ssh-password> ansible-playbook -u <username> --ask-pass playbooks/monitor-linux-node.yml

会最接近你想要的。如果可能,考虑使用密码文件

代码语言:javascript
复制
sshpass -f <password-file> ansible-playbook -u <username> --ask-pass playbooks/monitor-linux-node.yml

请注意--ask-pass密钥。sshpass将以非交互方式提供密码,而不是用户。

如果您不介意密码以未加密的方式存储在文件中,那么可以考虑使用group_vars/<group name>.yml来定义ansible_ssh_pass变量。您仍然需要sshpass,但ansible将在幕后使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57518969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档