Below is a snip from the end of my vagrant provisioning. I believe this shows that admin1 (the one running the ansible playbook in question) CAN in fact reach all the other nodes, but for some reason this one task consistently fails with this same error. Not sure what's going on.
TASK [openshift_node_certificates : Ensure CA certificate exists on openshift_ca_host] ***
ok: [master1 -> 192.168.50.20] => {"changed": false, "stat": {"atime": 1478024342.644244, "checksum": "6f7070de78ad472fe8fee4232319111aaf3873d5", "ctime": 1478024342.638244, "dev": 64769, "exists": true, "gid": 0, "gr_name": "root", "inode": 1573519, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "md5": "66d821c9bb1611bcbc784110e8c23ba6", "mode": "0644", "mtime": 1478024342.638244, "nlink": 1, "path": "/etc/origin/master/ca.crt", "pw_name": "root", "rgrp": true, "roth": true, "rusr": true, "size": 1070, "uid": 0, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false}}
TASK [openshift_node_certificates : fail] **************************************
skipping: [master1] => {"changed": false, "skip_reason": "Conditional check failed", "skipped": true}
TASK [openshift_node_certificates : Check status of node certificates] *********
ok: [node2] => (item=system:node:node2.example.com.crt) => {"changed": false, "item": "system:node:node2.example.com.crt", "stat": {"exists": false}}
ok: [master1] => (item=system:node:master1.example.com.crt) => {"changed": false, "item": "system:node:master1.example.com.crt", "stat": {"exists": false}}
ok: [node1] => (item=system:node:node1.example.com.crt) => {"changed": false, "item": "system:node:node1.example.com.crt", "stat": {"exists": false}}
ok: [node2] => (item=system:node:node2.example.com.key) => {"changed": false, "item": "system:node:node2.example.com.key", "stat": {"exists": false}}
ok: [master1] => (item=system:node:master1.example.com.key) => {"changed": false, "item": "system:node:master1.example.com.key", "stat": {"exists": false}}
ok: [node1] => (item=system:node:node1.example.com.key) => {"changed": false, "item": "system:node:node1.example.com.key", "stat": {"exists": false}}
ok: [master1] => (item=system:node:master1.example.com.kubeconfig) => {"changed": false, "item": "system:node:master1.example.com.kubeconfig", "stat": {"exists": false}}
ok: [node1] => (item=system:node:node1.example.com.kubeconfig) => {"changed": false, "item": "system:node:node1.example.com.kubeconfig", "stat": {"exists": false}}
ok: [node2] => (item=system:node:node2.example.com.kubeconfig) => {"changed": false, "item": "system:node:node2.example.com.kubeconfig", "stat": {"exists": false}}
ok: [master1] => (item=ca.crt) => {"changed": false, "item": "ca.crt", "stat": {"exists": false}}
ok: [node1] => (item=ca.crt) => {"changed": false, "item": "ca.crt", "stat": {"exists": false}}
ok: [node2] => (item=ca.crt) => {"changed": false, "item": "ca.crt", "stat": {"exists": false}}
ok: [master1] => (item=server.key) => {"changed": false, "item": "server.key", "stat": {"exists": false}}
ok: [node2] => (item=server.key) => {"changed": false, "item": "server.key", "stat": {"exists": false}}
ok: [node1] => (item=server.key) => {"changed": false, "item": "server.key", "stat": {"exists": false}}
ok: [master1] => (item=server.crt) => {"changed": false, "item": "server.crt", "stat": {"exists": false}}
ok: [node1] => (item=server.crt) => {"changed": false, "item": "server.crt", "stat": {"exists": false}}
ok: [node2] => (item=server.crt) => {"changed": false, "item": "server.crt", "stat": {"exists": false}}
TASK [openshift_node_certificates : set_fact] **********************************
ok: [master1] => {"ansible_facts": {"node_certs_missing": true}, "changed": false}
ok: [node1] => {"ansible_facts": {"node_certs_missing": true}, "changed": false}
ok: [node2] => {"ansible_facts": {"node_certs_missing": true}, "changed": false}
TASK [openshift_node_certificates : Create openshift_generated_configs_dir if it does not exist] ***
fatal: [node1]: UNREACHABLE! => {"changed": false, "msg": "SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh", "unreachable": true}
fatal: [node2]: UNREACHABLE! => {"changed": false, "msg": "SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh", "unreachable": true}
fatal: [master1]: UNREACHABLE! => {"changed": false, "msg": "SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh", "unreachable": true}