Add old slides
This commit is contained in:
parent
2d20969ccf
commit
f33406ffe2
428 changed files with 79379 additions and 0 deletions
deploying-php-fabric/2017-04-20-nomad-php
154
deploying-php-fabric/2017-04-20-nomad-php/slides.md
Normal file
154
deploying-php-fabric/2017-04-20-nomad-php/slides.md
Normal file
|
@ -0,0 +1,154 @@
|
|||
autoscale: true
|
||||
build-lists: true
|
||||
footer: @opdavies | oliverdavies.uk
|
||||
theme: next, 8
|
||||
|
||||
[.hide-footer]
|
||||
|
||||
# Deploying PHP applications
|
||||
# (and anything else)
|
||||
# with Fabric
|
||||
|
||||
---
|
||||
|
||||
[.build-lists: false]
|
||||
[.autoscale: false]
|
||||
|
||||
## opdavies
|
||||
|
||||
- Web Developer and System Administrator
|
||||
- Drupal, Symfony, Laravel, Silex, Sculpin
|
||||
- Senior Developer at Microserve
|
||||
- Part-time freelancer
|
||||
- Open source maintainer and contributor
|
||||
|
||||
---
|
||||
|
||||
## What and Why?
|
||||
|
||||
- Python library, CLI tool
|
||||
- Runs commands and local and remote hosts
|
||||
- Flexible
|
||||
- Combine pre-deploy and post-deploy scripts
|
||||
|
||||
---
|
||||
|
||||
[.hide-footer]
|
||||
|
||||
## Installing Fabric
|
||||
|
||||
```bash
|
||||
$ pip install fabric
|
||||
|
||||
# macOS
|
||||
$ brew install fabric
|
||||
|
||||
# Debian, Ubuntu
|
||||
$ apt-get install fabric
|
||||
$ apt-get install python-fabric
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
[.hide-footer]
|
||||
|
||||
# Basic fabfile
|
||||
|
||||
```python
|
||||
from fabric.api import *
|
||||
|
||||
env.hosts = ['example.com']
|
||||
env.use_ssh_config = True
|
||||
|
||||
def build():
|
||||
with cd('/var/www/html'):
|
||||
run('git pull')
|
||||
run('composer install')
|
||||
```
|
||||
---
|
||||
|
||||
## Running Tasks
|
||||
|
||||
[.hide-footer]
|
||||
|
||||
```bash
|
||||
$ fab <task>
|
||||
|
||||
# Specify a path and filename to the fabfile.
|
||||
$ fab <task> --fabfile=/path/to/fabfile
|
||||
|
||||
# Pass arguments into the task.
|
||||
$ fab <task>:build_type=drupal,foo=bar
|
||||
```
|
||||
|
||||
^ fabfile.py in the current directory is found automatically.
|
||||
|
||||
---
|
||||
|
||||
[.hide-footer]
|
||||
|
||||
## Running Tasks Locally
|
||||
|
||||
```python
|
||||
from fabric.api import *
|
||||
|
||||
...
|
||||
|
||||
def build():
|
||||
local('git pull')
|
||||
local('composer install')
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
[.hide-footer]
|
||||
|
||||
## Building Front-End Assets
|
||||
|
||||
```python
|
||||
def build_assets(env):
|
||||
with lcd('themes/custom/example'):
|
||||
local('yarn --pure-lockfile')
|
||||
local('./node_modules/.bin/bower install')
|
||||
|
||||
if env == 'prod':
|
||||
local('./node_modules/.bin/gulp --production')
|
||||
else:
|
||||
local('./node_modules/.bin/gulp')
|
||||
```
|
||||
|
||||
^ lcd = change directory locally
|
||||
|
||||
---
|
||||
|
||||
[.hide-footer]
|
||||
|
||||
## Pushing the Code
|
||||
|
||||
```python
|
||||
from fabric.contrib.project import rsync_project
|
||||
|
||||
...
|
||||
|
||||
def deploy():
|
||||
rsync_project(
|
||||
local_dir='./',
|
||||
remote_dir='/var/www/html'
|
||||
exclude=('.git', 'node_modules/'),
|
||||
default_opts='-vzcrSLh'
|
||||
)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## More...
|
||||
|
||||
- Run Drush/Console/Artisan commands
|
||||
- Ensure correct file ownership and permissions
|
||||
- Update symlinks
|
||||
- Restart Nginx/Apache
|
||||
- Anything you can do from the command line...
|
||||
|
||||
---
|
||||
|
||||
## Questions?
|
Loading…
Add table
Add a link
Reference in a new issue