我想跑 ansible </跨度> 多个服务器上的角色,但我收到一个错误:
致命:[192.168.0.10]:无法访问! =&GT; {“已更改”:false,“msg”: “无法通过ssh连接到主机。”,“无法访问”:“true”
我的/ etc / ansible </跨度> / hosts文件如下所示:
192.168.0.10 ansible_sudo_pass =’passphrase’ansible_ssh_user = user192.168.0.11 ansible_sudo_pass =’passphrase’ansible_ssh_user = user192.168.0.12“
我遇到了这个问题,但原因与其他答案中记载的原因不同。我尝试部署的主机只能通过跳转框才能使用。最初,我认为这是因为Ansible没有识别我的SSH配置文件,但确实如此。对我来说,解决方案是确保SSH配置文件中存在的用户与Ansible playbook中的用户匹配。这解决了我的问题。
mkdir /etc/ansible cat > hosts default ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user=vagrant ansible_ssh_private_key_file=.vagrant/machines/default/virtualbox/private_key
转到您的playbook目录并运行ansible all -m ping
重新加载vm时,ansible_ssh_port发生了变化。
==&GT;默认:引导VM ...
==&GT;默认值:等待机器启动。这可能需要几分钟的时间...
default: SSH address: 127.0.0.1:2222 default: SSH username: vagrant default: SSH auth method: private key
所以我必须更新inventory / hosts文件,如下所示:
default ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user='centos' ansible_ssh_private_key_file=<key path>
$ansible -m ping all -vvv
在Ubuntu或CentOS上安装ansible之后。 你可以在下面留言。不要惊慌,您必须拥有该文件的访问权限 /tmp 用户[ /home/user_name/.ansible/tmp/ ]。 “ Authentication or permission failure ”。
/tmp
/home/user_name/.ansible/tmp/
Authentication or permission failure
这种预先协调将解决问题。
[Your_server ~]$ ansible -m ping all rusub-bm-gt | SUCCESS => { "changed": false, "ping": "pong" } Your_server | SUCCESS => { "changed": false, "ping": "pong" }