Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@dva-ronald
Created May 23, 2023 17:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dva-ronald/45f01a8bacf49f6e89535ae31cb7d925 to your computer and use it in GitHub Desktop.
Save dva-ronald/45f01a8bacf49f6e89535ae31cb7d925 to your computer and use it in GitHub Desktop.
These are the logs from one of the test environments, which took 10 attempts to work.
Running command => limactl start --tty=false --name=test3.test /Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/test3.test.yml
Updating /etc/hosts file (sudo may be required, see `trellis vm sudoers` for more details)
Provisioning VM...
Starting galaxy role install process
- downloading role 'composer', owned by geerlingguy
- downloading role from https://github.com/geerlingguy/ansible-role-composer/archive/1.9.0.tar.gz
- extracting composer to /Users/USER/Developer/WPSites/test3.test/trellis/vendor/roles/composer
- composer (1.9.0) was installed successfully
- downloading role 'ntp', owned by geerlingguy
- downloading role from https://github.com/geerlingguy/ansible-role-ntp/archive/2.3.1.tar.gz
- extracting ntp to /Users/USER/Developer/WPSites/test3.test/trellis/vendor/roles/ntp
- ntp (2.3.1) was installed successfully
- downloading role 'logrotate', owned by nickhammond
- downloading role from https://github.com/nickhammond/ansible-logrotate/archive/v0.0.5.tar.gz
- extracting logrotate to /Users/USER/Developer/WPSites/test3.test/trellis/vendor/roles/logrotate
- logrotate (v0.0.5) was installed successfully
- downloading role 'swapfile', owned by oefenweb
- downloading role from https://github.com/Oefenweb/ansible-swapfile/archive/v2.0.36.tar.gz
- extracting swapfile to /Users/USER/Developer/WPSites/test3.test/trellis/vendor/roles/swapfile
- swapfile (v2.0.36) was installed successfully
- downloading role 'mailpit', owned by roots
- downloading role from https://github.com/roots/ansible-role-mailpit/archive/v1.0.0.tar.gz
- extracting mailpit to /Users/USER/Developer/WPSites/test3.test/trellis/vendor/roles/mailpit
- mailpit (v1.0.0) was installed successfully
Running command => ansible-playbook dev.yml --inventory-file=/Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/inventory -e env=development
PLAY [WordPress Server: Install LEMP Stack with PHP and MariaDB MySQL] *********
TASK [Gathering Facts] *********************************************************
ok: [default]
TASK [common : Load wordpress_sites.yml vars into <env>_sites vars] ************
skipping: [default] => (item=development) 
skipping: [default]
TASK [common : Fail if there are duplicate site keys within host's wordpress_sites] ***
skipping: [default]
TASK [common : Validate wordpress_sites] ***************************************
skipping: [default]
TASK [common : Validate format of site_hosts] **********************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [common : Import PHP version specific vars] *******************************
ok: [default]
TASK [common : Verify dict format for apt package component variables] *********
skipping: [default]
TASK [common : Verify dict format for apt package combined variables] **********
skipping: [default]
TASK [common : Validate Ubuntu version] ****************************************
skipping: [default]
TASK [common : Check whether passlib is needed] ********************************
skipping: [default]
TASK [common : Retrieve local SSH client's settings per host] ******************
ok: [default]
TASK [common : Validate compatible settings between SSH client and server] *****
ok: [default] => {
 "changed": false,
 "msg": "All assertions passed"
}
TASK [common : Update apt packages] ********************************************
changed: [default]
TASK [common : Checking essentials] ********************************************
changed: [default] => (item=build-essential)
ok: [default] => (item=curl)
ok: [default] => (item=dbus)
changed: [default] => (item=ghostscript)
ok: [default] => (item=git)
changed: [default] => (item=imagemagick)
changed: [default] => (item=libgs-dev)
changed: [default] => (item=libnss-myhostname)
ok: [default] => (item=python3)
ok: [default] => (item=python3-software-properties)
changed: [default] => (item=python3-mysqldb)
changed: [default] => (item=python3-pycurl)
changed: [default] => (item=unzip)
TASK [common : Validate timezone variable] *************************************
ok: [default]
TASK [common : Explain timezone error] *****************************************
skipping: [default]
TASK [common : Add myhostname to nsswitch.conf to ensure resolvable hostname] ***
ok: [default]
TASK [common : Generate SSH key for vagrant user for ansible_local provisioning] ***
skipping: [default]
TASK [common : Retrieve SSH client IP] *****************************************
skipping: [default]
TASK [common : Restrict journal log size] **************************************
changed: [default]
TASK [fail2ban : ensure fail2ban is installed] *********************************
changed: [default]
TASK [fail2ban : ensure fail2ban is configured] ********************************
changed: [default] => (item=jail.local)
changed: [default] => (item=fail2ban.local)
TASK [fail2ban : Check if fail2ban_filter_templates_path exists] ***************
ok: [default -> localhost]
TASK [fail2ban : build list of fail2ban filter templates] **********************
ok: [default -> localhost]
TASK [fail2ban : ensure configuration directory exists] ************************
ok: [default]
TASK [fail2ban : template fail2ban filters] ************************************
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-xmlrpc.conf.j2)
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-wp-login.conf.j2)
TASK [fail2ban : ensure fail2ban starts on a fresh reboot] *********************
changed: [default]
TASK [ferm : ensure ferm status is in debconf] *********************************
changed: [default]
TASK [ferm : ensure ferm is installed] *****************************************
changed: [default]
TASK [ferm : ensure configuration directories exist] ***************************
changed: [default] => (item=/etc/ferm/ferm.d)
changed: [default] => (item=/etc/ferm/filter-input.d)
TASK [ferm : ensure firewall is configured] ************************************
changed: [default] => (item=etc/default/ferm)
changed: [default] => (item=etc/ferm/ferm.conf)
TASK [ferm : ensure iptables INPUT rules are removed] **************************
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'}) 
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']}) 
skipping: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20}) 
skipping: [default]
TASK [ferm : ensure iptables INPUT rules are added] ****************************
changed: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'})
changed: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']})
changed: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20})
TASK [ferm : ensure iptables rules are enabled] ********************************
skipping: [default]
TASK [ferm : ensure iptables rules are disabled] *******************************
ok: [default]
TASK [ntp : Include OS-specific variables.] ************************************
ok: [default]
TASK [ntp : Set the ntp_driftfile variable.] ***********************************
ok: [default]
TASK [ntp : Set the ntp_package variable.] *************************************
ok: [default]
TASK [ntp : Set the ntp_config_file variable.] *********************************
ok: [default]
TASK [ntp : Set the ntp_daemon variable.] **************************************
ok: [default]
TASK [ntp : Ensure NTP package is installed.] **********************************
changed: [default]
TASK [ntp : Ensure tzdata package is installed (Linux).] ***********************
ok: [default]
TASK [ntp : Set timezone.] *****************************************************
ok: [default]
TASK [ntp : Populate service facts.] *******************************************
ok: [default]
TASK [ntp : Disable systemd-timesyncd if it's running but ntp is enabled.] *****
ok: [default]
TASK [ntp : Ensure NTP is running and enabled as configured.] ******************
ok: [default]
TASK [ntp : Ensure NTP is stopped and disabled as configured.] *****************
skipping: [default]
TASK [ntp : Generate ntp configuration file.] **********************************
changed: [default]
TASK [sshd : Ensure latest SSH server and client are installed] ****************
ok: [default] => (item=openssh-server)
ok: [default] => (item=openssh-client)
TASK [sshd : Create a secure sshd_config] **************************************
changed: [default]
TASK [sshd : Create a secure ssh_config] ***************************************
changed: [default]
TASK [sshd : Remove Diffie-Hellman moduli of size < 2000] **********************
ok: [default]
TASK [mariadb : Add MariaDB APT key] *******************************************
changed: [default]
TASK [mariadb : Add MariaDB PPA] ***********************************************
changed: [default]
TASK [mariadb : Install MySQL client] ******************************************
changed: [default]
TASK [mariadb : Install MySQL server] ******************************************
changed: [default]
TASK [mariadb : Disable MariaDB binary logging] ********************************
changed: [default]
TASK [mariadb : Copy .my.cnf file with root password credentials.] *************
changed: [default]
TASK [mariadb : Set root user password] ****************************************
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default]
TASK [mariadb : Delete anonymous MySQL server users] ***************************
ok: [default] => (item=None)
ok: [default] => (item=None)
ok: [default] => (item=None)
ok: [default]
TASK [mariadb : Remove the test database] **************************************
ok: [default]
TASK [mailpit : Ensure mailpit install directory exists.] **********************
changed: [default]
TASK [mailpit : Download and install mailpit binary] ***************************
changed: [default]
TASK [mailpit : Copy mailpit systemd unit file into place] *********************
changed: [default]
TASK [mailpit : Ensure mailpit is enabled and will start on boot] **************
changed: [default]
TASK [php : Add PHP PPA] *******************************************************
changed: [default]
TASK [php : Install PHP and extensions] ****************************************
changed: [default] => (item=php8.1-bcmath)
changed: [default] => (item=php8.1-cli)
changed: [default] => (item=php8.1-curl)
changed: [default] => (item=php8.1-dev)
changed: [default] => (item=php8.1-fpm)
changed: [default] => (item=php8.1-imagick)
changed: [default] => (item=php8.1-intl)
changed: [default] => (item=php8.1-mbstring)
changed: [default] => (item=php8.1-mysql)
changed: [default] => (item=php8.1-xml)
changed: [default] => (item=php8.1-xmlrpc)
changed: [default] => (item=php8.1-zip)
TASK [php : Ensure correct PHP version selected] *******************************
ok: [default]
TASK [php : Find existing php fpm services] ************************************
ok: [default]
TASK [php : Stop old php-fpm services] *****************************************
skipping: [default]
TASK [php : Start php fpm service] *********************************************
ok: [default]
TASK [php : Copy PHP-FPM configuration file] ***********************************
changed: [default]
TASK [php : Copy PHP CLI configuration file] ***********************************
changed: [default]
TASK [php : Change ImageMagick policy.xml to allow for PDFs] *******************
changed: [default]
TASK [xdebug : Include php8.1 related vars] ************************************
ok: [default]
TASK [xdebug : Install Xdebug] *************************************************
changed: [default]
TASK [xdebug : Template the Xdebug configuration file] *************************
changed: [default]
TASK [xdebug : Ensure 20-xdebug.ini is present] ********************************
ok: [default]
TASK [xdebug : Disable Xdebug CLI] *********************************************
changed: [default]
TASK [memcached : Install memcached] *******************************************
changed: [default] => (item=memcached)
changed: [default] => (item=php8.1-memcached)
TASK [memcached : Copy the client configuration file] **************************
changed: [default]
TASK [memcached : Set the max open file descriptors] ***************************
changed: [default]
TASK [memcached : Start the memcached service] *********************************
ok: [default]
TASK [nginx : Add Nginx APT key] ***********************************************
changed: [default]
TASK [nginx : Add Nginx PPA] ***************************************************
changed: [default]
TASK [nginx : Install Nginx] ***************************************************
changed: [default]
TASK [nginx : Ensure site directories exist] ***********************************
changed: [default] => (item=sites-available)
changed: [default] => (item=sites-enabled)
TASK [nginx : Create SSL directory] ********************************************
changed: [default]
TASK [nginx : Copy h5bp configs] ***********************************************
changed: [default]
TASK [nginx : Create nginx.conf] ***********************************************
changed: [default]
TASK [nginx : Disable default server] ******************************************
ok: [default]
TASK [nginx : Enable Nginx to start on boot] ***********************************
changed: [default]
TASK [logrotate : nickhammond.logrotate | Install logrotate] *******************
ok: [default]
TASK [logrotate : nickhammond.logrotate | Setup logrotate.d scripts] ***********
changed: [default] => (item={'name': 'wordpress-sites', 'path': '/srv/www/**/logs/*.log', 'options': ['weekly', 'maxsize 50M', 'missingok', 'rotate 8', 'compress', 'delaycompress', 'notifempty', 'create 0640 USER www-data', 'sharedscripts'], 'scripts': {'prerotate': 'if [ -d /etc/logrotate.d/httpd-prerotate ]; then \\\n run-parts /etc/logrotate.d/httpd-prerotate; \\\n fi \\\n', 'postrotate': 'service nginx reload >/dev/null 2>&1'}})
TASK [composer : Set php_executable variable to a default if not defined.] *****
ok: [default]
TASK [composer : Check if Composer is installed.] ******************************
ok: [default]
TASK [composer : Get Composer installer signature.] ****************************
ok: [default]
TASK [composer : Download Composer installer.] *********************************
changed: [default]
TASK [composer : Run Composer installer.] **************************************
changed: [default]
TASK [composer : Move Composer into globally-accessible location.] *************
changed: [default]
TASK [composer : Update Composer to latest version (if configured).] ***********
fatal: [default]: FAILED! => {"changed": false, "cmd": ["php", "/usr/local/bin/composer", "self-update", "--2"], "delta": "0:00:00.117303", "end": "2023-05-22 18:34:56.342344", "msg": "non-zero return code", "rc": 1, "start": "2023-05-22 18:34:56.225041", "stderr": "Composer plugins have been disabled for safety in this non-interactive session. Set COMPOSER_ALLOW_SUPERUSER=1 if you want to allow plugins to run as root/super user.\nPHP temp directory (/tmp) does not exist or is not writable to Composer. Set sys_temp_dir in your php.ini\n\nIn Versions.php line 77:\n \n file_put_contents(/root/.config/composer/update-channel): Failed to open st \n ream: Read-only file system \n \n\nself-update [-r|--rollback] [--clean-backups] [--no-progress] [--update-keys] [--stable] [--preview] [--snapshot] [--1] [--2] [--2.2] [--set-channel-only] [--] [<version>]", "stderr_lines": ["Composer plugins have been disabled for safety in this non-interactive session. Set COMPOSER_ALLOW_SUPERUSER=1 if you want to allow plugins to run as root/super user.", "PHP temp directory (/tmp) does not exist or is not writable to Composer. Set sys_temp_dir in your php.ini", "", "In Versions.php line 77:", " ", " file_put_contents(/root/.config/composer/update-channel): Failed to open st ", " ream: Read-only file system ", " ", "", "self-update [-r|--rollback] [--clean-backups] [--no-progress] [--update-keys] [--stable] [--preview] [--snapshot] [--1] [--2] [--2.2] [--set-channel-only] [--] [<version>]"], "stdout": "", "stdout_lines": []}
RUNNING HANDLER [common : restart memcached] ***********************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: FileNotFoundError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/home/USER.linux']
fatal: [default]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n File \"<stdin>\", line 107, in <module>\n File \"<stdin>\", line 92, in _ansiballz_main\n File \"/usr/lib/python3.10/tempfile.py\", line 496, in mkdtemp\n prefix, suffix, dir, output_type = _sanitize_params(prefix, suffix, dir)\n File \"/usr/lib/python3.10/tempfile.py\", line 265, in _sanitize_params\n dir = gettempdir()\n File \"/usr/lib/python3.10/tempfile.py\", line 438, in gettempdir\n return _os.fsdecode(_gettempdir())\n File \"/usr/lib/python3.10/tempfile.py\", line 431, in _gettempdir\n tempdir = _get_default_tempdir()\n File \"/usr/lib/python3.10/tempfile.py\", line 362, in _get_default_tempdir\n raise FileNotFoundError(_errno.ENOENT,\nFileNotFoundError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/home/USER.linux']\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
PLAY RECAP *********************************************************************
default : ok=85  changed=50  unreachable=0 failed=2  skipped=15  rescued=0 ignored=0
Running command => limactl start --tty=false --name=test3.test /Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/test3.test.yml
Updating /etc/hosts file (sudo may be required, see `trellis vm sudoers` for more details)
Provisioning VM...
Starting galaxy role install process
- composer (1.9.0) is already installed, skipping.
- ntp (2.3.1) is already installed, skipping.
- logrotate (v0.0.5) is already installed, skipping.
- swapfile (v2.0.36) is already installed, skipping.
- mailpit (v1.0.0) is already installed, skipping.
Running command => ansible-playbook dev.yml --inventory-file=/Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/inventory -e env=development
PLAY [WordPress Server: Install LEMP Stack with PHP and MariaDB MySQL] *********
TASK [Gathering Facts] *********************************************************
ok: [default]
TASK [common : Load wordpress_sites.yml vars into <env>_sites vars] ************
skipping: [default] => (item=development) 
skipping: [default]
TASK [common : Fail if there are duplicate site keys within host's wordpress_sites] ***
skipping: [default]
TASK [common : Validate wordpress_sites] ***************************************
skipping: [default]
TASK [common : Validate format of site_hosts] **********************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [common : Import PHP version specific vars] *******************************
ok: [default]
TASK [common : Verify dict format for apt package component variables] *********
skipping: [default]
TASK [common : Verify dict format for apt package combined variables] **********
skipping: [default]
TASK [common : Validate Ubuntu version] ****************************************
skipping: [default]
TASK [common : Check whether passlib is needed] ********************************
skipping: [default]
TASK [common : Retrieve local SSH client's settings per host] ******************
ok: [default]
TASK [common : Validate compatible settings between SSH client and server] *****
ok: [default] => {
 "changed": false,
 "msg": "All assertions passed"
}
TASK [common : Update apt packages] ********************************************
changed: [default]
TASK [common : Checking essentials] ********************************************
changed: [default] => (item=build-essential)
ok: [default] => (item=curl)
ok: [default] => (item=dbus)
changed: [default] => (item=ghostscript)
ok: [default] => (item=git)
changed: [default] => (item=imagemagick)
changed: [default] => (item=libgs-dev)
changed: [default] => (item=libnss-myhostname)
ok: [default] => (item=python3)
ok: [default] => (item=python3-software-properties)
changed: [default] => (item=python3-mysqldb)
changed: [default] => (item=python3-pycurl)
changed: [default] => (item=unzip)
TASK [common : Validate timezone variable] *************************************
ok: [default]
TASK [common : Explain timezone error] *****************************************
skipping: [default]
TASK [common : Add myhostname to nsswitch.conf to ensure resolvable hostname] ***
ok: [default]
TASK [common : Generate SSH key for vagrant user for ansible_local provisioning] ***
skipping: [default]
TASK [common : Retrieve SSH client IP] *****************************************
skipping: [default]
TASK [common : Restrict journal log size] **************************************
changed: [default]
TASK [fail2ban : ensure fail2ban is installed] *********************************
changed: [default]
TASK [fail2ban : ensure fail2ban is configured] ********************************
changed: [default] => (item=jail.local)
changed: [default] => (item=fail2ban.local)
TASK [fail2ban : Check if fail2ban_filter_templates_path exists] ***************
ok: [default -> localhost]
TASK [fail2ban : build list of fail2ban filter templates] **********************
ok: [default -> localhost]
TASK [fail2ban : ensure configuration directory exists] ************************
ok: [default]
TASK [fail2ban : template fail2ban filters] ************************************
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-xmlrpc.conf.j2)
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-wp-login.conf.j2)
TASK [fail2ban : ensure fail2ban starts on a fresh reboot] *********************
changed: [default]
TASK [ferm : ensure ferm status is in debconf] *********************************
changed: [default]
TASK [ferm : ensure ferm is installed] *****************************************
changed: [default]
TASK [ferm : ensure configuration directories exist] ***************************
changed: [default] => (item=/etc/ferm/ferm.d)
changed: [default] => (item=/etc/ferm/filter-input.d)
TASK [ferm : ensure firewall is configured] ************************************
changed: [default] => (item=etc/default/ferm)
changed: [default] => (item=etc/ferm/ferm.conf)
TASK [ferm : ensure iptables INPUT rules are removed] **************************
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'}) 
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']}) 
skipping: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20}) 
skipping: [default]
TASK [ferm : ensure iptables INPUT rules are added] ****************************
changed: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'})
changed: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']})
changed: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20})
TASK [ferm : ensure iptables rules are enabled] ********************************
skipping: [default]
TASK [ferm : ensure iptables rules are disabled] *******************************
ok: [default]
TASK [ntp : Include OS-specific variables.] ************************************
ok: [default]
TASK [ntp : Set the ntp_driftfile variable.] ***********************************
ok: [default]
TASK [ntp : Set the ntp_package variable.] *************************************
ok: [default]
TASK [ntp : Set the ntp_config_file variable.] *********************************
ok: [default]
TASK [ntp : Set the ntp_daemon variable.] **************************************
ok: [default]
TASK [ntp : Ensure NTP package is installed.] **********************************
changed: [default]
TASK [ntp : Ensure tzdata package is installed (Linux).] ***********************
ok: [default]
TASK [ntp : Set timezone.] *****************************************************
ok: [default]
TASK [ntp : Populate service facts.] *******************************************
ok: [default]
TASK [ntp : Disable systemd-timesyncd if it's running but ntp is enabled.] *****
ok: [default]
TASK [ntp : Ensure NTP is running and enabled as configured.] ******************
ok: [default]
TASK [ntp : Ensure NTP is stopped and disabled as configured.] *****************
skipping: [default]
TASK [ntp : Generate ntp configuration file.] **********************************
changed: [default]
TASK [sshd : Ensure latest SSH server and client are installed] ****************
ok: [default] => (item=openssh-server)
ok: [default] => (item=openssh-client)
TASK [sshd : Create a secure sshd_config] **************************************
changed: [default]
TASK [sshd : Create a secure ssh_config] ***************************************
changed: [default]
TASK [sshd : Remove Diffie-Hellman moduli of size < 2000] **********************
ok: [default]
TASK [mariadb : Add MariaDB APT key] *******************************************
changed: [default]
TASK [mariadb : Add MariaDB PPA] ***********************************************
changed: [default]
TASK [mariadb : Install MySQL client] ******************************************
changed: [default]
TASK [mariadb : Install MySQL server] ******************************************
changed: [default]
TASK [mariadb : Disable MariaDB binary logging] ********************************
changed: [default]
TASK [mariadb : Copy .my.cnf file with root password credentials.] *************
changed: [default]
TASK [mariadb : Set root user password] ****************************************
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default]
TASK [mariadb : Delete anonymous MySQL server users] ***************************
ok: [default] => (item=None)
ok: [default] => (item=None)
ok: [default] => (item=None)
ok: [default]
TASK [mariadb : Remove the test database] **************************************
ok: [default]
TASK [mailpit : Ensure mailpit install directory exists.] **********************
changed: [default]
TASK [mailpit : Download and install mailpit binary] ***************************
changed: [default]
TASK [mailpit : Copy mailpit systemd unit file into place] *********************
changed: [default]
TASK [mailpit : Ensure mailpit is enabled and will start on boot] **************
changed: [default]
TASK [php : Add PHP PPA] *******************************************************
changed: [default]
TASK [php : Install PHP and extensions] ****************************************
changed: [default] => (item=php8.1-bcmath)
changed: [default] => (item=php8.1-cli)
changed: [default] => (item=php8.1-curl)
changed: [default] => (item=php8.1-dev)
changed: [default] => (item=php8.1-fpm)
changed: [default] => (item=php8.1-imagick)
changed: [default] => (item=php8.1-intl)
changed: [default] => (item=php8.1-mbstring)
changed: [default] => (item=php8.1-mysql)
changed: [default] => (item=php8.1-xml)
changed: [default] => (item=php8.1-xmlrpc)
changed: [default] => (item=php8.1-zip)
TASK [php : Ensure correct PHP version selected] *******************************
ok: [default]
TASK [php : Find existing php fpm services] ************************************
ok: [default]
TASK [php : Stop old php-fpm services] *****************************************
skipping: [default]
TASK [php : Start php fpm service] *********************************************
ok: [default]
TASK [php : Copy PHP-FPM configuration file] ***********************************
changed: [default]
TASK [php : Copy PHP CLI configuration file] ***********************************
changed: [default]
TASK [php : Change ImageMagick policy.xml to allow for PDFs] *******************
changed: [default]
TASK [xdebug : Include php8.1 related vars] ************************************
ok: [default]
TASK [xdebug : Install Xdebug] *************************************************
changed: [default]
TASK [xdebug : Template the Xdebug configuration file] *************************
changed: [default]
TASK [xdebug : Ensure 20-xdebug.ini is present] ********************************
ok: [default]
TASK [xdebug : Disable Xdebug CLI] *********************************************
changed: [default]
TASK [memcached : Install memcached] *******************************************
changed: [default] => (item=memcached)
changed: [default] => (item=php8.1-memcached)
TASK [memcached : Copy the client configuration file] **************************
changed: [default]
TASK [memcached : Set the max open file descriptors] ***************************
changed: [default]
TASK [memcached : Start the memcached service] *********************************
ok: [default]
TASK [nginx : Add Nginx APT key] ***********************************************
changed: [default]
TASK [nginx : Add Nginx PPA] ***************************************************
changed: [default]
TASK [nginx : Install Nginx] ***************************************************
changed: [default]
TASK [nginx : Ensure site directories exist] ***********************************
changed: [default] => (item=sites-available)
changed: [default] => (item=sites-enabled)
TASK [nginx : Create SSL directory] ********************************************
changed: [default]
TASK [nginx : Copy h5bp configs] ***********************************************
changed: [default]
TASK [nginx : Create nginx.conf] ***********************************************
changed: [default]
TASK [nginx : Disable default server] ******************************************
ok: [default]
TASK [nginx : Enable Nginx to start on boot] ***********************************
changed: [default]
TASK [logrotate : nickhammond.logrotate | Install logrotate] *******************
ok: [default]
TASK [logrotate : nickhammond.logrotate | Setup logrotate.d scripts] ***********
changed: [default] => (item={'name': 'wordpress-sites', 'path': '/srv/www/**/logs/*.log', 'options': ['weekly', 'maxsize 50M', 'missingok', 'rotate 8', 'compress', 'delaycompress', 'notifempty', 'create 0640 USER www-data', 'sharedscripts'], 'scripts': {'prerotate': 'if [ -d /etc/logrotate.d/httpd-prerotate ]; then \\\n run-parts /etc/logrotate.d/httpd-prerotate; \\\n fi \\\n', 'postrotate': 'service nginx reload >/dev/null 2>&1'}})
TASK [composer : Set php_executable variable to a default if not defined.] *****
ok: [default]
TASK [composer : Check if Composer is installed.] ******************************
ok: [default]
TASK [composer : Get Composer installer signature.] ****************************
ok: [default]
TASK [composer : Download Composer installer.] *********************************
changed: [default]
TASK [composer : Run Composer installer.] **************************************
changed: [default]
TASK [composer : Move Composer into globally-accessible location.] *************
changed: [default]
TASK [composer : Update Composer to latest version (if configured).] ***********
ok: [default]
TASK [composer : Ensure composer directory exists.] ****************************
changed: [default]
TASK [composer : Add GitHub OAuth token for Composer (if configured).] *********
skipping: [default]
TASK [composer : include_tasks] ************************************************
skipping: [default]
TASK [composer : include_tasks] ************************************************
skipping: [default]
TASK [wp-cli : Ensure gpg2 is installed] ***************************************
changed: [default]
TASK [wp-cli : Download WP-CLI Phar] *******************************************
changed: [default]
TASK [wp-cli : Download WP-CLI Phar Signature] *********************************
changed: [default]
TASK [wp-cli : Copy WP-CLI release team public key] ****************************
changed: [default]
TASK [wp-cli : Check GPG signature] ********************************************
ok: [default]
TASK [wp-cli : Install WP-CLI] *************************************************
changed: [default]
TASK [wp-cli : Retrieve WP-CLI tab completions] ********************************
changed: [default]
TASK [wp-cli : Install WP-CLI tab completions] *********************************
changed: [default]
TASK [wp-cli : Install WP-CLI packages] ****************************************
changed: [default] => (item=aaemnnosttv/wp-cli-login-command)
TASK [wordpress-setup : Create databases for sites] ****************************
changed: [default] => (item=None)
changed: [default]
TASK [wordpress-setup : Create/assign database user to db and grant permissions] ***
changed: [default] => (item=None)
changed: [default]
TASK [wordpress-setup : Ensure openssl configs directory are present] **********
changed: [default]
TASK [wordpress-setup : Template openssl configs] ******************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [wordpress-setup : Generate self-signed certificates] *********************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [wordpress-setup : Clean up openssl configs directory] ********************
changed: [default]
TASK [wordpress-setup : Download client cert] **********************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [wordpress-setup : Create web root] ***************************************
changed: [default]
TASK [wordpress-setup : Create logs folder of sites] ***************************
changed: [default] => (item=test3.test)
TASK [wordpress-setup : Create WordPress php-fpm configuration file] ***********
changed: [default]
TASK [wordpress-setup : Disable default PHP-FPM pool] **************************
changed: [default]
TASK [wordpress-setup : stat] **************************************************
ok: [default -> localhost]
TASK [wordpress-setup : Build list of Nginx includes templates] ****************
skipping: [default]
TASK [wordpress-setup : Create includes.d directories] *************************
skipping: [default]
TASK [wordpress-setup : Template files out to includes.d] **********************
skipping: [default]
TASK [wordpress-setup : stat] **************************************************
ok: [default]
TASK [wordpress-setup : Retrieve list of existing files in includes.d] *********
skipping: [default]
TASK [wordpress-setup : Remove unmanaged files from includes.d] ****************
skipping: [default]
TASK [wordpress-setup : Copy SSL cert] *****************************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [wordpress-setup : Copy SSL key] ******************************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [wordpress-setup : disable temporary challenge sites] *********************
ok: [default] => (item=test3.test)
TASK [wordpress-setup : Create Nginx available sites] **************************
changed: [default] => (item={'src': 'no-default.conf.j2'})
skipping: [default] => (item={'src': 'ssl.no-default.conf.j2', 'enabled': False}) 
TASK [wordpress-setup : Disable Nginx sites] ***********************************
skipping: [default] => (item={'src': 'no-default.conf.j2'}) 
ok: [default] => (item={'src': 'ssl.no-default.conf.j2', 'enabled': False})
TASK [wordpress-setup : Enable Nginx sites] ************************************
changed: [default] => (item={'src': 'no-default.conf.j2'})
skipping: [default] => (item={'src': 'ssl.no-default.conf.j2', 'enabled': False}) 
TASK [wordpress-setup : Create Nginx conf for challenges location] *************
changed: [default]
TASK [wordpress-setup : Create WordPress configuration for Nginx] **************
changed: [default] => (item=test3.test)
TASK [wordpress-setup : Enable WordPress site] *********************************
changed: [default] => (item=test3.test)
TASK [wordpress-setup : Setup WP system cron] **********************************
changed: [default] => (item=test3.test)
TASK [wordpress-setup : Setup WP Multisite system cron] ************************
ok: [default] => (item=test3.test)
TASK [wordpress-install : Create web root of sites] ****************************
changed: [default] => (item=test3.test)
TASK [wordpress-install : Create shared folder of sites] ***********************
changed: [default] => (item=test3.test)
TASK [wordpress-install : Change site owner to user] ***************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [wordpress-install : Create .env file] ************************************
changed: [default] => (item=test3.test)
TASK [wordpress-install : Copy .env file into web root] ************************
changed: [default] => (item=test3.test)
TASK [wordpress-install : Add known_hosts] *************************************
changed: [default] => (item=github.com)
changed: [default] => (item=github.com)
changed: [default] => (item=bitbucket.org)
changed: [default] => (item=gitlab.com)
changed: [default] => (item=gitlab.com)
TASK [wordpress-install : include_tasks] ***************************************
included: /Users/USER/Developer/WPSites/test3.test/trellis/roles/wordpress-install/tasks/composer-authentications.yml for default => (item=(censored due to no_log))
TASK [wordpress-install : Setup composer authentications (HTTP Basic) - {'key': 'test3.test', 'value': {'site_hosts': [{'canonical': 'test3.test', 'redirects': ['www.test3.test']}], 'local_path': '..', 'public_path': 'public', 'upload_path': 'content/uploads', 'admin_email': 'admin@test3.test', 'multisite': {'enabled': False}, 'ssl': {'enabled': False, 'provider': 'self-signed'}, 'cache': {'enabled': False}, 'xmlrpc': {'enabled': False}}}] ***
skipping: [default]
TASK [wordpress-install : Setup composer authentications (BitBucket OAuth) - {'key': 'test3.test', 'value': {'site_hosts': [{'canonical': 'test3.test', 'redirects': ['www.test3.test']}], 'local_path': '..', 'public_path': 'public', 'upload_path': 'content/uploads', 'admin_email': 'admin@test3.test', 'multisite': {'enabled': False}, 'ssl': {'enabled': False, 'provider': 'self-signed'}, 'cache': {'enabled': False}, 'xmlrpc': {'enabled': False}}}] ***
skipping: [default]
TASK [wordpress-install : Setup composer authentications (Other Tokens) - {'key': 'test3.test', 'value': {'site_hosts': [{'canonical': 'test3.test', 'redirects': ['www.test3.test']}], 'local_path': '..', 'public_path': 'public', 'upload_path': 'content/uploads', 'admin_email': 'admin@test3.test', 'multisite': {'enabled': False}, 'ssl': {'enabled': False, 'provider': 'self-signed'}, 'cache': {'enabled': False}, 'xmlrpc': {'enabled': False}}}] ***
skipping: [default]
TASK [wordpress-install : Install Dependencies with Composer] ******************
ok: [default] => (item=test3.test)
TASK [wordpress-install : Install WP] ******************************************
changed: [default] => (item=test3.test)
TASK [wordpress-install : Setup Permalink Structure] ***************************
changed: [default] => (item={'changed': True, 'stdout': 'Success: WordPress installed successfully.', 'stderr': '', 'rc': 0, 'cmd': ['wp', 'core', 'install', '--allow-root', '--url=http://test3.test', '--title=test3.test', '--admin_user=admin', '--admin_password=admin', '--admin_email=admin@test3.test'], 'start': '2023-05-22 20:20:34.591028', 'end': '2023-05-22 20:20:38.000598', 'delta': '0:00:03.409570', 'msg': '', 'invocation': {'module_args': {'chdir': '/srv/www/test3.test/current/', '_raw_params': 'wp core install --allow-root --url="http://test3.test" --title="test3.test" --admin_user="admin" --admin_password="admin" --admin_email="admin@test3.test"', '_uses_shell': False, 'stdin_add_newline': True, 'strip_empty_ends': True, 'argv': None, 'executable': None, 'creates': None, 'removes': None, 'stdin': None}}, 'stdout_lines': ['Success: WordPress installed successfully.'], 'stderr_lines': [], 'failed': False, 'item': {'key': 'test3.test', 'value': {'site_hosts': [{'canonical': 'test3.test', 'redirects': ['www.test3.test']}], 'local_path': '..', 'public_path': 'public', 'upload_path': 'content/uploads', 'admin_email': 'admin@test3.test', 'multisite': {'enabled': False}, 'ssl': {'enabled': False, 'provider': 'self-signed'}, 'cache': {'enabled': False}, 'xmlrpc': {'enabled': False}}}, 'ansible_loop_var': 'item'})
TASK [wordpress-install : Update WP Multisite Home URL] ************************
skipping: [default] => (item=test3.test) 
skipping: [default]
RUNNING HANDLER [common : restart memcached] ***********************************
changed: [default]
RUNNING HANDLER [common : reload php-fpm] **************************************
changed: [default]
RUNNING HANDLER [common : restart journald] ************************************
changed: [default]
RUNNING HANDLER [common : reload nginx] ****************************************
changed: [default]
RUNNING HANDLER [common : perform nginx reload] ********************************
changed: [default]
RUNNING HANDLER [fail2ban : restart fail2ban] **********************************
changed: [default]
RUNNING HANDLER [ferm : restart ferm] ******************************************
skipping: [default]
RUNNING HANDLER [ntp : restart ntp] ********************************************
changed: [default]
RUNNING HANDLER [sshd : restart ssh] *******************************************
changed: [default]
RUNNING HANDLER [mariadb : restart mysql server] *******************************
changed: [default]
PLAY RECAP *********************************************************************
default : ok=133  changed=89  unreachable=0 failed=0 skipped=34  rescued=0 ignored=0
Your Trellis VM is ready to use!
* Composer and WP-CLI commands need to be run on the virtual machine for any post-provision modifications.
* You can SSH into the machine with 'trellis vm shell'
* Then navigate to your WordPress sites at '/srv/www'
Running command => limactl start --tty=false --name=test3.test /Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/test3.test.yml
Updating /etc/hosts file (sudo may be required, see `trellis vm sudoers` for more details)
Provisioning VM...
Starting galaxy role install process
- composer (1.9.0) is already installed, skipping.
- ntp (2.3.1) is already installed, skipping.
- logrotate (v0.0.5) is already installed, skipping.
- swapfile (v2.0.36) is already installed, skipping.
- mailpit (v1.0.0) is already installed, skipping.
Running command => ansible-playbook dev.yml --inventory-file=/Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/inventory -e env=development
PLAY [WordPress Server: Install LEMP Stack with PHP and MariaDB MySQL] *********
TASK [Gathering Facts] *********************************************************
ok: [default]
TASK [common : Load wordpress_sites.yml vars into <env>_sites vars] ************
skipping: [default] => (item=development) 
skipping: [default]
TASK [common : Fail if there are duplicate site keys within host's wordpress_sites] ***
skipping: [default]
TASK [common : Validate wordpress_sites] ***************************************
skipping: [default]
TASK [common : Validate format of site_hosts] **********************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [common : Import PHP version specific vars] *******************************
ok: [default]
TASK [common : Verify dict format for apt package component variables] *********
skipping: [default]
TASK [common : Verify dict format for apt package combined variables] **********
skipping: [default]
TASK [common : Validate Ubuntu version] ****************************************
skipping: [default]
TASK [common : Check whether passlib is needed] ********************************
skipping: [default]
TASK [common : Retrieve local SSH client's settings per host] ******************
ok: [default]
TASK [common : Validate compatible settings between SSH client and server] *****
ok: [default] => {
 "changed": false,
 "msg": "All assertions passed"
}
TASK [common : Update apt packages] ********************************************
changed: [default]
TASK [common : Checking essentials] ********************************************
changed: [default] => (item=build-essential)
ok: [default] => (item=curl)
ok: [default] => (item=dbus)
changed: [default] => (item=ghostscript)
ok: [default] => (item=git)
changed: [default] => (item=imagemagick)
changed: [default] => (item=libgs-dev)
changed: [default] => (item=libnss-myhostname)
ok: [default] => (item=python3)
ok: [default] => (item=python3-software-properties)
changed: [default] => (item=python3-mysqldb)
changed: [default] => (item=python3-pycurl)
changed: [default] => (item=unzip)
TASK [common : Validate timezone variable] *************************************
ok: [default]
TASK [common : Explain timezone error] *****************************************
skipping: [default]
TASK [common : Add myhostname to nsswitch.conf to ensure resolvable hostname] ***
ok: [default]
TASK [common : Generate SSH key for vagrant user for ansible_local provisioning] ***
skipping: [default]
TASK [common : Retrieve SSH client IP] *****************************************
skipping: [default]
TASK [common : Restrict journal log size] **************************************
changed: [default]
TASK [fail2ban : ensure fail2ban is installed] *********************************
changed: [default]
TASK [fail2ban : ensure fail2ban is configured] ********************************
changed: [default] => (item=jail.local)
changed: [default] => (item=fail2ban.local)
TASK [fail2ban : Check if fail2ban_filter_templates_path exists] ***************
ok: [default -> localhost]
TASK [fail2ban : build list of fail2ban filter templates] **********************
ok: [default -> localhost]
TASK [fail2ban : ensure configuration directory exists] ************************
ok: [default]
TASK [fail2ban : template fail2ban filters] ************************************
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-xmlrpc.conf.j2)
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-wp-login.conf.j2)
TASK [fail2ban : ensure fail2ban starts on a fresh reboot] *********************
changed: [default]
TASK [ferm : ensure ferm status is in debconf] *********************************
changed: [default]
TASK [ferm : ensure ferm is installed] *****************************************
changed: [default]
TASK [ferm : ensure configuration directories exist] ***************************
changed: [default] => (item=/etc/ferm/ferm.d)
changed: [default] => (item=/etc/ferm/filter-input.d)
TASK [ferm : ensure firewall is configured] ************************************
changed: [default] => (item=etc/default/ferm)
changed: [default] => (item=etc/ferm/ferm.conf)
TASK [ferm : ensure iptables INPUT rules are removed] **************************
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'}) 
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']}) 
skipping: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20}) 
skipping: [default]
TASK [ferm : ensure iptables INPUT rules are added] ****************************
changed: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'})
changed: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']})
changed: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20})
TASK [ferm : ensure iptables rules are enabled] ********************************
skipping: [default]
TASK [ferm : ensure iptables rules are disabled] *******************************
ok: [default]
TASK [ntp : Include OS-specific variables.] ************************************
ok: [default]
TASK [ntp : Set the ntp_driftfile variable.] ***********************************
ok: [default]
TASK [ntp : Set the ntp_package variable.] *************************************
ok: [default]
TASK [ntp : Set the ntp_config_file variable.] *********************************
ok: [default]
TASK [ntp : Set the ntp_daemon variable.] **************************************
ok: [default]
TASK [ntp : Ensure NTP package is installed.] **********************************
changed: [default]
TASK [ntp : Ensure tzdata package is installed (Linux).] ***********************
ok: [default]
TASK [ntp : Set timezone.] *****************************************************
ok: [default]
TASK [ntp : Populate service facts.] *******************************************
ok: [default]
TASK [ntp : Disable systemd-timesyncd if it's running but ntp is enabled.] *****
ok: [default]
TASK [ntp : Ensure NTP is running and enabled as configured.] ******************
ok: [default]
TASK [ntp : Ensure NTP is stopped and disabled as configured.] *****************
skipping: [default]
TASK [ntp : Generate ntp configuration file.] **********************************
changed: [default]
TASK [sshd : Ensure latest SSH server and client are installed] ****************
ok: [default] => (item=openssh-server)
ok: [default] => (item=openssh-client)
TASK [sshd : Create a secure sshd_config] **************************************
changed: [default]
TASK [sshd : Create a secure ssh_config] ***************************************
changed: [default]
TASK [sshd : Remove Diffie-Hellman moduli of size < 2000] **********************
ok: [default]
TASK [mariadb : Add MariaDB APT key] *******************************************
changed: [default]
TASK [mariadb : Add MariaDB PPA] ***********************************************
changed: [default]
TASK [mariadb : Install MySQL client] ******************************************
changed: [default]
TASK [mariadb : Install MySQL server] ******************************************
changed: [default]
TASK [mariadb : Disable MariaDB binary logging] ********************************
changed: [default]
TASK [mariadb : Copy .my.cnf file with root password credentials.] *************
changed: [default]
TASK [mariadb : Set root user password] ****************************************
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default]
TASK [mariadb : Delete anonymous MySQL server users] ***************************
ok: [default] => (item=None)
ok: [default] => (item=None)
ok: [default] => (item=None)
ok: [default]
TASK [mariadb : Remove the test database] **************************************
ok: [default]
TASK [mailpit : Ensure mailpit install directory exists.] **********************
changed: [default]
TASK [mailpit : Download and install mailpit binary] ***************************
changed: [default]
TASK [mailpit : Copy mailpit systemd unit file into place] *********************
changed: [default]
TASK [mailpit : Ensure mailpit is enabled and will start on boot] **************
changed: [default]
TASK [php : Add PHP PPA] *******************************************************
changed: [default]
TASK [php : Install PHP and extensions] ****************************************
changed: [default] => (item=php8.1-bcmath)
changed: [default] => (item=php8.1-cli)
changed: [default] => (item=php8.1-curl)
changed: [default] => (item=php8.1-dev)
changed: [default] => (item=php8.1-fpm)
changed: [default] => (item=php8.1-imagick)
changed: [default] => (item=php8.1-intl)
changed: [default] => (item=php8.1-mbstring)
changed: [default] => (item=php8.1-mysql)
changed: [default] => (item=php8.1-xml)
changed: [default] => (item=php8.1-xmlrpc)
changed: [default] => (item=php8.1-zip)
TASK [php : Ensure correct PHP version selected] *******************************
ok: [default]
TASK [php : Find existing php fpm services] ************************************
ok: [default]
TASK [php : Stop old php-fpm services] *****************************************
skipping: [default]
TASK [php : Start php fpm service] *********************************************
ok: [default]
TASK [php : Copy PHP-FPM configuration file] ***********************************
changed: [default]
TASK [php : Copy PHP CLI configuration file] ***********************************
changed: [default]
TASK [php : Change ImageMagick policy.xml to allow for PDFs] *******************
changed: [default]
TASK [xdebug : Include php8.1 related vars] ************************************
ok: [default]
TASK [xdebug : Install Xdebug] *************************************************
changed: [default]
TASK [xdebug : Template the Xdebug configuration file] *************************
changed: [default]
TASK [xdebug : Ensure 20-xdebug.ini is present] ********************************
ok: [default]
TASK [xdebug : Disable Xdebug CLI] *********************************************
changed: [default]
TASK [memcached : Install memcached] *******************************************
changed: [default] => (item=memcached)
changed: [default] => (item=php8.1-memcached)
TASK [memcached : Copy the client configuration file] **************************
changed: [default]
TASK [memcached : Set the max open file descriptors] ***************************
changed: [default]
TASK [memcached : Start the memcached service] *********************************
fatal: [default]: FAILED! => {"changed": false, "msg": "Unable to start service memcached: Job for memcached.service failed because a fatal signal was delivered to the control process.\nSee \"systemctl status memcached.service\" and \"journalctl -xeu memcached.service\" for details.\n"}
RUNNING HANDLER [common : restart memcached] ***********************************
fatal: [default]: FAILED! => {"changed": false, "msg": "Unable to start service memcached: Job for memcached.service failed because a fatal signal was delivered to the control process.\nSee \"systemctl status memcached.service\" and \"journalctl -xeu memcached.service\" for details.\n"}
PLAY RECAP *********************************************************************
default : ok=67  changed=38  unreachable=0 failed=2  skipped=15  rescued=0 ignored=0
Running command => limactl start --tty=false --name=test3.test /Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/test3.test.yml
Updating /etc/hosts file (sudo may be required, see `trellis vm sudoers` for more details)
Provisioning VM...
Starting galaxy role install process
- composer (1.9.0) is already installed, skipping.
- ntp (2.3.1) is already installed, skipping.
- logrotate (v0.0.5) is already installed, skipping.
- swapfile (v2.0.36) is already installed, skipping.
- mailpit (v1.0.0) is already installed, skipping.
Running command => ansible-playbook dev.yml --inventory-file=/Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/inventory -e env=development
PLAY [WordPress Server: Install LEMP Stack with PHP and MariaDB MySQL] *********
TASK [Gathering Facts] *********************************************************
ok: [default]
TASK [common : Load wordpress_sites.yml vars into <env>_sites vars] ************
skipping: [default] => (item=development) 
skipping: [default]
TASK [common : Fail if there are duplicate site keys within host's wordpress_sites] ***
skipping: [default]
TASK [common : Validate wordpress_sites] ***************************************
skipping: [default]
TASK [common : Validate format of site_hosts] **********************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [common : Import PHP version specific vars] *******************************
ok: [default]
TASK [common : Verify dict format for apt package component variables] *********
skipping: [default]
TASK [common : Verify dict format for apt package combined variables] **********
skipping: [default]
TASK [common : Validate Ubuntu version] ****************************************
skipping: [default]
TASK [common : Check whether passlib is needed] ********************************
skipping: [default]
TASK [common : Retrieve local SSH client's settings per host] ******************
ok: [default]
TASK [common : Validate compatible settings between SSH client and server] *****
ok: [default] => {
 "changed": false,
 "msg": "All assertions passed"
}
TASK [common : Update apt packages] ********************************************
changed: [default]
TASK [common : Checking essentials] ********************************************
changed: [default] => (item=build-essential)
ok: [default] => (item=curl)
ok: [default] => (item=dbus)
changed: [default] => (item=ghostscript)
ok: [default] => (item=git)
changed: [default] => (item=imagemagick)
changed: [default] => (item=libgs-dev)
changed: [default] => (item=libnss-myhostname)
ok: [default] => (item=python3)
ok: [default] => (item=python3-software-properties)
changed: [default] => (item=python3-mysqldb)
changed: [default] => (item=python3-pycurl)
changed: [default] => (item=unzip)
TASK [common : Validate timezone variable] *************************************
ok: [default]
TASK [common : Explain timezone error] *****************************************
skipping: [default]
TASK [common : Add myhostname to nsswitch.conf to ensure resolvable hostname] ***
ok: [default]
TASK [common : Generate SSH key for vagrant user for ansible_local provisioning] ***
skipping: [default]
TASK [common : Retrieve SSH client IP] *****************************************
skipping: [default]
TASK [common : Restrict journal log size] **************************************
changed: [default]
TASK [fail2ban : ensure fail2ban is installed] *********************************
changed: [default]
TASK [fail2ban : ensure fail2ban is configured] ********************************
changed: [default] => (item=jail.local)
changed: [default] => (item=fail2ban.local)
TASK [fail2ban : Check if fail2ban_filter_templates_path exists] ***************
ok: [default -> localhost]
TASK [fail2ban : build list of fail2ban filter templates] **********************
ok: [default -> localhost]
TASK [fail2ban : ensure configuration directory exists] ************************
ok: [default]
TASK [fail2ban : template fail2ban filters] ************************************
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-xmlrpc.conf.j2)
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-wp-login.conf.j2)
TASK [fail2ban : ensure fail2ban starts on a fresh reboot] *********************
changed: [default]
TASK [ferm : ensure ferm status is in debconf] *********************************
changed: [default]
TASK [ferm : ensure ferm is installed] *****************************************
changed: [default]
TASK [ferm : ensure configuration directories exist] ***************************
changed: [default] => (item=/etc/ferm/ferm.d)
changed: [default] => (item=/etc/ferm/filter-input.d)
TASK [ferm : ensure firewall is configured] ************************************
changed: [default] => (item=etc/default/ferm)
changed: [default] => (item=etc/ferm/ferm.conf)
TASK [ferm : ensure iptables INPUT rules are removed] **************************
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'}) 
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']}) 
skipping: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20}) 
skipping: [default]
TASK [ferm : ensure iptables INPUT rules are added] ****************************
changed: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'})
changed: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']})
changed: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20})
TASK [ferm : ensure iptables rules are enabled] ********************************
skipping: [default]
TASK [ferm : ensure iptables rules are disabled] *******************************
ok: [default]
TASK [ntp : Include OS-specific variables.] ************************************
ok: [default]
TASK [ntp : Set the ntp_driftfile variable.] ***********************************
ok: [default]
TASK [ntp : Set the ntp_package variable.] *************************************
ok: [default]
TASK [ntp : Set the ntp_config_file variable.] *********************************
ok: [default]
TASK [ntp : Set the ntp_daemon variable.] **************************************
ok: [default]
TASK [ntp : Ensure NTP package is installed.] **********************************
changed: [default]
TASK [ntp : Ensure tzdata package is installed (Linux).] ***********************
ok: [default]
TASK [ntp : Set timezone.] *****************************************************
ok: [default]
TASK [ntp : Populate service facts.] *******************************************
ok: [default]
TASK [ntp : Disable systemd-timesyncd if it's running but ntp is enabled.] *****
ok: [default]
TASK [ntp : Ensure NTP is running and enabled as configured.] ******************
ok: [default]
TASK [ntp : Ensure NTP is stopped and disabled as configured.] *****************
skipping: [default]
TASK [ntp : Generate ntp configuration file.] **********************************
changed: [default]
TASK [sshd : Ensure latest SSH server and client are installed] ****************
ok: [default] => (item=openssh-server)
ok: [default] => (item=openssh-client)
TASK [sshd : Create a secure sshd_config] **************************************
changed: [default]
TASK [sshd : Create a secure ssh_config] ***************************************
changed: [default]
TASK [sshd : Remove Diffie-Hellman moduli of size < 2000] **********************
ok: [default]
TASK [mariadb : Add MariaDB APT key] *******************************************
changed: [default]
TASK [mariadb : Add MariaDB PPA] ***********************************************
changed: [default]
TASK [mariadb : Install MySQL client] ******************************************
changed: [default]
TASK [mariadb : Install MySQL server] ******************************************
changed: [default]
TASK [mariadb : Disable MariaDB binary logging] ********************************
changed: [default]
TASK [mariadb : Copy .my.cnf file with root password credentials.] *************
changed: [default]
TASK [mariadb : Set root user password] ****************************************
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default]
TASK [mariadb : Delete anonymous MySQL server users] ***************************
ok: [default] => (item=None)
ok: [default] => (item=None)
ok: [default] => (item=None)
ok: [default]
TASK [mariadb : Remove the test database] **************************************
ok: [default]
TASK [mailpit : Ensure mailpit install directory exists.] **********************
changed: [default]
TASK [mailpit : Download and install mailpit binary] ***************************
changed: [default]
TASK [mailpit : Copy mailpit systemd unit file into place] *********************
changed: [default]
TASK [mailpit : Ensure mailpit is enabled and will start on boot] **************
changed: [default]
TASK [php : Add PHP PPA] *******************************************************
changed: [default]
TASK [php : Install PHP and extensions] ****************************************
changed: [default] => (item=php8.1-bcmath)
changed: [default] => (item=php8.1-cli)
changed: [default] => (item=php8.1-curl)
changed: [default] => (item=php8.1-dev)
changed: [default] => (item=php8.1-fpm)
changed: [default] => (item=php8.1-imagick)
changed: [default] => (item=php8.1-intl)
changed: [default] => (item=php8.1-mbstring)
changed: [default] => (item=php8.1-mysql)
changed: [default] => (item=php8.1-xml)
changed: [default] => (item=php8.1-xmlrpc)
changed: [default] => (item=php8.1-zip)
TASK [php : Ensure correct PHP version selected] *******************************
ok: [default]
TASK [php : Find existing php fpm services] ************************************
ok: [default]
TASK [php : Stop old php-fpm services] *****************************************
skipping: [default]
TASK [php : Start php fpm service] *********************************************
ok: [default]
TASK [php : Copy PHP-FPM configuration file] ***********************************
changed: [default]
TASK [php : Copy PHP CLI configuration file] ***********************************
changed: [default]
TASK [php : Change ImageMagick policy.xml to allow for PDFs] *******************
changed: [default]
TASK [xdebug : Include php8.1 related vars] ************************************
ok: [default]
TASK [xdebug : Install Xdebug] *************************************************
changed: [default]
TASK [xdebug : Template the Xdebug configuration file] *************************
changed: [default]
TASK [xdebug : Ensure 20-xdebug.ini is present] ********************************
ok: [default]
TASK [xdebug : Disable Xdebug CLI] *********************************************
changed: [default]
TASK [memcached : Install memcached] *******************************************
changed: [default] => (item=memcached)
changed: [default] => (item=php8.1-memcached)
TASK [memcached : Copy the client configuration file] **************************
changed: [default]
TASK [memcached : Set the max open file descriptors] ***************************
changed: [default]
TASK [memcached : Start the memcached service] *********************************
ok: [default]
TASK [nginx : Add Nginx APT key] ***********************************************
changed: [default]
TASK [nginx : Add Nginx PPA] ***************************************************
changed: [default]
TASK [nginx : Install Nginx] ***************************************************
changed: [default]
TASK [nginx : Ensure site directories exist] ***********************************
changed: [default] => (item=sites-available)
changed: [default] => (item=sites-enabled)
TASK [nginx : Create SSL directory] ********************************************
changed: [default]
TASK [nginx : Copy h5bp configs] ***********************************************
changed: [default]
TASK [nginx : Create nginx.conf] ***********************************************
changed: [default]
TASK [nginx : Disable default server] ******************************************
ok: [default]
TASK [nginx : Enable Nginx to start on boot] ***********************************
changed: [default]
TASK [logrotate : nickhammond.logrotate | Install logrotate] *******************
ok: [default]
TASK [logrotate : nickhammond.logrotate | Setup logrotate.d scripts] ***********
changed: [default] => (item={'name': 'wordpress-sites', 'path': '/srv/www/**/logs/*.log', 'options': ['weekly', 'maxsize 50M', 'missingok', 'rotate 8', 'compress', 'delaycompress', 'notifempty', 'create 0640 USER www-data', 'sharedscripts'], 'scripts': {'prerotate': 'if [ -d /etc/logrotate.d/httpd-prerotate ]; then \\\n run-parts /etc/logrotate.d/httpd-prerotate; \\\n fi \\\n', 'postrotate': 'service nginx reload >/dev/null 2>&1'}})
TASK [composer : Set php_executable variable to a default if not defined.] *****
ok: [default]
TASK [composer : Check if Composer is installed.] ******************************
ok: [default]
TASK [composer : Get Composer installer signature.] ****************************
ok: [default]
TASK [composer : Download Composer installer.] *********************************
changed: [default]
TASK [composer : Run Composer installer.] **************************************
changed: [default]
TASK [composer : Move Composer into globally-accessible location.] *************
changed: [default]
TASK [composer : Update Composer to latest version (if configured).] ***********
ok: [default]
TASK [composer : Ensure composer directory exists.] ****************************
changed: [default]
TASK [composer : Add GitHub OAuth token for Composer (if configured).] *********
skipping: [default]
TASK [composer : include_tasks] ************************************************
skipping: [default]
TASK [composer : include_tasks] ************************************************
skipping: [default]
TASK [wp-cli : Ensure gpg2 is installed] ***************************************
changed: [default]
TASK [wp-cli : Download WP-CLI Phar] *******************************************
changed: [default]
TASK [wp-cli : Download WP-CLI Phar Signature] *********************************
changed: [default]
TASK [wp-cli : Copy WP-CLI release team public key] ****************************
changed: [default]
TASK [wp-cli : Check GPG signature] ********************************************
ok: [default]
TASK [wp-cli : Install WP-CLI] *************************************************
changed: [default]
TASK [wp-cli : Retrieve WP-CLI tab completions] ********************************
changed: [default]
TASK [wp-cli : Install WP-CLI tab completions] *********************************
changed: [default]
TASK [wp-cli : Install WP-CLI packages] ****************************************
changed: [default] => (item=aaemnnosttv/wp-cli-login-command)
TASK [wordpress-setup : Create databases for sites] ****************************
changed: [default] => (item=None)
changed: [default]
TASK [wordpress-setup : Create/assign database user to db and grant permissions] ***
changed: [default] => (item=None)
changed: [default]
TASK [wordpress-setup : Ensure openssl configs directory are present] **********
changed: [default]
TASK [wordpress-setup : Template openssl configs] ******************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [wordpress-setup : Generate self-signed certificates] *********************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [wordpress-setup : Clean up openssl configs directory] ********************
changed: [default]
TASK [wordpress-setup : Download client cert] **********************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [wordpress-setup : Create web root] ***************************************
changed: [default]
TASK [wordpress-setup : Create logs folder of sites] ***************************
changed: [default] => (item=test3.test)
TASK [wordpress-setup : Create WordPress php-fpm configuration file] ***********
changed: [default]
TASK [wordpress-setup : Disable default PHP-FPM pool] **************************
changed: [default]
TASK [wordpress-setup : stat] **************************************************
ok: [default -> localhost]
TASK [wordpress-setup : Build list of Nginx includes templates] ****************
skipping: [default]
TASK [wordpress-setup : Create includes.d directories] *************************
skipping: [default]
TASK [wordpress-setup : Template files out to includes.d] **********************
skipping: [default]
TASK [wordpress-setup : stat] **************************************************
ok: [default]
TASK [wordpress-setup : Retrieve list of existing files in includes.d] *********
skipping: [default]
TASK [wordpress-setup : Remove unmanaged files from includes.d] ****************
skipping: [default]
TASK [wordpress-setup : Copy SSL cert] *****************************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [wordpress-setup : Copy SSL key] ******************************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [wordpress-setup : disable temporary challenge sites] *********************
ok: [default] => (item=test3.test)
TASK [wordpress-setup : Create Nginx available sites] **************************
changed: [default] => (item={'src': 'no-default.conf.j2'})
skipping: [default] => (item={'src': 'ssl.no-default.conf.j2', 'enabled': False}) 
TASK [wordpress-setup : Disable Nginx sites] ***********************************
skipping: [default] => (item={'src': 'no-default.conf.j2'}) 
ok: [default] => (item={'src': 'ssl.no-default.conf.j2', 'enabled': False})
TASK [wordpress-setup : Enable Nginx sites] ************************************
changed: [default] => (item={'src': 'no-default.conf.j2'})
skipping: [default] => (item={'src': 'ssl.no-default.conf.j2', 'enabled': False}) 
TASK [wordpress-setup : Create Nginx conf for challenges location] *************
changed: [default]
TASK [wordpress-setup : Create WordPress configuration for Nginx] **************
changed: [default] => (item=test3.test)
TASK [wordpress-setup : Enable WordPress site] *********************************
changed: [default] => (item=test3.test)
TASK [wordpress-setup : Setup WP system cron] **********************************
changed: [default] => (item=test3.test)
TASK [wordpress-setup : Setup WP Multisite system cron] ************************
ok: [default] => (item=test3.test)
TASK [wordpress-install : Create web root of sites] ****************************
changed: [default] => (item=test3.test)
TASK [wordpress-install : Create shared folder of sites] ***********************
changed: [default] => (item=test3.test)
TASK [wordpress-install : Change site owner to user] ***************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [wordpress-install : Create .env file] ************************************
changed: [default] => (item=test3.test)
TASK [wordpress-install : Copy .env file into web root] ************************
changed: [default] => (item=test3.test)
TASK [wordpress-install : Add known_hosts] *************************************
changed: [default] => (item=github.com)
changed: [default] => (item=github.com)
changed: [default] => (item=bitbucket.org)
changed: [default] => (item=gitlab.com)
changed: [default] => (item=gitlab.com)
TASK [wordpress-install : include_tasks] ***************************************
included: /Users/USER/Developer/WPSites/test3.test/trellis/roles/wordpress-install/tasks/composer-authentications.yml for default => (item=(censored due to no_log))
TASK [wordpress-install : Setup composer authentications (HTTP Basic) - {'key': 'test3.test', 'value': {'site_hosts': [{'canonical': 'test3.test', 'redirects': ['www.test3.test']}], 'local_path': '..', 'public_path': 'public', 'upload_path': 'content/uploads', 'admin_email': 'admin@test3.test', 'multisite': {'enabled': False}, 'ssl': {'enabled': False, 'provider': 'self-signed'}, 'cache': {'enabled': False}, 'xmlrpc': {'enabled': False}}}] ***
skipping: [default]
TASK [wordpress-install : Setup composer authentications (BitBucket OAuth) - {'key': 'test3.test', 'value': {'site_hosts': [{'canonical': 'test3.test', 'redirects': ['www.test3.test']}], 'local_path': '..', 'public_path': 'public', 'upload_path': 'content/uploads', 'admin_email': 'admin@test3.test', 'multisite': {'enabled': False}, 'ssl': {'enabled': False, 'provider': 'self-signed'}, 'cache': {'enabled': False}, 'xmlrpc': {'enabled': False}}}] ***
skipping: [default]
TASK [wordpress-install : Setup composer authentications (Other Tokens) - {'key': 'test3.test', 'value': {'site_hosts': [{'canonical': 'test3.test', 'redirects': ['www.test3.test']}], 'local_path': '..', 'public_path': 'public', 'upload_path': 'content/uploads', 'admin_email': 'admin@test3.test', 'multisite': {'enabled': False}, 'ssl': {'enabled': False, 'provider': 'self-signed'}, 'cache': {'enabled': False}, 'xmlrpc': {'enabled': False}}}] ***
skipping: [default]
TASK [wordpress-install : Install Dependencies with Composer] ******************
changed: [default] => (item=test3.test)
TASK [wordpress-install : Install WP] ******************************************
changed: [default] => (item=test3.test)
TASK [wordpress-install : Setup Permalink Structure] ***************************
changed: [default] => (item={'changed': True, 'stdout': 'Success: WordPress installed successfully.', 'stderr': '', 'rc': 0, 'cmd': ['wp', 'core', 'install', '--allow-root', '--url=http://test3.test', '--title=test3.test', '--admin_user=admin', '--admin_password=admin', '--admin_email=admin@test3.test'], 'start': '2023-05-22 18:48:29.076375', 'end': '2023-05-22 18:48:32.785496', 'delta': '0:00:03.709121', 'msg': '', 'invocation': {'module_args': {'chdir': '/srv/www/test3.test/current/', '_raw_params': 'wp core install --allow-root --url="http://test3.test" --title="test3.test" --admin_user="admin" --admin_password="admin" --admin_email="admin@test3.test"', '_uses_shell': False, 'stdin_add_newline': True, 'strip_empty_ends': True, 'argv': None, 'executable': None, 'creates': None, 'removes': None, 'stdin': None}}, 'stdout_lines': ['Success: WordPress installed successfully.'], 'stderr_lines': [], 'failed': False, 'item': {'key': 'test3.test', 'value': {'site_hosts': [{'canonical': 'test3.test', 'redirects': ['www.test3.test']}], 'local_path': '..', 'public_path': 'public', 'upload_path': 'content/uploads', 'admin_email': 'admin@test3.test', 'multisite': {'enabled': False}, 'ssl': {'enabled': False, 'provider': 'self-signed'}, 'cache': {'enabled': False}, 'xmlrpc': {'enabled': False}}}, 'ansible_loop_var': 'item'})
TASK [wordpress-install : Update WP Multisite Home URL] ************************
skipping: [default] => (item=test3.test) 
skipping: [default]
RUNNING HANDLER [common : restart memcached] ***********************************
fatal: [default]: FAILED! => {"changed": false, "cmd": "/usr/bin/systemctl", "msg": "", "rc": -11, "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
PLAY RECAP *********************************************************************
default : ok=124  changed=81  unreachable=0 failed=1  skipped=33  rescued=0 ignored=0
Running command => limactl start --tty=false --name=test3.test /Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/test3.test.yml
Updating /etc/hosts file (sudo may be required, see `trellis vm sudoers` for more details)
Provisioning VM...
Starting galaxy role install process
- composer (1.9.0) is already installed, skipping.
- ntp (2.3.1) is already installed, skipping.
- logrotate (v0.0.5) is already installed, skipping.
- swapfile (v2.0.36) is already installed, skipping.
- mailpit (v1.0.0) is already installed, skipping.
Running command => ansible-playbook dev.yml --inventory-file=/Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/inventory -e env=development
PLAY [WordPress Server: Install LEMP Stack with PHP and MariaDB MySQL] *********
TASK [Gathering Facts] *********************************************************
ok: [default]
TASK [common : Load wordpress_sites.yml vars into <env>_sites vars] ************
skipping: [default] => (item=development) 
skipping: [default]
TASK [common : Fail if there are duplicate site keys within host's wordpress_sites] ***
skipping: [default]
TASK [common : Validate wordpress_sites] ***************************************
skipping: [default]
TASK [common : Validate format of site_hosts] **********************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [common : Import PHP version specific vars] *******************************
ok: [default]
TASK [common : Verify dict format for apt package component variables] *********
skipping: [default]
TASK [common : Verify dict format for apt package combined variables] **********
skipping: [default]
TASK [common : Validate Ubuntu version] ****************************************
skipping: [default]
TASK [common : Check whether passlib is needed] ********************************
skipping: [default]
TASK [common : Retrieve local SSH client's settings per host] ******************
ok: [default]
TASK [common : Validate compatible settings between SSH client and server] *****
ok: [default] => {
 "changed": false,
 "msg": "All assertions passed"
}
TASK [common : Update apt packages] ********************************************
changed: [default]
TASK [common : Checking essentials] ********************************************
changed: [default] => (item=build-essential)
ok: [default] => (item=curl)
ok: [default] => (item=dbus)
changed: [default] => (item=ghostscript)
ok: [default] => (item=git)
changed: [default] => (item=imagemagick)
changed: [default] => (item=libgs-dev)
changed: [default] => (item=libnss-myhostname)
ok: [default] => (item=python3)
ok: [default] => (item=python3-software-properties)
changed: [default] => (item=python3-mysqldb)
changed: [default] => (item=python3-pycurl)
changed: [default] => (item=unzip)
TASK [common : Validate timezone variable] *************************************
ok: [default]
TASK [common : Explain timezone error] *****************************************
skipping: [default]
TASK [common : Add myhostname to nsswitch.conf to ensure resolvable hostname] ***
ok: [default]
TASK [common : Generate SSH key for vagrant user for ansible_local provisioning] ***
skipping: [default]
TASK [common : Retrieve SSH client IP] *****************************************
skipping: [default]
TASK [common : Restrict journal log size] **************************************
changed: [default]
TASK [fail2ban : ensure fail2ban is installed] *********************************
changed: [default]
TASK [fail2ban : ensure fail2ban is configured] ********************************
changed: [default] => (item=jail.local)
changed: [default] => (item=fail2ban.local)
TASK [fail2ban : Check if fail2ban_filter_templates_path exists] ***************
ok: [default -> localhost]
TASK [fail2ban : build list of fail2ban filter templates] **********************
ok: [default -> localhost]
TASK [fail2ban : ensure configuration directory exists] ************************
ok: [default]
TASK [fail2ban : template fail2ban filters] ************************************
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-xmlrpc.conf.j2)
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-wp-login.conf.j2)
TASK [fail2ban : ensure fail2ban starts on a fresh reboot] *********************
changed: [default]
TASK [ferm : ensure ferm status is in debconf] *********************************
changed: [default]
TASK [ferm : ensure ferm is installed] *****************************************
changed: [default]
TASK [ferm : ensure configuration directories exist] ***************************
changed: [default] => (item=/etc/ferm/ferm.d)
changed: [default] => (item=/etc/ferm/filter-input.d)
TASK [ferm : ensure firewall is configured] ************************************
changed: [default] => (item=etc/default/ferm)
changed: [default] => (item=etc/ferm/ferm.conf)
TASK [ferm : ensure iptables INPUT rules are removed] **************************
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'}) 
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']}) 
skipping: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20}) 
skipping: [default]
TASK [ferm : ensure iptables INPUT rules are added] ****************************
changed: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'})
changed: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']})
changed: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20})
TASK [ferm : ensure iptables rules are enabled] ********************************
skipping: [default]
TASK [ferm : ensure iptables rules are disabled] *******************************
ok: [default]
TASK [ntp : Include OS-specific variables.] ************************************
ok: [default]
TASK [ntp : Set the ntp_driftfile variable.] ***********************************
ok: [default]
TASK [ntp : Set the ntp_package variable.] *************************************
ok: [default]
TASK [ntp : Set the ntp_config_file variable.] *********************************
ok: [default]
TASK [ntp : Set the ntp_daemon variable.] **************************************
ok: [default]
TASK [ntp : Ensure NTP package is installed.] **********************************
changed: [default]
TASK [ntp : Ensure tzdata package is installed (Linux).] ***********************
ok: [default]
TASK [ntp : Set timezone.] *****************************************************
ok: [default]
TASK [ntp : Populate service facts.] *******************************************
ok: [default]
TASK [ntp : Disable systemd-timesyncd if it's running but ntp is enabled.] *****
ok: [default]
TASK [ntp : Ensure NTP is running and enabled as configured.] ******************
ok: [default]
TASK [ntp : Ensure NTP is stopped and disabled as configured.] *****************
skipping: [default]
TASK [ntp : Generate ntp configuration file.] **********************************
changed: [default]
TASK [sshd : Ensure latest SSH server and client are installed] ****************
ok: [default] => (item=openssh-server)
ok: [default] => (item=openssh-client)
TASK [sshd : Create a secure sshd_config] **************************************
changed: [default]
TASK [sshd : Create a secure ssh_config] ***************************************
changed: [default]
TASK [sshd : Remove Diffie-Hellman moduli of size < 2000] **********************
ok: [default]
TASK [mariadb : Add MariaDB APT key] *******************************************
changed: [default]
TASK [mariadb : Add MariaDB PPA] ***********************************************
changed: [default]
TASK [mariadb : Install MySQL client] ******************************************
changed: [default]
TASK [mariadb : Install MySQL server] ******************************************
changed: [default]
TASK [mariadb : Disable MariaDB binary logging] ********************************
changed: [default]
TASK [mariadb : Copy .my.cnf file with root password credentials.] *************
changed: [default]
TASK [mariadb : Set root user password] ****************************************
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default]
TASK [mariadb : Delete anonymous MySQL server users] ***************************
ok: [default] => (item=None)
ok: [default] => (item=None)
ok: [default] => (item=None)
ok: [default]
TASK [mariadb : Remove the test database] **************************************
ok: [default]
TASK [mailpit : Ensure mailpit install directory exists.] **********************
changed: [default]
TASK [mailpit : Download and install mailpit binary] ***************************
changed: [default]
TASK [mailpit : Copy mailpit systemd unit file into place] *********************
changed: [default]
TASK [mailpit : Ensure mailpit is enabled and will start on boot] **************
changed: [default]
TASK [php : Add PHP PPA] *******************************************************
changed: [default]
TASK [php : Install PHP and extensions] ****************************************
changed: [default] => (item=php8.1-bcmath)
changed: [default] => (item=php8.1-cli)
changed: [default] => (item=php8.1-curl)
changed: [default] => (item=php8.1-dev)
changed: [default] => (item=php8.1-fpm)
changed: [default] => (item=php8.1-imagick)
changed: [default] => (item=php8.1-intl)
changed: [default] => (item=php8.1-mbstring)
changed: [default] => (item=php8.1-mysql)
changed: [default] => (item=php8.1-xml)
changed: [default] => (item=php8.1-xmlrpc)
changed: [default] => (item=php8.1-zip)
TASK [php : Ensure correct PHP version selected] *******************************
ok: [default]
TASK [php : Find existing php fpm services] ************************************
ok: [default]
TASK [php : Stop old php-fpm services] *****************************************
skipping: [default]
TASK [php : Start php fpm service] *********************************************
ok: [default]
TASK [php : Copy PHP-FPM configuration file] ***********************************
changed: [default]
TASK [php : Copy PHP CLI configuration file] ***********************************
changed: [default]
TASK [php : Change ImageMagick policy.xml to allow for PDFs] *******************
changed: [default]
TASK [xdebug : Include php8.1 related vars] ************************************
ok: [default]
TASK [xdebug : Install Xdebug] *************************************************
changed: [default]
TASK [xdebug : Template the Xdebug configuration file] *************************
changed: [default]
TASK [xdebug : Ensure 20-xdebug.ini is present] ********************************
ok: [default]
TASK [xdebug : Disable Xdebug CLI] *********************************************
changed: [default]
TASK [memcached : Install memcached] *******************************************
changed: [default] => (item=memcached)
changed: [default] => (item=php8.1-memcached)
TASK [memcached : Copy the client configuration file] **************************
changed: [default]
TASK [memcached : Set the max open file descriptors] ***************************
changed: [default]
TASK [memcached : Start the memcached service] *********************************
ok: [default]
TASK [nginx : Add Nginx APT key] ***********************************************
Running command => limactl start --tty=false --name=test3.test /Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/test3.test.yml
Updating /etc/hosts file (sudo may be required, see `trellis vm sudoers` for more details)
Provisioning VM...
Starting galaxy role install process
- composer (1.9.0) is already installed, skipping.
- ntp (2.3.1) is already installed, skipping.
- logrotate (v0.0.5) is already installed, skipping.
- swapfile (v2.0.36) is already installed, skipping.
- mailpit (v1.0.0) is already installed, skipping.
Running command => ansible-playbook dev.yml --inventory-file=/Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/inventory -e env=development
PLAY [WordPress Server: Install LEMP Stack with PHP and MariaDB MySQL] *********
TASK [Gathering Facts] *********************************************************
ok: [default]
TASK [common : Load wordpress_sites.yml vars into <env>_sites vars] ************
skipping: [default] => (item=development) 
skipping: [default]
TASK [common : Fail if there are duplicate site keys within host's wordpress_sites] ***
skipping: [default]
TASK [common : Validate wordpress_sites] ***************************************
skipping: [default]
TASK [common : Validate format of site_hosts] **********************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [common : Import PHP version specific vars] *******************************
ok: [default]
TASK [common : Verify dict format for apt package component variables] *********
skipping: [default]
TASK [common : Verify dict format for apt package combined variables] **********
skipping: [default]
TASK [common : Validate Ubuntu version] ****************************************
skipping: [default]
TASK [common : Check whether passlib is needed] ********************************
skipping: [default]
TASK [common : Retrieve local SSH client's settings per host] ******************
ok: [default]
TASK [common : Validate compatible settings between SSH client and server] *****
ok: [default] => {
 "changed": false,
 "msg": "All assertions passed"
}
TASK [common : Update apt packages] ********************************************
changed: [default]
TASK [common : Checking essentials] ********************************************
changed: [default] => (item=build-essential)
ok: [default] => (item=curl)
ok: [default] => (item=dbus)
changed: [default] => (item=ghostscript)
ok: [default] => (item=git)
changed: [default] => (item=imagemagick)
changed: [default] => (item=libgs-dev)
changed: [default] => (item=libnss-myhostname)
ok: [default] => (item=python3)
ok: [default] => (item=python3-software-properties)
changed: [default] => (item=python3-mysqldb)
changed: [default] => (item=python3-pycurl)
changed: [default] => (item=unzip)
TASK [common : Validate timezone variable] *************************************
ok: [default]
TASK [common : Explain timezone error] *****************************************
skipping: [default]
TASK [common : Add myhostname to nsswitch.conf to ensure resolvable hostname] ***
ok: [default]
TASK [common : Generate SSH key for vagrant user for ansible_local provisioning] ***
skipping: [default]
TASK [common : Retrieve SSH client IP] *****************************************
skipping: [default]
TASK [common : Restrict journal log size] **************************************
changed: [default]
TASK [fail2ban : ensure fail2ban is installed] *********************************
changed: [default]
TASK [fail2ban : ensure fail2ban is configured] ********************************
changed: [default] => (item=jail.local)
changed: [default] => (item=fail2ban.local)
TASK [fail2ban : Check if fail2ban_filter_templates_path exists] ***************
ok: [default -> localhost]
TASK [fail2ban : build list of fail2ban filter templates] **********************
ok: [default -> localhost]
TASK [fail2ban : ensure configuration directory exists] ************************
ok: [default]
TASK [fail2ban : template fail2ban filters] ************************************
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-xmlrpc.conf.j2)
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-wp-login.conf.j2)
TASK [fail2ban : ensure fail2ban starts on a fresh reboot] *********************
changed: [default]
TASK [ferm : ensure ferm status is in debconf] *********************************
changed: [default]
TASK [ferm : ensure ferm is installed] *****************************************
changed: [default]
TASK [ferm : ensure configuration directories exist] ***************************
changed: [default] => (item=/etc/ferm/ferm.d)
changed: [default] => (item=/etc/ferm/filter-input.d)
TASK [ferm : ensure firewall is configured] ************************************
changed: [default] => (item=etc/default/ferm)
changed: [default] => (item=etc/ferm/ferm.conf)
TASK [ferm : ensure iptables INPUT rules are removed] **************************
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'}) 
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']}) 
skipping: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20}) 
skipping: [default]
TASK [ferm : ensure iptables INPUT rules are added] ****************************
changed: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'})
changed: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']})
changed: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20})
TASK [ferm : ensure iptables rules are enabled] ********************************
skipping: [default]
TASK [ferm : ensure iptables rules are disabled] *******************************
ok: [default]
TASK [ntp : Include OS-specific variables.] ************************************
ok: [default]
TASK [ntp : Set the ntp_driftfile variable.] ***********************************
ok: [default]
TASK [ntp : Set the ntp_package variable.] *************************************
ok: [default]
TASK [ntp : Set the ntp_config_file variable.] *********************************
ok: [default]
TASK [ntp : Set the ntp_daemon variable.] **************************************
ok: [default]
TASK [ntp : Ensure NTP package is installed.] **********************************
fatal: [default]: FAILED! => {"cache_update_time": 1684783223, "cache_updated": false, "changed": false, "msg": "'/usr/bin/apt-get -y -o \"Dpkg::Options::=--force-confdef\" -o \"Dpkg::Options::=--force-confold\" install 'ntp=1:4.2.8p15+dfsg-1ubuntu2'' failed: touch: cannot touch '/var/lib/update-notifier/dpkg-run-stamp': Read-only file system\nE: Sub-process /usr/bin/dpkg returned an error code (2)\nW: Problem unlinking the file /var/cache/apt/pkgcache.bin - pkgDPkgPM::Go (30: Read-only file system)\n", "rc": 100, "stderr": "touch: cannot touch '/var/lib/update-notifier/dpkg-run-stamp': Read-only file system\nE: Sub-process /usr/bin/dpkg returned an error code (2)\nW: Problem unlinking the file /var/cache/apt/pkgcache.bin - pkgDPkgPM::Go (30: Read-only file system)\n", "stderr_lines": ["touch: cannot touch '/var/lib/update-notifier/dpkg-run-stamp': Read-only file system", "E: Sub-process /usr/bin/dpkg returned an error code (2)", "W: Problem unlinking the file /var/cache/apt/pkgcache.bin - pkgDPkgPM::Go (30: Read-only file system)"], "stdout": "Reading package lists...\nBuilding dependency tree...\nReading state information...\nThe following additional packages will be installed:\n libevent-pthreads-2.1-7 libopts25 sntp\nSuggested packages:\n ntp-doc\nThe following packages will be REMOVED:\n systemd-timesyncd\nThe following NEW packages will be installed:\n libevent-pthreads-2.1-7 libopts25 ntp sntp\n0 upgraded, 4 newly installed, 1 to remove and 34 not upgraded.\nNeed to get 852 kB of archives.\nAfter this operation, 2280 kB of additional disk space will be used.\nGet:1 http://ports.ubuntu.com/ubuntu-ports jammy/main arm64 libevent-pthreads-2.1-7 arm64 2.1.12-stable-1build3 [7588 B]\nGet:2 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 libopts25 arm64 1:5.18.16-4 [55.8 kB]\nGet:3 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 ntp arm64 1:4.2.8p15+dfsg-1ubuntu2 [721 kB]\nGet:4 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 sntp arm64 1:4.2.8p15+dfsg-1ubuntu2 [67.4 kB]\nFetched 852 kB in 1s (684 kB/s)\n(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 75039 files and directories currently installed.)\r\nRemoving systemd-timesyncd (249.11-0ubuntu3.9) ...\r\nSelecting previously unselected package libevent-pthreads-2.1-7:arm64.\r\n(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 75025 files and directories currently installed.)\r\nPreparing to unpack .../libevent-pthreads-2.1-7_2.1.12-stable-1build3_arm64.deb ...\r\nUnpacking libevent-pthreads-2.1-7:arm64 (2.1.12-stable-1build3) ...\r\nSelecting previously unselected package libopts25:arm64.\r\nPreparing to unpack .../libopts25_1%3a5.18.16-4_arm64.deb ...\r\nUnpacking libopts25:arm64 (1:5.18.16-4) ...\r\nSelecting previously unselected package ntp.\r\nPreparing to unpack .../ntp_1%3a4.2.8p15+dfsg-1ubuntu2_arm64.deb ...\r\nUnpacking ntp (1:4.2.8p15+dfsg-1ubuntu2) ...\r\ndpkg: error processing archive /var/cache/apt/archives/ntp_1%3a4.2.8p15+dfsg-1ubuntu2_arm64.deb (--unpack):\r\n unable to create '/etc/apparmor.d/tunables/ntpd.dpkg-new' (while processing './etc/apparmor.d/tunables/ntpd'): Structure needs cleaning\r\ndpkg: error while cleaning up:\r\n unable to remove newly-extracted version of '/etc/apparmor.d/tunables/ntpd': Read-only file system\r\ndpkg: error while cleaning up:\r\n unable to remove newly-extracted version of '/etc/NetworkManager/dispatcher.d/ntp': Read-only file system\r\ndpkg: error while cleaning up:\r\n unable to securely remove '/var/lib/dpkg/tmp.ci': Read-only file system\r\ndpkg: error processing archive /var/cache/apt/archives/sntp_1%3a4.2.8p15+dfsg-1ubuntu2_arm64.deb (--unpack):\r\n error ensuring '/var/lib/dpkg/reassemble.deb' doesn't exist: Read-only file system\r\ndpkg: error: unable to create new file '/var/lib/dpkg/status-new': Read-only file system\r\ndpkg-deb: error: paste subprocess was killed by signal (Broken pipe)\r\nneedrestart is being skipped since dpkg has failed\n", "stdout_lines": ["Reading package lists...", "Building dependency tree...", "Reading state information...", "The following additional packages will be installed:", " libevent-pthreads-2.1-7 libopts25 sntp", "Suggested packages:", " ntp-doc", "The following packages will be REMOVED:", " systemd-timesyncd", "The following NEW packages will be installed:", " libevent-pthreads-2.1-7 libopts25 ntp sntp", "0 upgraded, 4 newly installed, 1 to remove and 34 not upgraded.", "Need to get 852 kB of archives.", "After this operation, 2280 kB of additional disk space will be used.", "Get:1 http://ports.ubuntu.com/ubuntu-ports jammy/main arm64 libevent-pthreads-2.1-7 arm64 2.1.12-stable-1build3 [7588 B]", "Get:2 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 libopts25 arm64 1:5.18.16-4 [55.8 kB]", "Get:3 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 ntp arm64 1:4.2.8p15+dfsg-1ubuntu2 [721 kB]", "Get:4 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 sntp arm64 1:4.2.8p15+dfsg-1ubuntu2 [67.4 kB]", "Fetched 852 kB in 1s (684 kB/s)", "(Reading database ... ", "(Reading database ... 5%", "(Reading database ... 10%", "(Reading database ... 15%", "(Reading database ... 20%", "(Reading database ... 25%", "(Reading database ... 30%", "(Reading database ... 35%", "(Reading database ... 40%", "(Reading database ... 45%", "(Reading database ... 50%", "(Reading database ... 55%", "(Reading database ... 60%", "(Reading database ... 65%", "(Reading database ... 70%", "(Reading database ... 75%", "(Reading database ... 80%", "(Reading database ... 85%", "(Reading database ... 90%", "(Reading database ... 95%", "(Reading database ... 100%", "(Reading database ... 75039 files and directories currently installed.)", "Removing systemd-timesyncd (249.11-0ubuntu3.9) ...", "Selecting previously unselected package libevent-pthreads-2.1-7:arm64.", "(Reading database ... ", "(Reading database ... 5%", "(Reading database ... 10%", "(Reading database ... 15%", "(Reading database ... 20%", "(Reading database ... 25%", "(Reading database ... 30%", "(Reading database ... 35%", "(Reading database ... 40%", "(Reading database ... 45%", "(Reading database ... 50%", "(Reading database ... 55%", "(Reading database ... 60%", "(Reading database ... 65%", "(Reading database ... 70%", "(Reading database ... 75%", "(Reading database ... 80%", "(Reading database ... 85%", "(Reading database ... 90%", "(Reading database ... 95%", "(Reading database ... 100%", "(Reading database ... 75025 files and directories currently installed.)", "Preparing to unpack .../libevent-pthreads-2.1-7_2.1.12-stable-1build3_arm64.deb ...", "Unpacking libevent-pthreads-2.1-7:arm64 (2.1.12-stable-1build3) ...", "Selecting previously unselected package libopts25:arm64.", "Preparing to unpack .../libopts25_1%3a5.18.16-4_arm64.deb ...", "Unpacking libopts25:arm64 (1:5.18.16-4) ...", "Selecting previously unselected package ntp.", "Preparing to unpack .../ntp_1%3a4.2.8p15+dfsg-1ubuntu2_arm64.deb ...", "Unpacking ntp (1:4.2.8p15+dfsg-1ubuntu2) ...", "dpkg: error processing archive /var/cache/apt/archives/ntp_1%3a4.2.8p15+dfsg-1ubuntu2_arm64.deb (--unpack):", " unable to create '/etc/apparmor.d/tunables/ntpd.dpkg-new' (while processing './etc/apparmor.d/tunables/ntpd'): Structure needs cleaning", "dpkg: error while cleaning up:", " unable to remove newly-extracted version of '/etc/apparmor.d/tunables/ntpd': Read-only file system", "dpkg: error while cleaning up:", " unable to remove newly-extracted version of '/etc/NetworkManager/dispatcher.d/ntp': Read-only file system", "dpkg: error while cleaning up:", " unable to securely remove '/var/lib/dpkg/tmp.ci': Read-only file system", "dpkg: error processing archive /var/cache/apt/archives/sntp_1%3a4.2.8p15+dfsg-1ubuntu2_arm64.deb (--unpack):", " error ensuring '/var/lib/dpkg/reassemble.deb' doesn't exist: Read-only file system", "dpkg: error: unable to create new file '/var/lib/dpkg/status-new': Read-only file system", "dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)", "needrestart is being skipped since dpkg has failed"]}
RUNNING HANDLER [common : restart journald] ************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: FileNotFoundError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/home/USER.linux']
fatal: [default]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n File \"<stdin>\", line 107, in <module>\n File \"<stdin>\", line 92, in _ansiballz_main\n File \"/usr/lib/python3.10/tempfile.py\", line 496, in mkdtemp\n prefix, suffix, dir, output_type = _sanitize_params(prefix, suffix, dir)\n File \"/usr/lib/python3.10/tempfile.py\", line 265, in _sanitize_params\n dir = gettempdir()\n File \"/usr/lib/python3.10/tempfile.py\", line 438, in gettempdir\n return _os.fsdecode(_gettempdir())\n File \"/usr/lib/python3.10/tempfile.py\", line 431, in _gettempdir\n tempdir = _get_default_tempdir()\n File \"/usr/lib/python3.10/tempfile.py\", line 362, in _get_default_tempdir\n raise FileNotFoundError(_errno.ENOENT,\nFileNotFoundError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/home/USER.linux']\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
PLAY RECAP *********************************************************************
default : ok=27  changed=12  unreachable=0 failed=2  skipped=13  rescued=0 ignored=0
Running command => limactl start --tty=false --name=test3.test /Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/test3.test.yml
Updating /etc/hosts file (sudo may be required, see `trellis vm sudoers` for more details)
Provisioning VM...
Starting galaxy role install process
- composer (1.9.0) is already installed, skipping.
- ntp (2.3.1) is already installed, skipping.
- logrotate (v0.0.5) is already installed, skipping.
- swapfile (v2.0.36) is already installed, skipping.
- mailpit (v1.0.0) is already installed, skipping.
Running command => ansible-playbook dev.yml --inventory-file=/Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/inventory -e env=development
PLAY [WordPress Server: Install LEMP Stack with PHP and MariaDB MySQL] *********
TASK [Gathering Facts] *********************************************************
ok: [default]
TASK [common : Load wordpress_sites.yml vars into <env>_sites vars] ************
skipping: [default] => (item=development) 
skipping: [default]
TASK [common : Fail if there are duplicate site keys within host's wordpress_sites] ***
skipping: [default]
TASK [common : Validate wordpress_sites] ***************************************
skipping: [default]
TASK [common : Validate format of site_hosts] **********************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [common : Import PHP version specific vars] *******************************
ok: [default]
TASK [common : Verify dict format for apt package component variables] *********
skipping: [default]
TASK [common : Verify dict format for apt package combined variables] **********
skipping: [default]
TASK [common : Validate Ubuntu version] ****************************************
skipping: [default]
TASK [common : Check whether passlib is needed] ********************************
skipping: [default]
TASK [common : Retrieve local SSH client's settings per host] ******************
ok: [default]
TASK [common : Validate compatible settings between SSH client and server] *****
ok: [default] => {
 "changed": false,
 "msg": "All assertions passed"
}
TASK [common : Update apt packages] ********************************************
changed: [default]
TASK [common : Checking essentials] ********************************************
changed: [default] => (item=build-essential)
ok: [default] => (item=curl)
ok: [default] => (item=dbus)
changed: [default] => (item=ghostscript)
ok: [default] => (item=git)
changed: [default] => (item=imagemagick)
changed: [default] => (item=libgs-dev)
changed: [default] => (item=libnss-myhostname)
ok: [default] => (item=python3)
ok: [default] => (item=python3-software-properties)
changed: [default] => (item=python3-mysqldb)
changed: [default] => (item=python3-pycurl)
changed: [default] => (item=unzip)
TASK [common : Validate timezone variable] *************************************
ok: [default]
TASK [common : Explain timezone error] *****************************************
skipping: [default]
TASK [common : Add myhostname to nsswitch.conf to ensure resolvable hostname] ***
ok: [default]
TASK [common : Generate SSH key for vagrant user for ansible_local provisioning] ***
skipping: [default]
TASK [common : Retrieve SSH client IP] *****************************************
skipping: [default]
TASK [common : Restrict journal log size] **************************************
changed: [default]
TASK [fail2ban : ensure fail2ban is installed] *********************************
changed: [default]
TASK [fail2ban : ensure fail2ban is configured] ********************************
changed: [default] => (item=jail.local)
changed: [default] => (item=fail2ban.local)
TASK [fail2ban : Check if fail2ban_filter_templates_path exists] ***************
ok: [default -> localhost]
TASK [fail2ban : build list of fail2ban filter templates] **********************
ok: [default -> localhost]
TASK [fail2ban : ensure configuration directory exists] ************************
ok: [default]
TASK [fail2ban : template fail2ban filters] ************************************
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-xmlrpc.conf.j2)
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-wp-login.conf.j2)
TASK [fail2ban : ensure fail2ban starts on a fresh reboot] *********************
changed: [default]
TASK [ferm : ensure ferm status is in debconf] *********************************
changed: [default]
TASK [ferm : ensure ferm is installed] *****************************************
changed: [default]
TASK [ferm : ensure configuration directories exist] ***************************
changed: [default] => (item=/etc/ferm/ferm.d)
changed: [default] => (item=/etc/ferm/filter-input.d)
TASK [ferm : ensure firewall is configured] ************************************
changed: [default] => (item=etc/default/ferm)
changed: [default] => (item=etc/ferm/ferm.conf)
TASK [ferm : ensure iptables INPUT rules are removed] **************************
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'}) 
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']}) 
skipping: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20}) 
skipping: [default]
TASK [ferm : ensure iptables INPUT rules are added] ****************************
changed: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'})
changed: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']})
changed: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20})
TASK [ferm : ensure iptables rules are enabled] ********************************
skipping: [default]
TASK [ferm : ensure iptables rules are disabled] *******************************
ok: [default]
TASK [ntp : Include OS-specific variables.] ************************************
ok: [default]
TASK [ntp : Set the ntp_driftfile variable.] ***********************************
ok: [default]
TASK [ntp : Set the ntp_package variable.] *************************************
ok: [default]
TASK [ntp : Set the ntp_config_file variable.] *********************************
ok: [default]
TASK [ntp : Set the ntp_daemon variable.] **************************************
ok: [default]
TASK [ntp : Ensure NTP package is installed.] **********************************
fatal: [default]: FAILED! => {"cache_update_time": 1684783544, "cache_updated": false, "changed": false, "msg": "'/usr/bin/apt-get -y -o \"Dpkg::Options::=--force-confdef\" -o \"Dpkg::Options::=--force-confold\" install 'ntp=1:4.2.8p15+dfsg-1ubuntu2'' failed: touch: cannot touch '/var/lib/update-notifier/dpkg-run-stamp': Read-only file system\nE: Sub-process /usr/bin/dpkg returned an error code (2)\nW: Problem unlinking the file /var/cache/apt/pkgcache.bin - pkgDPkgPM::Go (30: Read-only file system)\n", "rc": 100, "stderr": "touch: cannot touch '/var/lib/update-notifier/dpkg-run-stamp': Read-only file system\nE: Sub-process /usr/bin/dpkg returned an error code (2)\nW: Problem unlinking the file /var/cache/apt/pkgcache.bin - pkgDPkgPM::Go (30: Read-only file system)\n", "stderr_lines": ["touch: cannot touch '/var/lib/update-notifier/dpkg-run-stamp': Read-only file system", "E: Sub-process /usr/bin/dpkg returned an error code (2)", "W: Problem unlinking the file /var/cache/apt/pkgcache.bin - pkgDPkgPM::Go (30: Read-only file system)"], "stdout": "Reading package lists...\nBuilding dependency tree...\nReading state information...\nThe following additional packages will be installed:\n libevent-pthreads-2.1-7 libopts25 sntp\nSuggested packages:\n ntp-doc\nThe following packages will be REMOVED:\n systemd-timesyncd\nThe following NEW packages will be installed:\n libevent-pthreads-2.1-7 libopts25 ntp sntp\n0 upgraded, 4 newly installed, 1 to remove and 34 not upgraded.\nNeed to get 852 kB of archives.\nAfter this operation, 2280 kB of additional disk space will be used.\nGet:1 http://ports.ubuntu.com/ubuntu-ports jammy/main arm64 libevent-pthreads-2.1-7 arm64 2.1.12-stable-1build3 [7588 B]\nGet:2 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 libopts25 arm64 1:5.18.16-4 [55.8 kB]\nGet:3 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 ntp arm64 1:4.2.8p15+dfsg-1ubuntu2 [721 kB]\nGet:4 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 sntp arm64 1:4.2.8p15+dfsg-1ubuntu2 [67.4 kB]\nFetched 852 kB in 1s (673 kB/s)\n(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 75039 files and directories currently installed.)\r\nRemoving systemd-timesyncd (249.11-0ubuntu3.9) ...\r\nSelecting previously unselected package libevent-pthreads-2.1-7:arm64.\r\n(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 75025 files and directories currently installed.)\r\nPreparing to unpack .../libevent-pthreads-2.1-7_2.1.12-stable-1build3_arm64.deb ...\r\nUnpacking libevent-pthreads-2.1-7:arm64 (2.1.12-stable-1build3) ...\r\nSelecting previously unselected package libopts25:arm64.\r\nPreparing to unpack .../libopts25_1%3a5.18.16-4_arm64.deb ...\r\nUnpacking libopts25:arm64 (1:5.18.16-4) ...\r\nSelecting previously unselected package ntp.\r\nPreparing to unpack .../ntp_1%3a4.2.8p15+dfsg-1ubuntu2_arm64.deb ...\r\nUnpacking ntp (1:4.2.8p15+dfsg-1ubuntu2) ...\r\nSelecting previously unselected package sntp.\r\nPreparing to unpack .../sntp_1%3a4.2.8p15+dfsg-1ubuntu2_arm64.deb ...\r\nUnpacking sntp (1:4.2.8p15+dfsg-1ubuntu2) ...\r\nSetting up libopts25:arm64 (1:5.18.16-4) ...\r\nSetting up ntp (1:4.2.8p15+dfsg-1ubuntu2) ...\r\nCreated symlink /etc/systemd/system/network-pre.target.wants/ntp-systemd-netif.path → /lib/systemd/system/ntp-systemd-netif.path.\r\nCreated symlink /etc/systemd/system/multi-user.target.wants/ntp.service → /lib/systemd/system/ntp.service.\r\ninstall: cannot create regular file '/etc/apparmor.d/local/usr.sbin.ntpd': Structure needs cleaning\r\ndpkg: error processing package ntp (--configure):\r\n installed ntp package post-installation script subprocess returned error exit status 1\r\nSetting up libevent-pthreads-2.1-7:arm64 (2.1.12-stable-1build3) ...\r\ndpkg: unrecoverable fatal error, aborting:\r\n unable to truncate for updated status of 'libevent-pthreads-2.1-7:arm64': Read-only file system\r\nneedrestart is being skipped since dpkg has failed\n", "stdout_lines": ["Reading package lists...", "Building dependency tree...", "Reading state information...", "The following additional packages will be installed:", " libevent-pthreads-2.1-7 libopts25 sntp", "Suggested packages:", " ntp-doc", "The following packages will be REMOVED:", " systemd-timesyncd", "The following NEW packages will be installed:", " libevent-pthreads-2.1-7 libopts25 ntp sntp", "0 upgraded, 4 newly installed, 1 to remove and 34 not upgraded.", "Need to get 852 kB of archives.", "After this operation, 2280 kB of additional disk space will be used.", "Get:1 http://ports.ubuntu.com/ubuntu-ports jammy/main arm64 libevent-pthreads-2.1-7 arm64 2.1.12-stable-1build3 [7588 B]", "Get:2 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 libopts25 arm64 1:5.18.16-4 [55.8 kB]", "Get:3 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 ntp arm64 1:4.2.8p15+dfsg-1ubuntu2 [721 kB]", "Get:4 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 sntp arm64 1:4.2.8p15+dfsg-1ubuntu2 [67.4 kB]", "Fetched 852 kB in 1s (673 kB/s)", "(Reading database ... ", "(Reading database ... 5%", "(Reading database ... 10%", "(Reading database ... 15%", "(Reading database ... 20%", "(Reading database ... 25%", "(Reading database ... 30%", "(Reading database ... 35%", "(Reading database ... 40%", "(Reading database ... 45%", "(Reading database ... 50%", "(Reading database ... 55%", "(Reading database ... 60%", "(Reading database ... 65%", "(Reading database ... 70%", "(Reading database ... 75%", "(Reading database ... 80%", "(Reading database ... 85%", "(Reading database ... 90%", "(Reading database ... 95%", "(Reading database ... 100%", "(Reading database ... 75039 files and directories currently installed.)", "Removing systemd-timesyncd (249.11-0ubuntu3.9) ...", "Selecting previously unselected package libevent-pthreads-2.1-7:arm64.", "(Reading database ... ", "(Reading database ... 5%", "(Reading database ... 10%", "(Reading database ... 15%", "(Reading database ... 20%", "(Reading database ... 25%", "(Reading database ... 30%", "(Reading database ... 35%", "(Reading database ... 40%", "(Reading database ... 45%", "(Reading database ... 50%", "(Reading database ... 55%", "(Reading database ... 60%", "(Reading database ... 65%", "(Reading database ... 70%", "(Reading database ... 75%", "(Reading database ... 80%", "(Reading database ... 85%", "(Reading database ... 90%", "(Reading database ... 95%", "(Reading database ... 100%", "(Reading database ... 75025 files and directories currently installed.)", "Preparing to unpack .../libevent-pthreads-2.1-7_2.1.12-stable-1build3_arm64.deb ...", "Unpacking libevent-pthreads-2.1-7:arm64 (2.1.12-stable-1build3) ...", "Selecting previously unselected package libopts25:arm64.", "Preparing to unpack .../libopts25_1%3a5.18.16-4_arm64.deb ...", "Unpacking libopts25:arm64 (1:5.18.16-4) ...", "Selecting previously unselected package ntp.", "Preparing to unpack .../ntp_1%3a4.2.8p15+dfsg-1ubuntu2_arm64.deb ...", "Unpacking ntp (1:4.2.8p15+dfsg-1ubuntu2) ...", "Selecting previously unselected package sntp.", "Preparing to unpack .../sntp_1%3a4.2.8p15+dfsg-1ubuntu2_arm64.deb ...", "Unpacking sntp (1:4.2.8p15+dfsg-1ubuntu2) ...", "Setting up libopts25:arm64 (1:5.18.16-4) ...", "Setting up ntp (1:4.2.8p15+dfsg-1ubuntu2) ...", "Created symlink /etc/systemd/system/network-pre.target.wants/ntp-systemd-netif.path → /lib/systemd/system/ntp-systemd-netif.path.", "Created symlink /etc/systemd/system/multi-user.target.wants/ntp.service → /lib/systemd/system/ntp.service.", "install: cannot create regular file '/etc/apparmor.d/local/usr.sbin.ntpd': Structure needs cleaning", "dpkg: error processing package ntp (--configure):", " installed ntp package post-installation script subprocess returned error exit status 1", "Setting up libevent-pthreads-2.1-7:arm64 (2.1.12-stable-1build3) ...", "dpkg: unrecoverable fatal error, aborting:", " unable to truncate for updated status of 'libevent-pthreads-2.1-7:arm64': Read-only file system", "needrestart is being skipped since dpkg has failed"]}
RUNNING HANDLER [common : restart journald] ************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: FileNotFoundError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/home/USER.linux']
fatal: [default]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n File \"<stdin>\", line 107, in <module>\n File \"<stdin>\", line 92, in _ansiballz_main\n File \"/usr/lib/python3.10/tempfile.py\", line 496, in mkdtemp\n prefix, suffix, dir, output_type = _sanitize_params(prefix, suffix, dir)\n File \"/usr/lib/python3.10/tempfile.py\", line 265, in _sanitize_params\n dir = gettempdir()\n File \"/usr/lib/python3.10/tempfile.py\", line 438, in gettempdir\n return _os.fsdecode(_gettempdir())\n File \"/usr/lib/python3.10/tempfile.py\", line 431, in _gettempdir\n tempdir = _get_default_tempdir()\n File \"/usr/lib/python3.10/tempfile.py\", line 362, in _get_default_tempdir\n raise FileNotFoundError(_errno.ENOENT,\nFileNotFoundError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/home/USER.linux']\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
PLAY RECAP *********************************************************************
default : ok=27  changed=12  unreachable=0 failed=2  skipped=13  rescued=0 ignored=0
Running command => limactl start --tty=false --name=test3.test /Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/test3.test.yml
Updating /etc/hosts file (sudo may be required, see `trellis vm sudoers` for more details)
Provisioning VM...
Starting galaxy role install process
- composer (1.9.0) is already installed, skipping.
- ntp (2.3.1) is already installed, skipping.
- logrotate (v0.0.5) is already installed, skipping.
- swapfile (v2.0.36) is already installed, skipping.
- mailpit (v1.0.0) is already installed, skipping.
Running command => ansible-playbook dev.yml --inventory-file=/Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/inventory -e env=development
PLAY [WordPress Server: Install LEMP Stack with PHP and MariaDB MySQL] *********
TASK [Gathering Facts] *********************************************************
ok: [default]
TASK [common : Load wordpress_sites.yml vars into <env>_sites vars] ************
skipping: [default] => (item=development) 
skipping: [default]
TASK [common : Fail if there are duplicate site keys within host's wordpress_sites] ***
skipping: [default]
TASK [common : Validate wordpress_sites] ***************************************
skipping: [default]
TASK [common : Validate format of site_hosts] **********************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [common : Import PHP version specific vars] *******************************
ok: [default]
TASK [common : Verify dict format for apt package component variables] *********
skipping: [default]
TASK [common : Verify dict format for apt package combined variables] **********
skipping: [default]
TASK [common : Validate Ubuntu version] ****************************************
skipping: [default]
TASK [common : Check whether passlib is needed] ********************************
skipping: [default]
TASK [common : Retrieve local SSH client's settings per host] ******************
ok: [default]
TASK [common : Validate compatible settings between SSH client and server] *****
ok: [default] => {
 "changed": false,
 "msg": "All assertions passed"
}
TASK [common : Update apt packages] ********************************************
changed: [default]
TASK [common : Checking essentials] ********************************************
changed: [default] => (item=build-essential)
ok: [default] => (item=curl)
ok: [default] => (item=dbus)
changed: [default] => (item=ghostscript)
ok: [default] => (item=git)
changed: [default] => (item=imagemagick)
changed: [default] => (item=libgs-dev)
changed: [default] => (item=libnss-myhostname)
ok: [default] => (item=python3)
ok: [default] => (item=python3-software-properties)
changed: [default] => (item=python3-mysqldb)
changed: [default] => (item=python3-pycurl)
changed: [default] => (item=unzip)
TASK [common : Validate timezone variable] *************************************
ok: [default]
TASK [common : Explain timezone error] *****************************************
skipping: [default]
TASK [common : Add myhostname to nsswitch.conf to ensure resolvable hostname] ***
ok: [default]
TASK [common : Generate SSH key for vagrant user for ansible_local provisioning] ***
skipping: [default]
TASK [common : Retrieve SSH client IP] *****************************************
skipping: [default]
TASK [common : Restrict journal log size] **************************************
changed: [default]
TASK [fail2ban : ensure fail2ban is installed] *********************************
changed: [default]
TASK [fail2ban : ensure fail2ban is configured] ********************************
changed: [default] => (item=jail.local)
changed: [default] => (item=fail2ban.local)
TASK [fail2ban : Check if fail2ban_filter_templates_path exists] ***************
ok: [default -> localhost]
TASK [fail2ban : build list of fail2ban filter templates] **********************
ok: [default -> localhost]
TASK [fail2ban : ensure configuration directory exists] ************************
ok: [default]
TASK [fail2ban : template fail2ban filters] ************************************
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-xmlrpc.conf.j2)
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-wp-login.conf.j2)
TASK [fail2ban : ensure fail2ban starts on a fresh reboot] *********************
changed: [default]
TASK [ferm : ensure ferm status is in debconf] *********************************
changed: [default]
TASK [ferm : ensure ferm is installed] *****************************************
changed: [default]
TASK [ferm : ensure configuration directories exist] ***************************
changed: [default] => (item=/etc/ferm/ferm.d)
changed: [default] => (item=/etc/ferm/filter-input.d)
TASK [ferm : ensure firewall is configured] ************************************
changed: [default] => (item=etc/default/ferm)
changed: [default] => (item=etc/ferm/ferm.conf)
TASK [ferm : ensure iptables INPUT rules are removed] **************************
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'}) 
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']}) 
skipping: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20}) 
skipping: [default]
TASK [ferm : ensure iptables INPUT rules are added] ****************************
changed: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'})
changed: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']})
changed: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20})
TASK [ferm : ensure iptables rules are enabled] ********************************
skipping: [default]
TASK [ferm : ensure iptables rules are disabled] *******************************
ok: [default]
TASK [ntp : Include OS-specific variables.] ************************************
ok: [default]
TASK [ntp : Set the ntp_driftfile variable.] ***********************************
ok: [default]
TASK [ntp : Set the ntp_package variable.] *************************************
ok: [default]
TASK [ntp : Set the ntp_config_file variable.] *********************************
ok: [default]
TASK [ntp : Set the ntp_daemon variable.] **************************************
ok: [default]
TASK [ntp : Ensure NTP package is installed.] **********************************
changed: [default]
TASK [ntp : Ensure tzdata package is installed (Linux).] ***********************
ok: [default]
TASK [ntp : Set timezone.] *****************************************************
ok: [default]
TASK [ntp : Populate service facts.] *******************************************
ok: [default]
TASK [ntp : Disable systemd-timesyncd if it's running but ntp is enabled.] *****
ok: [default]
TASK [ntp : Ensure NTP is running and enabled as configured.] ******************
ok: [default]
TASK [ntp : Ensure NTP is stopped and disabled as configured.] *****************
skipping: [default]
TASK [ntp : Generate ntp configuration file.] **********************************
changed: [default]
TASK [sshd : Ensure latest SSH server and client are installed] ****************
ok: [default] => (item=openssh-server)
ok: [default] => (item=openssh-client)
TASK [sshd : Create a secure sshd_config] **************************************
changed: [default]
TASK [sshd : Create a secure ssh_config] ***************************************
changed: [default]
TASK [sshd : Remove Diffie-Hellman moduli of size < 2000] **********************
ok: [default]
TASK [mariadb : Add MariaDB APT key] *******************************************
changed: [default]
TASK [mariadb : Add MariaDB PPA] ***********************************************
changed: [default]
TASK [mariadb : Install MySQL client] ******************************************
changed: [default]
TASK [mariadb : Install MySQL server] ******************************************
changed: [default]
TASK [mariadb : Disable MariaDB binary logging] ********************************
changed: [default]
TASK [mariadb : Copy .my.cnf file with root password credentials.] *************
changed: [default]
TASK [mariadb : Set root user password] ****************************************
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default]
TASK [mariadb : Delete anonymous MySQL server users] ***************************
ok: [default] => (item=None)
ok: [default] => (item=None)
ok: [default] => (item=None)
ok: [default]
TASK [mariadb : Remove the test database] **************************************
ok: [default]
TASK [mailpit : Ensure mailpit install directory exists.] **********************
changed: [default]
TASK [mailpit : Download and install mailpit binary] ***************************
changed: [default]
TASK [mailpit : Copy mailpit systemd unit file into place] *********************
changed: [default]
TASK [mailpit : Ensure mailpit is enabled and will start on boot] **************
changed: [default]
TASK [php : Add PHP PPA] *******************************************************
changed: [default]
TASK [php : Install PHP and extensions] ****************************************
changed: [default] => (item=php8.1-bcmath)
changed: [default] => (item=php8.1-cli)
changed: [default] => (item=php8.1-curl)
changed: [default] => (item=php8.1-dev)
changed: [default] => (item=php8.1-fpm)
changed: [default] => (item=php8.1-imagick)
changed: [default] => (item=php8.1-intl)
changed: [default] => (item=php8.1-mbstring)
changed: [default] => (item=php8.1-mysql)
changed: [default] => (item=php8.1-xml)
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: FileNotFoundError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/home/USER.linux']
failed: [default] (item=php8.1-xmlrpc) => {"ansible_loop_var": "item", "changed": false, "item": {"key": "php8.1-xmlrpc", "value": "present"}, "module_stderr": "Traceback (most recent call last):\n File \"<stdin>\", line 107, in <module>\n File \"<stdin>\", line 92, in _ansiballz_main\n File \"/usr/lib/python3.10/tempfile.py\", line 496, in mkdtemp\n prefix, suffix, dir, output_type = _sanitize_params(prefix, suffix, dir)\n File \"/usr/lib/python3.10/tempfile.py\", line 265, in _sanitize_params\n dir = gettempdir()\n File \"/usr/lib/python3.10/tempfile.py\", line 438, in gettempdir\n return _os.fsdecode(_gettempdir())\n File \"/usr/lib/python3.10/tempfile.py\", line 431, in _gettempdir\n tempdir = _get_default_tempdir()\n File \"/usr/lib/python3.10/tempfile.py\", line 362, in _get_default_tempdir\n raise FileNotFoundError(_errno.ENOENT,\nFileNotFoundError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/home/USER.linux']\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: FileNotFoundError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/home/USER.linux']
failed: [default] (item=php8.1-zip) => {"ansible_loop_var": "item", "changed": false, "item": {"key": "php8.1-zip", "value": "present"}, "module_stderr": "Traceback (most recent call last):\n File \"<stdin>\", line 107, in <module>\n File \"<stdin>\", line 92, in _ansiballz_main\n File \"/usr/lib/python3.10/tempfile.py\", line 496, in mkdtemp\n prefix, suffix, dir, output_type = _sanitize_params(prefix, suffix, dir)\n File \"/usr/lib/python3.10/tempfile.py\", line 265, in _sanitize_params\n dir = gettempdir()\n File \"/usr/lib/python3.10/tempfile.py\", line 438, in gettempdir\n return _os.fsdecode(_gettempdir())\n File \"/usr/lib/python3.10/tempfile.py\", line 431, in _gettempdir\n tempdir = _get_default_tempdir()\n File \"/usr/lib/python3.10/tempfile.py\", line 362, in _get_default_tempdir\n raise FileNotFoundError(_errno.ENOENT,\nFileNotFoundError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/home/USER.linux']\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
RUNNING HANDLER [common : restart journald] ************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: FileNotFoundError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/home/USER.linux']
fatal: [default]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n File \"<stdin>\", line 107, in <module>\n File \"<stdin>\", line 92, in _ansiballz_main\n File \"/usr/lib/python3.10/tempfile.py\", line 496, in mkdtemp\n prefix, suffix, dir, output_type = _sanitize_params(prefix, suffix, dir)\n File \"/usr/lib/python3.10/tempfile.py\", line 265, in _sanitize_params\n dir = gettempdir()\n File \"/usr/lib/python3.10/tempfile.py\", line 438, in gettempdir\n return _os.fsdecode(_gettempdir())\n File \"/usr/lib/python3.10/tempfile.py\", line 431, in _gettempdir\n tempdir = _get_default_tempdir()\n File \"/usr/lib/python3.10/tempfile.py\", line 362, in _get_default_tempdir\n raise FileNotFoundError(_errno.ENOENT,\nFileNotFoundError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/home/USER.linux']\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
PLAY RECAP *********************************************************************
default : ok=52  changed=28  unreachable=0 failed=2  skipped=14  rescued=0 ignored=0
Running command => limactl start --tty=false --name=test3.test /Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/test3.test.yml
Updating /etc/hosts file (sudo may be required, see `trellis vm sudoers` for more details)
Provisioning VM...
Starting galaxy role install process
- composer (1.9.0) is already installed, skipping.
- ntp (2.3.1) is already installed, skipping.
- logrotate (v0.0.5) is already installed, skipping.
- swapfile (v2.0.36) is already installed, skipping.
- mailpit (v1.0.0) is already installed, skipping.
Running command => ansible-playbook dev.yml --inventory-file=/Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/inventory -e env=development
PLAY [WordPress Server: Install LEMP Stack with PHP and MariaDB MySQL] *********
TASK [Gathering Facts] *********************************************************
ok: [default]
TASK [common : Load wordpress_sites.yml vars into <env>_sites vars] ************
skipping: [default] => (item=development) 
skipping: [default]
TASK [common : Fail if there are duplicate site keys within host's wordpress_sites] ***
skipping: [default]
TASK [common : Validate wordpress_sites] ***************************************
skipping: [default]
TASK [common : Validate format of site_hosts] **********************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [common : Import PHP version specific vars] *******************************
ok: [default]
TASK [common : Verify dict format for apt package component variables] *********
skipping: [default]
TASK [common : Verify dict format for apt package combined variables] **********
skipping: [default]
TASK [common : Validate Ubuntu version] ****************************************
skipping: [default]
TASK [common : Check whether passlib is needed] ********************************
skipping: [default]
TASK [common : Retrieve local SSH client's settings per host] ******************
ok: [default]
TASK [common : Validate compatible settings between SSH client and server] *****
ok: [default] => {
 "changed": false,
 "msg": "All assertions passed"
}
TASK [common : Update apt packages] ********************************************
changed: [default]
TASK [common : Checking essentials] ********************************************
changed: [default] => (item=build-essential)
ok: [default] => (item=curl)
ok: [default] => (item=dbus)
changed: [default] => (item=ghostscript)
ok: [default] => (item=git)
changed: [default] => (item=imagemagick)
changed: [default] => (item=libgs-dev)
changed: [default] => (item=libnss-myhostname)
ok: [default] => (item=python3)
ok: [default] => (item=python3-software-properties)
changed: [default] => (item=python3-mysqldb)
changed: [default] => (item=python3-pycurl)
changed: [default] => (item=unzip)
TASK [common : Validate timezone variable] *************************************
ok: [default]
TASK [common : Explain timezone error] *****************************************
skipping: [default]
TASK [common : Add myhostname to nsswitch.conf to ensure resolvable hostname] ***
ok: [default]
TASK [common : Generate SSH key for vagrant user for ansible_local provisioning] ***
skipping: [default]
TASK [common : Retrieve SSH client IP] *****************************************
skipping: [default]
TASK [common : Restrict journal log size] **************************************
changed: [default]
TASK [fail2ban : ensure fail2ban is installed] *********************************
changed: [default]
TASK [fail2ban : ensure fail2ban is configured] ********************************
changed: [default] => (item=jail.local)
changed: [default] => (item=fail2ban.local)
TASK [fail2ban : Check if fail2ban_filter_templates_path exists] ***************
ok: [default -> localhost]
TASK [fail2ban : build list of fail2ban filter templates] **********************
ok: [default -> localhost]
TASK [fail2ban : ensure configuration directory exists] ************************
ok: [default]
TASK [fail2ban : template fail2ban filters] ************************************
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-xmlrpc.conf.j2)
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-wp-login.conf.j2)
TASK [fail2ban : ensure fail2ban starts on a fresh reboot] *********************
changed: [default]
TASK [ferm : ensure ferm status is in debconf] *********************************
changed: [default]
TASK [ferm : ensure ferm is installed] *****************************************
changed: [default]
TASK [ferm : ensure configuration directories exist] ***************************
changed: [default] => (item=/etc/ferm/ferm.d)
changed: [default] => (item=/etc/ferm/filter-input.d)
TASK [ferm : ensure firewall is configured] ************************************
changed: [default] => (item=etc/default/ferm)
changed: [default] => (item=etc/ferm/ferm.conf)
TASK [ferm : ensure iptables INPUT rules are removed] **************************
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'}) 
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']}) 
skipping: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20}) 
skipping: [default]
TASK [ferm : ensure iptables INPUT rules are added] ****************************
changed: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'})
changed: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']})
changed: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20})
TASK [ferm : ensure iptables rules are enabled] ********************************
skipping: [default]
TASK [ferm : ensure iptables rules are disabled] *******************************
ok: [default]
TASK [ntp : Include OS-specific variables.] ************************************
ok: [default]
TASK [ntp : Set the ntp_driftfile variable.] ***********************************
ok: [default]
TASK [ntp : Set the ntp_package variable.] *************************************
ok: [default]
TASK [ntp : Set the ntp_config_file variable.] *********************************
ok: [default]
TASK [ntp : Set the ntp_daemon variable.] **************************************
ok: [default]
TASK [ntp : Ensure NTP package is installed.] **********************************
changed: [default]
TASK [ntp : Ensure tzdata package is installed (Linux).] ***********************
ok: [default]
TASK [ntp : Set timezone.] *****************************************************
ok: [default]
TASK [ntp : Populate service facts.] *******************************************
ok: [default]
TASK [ntp : Disable systemd-timesyncd if it's running but ntp is enabled.] *****
ok: [default]
TASK [ntp : Ensure NTP is running and enabled as configured.] ******************
ok: [default]
TASK [ntp : Ensure NTP is stopped and disabled as configured.] *****************
skipping: [default]
TASK [ntp : Generate ntp configuration file.] **********************************
changed: [default]
TASK [sshd : Ensure latest SSH server and client are installed] ****************
ok: [default] => (item=openssh-server)
ok: [default] => (item=openssh-client)
TASK [sshd : Create a secure sshd_config] **************************************
changed: [default]
TASK [sshd : Create a secure ssh_config] ***************************************
changed: [default]
TASK [sshd : Remove Diffie-Hellman moduli of size < 2000] **********************
ok: [default]
TASK [mariadb : Add MariaDB APT key] *******************************************
changed: [default]
TASK [mariadb : Add MariaDB PPA] ***********************************************
changed: [default]
TASK [mariadb : Install MySQL client] ******************************************
changed: [default]
TASK [mariadb : Install MySQL server] ******************************************
changed: [default]
TASK [mariadb : Disable MariaDB binary logging] ********************************
changed: [default]
TASK [mariadb : Copy .my.cnf file with root password credentials.] *************
changed: [default]
TASK [mariadb : Set root user password] ****************************************
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default]
TASK [mariadb : Delete anonymous MySQL server users] ***************************
ok: [default] => (item=None)
ok: [default] => (item=None)
ok: [default] => (item=None)
ok: [default]
TASK [mariadb : Remove the test database] **************************************
ok: [default]
TASK [mailpit : Ensure mailpit install directory exists.] **********************
changed: [default]
TASK [mailpit : Download and install mailpit binary] ***************************
changed: [default]
TASK [mailpit : Copy mailpit systemd unit file into place] *********************
changed: [default]
TASK [mailpit : Ensure mailpit is enabled and will start on boot] **************
changed: [default]
TASK [php : Add PHP PPA] *******************************************************
changed: [default]
TASK [php : Install PHP and extensions] ****************************************
changed: [default] => (item=php8.1-bcmath)
changed: [default] => (item=php8.1-cli)
changed: [default] => (item=php8.1-curl)
changed: [default] => (item=php8.1-dev)
changed: [default] => (item=php8.1-fpm)
changed: [default] => (item=php8.1-imagick)
changed: [default] => (item=php8.1-intl)
changed: [default] => (item=php8.1-mbstring)
changed: [default] => (item=php8.1-mysql)
changed: [default] => (item=php8.1-xml)
changed: [default] => (item=php8.1-xmlrpc)
changed: [default] => (item=php8.1-zip)
TASK [php : Ensure correct PHP version selected] *******************************
ok: [default]
TASK [php : Find existing php fpm services] ************************************
ok: [default]
TASK [php : Stop old php-fpm services] *****************************************
skipping: [default]
TASK [php : Start php fpm service] *********************************************
ok: [default]
TASK [php : Copy PHP-FPM configuration file] ***********************************
changed: [default]
TASK [php : Copy PHP CLI configuration file] ***********************************
changed: [default]
TASK [php : Change ImageMagick policy.xml to allow for PDFs] *******************
changed: [default]
TASK [xdebug : Include php8.1 related vars] ************************************
ok: [default]
TASK [xdebug : Install Xdebug] *************************************************
changed: [default]
TASK [xdebug : Template the Xdebug configuration file] *************************
changed: [default]
TASK [xdebug : Ensure 20-xdebug.ini is present] ********************************
ok: [default]
TASK [xdebug : Disable Xdebug CLI] *********************************************
changed: [default]
TASK [memcached : Install memcached] *******************************************
changed: [default] => (item=memcached)
changed: [default] => (item=php8.1-memcached)
TASK [memcached : Copy the client configuration file] **************************
changed: [default]
TASK [memcached : Set the max open file descriptors] ***************************
changed: [default]
TASK [memcached : Start the memcached service] *********************************
ok: [default]
TASK [nginx : Add Nginx APT key] ***********************************************
changed: [default]
TASK [nginx : Add Nginx PPA] ***************************************************
changed: [default]
TASK [nginx : Install Nginx] ***************************************************
changed: [default]
TASK [nginx : Ensure site directories exist] ***********************************
failed: [default] (item=sites-available) => {"ansible_loop_var": "item", "changed": false, "item": "sites-available", "module_stderr": "Illegal instruction (core dumped)\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 132}
failed: [default] (item=sites-enabled) => {"ansible_loop_var": "item", "changed": false, "item": "sites-enabled", "module_stderr": "Illegal instruction (core dumped)\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 132}
RUNNING HANDLER [common : restart memcached] ***********************************
changed: [default]
RUNNING HANDLER [common : reload php-fpm] **************************************
changed: [default]
RUNNING HANDLER [common : restart journald] ************************************
changed: [default]
RUNNING HANDLER [fail2ban : restart fail2ban] **********************************
Running command => limactl start --tty=false --name=test3.test /Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/test3.test.yml
Updating /etc/hosts file (sudo may be required, see `trellis vm sudoers` for more details)
Provisioning VM...
Starting galaxy role install process
- composer (1.9.0) is already installed, skipping.
- ntp (2.3.1) is already installed, skipping.
- logrotate (v0.0.5) is already installed, skipping.
- swapfile (v2.0.36) is already installed, skipping.
- mailpit (v1.0.0) is already installed, skipping.
Running command => ansible-playbook dev.yml --inventory-file=/Users/USER/Developer/WPSites/test3.test/trellis/.trellis/lima/inventory -e env=development
PLAY [WordPress Server: Install LEMP Stack with PHP and MariaDB MySQL] *********
TASK [Gathering Facts] *********************************************************
ok: [default]
TASK [common : Load wordpress_sites.yml vars into <env>_sites vars] ************
skipping: [default] => (item=development) 
skipping: [default]
TASK [common : Fail if there are duplicate site keys within host's wordpress_sites] ***
skipping: [default]
TASK [common : Validate wordpress_sites] ***************************************
skipping: [default]
TASK [common : Validate format of site_hosts] **********************************
skipping: [default] => (item=test3.test) 
skipping: [default]
TASK [common : Import PHP version specific vars] *******************************
ok: [default]
TASK [common : Verify dict format for apt package component variables] *********
skipping: [default]
TASK [common : Verify dict format for apt package combined variables] **********
skipping: [default]
TASK [common : Validate Ubuntu version] ****************************************
skipping: [default]
TASK [common : Check whether passlib is needed] ********************************
skipping: [default]
TASK [common : Retrieve local SSH client's settings per host] ******************
ok: [default]
TASK [common : Validate compatible settings between SSH client and server] *****
ok: [default] => {
 "changed": false,
 "msg": "All assertions passed"
}
TASK [common : Update apt packages] ********************************************
changed: [default]
TASK [common : Checking essentials] ********************************************
changed: [default] => (item=build-essential)
ok: [default] => (item=curl)
ok: [default] => (item=dbus)
changed: [default] => (item=ghostscript)
ok: [default] => (item=git)
changed: [default] => (item=imagemagick)
changed: [default] => (item=libgs-dev)
changed: [default] => (item=libnss-myhostname)
ok: [default] => (item=python3)
ok: [default] => (item=python3-software-properties)
changed: [default] => (item=python3-mysqldb)
changed: [default] => (item=python3-pycurl)
changed: [default] => (item=unzip)
TASK [common : Validate timezone variable] *************************************
ok: [default]
TASK [common : Explain timezone error] *****************************************
skipping: [default]
TASK [common : Add myhostname to nsswitch.conf to ensure resolvable hostname] ***
ok: [default]
TASK [common : Generate SSH key for vagrant user for ansible_local provisioning] ***
skipping: [default]
TASK [common : Retrieve SSH client IP] *****************************************
skipping: [default]
TASK [common : Restrict journal log size] **************************************
changed: [default]
TASK [fail2ban : ensure fail2ban is installed] *********************************
changed: [default]
TASK [fail2ban : ensure fail2ban is configured] ********************************
changed: [default] => (item=jail.local)
changed: [default] => (item=fail2ban.local)
TASK [fail2ban : Check if fail2ban_filter_templates_path exists] ***************
ok: [default -> localhost]
TASK [fail2ban : build list of fail2ban filter templates] **********************
ok: [default -> localhost]
TASK [fail2ban : ensure configuration directory exists] ************************
ok: [default]
TASK [fail2ban : template fail2ban filters] ************************************
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-xmlrpc.conf.j2)
changed: [default] => (item=/Users/USER/Developer/WPSites/test3.test/trellis/roles/fail2ban/templates/filters/wordpress-wp-login.conf.j2)
TASK [fail2ban : ensure fail2ban starts on a fresh reboot] *********************
changed: [default]
TASK [ferm : ensure ferm status is in debconf] *********************************
changed: [default]
TASK [ferm : ensure ferm is installed] *****************************************
changed: [default]
TASK [ferm : ensure configuration directories exist] ***************************
changed: [default] => (item=/etc/ferm/ferm.d)
changed: [default] => (item=/etc/ferm/filter-input.d)
TASK [ferm : ensure firewall is configured] ************************************
changed: [default] => (item=etc/default/ferm)
changed: [default] => (item=etc/ferm/ferm.conf)
TASK [ferm : ensure iptables INPUT rules are removed] **************************
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'}) 
skipping: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']}) 
skipping: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20}) 
skipping: [default]
TASK [ferm : ensure iptables INPUT rules are added] ****************************
changed: [default] => (item={'type': 'dport_accept', 'dport': ['http', 'https'], 'filename': 'nginx_accept'})
changed: [default] => (item={'type': 'dport_accept', 'dport': ['ssh'], 'saddr': ['127.0.0.0/8', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']})
changed: [default] => (item={'type': 'dport_limit', 'dport': ['ssh'], 'seconds': 300, 'hits': 20})
TASK [ferm : ensure iptables rules are enabled] ********************************
skipping: [default]
TASK [ferm : ensure iptables rules are disabled] *******************************
ok: [default]
TASK [ntp : Include OS-specific variables.] ************************************
ok: [default]
TASK [ntp : Set the ntp_driftfile variable.] ***********************************
ok: [default]
TASK [ntp : Set the ntp_package variable.] *************************************
ok: [default]
TASK [ntp : Set the ntp_config_file variable.] *********************************
ok: [default]
TASK [ntp : Set the ntp_daemon variable.] **************************************
ok: [default]
TASK [ntp : Ensure NTP package is installed.] **********************************
changed: [default]
TASK [ntp : Ensure tzdata package is installed (Linux).] ***********************
ok: [default]
TASK [ntp : Set timezone.] *****************************************************
ok: [default]
TASK [ntp : Populate service facts.] *******************************************
ok: [default]
TASK [ntp : Disable systemd-timesyncd if it's running but ntp is enabled.] *****
ok: [default]
TASK [ntp : Ensure NTP is running and enabled as configured.] ******************
ok: [default]
TASK [ntp : Ensure NTP is stopped and disabled as configured.] *****************
skipping: [default]
TASK [ntp : Generate ntp configuration file.] **********************************
changed: [default]
TASK [sshd : Ensure latest SSH server and client are installed] ****************
ok: [default] => (item=openssh-server)
ok: [default] => (item=openssh-client)
TASK [sshd : Create a secure sshd_config] **************************************
changed: [default]
TASK [sshd : Create a secure ssh_config] ***************************************
changed: [default]
TASK [sshd : Remove Diffie-Hellman moduli of size < 2000] **********************
ok: [default]
TASK [mariadb : Add MariaDB APT key] *******************************************
changed: [default]
TASK [mariadb : Add MariaDB PPA] ***********************************************
changed: [default]
TASK [mariadb : Install MySQL client] ******************************************
changed: [default]
TASK [mariadb : Install MySQL server] ******************************************
changed: [default]
TASK [mariadb : Disable MariaDB binary logging] ********************************
changed: [default]
TASK [mariadb : Copy .my.cnf file with root password credentials.] *************
changed: [default]
TASK [mariadb : Set root user password] ****************************************
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default] => (item=None)
changed: [default]
TASK [mariadb : Delete anonymous MySQL server users] ***************************
ok: [default] => (item=None)
ok: [default] => (item=None)
ok: [default] => (item=None)
ok: [default]
TASK [mariadb : Remove the test database] **************************************
ok: [default]
TASK [mailpit : Ensure mailpit install directory exists.] **********************
changed: [default]
TASK [mailpit : Download and install mailpit binary] ***************************
changed: [default]
TASK [mailpit : Copy mailpit systemd unit file into place] *********************
changed: [default]
TASK [mailpit : Ensure mailpit is enabled and will start on boot] **************
changed: [default]
TASK [php : Add PHP PPA] *******************************************************
changed: [default]
TASK [php : Install PHP and extensions] ****************************************
changed: [default] => (item=php8.1-bcmath)
changed: [default] => (item=php8.1-cli)
changed: [default] => (item=php8.1-curl)
changed: [default] => (item=php8.1-dev)
changed: [default] => (item=php8.1-fpm)
changed: [default] => (item=php8.1-imagick)
changed: [default] => (item=php8.1-intl)
changed: [default] => (item=php8.1-mbstring)
changed: [default] => (item=php8.1-mysql)
changed: [default] => (item=php8.1-xml)
changed: [default] => (item=php8.1-xmlrpc)
changed: [default] => (item=php8.1-zip)
TASK [php : Ensure correct PHP version selected] *******************************
ok: [default]
TASK [php : Find existing php fpm services] ************************************
ok: [default]
TASK [php : Stop old php-fpm services] *****************************************
skipping: [default]
TASK [php : Start php fpm service] *********************************************
ok: [default]
TASK [php : Copy PHP-FPM configuration file] ***********************************
changed: [default]
TASK [php : Copy PHP CLI configuration file] ***********************************
changed: [default]
TASK [php : Change ImageMagick policy.xml to allow for PDFs] *******************
changed: [default]
TASK [xdebug : Include php8.1 related vars] ************************************
ok: [default]
TASK [xdebug : Install Xdebug] *************************************************
changed: [default]
TASK [xdebug : Template the Xdebug configuration file] *************************
changed: [default]
TASK [xdebug : Ensure 20-xdebug.ini is present] ********************************
ok: [default]
TASK [xdebug : Disable Xdebug CLI] *********************************************
changed: [default]
TASK [memcached : Install memcached] *******************************************
changed: [default] => (item=memcached)
changed: [default] => (item=php8.1-memcached)
TASK [memcached : Copy the client configuration file] **************************
changed: [default]
TASK [memcached : Set the max open file descriptors] ***************************
changed: [default]
TASK [memcached : Start the memcached service] *********************************
ok: [default]
TASK [nginx : Add Nginx APT key] ***********************************************
changed: [default]
TASK [nginx : Add Nginx PPA] ***************************************************
changed: [default]
TASK [nginx : Install Nginx] ***************************************************
changed: [default]
TASK [nginx : Ensure site directories exist] ***********************************
changed: [default] => (item=sites-available)
changed: [default] => (item=sites-enabled)
TASK [nginx : Create SSL directory] ********************************************
changed: [default]
TASK [nginx : Copy h5bp configs] ***********************************************
changed: [default]
TASK [nginx : Create nginx.conf] ***********************************************
changed: [default]
TASK [nginx : Disable default server] ******************************************
ok: [default]
TASK [nginx : Enable Nginx to start on boot] ***********************************
changed: [default]
TASK [logrotate : nickhammond.logrotate | Install logrotate] *******************
ok: [default]
TASK [logrotate : nickhammond.logrotate | Setup logrotate.d scripts] ***********
changed: [default] => (item={'name': 'wordpress-sites', 'path': '/srv/www/**/logs/*.log', 'options': ['weekly', 'maxsize 50M', 'missingok', 'rotate 8', 'compress', 'delaycompress', 'notifempty', 'create 0640 USER www-data', 'sharedscripts'], 'scripts': {'prerotate': 'if [ -d /etc/logrotate.d/httpd-prerotate ]; then \\\n run-parts /etc/logrotate.d/httpd-prerotate; \\\n fi \\\n', 'postrotate': 'service nginx reload >/dev/null 2>&1'}})
TASK [composer : Set php_executable variable to a default if not defined.] *****
ok: [default]
TASK [composer : Check if Composer is installed.] ******************************
ok: [default]
TASK [composer : Get Composer installer signature.] ****************************
ok: [default]
TASK [composer : Download Composer installer.] *********************************
changed: [default]
TASK [composer : Run Composer installer.] **************************************
changed: [default]
TASK [composer : Move Composer into globally-accessible location.] *************
changed: [default]
TASK [composer : Update Composer to latest version (if configured).] ***********
fatal: [default]: UNREACHABLE! => {"changed": false, "msg": "Data could not be sent to remote host \"127.0.0.1\". Make sure this host can be reached over ssh: ", "unreachable": true}
PLAY RECAP *********************************************************************
default : ok=85  changed=50  unreachable=1  failed=0 skipped=15  rescued=0 ignored=0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment