So I set up a new staging Ubuntu Server 18.04.2 LTS system on Hyper-V and
successfully provisioned it as trellis
system with ansible
.
However, deploying a site to it results in an error message very early during deploy:
MODULE FAILURE
Traceback (most recent call last):
File "/tmp/ansible_oJ2ASV/ansible_module_deploy_helper.py", line 529, in
<module>
main()
File "/tmp/ansible_oJ2ASV/ansible_module_deploy_helper.py", line 491, in
main
changes += deploy_helper.create_path(facts['releases_path'])
File "/tmp/ansible_oJ2ASV/ansible_module_deploy_helper.py", line 352, in
create_path
os.makedirs(path)
File "/usr/lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/srv/www/example.com/releases'
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: OSError: [Errno 13] Permission denied: '/srv/www/example.com/releases'
fatal: [staging-1]: FAILED! => {"changed": false, "module_stdout": "", "rc": 1}
I found similar issues on the internet, so I list them here:
https://discourse.roots.io/t/trellis-bin-deploy-sh-deploy-error/9213
https://discourse.roots.io/t/trellis-aws-and-provision/5496/6
https://github.com/roots/trellis/issues/908
https://imwz.io/roots-trellis-errors/
So from what I learned from these discussions is that this kind of error can happen:
- When provisioning hadn’t ran yet, either never had, or for the site to be deployed.
However, the initial provisioning including that site in config, ran successfully. - Ownership and permissions of /srv and its subfolders are somehow off.
These look correct for me, also I can manually create the directory/srv/www/example.com/releases
as userweb
, hence ansible should be able, too. - In some rare cases something went wrong with the provisioned server and
the only way fixing is to completely recreate it from scratch.
This I did after the first occurence of this issue and
I can do this repeatedly with the same error as result.
I can reproduce this issue each time with a new VM from scratch:
- Create new minimal Ubuntu Server 18.04.2 LTS system (with OpenSSH server) on Hyper-V.
- Disable IPv6 in Ubuntu because it caused many issues, also for other users.
So we are using only IPv4 here.
- Disable IPv6 in Ubuntu because it caused many issues, also for other users.
- Install
ansible
tested withtrellis
,
Installed theansible
package available on Ubuntu workstation (ansible 2.4.3.0
). - Clone trellis from GitHub:
git clone https://github.com/roots/trellis
- Set up some example site in
group_vars/staging/wordpress_sites.yml
- Set up some example site in
- Run (initial) provisioning, it should complete just fine.
- Now try to deploy the example site,
it should fail very early during deploy with the error shown above.
How can I find out the reason for (and hopefully fix) this strange issue?