#!/bin/sh # Deploy to production. # # Usage: # scripts/prod-deploy.sh # full deployment # scripts/prod-deploy.sh # targeted deployment # scripts/prod-deploy.sh --skip docker,apache set -eu INVENTORY=ansible/inventories/prod/hosts.ini PLAYBOOK=ansible/playbooks/setup.yml service="" skip_tags="" while [ $# -gt 0 ]; do case "$1" in --skip) skip_tags="$2" shift 2 ;; -*) echo "Unknown option: $1" >&2 exit 1 ;; *) service="$1" shift ;; esac done if [ -n "$service" ]; then echo "==> Deploying to production: $service" if [ -n "$skip_tags" ]; then exec ansible-playbook -i "$INVENTORY" "$PLAYBOOK" --vault-password-file .vault-pass \ --tags "$service" --skip-tags "$skip_tags" else exec ansible-playbook -i "$INVENTORY" "$PLAYBOOK" --vault-password-file .vault-pass \ --tags "$service" fi else echo "==> Full production deployment" exec ansible-playbook -i "$INVENTORY" "$PLAYBOOK" --vault-password-file .vault-pass fi