How can I get Trellis to work?

I’ve been having some serious issues getting Trellis to work properly lately and it’s been one issue after another, so I decided once again to start all over. By starting all over I mean that I’ve formatted my iMac again and reinstalled Bur Sur 11.6.1.

Once formatted, I followed these docs, step-by-step, exactly:

Versions of the tools running:

xcode-select version 2384.

Composer version 2.1.14 2021-11-30 10:51:43

node v16.13.1

virtualbox 6.1.26

Vagrant 2.2.19

ansible 2.9.8

Python 3.9.9

pip 21.3.1

From here I simply ran this: trellis new example.com and when thru the prompts.

This is the output:

Site domain [example.com]: 

✔ example.com
Creating virtualenv in /Users/joshb/Development/trellis/example.com/trellis/.trellis/virtualenv
✓ Virtualenv created
Running command => pip install -r requirements.txt
⠸ Installing pip dependencies (pip install -r requirements.txt) ... ✓ Dependencies installed
Running command => ansible-galaxy install -r galaxy.yml

Next I cd to example.com and run trellis up

This is the output:

➜  example.com trellis up
Running command => vagrant up
Installing plugin vagrant-bindfs
Installing plugin vagrant-hostmanager
`vagrant up` must be re-run now that plugins are installed
➜  example.com trellis up
Running command => vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'bento/ubuntu-20.04' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 202012.23.0
==> default: Loading metadata for box 'bento/ubuntu-20.04'
    default: URL: https://vagrantcloud.com/bento/ubuntu-20.04
==> default: Adding box 'bento/ubuntu-20.04' (v202107.28.0) for provider: virtualbox
    default: Downloading: https://vagrantcloud.com/bento/boxes/ubuntu-20.04/versions/202107.28.0/providers/virtualbox.box

Progress: 0% (Rate: 0*/s, Estimated time remaining: --:--:--)

Progress: 100% (Rate: 719/s, Estimated time remaining: --:--:--)

Progress: 1% (Rate: 5532k/s, Estimated time remaining: 0:01:32)

Progress: 16% (Rate: 79.2M/s, Estimated time remaining: 0:00:10)

Progress: 25% (Rate: 60.5M/s, Estimated time remaining: 0:00:09)

Progress: 35% (Rate: 57.6M/s, Estimated time remaining: 0:00:07)

Progress: 52% (Rate: 64.7M/s, Estimated time remaining: 0:00:04)

Progress: 69% (Rate: 69.5M/s, Estimated time remaining: 0:00:02)

Progress: 84% (Rate: 68.9M/s, Estimated time remaining: 0:00:01)

==> default: Successfully added box 'bento/ubuntu-20.04' (v202107.28.0) for 'virtualbox'!
==> default: Importing base box 'bento/ubuntu-20.04'...

Progress: 10%

Progress: 30%

Progress: 40%

Progress: 50%

Progress: 60%

Progress: 90%

==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'bento/ubuntu-20.04' version '202107.28.0' is up to date...
==> default: Setting the name of the VM: example.test
Vagrant is currently configured to create VirtualBox synced folders with
the `SharedFoldersEnableSymlinksCreate` option enabled. If the Vagrant
guest is not trusted, you may want to disable this option. For more
information on this option, please refer to the VirtualBox manual:

  https://www.virtualbox.org/manual/ch04.html#sharedfolders

This option can be disabled globally with an environment variable:

  VAGRANT_DISABLE_VBOXSYMLINKCREATE=1

or on a per folder basis within the Vagrantfile:

  config.vm.synced_folder '/host/path', '/guest/path', SharedFoldersEnableSymlinksCreate: false
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: 
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default: 
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Exporting NFS shared folders...
==> default: Attempting graceful shutdown of VM...
==> default: Destroying VM and associated drives...
/opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/hosts/darwin/cap/path.rb:20:in `resolve_host_path': uninitialized constant VagrantPlugins::HostDarwin::Cap::Version (NameError)
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/capability_host.rb:111:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/capability_host.rb:111:in `capability'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/hosts/bsd/cap/nfs.rb:29:in `block in nfs_export'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/hosts/bsd/cap/nfs.rb:28:in `each'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/hosts/bsd/cap/nfs.rb:28:in `nfs_export'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/capability_host.rb:111:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/capability_host.rb:111:in `capability'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/synced_folders/nfs/synced_folder.rb:85:in `block (2 levels) in enable'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/environment.rb:614:in `lock'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/synced_folders/nfs/synced_folder.rb:83:in `block in enable'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/synced_folders/nfs/synced_folder.rb:81:in `synchronize'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/synced_folders/nfs/synced_folder.rb:81:in `enable'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/synced_folders.rb:93:in `block in call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/synced_folders.rb:90:in `each'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/synced_folders.rb:90:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /Users/joshb/.vagrant.d/gems/2.7.4/gems/vagrant-bindfs-1.1.9/lib/vagrant-bindfs/vagrant/actions/installer.rb:19:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /Users/joshb/.vagrant.d/gems/2.7.4/gems/vagrant-bindfs-1.1.9/lib/vagrant-bindfs/vagrant/actions/mounter.rb:21:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/delayed.rb:19:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/synced_folder_cleanup.rb:28:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/synced_folders/nfs/action_cleanup.rb:25:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/providers/virtualbox/action/prepare_nfs_valid_ids.rb:12:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb:52:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/providers/virtualbox/action/prepare_forwarded_port_collision_params.rb:30:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/env_set.rb:19:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /Users/joshb/.vagrant.d/gems/2.7.4/gems/vagrant-hostmanager-1.8.9/lib/vagrant-hostmanager/action/update_all.rb:27:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/provision.rb:80:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /Users/joshb/.vagrant.d/gems/2.7.4/gems/vagrant-bindfs-1.1.9/lib/vagrant-bindfs/vagrant/actions/mounter.rb:21:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/providers/virtualbox/action/clear_forwarded_ports.rb:15:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/providers/virtualbox/action/set_name.rb:50:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/providers/virtualbox/action/clean_machine_folder.rb:26:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/providers/virtualbox/action/check_accessible.rb:18:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builder.rb:149:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/runner.rb:89:in `block in run'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/util/busy.rb:19:in `busy'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/runner.rb:89:in `run'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/call.rb:53:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builder.rb:149:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/runner.rb:89:in `block in run'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/util/busy.rb:19:in `busy'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/runner.rb:89:in `run'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/call.rb:53:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builder.rb:149:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/runner.rb:89:in `block in run'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/util/busy.rb:19:in `busy'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/runner.rb:89:in `run'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/call.rb:53:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/box_check_outdated.rb:93:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/providers/virtualbox/action/check_virtualbox.rb:26:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/env_set.rb:19:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/providers/virtualbox/action/match_mac_address.rb:22:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/providers/virtualbox/action/discard_state.rb:15:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/providers/virtualbox/action/import.rb:78:in `import'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/providers/virtualbox/action/import.rb:13:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/providers/virtualbox/action/prepare_clone_snapshot.rb:17:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/prepare_clone.rb:15:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/providers/virtualbox/action/customize.rb:40:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/providers/virtualbox/action/check_accessible.rb:18:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builder.rb:149:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/runner.rb:89:in `block in run'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/util/busy.rb:19:in `busy'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/runner.rb:89:in `run'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/call.rb:53:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/handle_box.rb:56:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builder.rb:149:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/runner.rb:89:in `block in run'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/util/busy.rb:19:in `busy'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/runner.rb:89:in `run'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/call.rb:53:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/providers/virtualbox/action/check_virtualbox.rb:26:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builtin/delayed.rb:19:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/warden.rb:48:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/builder.rb:149:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/runner.rb:89:in `block in run'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/util/busy.rb:19:in `busy'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/action/runner.rb:89:in `run'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/machine.rb:246:in `action_raw'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/machine.rb:215:in `block in action'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/environment.rb:614:in `lock'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/machine.rb:201:in `call'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/machine.rb:201:in `action'
        from /opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/lib/vagrant/batch_action.rb:86:in `block (2 levels) in run'
exit status 1
➜  example.com

And that’s where I am at currently. I’ve gone through this multiple times, attempting to find a solution. Sometimes I find a workaround but then when I finally get up and running and attempt to provision or deploy, I run into further issues.

I know that sometimes I annoy all of the pros here on this discourse with my problems but I’d simply just like to be able to use the tools here without so much headache.

I really do appreciate any help anyone might provide.

Thanks for providing the steps you took and all the version details. First off, even though all us developers use computers all day, it’s still really frustrating when things don’t work.

I am not saying this with any annoyance at all, but did you Google the error?

There’s only one error message in the logs you posted and it’s the first line in the stacktrace:

/opt/vagrant/embedded/gems/2.2.19/gems/vagrant-2.2.19/plugins/hosts/darwin/cap/path.rb:20:in `resolve_host_path': uninitialized constant VagrantPlugins::HostDarwin::Cap::Version (NameError)

I copy and pasted uninitialized constant VagrantPlugins::HostDarwin::Cap::Version into Google, and the very first result I got was a similar looking issue on Vagrant’s repo: vagrant 2.2.19 nfs folders uninitialized constant error on Mac OS · Issue #12583 · hashicorp/vagrant · GitHub

Reading through the issue, I learned a few things quickly:

  1. it’s a new issue affecting lots of people
  2. there’s already been a fix but it’s not released
  3. someone gives a command to fix it

Another option is downgrading to an older Vagrant version (I assume).

Could we (Roots) handle this bug better? Maybe, but we can’t know about every bug in new versions of software we depend upon. This is open source software so we do rely on our users to notify us when they run into issues (like you did!). In this case, we could adjust our documentation to say “use Vagrant >= 2.1 and <= 2.2.19” for example, but that would only be noticed by people setting up Trellis for the first time (or a case like yours trying to redo your setup).

I’ll look into doing exactly that. But I just wanted to make it clear that it’s not possible for us to proactively catch all these bugs so people will run into them.

A useful skill for any software developer is to learn how to troubleshoot. Sometimes that literally means just Googling for an error message.

1 Like

After downgrading slowly to:

Vagrant 2.2.14

My example.test project was able to boot up successfully.
I don’t understand this all on a level of many others but shouldn’t that be in the docs stating any version over this won’t work?

Since this completed succesfully, I brought up some projects I have and was able to boot them up fine with that version of Vagrant.

Then I attempted to provision a project and here’s the output:

TASK [common : Check whether passlib is needed] **********************
System info:
  Ansible 2.9.8; Darwin
  Trellis version (per changelog): "Fix #1284 - Update logrotate postrotate Nginx command"
---------------------------------------------------
Ansible on OS X requires python passlib module to create user password hashes

sudo easy_install pip
pip install passlib
fatal: [staging.project.com]: FAILED! => {"changed": false}

NO MORE HOSTS LEFT **********************

I attempt to run: sudo easy_install pip and here’s the output:


Searching for pip
Reading https://pypi.org/simple/pip/
Downloading https://files.pythonhosted.org/packages/da/f6/c83229dcc3635cdeb51874184241a9508ada15d8baa337a41093fab58011/pip-21.3.1.tar.gz#sha256=fd11ba3d0fdb4c07fbc5ecbba0b1b719809420f25038f8ee3cd913d3faa3033a
Best match: pip 21.3.1
Processing pip-21.3.1.tar.gz
Writing /tmp/easy_install-IvbKdL/pip-21.3.1/setup.cfg
Running pip-21.3.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-IvbKdL/pip-21.3.1/egg-dist-tmp-vxiLwg
Traceback (most recent call last):
  File "/usr/bin/easy_install", line 13, in <module>
    load_entry_point('setuptools==41.0.1', 'console_scripts', 'easy_install')()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/command/easy_install.py", line 2316, in main
    **kw
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/__init__.py", line 145, in setup
    return distutils.core.setup(**attrs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 151, in setup
    dist.run_commands()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/command/easy_install.py", line 418, in run
    self.easy_install(spec, not self.no_deps)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/command/easy_install.py", line 679, in easy_install
    return self.install_item(spec, dist.location, tmpdir, deps)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/command/easy_install.py", line 705, in install_item
    dists = self.install_eggs(spec, download, tmpdir)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/command/easy_install.py", line 890, in install_eggs
    return self.build_and_install(setup_script, setup_base)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/command/easy_install.py", line 1158, in build_and_install
    self.run_setup(setup_script, setup_base, args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/command/easy_install.py", line 1144, in run_setup
    run_setup(setup_script, args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/sandbox.py", line 253, in run_setup
    raise
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/contextlib.py", line 35, in __exit__
    self.gen.throw(type, value, traceback)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/sandbox.py", line 195, in setup_context
    yield
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/contextlib.py", line 35, in __exit__
    self.gen.throw(type, value, traceback)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/sandbox.py", line 166, in save_modules
    saved_exc.resume()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/sandbox.py", line 141, in resume
    six.reraise(type, exc, self._tb)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/sandbox.py", line 154, in save_modules
    yield saved
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/sandbox.py", line 195, in setup_context
    yield
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/sandbox.py", line 250, in run_setup
    _execfile(setup_script, ns)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/sandbox.py", line 44, in _execfile
    code = compile(script, filename, 'exec')
  File "/tmp/easy_install-IvbKdL/pip-21.3.1/setup.py", line 7
    def read(rel_path: str) -> str:
                     ^
SyntaxError: invalid syntax

Of course, I’ve tried many different available solutions and nothing is working.

:frowning_face: I specifically explained this above in my reply. We also couldn’t document something we didn’t know about. Our docs are open to contributions as well.

Some questions:

  1. Is this within the same project you created through trellis-cli by running trellis new? What version of trellis-cli?
  2. What command did you run to provision?

Some answers:

  1. you don’t need to run sudo easy_install pip since it looks like you already have pip installed (from your initial post) - yes, I realize that error message is a bit misleading and I’ll open an issue to rethink it
  2. it failed because newer versions of pip don’t support Python 2, and running sudo easy_install ran using Python 2 (you can see Python.framework/Versions/2.7 in the stacktrace)
  3. assuming your project was created with a relatively newer version of trellis-cli, and you ran trellis new (or trellis init) for an existing project, it should handle dependencies and install passlib for you

edit: issue for those error instructions: Improve passlib error instructions · Issue #1331 · roots/trellis · GitHub

Hey Scott, thanks for the response. I just want to say that I’ve been a member of this community since 2014 and although I don’t contribute much to the projects here, I am here because I love what these tools offer and appreciate everyone involved. I never intend to act entitled but… the great old internet. I know I don’t always explain myself that well and I’m happy I could help this time. I always Google. Hours of Google. I don’t always come up with a solution. I really only ask questions when I have zero options left and perhaps in this case I easily missed something. I’ll have a look tomorrow. I don’t just run into problems and immediately post them here but I’ve had a couple weeks of major problems and it’s been tough. I’m running my projects fine on my MacBook and I’ve cross checked software versions over and over. Seriously, all the love to all here.

Question time:

  1. No, different project.
  2. I ran trellis provision staging

Thoughts to answers time:

  1. Awesome, thanks!
  2. Thanks for clearing that up. I’m a doofus.
  3. The example.com project I started today came from a clean ssd, reinstall of Big Sur and the macOS Trellis docs.

I’ve ran trellis init recently on established projects but it would return an error. I don’t recall the error.
I just ran it again on an est. project and the command was succesful:

➜ trellis git:(staging) ✗ trellis init
Creating virtualenv in /Users/joshb/Development/trellis/trellis.project.build/trellis/.trellis/virtualenv
✓ Virtualenv created
Running command => pip install -r requirements.txt
⠴ Installing pip dependencies (pip install -r requirements.txt) ... ✓ Dependencies installed

Now I just ran trellis provision staging and I see this:

The conditional check 'not ansible_ssh_extra_args' failed. The error was:
error while evaluating conditional (not ansible_ssh_extra_args):
'ansible_ssh_extra_args' is undefined

The error appears to be in '/Users/joshb/Development/trellis/clearcom/tre
llis.project.build/trellis/roles/connection/tasks/main.yml': line 9,
column 3, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

- name: Specify preferred HostKeyAlgorithms for unknown hosts
^ here
fatal: [staging.project.com]: FAILED! => {}

And then a Google search returns this immediately. I’ll look into this.

Usually that error happens because Ansible 2.11 is used which Trellis is not yet compatible with. trellis-cli should ensure you get a supported Ansible version because it creates a virtualenv and runs pip install -r requirements.txt. That requirements file has the proper version constraints.

Can you run trellis exec ansible-playbook --version and show the output here please?

Hi, Scott, you bet.

Here’s the output for my established project:

ansible-playbook 2.10.16
  config file = /Users/joshb/Development/trellis/trellis.project.build/trellis/ansible.cfg
  configured module search path = ['/Users/joshb/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/joshb/Development/trellis/trellis.project.build/trellis/.trellis/virtualenv/lib/python3.9/site-packages/ansible
  executable location = /Users/joshb/Development/trellis/trellis.project.build/trellis/.trellis/virtualenv/bin/ansible-playbook
  python version = 3.9.9 (main, Nov 21 2021, 03:23:42) [Clang 13.0.0 (clang-1300.0.29.3)]

The requirements.txt file includes:

ansible>=2.8.0,<3.0
passlib

And for the example.com project:

ansible-playbook 2.10.16
  config file = /Users/joshb/Development/trellis/example.com/trellis/ansible.cfg
  configured module search path = ['/Users/joshb/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/joshb/Development/trellis/example.com/trellis/.trellis/virtualenv/lib/python3.9/site-packages/ansible
  executable location = /Users/joshb/Development/trellis/example.com/trellis/.trellis/virtualenv/bin/ansible-playbook
  python version = 3.9.9 (main, Nov 21 2021, 03:23:42) [Clang 13.0.0 (clang-1300.0.29.3)]

Now I am on another previously established project. I cloned the project down and ran trellis init and here’s the output:

➜ trellis git:(staging) ✗ trellis init
Creating virtualenv in /Users/joshb/Development/trellis/trellis.college.build/trellis/.trellis/virtualenv
✓ Virtualenv created
Running command => pip install -r requirements.txt
⠼ Installing pip dependencies (pip install -r requirements.txt) ... WARNING: You are using pip version 21.2.4; however, version 21.3.1 is available.
You should consider upgrading via the '/Users/joshb/Development/trellis/trellis.college.build/trellis/.trellis/virtualenv/bin/python3 -m pip install --upgrade pip' command.
⠴ Installing pip dependencies (pip install -r requirements.txt) ... ✓ Dependencies installed

Next I attempt to provision staging and get this warning:

Running command => ansible-playbook server.yml -e env=staging
[WARNING]: Your Ansible version is 2.10.16 but this version of Trellis has only
been tested for compatability with Ansible 2.8.0 -> 2.9.10. It is advisable to
check for Trellis updates or downgrade your Ansible version.

Running this command trellis exec ansible-playbook --version outputs:

ansible-playbook 2.10.16
  config file = /Users/joshb/Development/trellis/trellis.college.build/trellis/ansible.cfg
  configured module search path = ['/Users/joshb/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/joshb/Development/trellis/trellis.college.build/trellis/.trellis/virtualenv/lib/python3.9/site-packages/ansible
  executable location = /Users/joshb/Development/trellis/trellis.college.build/trellis/.trellis/virtualenv/bin/ansible-playbook
  python version = 3.9.9 (main, Dec  9 2021, 23:37:36) [Clang 12.0.5 (clang-1205.0.22.11)]

But running ansible --version ouputs:

ansible 2.9.10
  config file = /Users/joshb/Development/trellis/trellis.college.build/trellis/ansible.cfg
  configured module search path = ['/Users/joshb/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.9/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.9.9 (main, Nov 21 2021, 03:23:42) [Clang 13.0.0 (clang-1300.0.29.3)]

My requirements.txt file:

ansible>=2.8.0,<3.0
passlib

And after that warning is the error:

TASK [connection : Specify preferred HostKeyAlgorithms for unknown hosts] ******
System info:
  Ansible 2.10.16; Darwin
  Trellis version (per changelog): "Allow WP cron intervals to be configurable"
---------------------------------------------------
The conditional check 'not (not ansible_ssh_extra_args)' failed. The error
was: error while evaluating conditional (not (not ansible_ssh_extra_args)):
'ansible_ssh_extra_args' is undefined

The error appears to be in '/Users/joshb/Development/trellis/tr
ellis.college.build/trellis/roles/connection/tasks/main.yml': line 9,
column 3, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:


- name: Specify preferred HostKeyAlgorithms for unknown hosts
  ^ here
fatal: [staging.college.com]: FAILED! => {}

I were to guess if I took that warning into consideration and modified my requirements.txt file to use a specific version of ansible, then it would install the correct version but instead here’s the output:

ansible==2.9.10
passlib
➜  trellis git:(staging) ✗ trellis init                           
Creating virtualenv in /Users/joshb/Development/trellis/trellis.college.build/trellis/.trellis/virtualenv
✓ Virtualenv created
Running command => pip install -r requirements.txt
⠸ Installing pip dependencies (pip install -r requirements.txt) ... WARNING: You are using pip version 21.2.4; however, version 21.3.1 is available.
You should consider upgrading via the '/Users/joshb/Development/trellis/trellis.college.build/trellis/.trellis/virtualenv/bin/python3 -m pip install --upgrade pip' command.
✓ Dependencies installed

Next, checking the version via trellis exec ansible-playbook --version outputs an error:

ERROR! Unexpected Exception, this is probably a bug: cannot import name 'AnsibleCollectionLoader' from 'ansible.utils.collection_loader' (/Users/joshb/Development/trellis/trellis.college.build/trellis/.trellis/virtualenv/lib/python3.9/site-packages/ansible/utils/collection_loader/__init__.py)

I can revert back to the OG requirements.txt file and run trellis init again but I still receive that last error when attempting to check the version.

I was finally able to provision. What worked for me was to:

rm -rf /trellis/.trellis

Update my requirements.txt file to specify an exact version of ansible, in this case:

ansible==2.9.10
passlib

Run trellis init

Then check my trellis exec ansible-playbook --version:

ansible-playbook 2.9.10

and trellis provision staging now works.

3 Likes

I finally tracked down the problem you were having and it was confusing. Fix: Set default for ansible_ssh_extra_args by swalkinshaw · Pull Request #1333 · roots/trellis · GitHub

I’ve released a new version that sets stricter version constraints for ansible as well: Release v1.11.0 · roots/trellis · GitHub

What you did works too :+1:

3 Likes

This topic was automatically closed after 42 days. New replies are no longer allowed.