Hide Forgot
==> master: For unattended installs, facts must be provided for all masters/nodes: ==> master: Host "ose3-node2.example.com" missing facts: hostname, public_hostname ==> master: Host "localhost" missing facts: hostname, public_hostname ==> master: Host "ose3-node1.example.com" missing facts: hostname, public_hostname The SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed. The output for this command should be in the log above. Please read the output to determine what went wrong. So, if the IP addresses are provided, and for an unattended installation, we could make the assumption that we should use whatever the detected values are. I'm not sure if this is a bug/usability issue or intended.
For context, can you provide the exact command and all arguments that you ran?
ansible_ssh_user: vagrant hosts: - connect_to: localhost ip: 192.168.144.2 master: true node: true public_ip: 192.168.144.2 - connect_to: ose3-node1.example.com ip: 192.168.144.3 node: true public_ip: 192.168.144.3 - connect_to: ose3-node2.example.com ip: 192.168.144.4 node: true public_ip: 192.168.144.4 variant: openshift-enterprise variant_version: '3.1' version: v1 Run the quick installer unattended specifying this config and you end up with the error above.
Jason, what are your thoughts on this? If ansible sees that 'hostname' and public_hostname' aren't set in the common facts how should it react? Could it just use whatever it finds? Assuming the public_hostname is the hostname is likely rarely going to work in anything except for demo environments. The problem I have is that in production environments whenever public_hostname isn't set it's probably a mistake. If ansible kept going they would likely get fairly far in the installation and only find out near the end that the first step they ran was wrong. I could see someone wasting many hours debugging etcd and web console problems due to this assumption.
I can easily see both sides of this. We do not require the values to be set when doing an advanced installation using ansible directly, but not providing them in cases that you need them will cause errors that we cannot yet fix without an uninstall. I think the best compromise for now will be to explicitly make those options mandatory for the v1 config format, and then once we have the ability to replace the certs we can rev the config format and make them optional.