Benedict Reuschling showed us last year how to use Ansible on FreeBSD at AsiaBSDCon. The key is to bootstrap Python using the raw module, so it can connect. I always thought the claim that Ansible didn’t have dependencies was suspect ;).

I thought I was going crazy this afternoon when my bootstrap playbook seemingly sat there, doing nothing. I ran it with more verbosity, and saw the problem:

Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 6 package(s) will be affected (of 0 checked):
New packages to be INSTALLED:
    python3: 3_3
    python36: 3.6.8_2
    readline: 8.0.0
    indexinfo: 0.3.1
    libffi: 3.2.1_3
    gettext-runtime: 0.20.1
Number of packages to be installed: 6
The process will require 107 MiB more space.
16 MiB to be downloaded.
Proceed with this action? [y/N]: Terminated

It will happily just sit there waiting for your input. Using -y will assume the answer is yes.