<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def wait_ssh(roles, retries=100, interval=30):
 """Wait for all the machines to be ssh-reachable Let ansible initiates a communication and retries if needed. Args: inventory (string):
 path to the inventoy file to test retries (int):
 Number of time we'll be retrying an SSH connection interval (int):
 Interval to wait in seconds between two retries """

    utils_playbook = os.path.join(ANSIBLE_DIR, 'utils.yml')
    options = {'enos_action': 'ping'}

    for i in range(0, retries):
        try:
            run_ansible([utils_playbook],
                        roles=roles,
                        extra_vars=options,
                        on_error_continue=False)
            break
        except EnosUnreachableHostsError as e:
            logger.info("Hosts unreachable: %s " % e.hosts)
            logger.info("Retrying... %s/%s" % (i + 1, retries))
            time.sleep(interval)
    else:
        raise EnosSSHNotReady('Maximum retries reached')