Roots Discourse

Vagrant up fails after moving Trellis onto new hardware

My coworker just started using a new computer, and his Trellis instance - which was working - is now failing at vagrant up with the following output:

default: Running ansible-playbook...
PLAY [Set ansible_python_interpreter] ******************************************
TASK [python_interpreter : Get Ubuntu release] *********************************
ok: [default]
TASK [python_interpreter : Set ansible_python_interpreter for Ubuntu 18.04 Bionic] ***
ok: [default]
PLAY [WordPress Server: Install LEMP Stack with PHP 7.3 and MariaDB MySQL] *****
TASK [Gathering Facts] *********************************************************
ok: [default]
TASK [common : Load wordpress_sites.yml vars into <env>_sites vars] ************
TASK [common : Fail if there are duplicate site keys within host's wordpress_sites] ***
TASK [common : Validate wordpress_sites] ***************************************
skipping: [default]
TASK [common : Validate format of site_hosts] **********************************
System info:
 Ansible 2.7.5; Vagrant 2.2.10; Darwin
 Trellis 1.0.0: December 27th, 2018
---------------------------------------------------
with_dict expects a dict
fatal: [default]: FAILED! => {}
	to retry, use: --limit @/Users/name/Documents/WEB/roots-hub/domain.com/trellis/dev.retry
PLAY RECAP *********************************************************************
default          : ok=3   changed=0  unreachable=0  failed=1  
/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/resource_tracker.py:216: UserWarning: resource_tracker: There appear to be 182 leaked semaphore objects to clean up at shutdown
 warnings.warn('resource_tracker: There appear to be %d '
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.

Looking in /trellis/group_vars/development/wordpress_sites.yml gives

wordpress_sites:
  domain.com:
    site_hosts:
      - canonical: domain.test
    local_path: ../site # path targeting local Bedrock site directory (relative to Ansible root)
    admin_email: email@gmail.com
    multisite:
      enabled: false
    ssl:
      enabled: false
      provider: self-signed
      hsts_max_age: 0
    cache:
      enabled: false

You will notice that this is using a very outdated version of Trellis - clearly not ideal but we have some blockers keeping us from updating for the moment. Given that reality, I’m hoping someone here could shed some light on this with_dict expects a dict error. I have this same Trellis project running fine on my own machine so it seems like the failure is due to the underlying system tools (as opposed to any settings/variables).

So far we’ve tried clearing /etc/exports, removing trellis/.vagrant and running vagrant destroy && vagrant up with no luck.

This is on macOS Big Sur 11.4 (20F71) (Intel).

1 Like

We were eventually able to get around this by upgrading to a more recent version of Trellis (v1.0 -> v.1.4.0). Still not sure what the hangup was but if I had to guess I’d say it was Ansible-related. Bumping to Trellis 1.4.0 allowed us to move to Ansible 2.8.x and clear up the with_dict expects a dict error.

2 Likes