72 lines
1.7 KiB
Markdown
72 lines
1.7 KiB
Markdown
# make-deploy
|
|
|
|
A simple Makefile based deployment system.
|
|
|
|
make-deploy was initially hosted at https://git.dnix.de/an/make-deploy. Since it has become heavily used at chefkoch.de for system deployments, and lots of code is committed there, we moved the repo to https://git.chefkoch.net/pub/make-deploy. A mirror still exists at https://git.dnix.de/mirror/make-deploy.
|
|
|
|
make-deploy is licensed under the terms of the MIT-License. See [LICENSE](LICENSE) for info.
|
|
|
|
## Installation
|
|
|
|
Clone make-deploy as a submodule into your repository:
|
|
|
|
$ git submodule add https://git.chefkoch.net/pub/make-deploy
|
|
|
|
Create a symlink to the Makefile:
|
|
|
|
$ ln -s make-deploy/Makefile .
|
|
|
|
Create `config.mk` (for common config options) and `secrets.mk` (for sensitive information, should be git-crypted) in your project.
|
|
|
|
Example `config.mk`:
|
|
|
|
DEPLOY_NAME = my-project
|
|
DEPLOY_PATH = /srv
|
|
DEPLOY_TYPE = compose
|
|
DEPLOY_HOSTS = server01.example.com server02.example.com
|
|
|
|
DOCKER_IMAGE = dr.example.com/my-project:latest
|
|
DOCKER_LOGIN = 1
|
|
DOCKER_REGISTRY = dr.example.com
|
|
|
|
SSH_USER = ci
|
|
|
|
Example `secrets.mk`:
|
|
|
|
DOCKER_USER = root
|
|
DOCKER_PASS = secret1234
|
|
|
|
## Usage
|
|
|
|
### Start the deployment process
|
|
|
|
make deploy
|
|
|
|
### Create docker contexts for the target hosts
|
|
|
|
make create-docker-contexts
|
|
|
|
### Update make-deploy submodule in your project
|
|
|
|
make self-update
|
|
|
|
### Available options for DEPLOY_TYPE
|
|
|
|
copy, compose, swarm, k8s (TBD), helm, cron (TBD)
|
|
|
|
#### copy
|
|
|
|
Just copy the repo to the remote location(s). Put additional logic into pre- and post-deploy.sh.
|
|
|
|
#### compose
|
|
|
|
Docker Compose deployment.
|
|
|
|
##### swarm
|
|
|
|
Docker Swarm deployment.
|
|
|
|
##### k8s, helm, cron
|
|
|
|
To be implemented.
|