Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ansible: To use the 'ssh' connection type with passwords, you must install the sshpass program"

Tags:

ansible

Recently I created new roles called spd in my existing project. While other script works fine in the setup. This newly created fails. Please point me to what is going wrong here

ansible/roles       spd         tasks         templates         defaults 

deploy-spd.yml

 - hosts:    roles:      - spd 

inventory file

[kube-master] kubernetes-master-1 ansible_host=10.20.0.225 ansible_user=centos ansible_become=true kubernetes-master-2 ansible_host=10.20.0.226 ansible_user=centos ansible_become=true kubernetes-master-3 ansible_host=10.20.0.227 ansible_user=centos ansible_become=true 

Failure

bash-4.3# ansible-playbook -i inventory/inventory deploy-test-ms.yml --ask-vault-pass Vault password:  PLAY [kube-master] *************************************************************  TASK [setup] ******************************************************************* Thursday 16 March 2017  13:32:05 +0000 (0:00:00.026)       0:00:00.026 ******** fatal: [kubernetes-master-1]: FAILED! => {"failed": true, "msg": "to use the 'ssh' connection type with passwords, you must install the sshpass program"} fatal: [kubernetes-master-2]: FAILED! => {"failed": true, "msg": "to use the 'ssh' connection type with passwords, you must install the sshpass program"} fatal: [kubernetes-master-3]: FAILED! => {"failed": true, "msg": "to use the 'ssh' connection type with passwords, you must install the sshpass program"}  PLAY RECAP ********************************************************************* kubernetes-master-1 : ok=0    changed=0    unreachable=0    failed=1 kubernetes-master-2 : ok=0    changed=0    unreachable=0    failed=1 kubernetes-master-3 : ok=0    changed=0    unreachable=0    failed=1 

UPDATE:

**With failed script**              Using module file /usr/lib/python2.7/site-packages/ansible/modules/core/system/setup.py <10.20.0.227> ESTABLISH SSH CONNECTION FOR USER: centos Using module file /usr/lib/python2.7/site-packages/ansible/modules/core/system/setup.py Using module file /usr/lib/python2.7/site-packages/ansible/modules/core/system/setup.py Using module file /usr/lib/python2.7/site-packages/ansible/modules/core/system/setup.py <172.23.169.137> ESTABLISH SSH CONNECTION FOR USER: centos <10.20.0.225> ESTABLISH SSH CONNECTION FOR USER: centos <10.20.0.226> ESTABLISH SSH CONNECTION FOR USER: centos     **With successfull script**      Thursday 16 March 2017  14:03:49 +0000 (0:00:00.066)       0:00:00.066 ******** Using module file /usr/lib/python2.7/site-packages/ansible/modules/core/system/setup.py <10.20.0.237> ESTABLISH SSH CONNECTION FOR USER: centos <10.20.0.237> SSH: EXEC ssh -F ./ssh.cfg -o ControlMaster=auto -o ControlPersist=30m -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=centos -o ConnectTimeout=30 -o 'ControlPath=~/.ssh/ansible-%r@%h:%p' 10.20.0.237 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1489673029.48-15997231643297 4 `" && echo ansible-tmp-1489673029.48-159972316432974="` echo $HOME/.ansible/tmp/ansible-tmp-1489673029.48-159972316432974 `" ) && sleep 0'"'"'' <10.20.0.237> PUT /tmp/tmpnHJPbc TO /home/centos/.ansible/tmp/ansible-tmp-1489673029.48-159972316432974/setup.py <10.20.0.237> SSH: EXEC scp -F ./ssh.cfg -o ControlMaster=auto -o ControlPersist=30m -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=centos -o ConnectTimeout=30 -o 'ControlPath=~/.ssh/ansible-%r@%h:%p' /tmp/tmpnHJPbc '[10.20.0.237]:/home/centos/.ansible/tmp/ansible-tmp-1489673029.48-159972316432974/setup.py' <10.20.0.237> ESTABLISH SSH CONNECTION FOR USER: centos <10.20.0.237> SSH: EXEC ssh -F ./ssh.cfg -o ControlMaster=auto -o ControlPersist=30m -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=centos -o ConnectTimeout=30 -o 'ControlPath=~/.ssh/ansible-%r@%h:%p' 10.20.0.237 '/bin/sh -c '"'"'chmod u+x /home/centos/.ansible/tmp/ansible-tmp-1489673029.48-159972316432974/ /home/cento s/.ansible/tmp/ansible-tmp-1489673029.48-159972316432974/setup.py && sleep 0'"'"'' 
like image 449
Vikram Ranabhatt Avatar asked Mar 16 '17 13:03

Vikram Ranabhatt


People also ask

Do I need Sshpass for Ansible?

Ansible requires sshpass to be able to run ssh commands without prompting passwords. Therefore, you have to install the sshpass package on your Ansible control machine to resolve this error. Ansible will not prompt for passwords when you: Remove the “ask_pass=True” line in ansible.

What is SSH password Ansible?

By default, Ansible assumes you are using SSH keys to connect to remote machines. SSH keys are encouraged, but you can use password authentication if needed with the --ask-pass option. If you need to provide a password for privilege escalation (sudo, pbrun, and so on), use --ask-become-pass .

How install Sshpass program in Linux?

Install sshpass on Linux Systems In RedHat/CentOS based systems, first you need to enable Epel repository on your system to install it using yum command as shown. On Debian/Ubuntu and its derivatives, you can install it using apt-get command as shown.


1 Answers

It is the host machine which needs the sshpass program installed. For an Ubuntu machine such as 16.04, it's as simple as apt-get install sshpass. Again, this error message of:

ERROR! to use the 'ssh' connection type with passwords, you must install the sshpass program

Applies to the HOST (provisioner) not the GUEST (machine(s) being provisioned). Thus install sshpass on the provisioner.

For installing sshpass on Mac OS refer to this link

like image 82
DanCat Avatar answered Nov 08 '22 10:11

DanCat