Als referentie nemen we een voorbeeld met de volgende stage in de configuratie:
[...]
server:
production:
host: 'applicationname.com'
stage: 'production'
branch: 'master'
deploy_path: '/var/www/applicationname.com'
ssh_user: 'username'
settings:
yii:
init: 'Development'
migrate:
rbac: true
db: true
sync:
uploads:
source: 'shared/uploads/'
dest: 'shared/uploads'
create_if_not_exists: true
Uitvoeren
Om deze deployment uit te voeren, zullen we de volgende commando moeten uitvoeren:
vendor/bin/dep deploy-yii production
Wanneer het bovenstaande commando is uitgevoerd, zal Deployer contact maken met de deployment server op locatie ‘applicationname.com’ met als identificatiegebruiker ‘username’. Daarna zal de externe server de sources pullen van de master branch en deze plaatsen in ‘var/www/applicationname’
Zorg ervoor dat je SSH toegang hebt naar de server. Raadpleeg zonodig de ssh pagina.
Omgeving indeling:
Hier is te zien hoe de de deployment omgeving er uit ziet. Deze omgeving bestaat uit drie verschillende componenten:
releases
In de releases
folder staan maximaal zes instanties van deployments. Dit houdt in dat in bijvoorbeeld
releases/10
alle sources van de 10e release staan en in releases/11
alle sources van de 11e release.
Hierdoor is het mogelijk om snel rollback te toen met Deployer. Lees meer
shared
In de shared folder staat alle ‘shared’ content. D.w.z. dat hier alleen bestanden in staan
die worden gebruikt door alle deployments. Denk hierbij aan bijvoorbeeld secrets en dergelijken.
Om deze secrets in te vullen moet men 1 keer handmatig inloggen op de server en bijvoorbeeld
wachtwoorden toevoegen aan het shared/common/config/config.yml
bestand. Vervolgens zal
Deployer hier met de volgende deploy rekening mee houden. Lees meer
current
De current folder verwijst altijd naar de laatste deploy. Verwijs eventueel de public_html folder dus ook altijd door naar sources binnen deze map.
Om een public_html door te verwijzen naar de
current
folder, is het noodzakelijk dat depublic_html
folder eerst wordt verwijderd. Daarna kan erln -s current/path/to/docroot public_html
worden uitgevoerd. Hierdoor ispublic_html
geen folder meer, maar een symlink en verwijst deze altijd naar de nieuwste versie van de deployments.
Klaar?
Nu de applicatie eenmaal gedeployed is, kan vanaf nu elke deploy worden gestart met
vendor/bin/dep deploy-yii [stage]
. Wanneer de deploy-config.yml
op de repository is geplaatst
kan iedereen deployen.