Nuv*_*uvi 19 ssh ansible ansible-ad-hoc
我想将Ansible用作另一个Python软件的一部分.在该软件中,我有一个主机列表及其用户/密码.
有没有办法将SSH连接的用户/传递传递给Ansible ad-hoc命令或以加密方式将其写入任何文件?
或者我是否理解这一切都是错误的,唯一的方法是使用SSH认证?
小智 23
与远程计算机通话时,Ansible默认假设您使用的是SSH密钥.鼓励使用SSH密钥,但也可以通过提供选项--ask-pass在需要时使用密码验证.如果使用sudo功能,并且当sudo需要密码时,也提供--ask-become-pass(以前--ask-sudo-pass已被弃用).
从未使用过该功能,但文档说你可以.
小智 14
你可以--extra-vars
像这样使用:
$ ansible all --inventory=10.0.1.2, -m ping \
--extra-vars "ansible_user=root ansible_password=yourpassword"
Run Code Online (Sandbox Code Playgroud)
小智 8
如前所述,您可以使用 --extra-vars (-e) ,但您可以将其保存到环境变量中,而不是在命令行上指定密码,这样它就不会出现在历史文件中。这样,当您关闭会话时,它也会消失。
read -s PASS
ansible windows -i hosts -m win_ping -e "ansible_password=$PASS"
Run Code Online (Sandbox Code Playgroud)
小智 8
我使用了命令
ansible -i inventory example -m ping -u <your_user_name> --ask-pass
Run Code Online (Sandbox Code Playgroud)
它会询问您的密码。
对于任何收到错误的人:
to use the 'ssh' connection type with passwords, you must install the sshpass program
Run Code Online (Sandbox Code Playgroud)
在 MacOS 上,您可以按照以下说明安装 sshpass: