Great! You’ve built your website, and now you just need to deploy it. There are various ways that this could be done - from (S)FTP, to SCP and rsync, to running commands like git pull
and composer install
directly on the server which is not ideal.
As well provisioning and maintaining your server configuration and running commands, you can also use Ansible to deploy your PHP application - leveraging relevant Ansible modules such as Git and Composer, custom Ansible roles, Ansible Vault for managing secrets, and features such as idempotency out of the box to build a simple deployment playbook. We can then extend that and make it more robust by adding Ansistrano - a port of Capistrano - which adds extra features such as storing multiple builds for each project and the ability to roll-back if needed, customising your build steps using built-in hooks, multi-stage environments and more.
I’ve been using Ansible and Ansistrano to deploy a variety of PHP projects - including Drupal 7 & 8, Symfony, Laravel and Sculpin, as well as basic HTML websites, and found it to be very flexible and easy to install and use, and by the end of this talk we will have a fully working deployment playbook, deploying real code onto a real server.
Slides
Video
Events
- Drupal Bristolin Bristol, UK -23 January 2019
- PHP South Walesin Cardiff, UK -23 July 2019
- DrupalCon Europe 2019in Amsterdam, NL -30 October 2019
- Bristol Cloud Native & DevOpsin Bristol, UK -30 January 2020
- Drupal Edinburghin Edinburgh, UK -12 March 2020(online)
- CMS Phillyin Philadelphia, USA -1 May 2020(online)
- Drupal Yorkshirein Leeds, UK -21 May 2020(online)
- PHP Londonin London, UK -4 June 2020(online)
- PHP North Eastin Newcastle Upon Tyne, UK -16 June 2020(online)
- PHP Sussexin Brighton, UK -1 July 2020(online)
- Midwest PHP23 April 2021(online)
- PHP Oxfordin Oxford, UK -28 April 2021(online)
- Ansible Londonin London, UK -25 May 2021(online)
- DrupalNYCin New York, USA -15 June 2021(online)