Move to post-extract approach
This commit is contained in:
parent
ce40247d0a
commit
791fb893ee
12
README.md
12
README.md
@ -5,30 +5,30 @@ Run ansible playbooks during deployment.
|
|||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
* dokku 0.19.13+
|
* dokku 0.19.13+
|
||||||
* [dokku-supply-config](https://github.com/dokku-community/dokku-supply-config)
|
|
||||||
* Debian based system (uses `apt` package manager for dependencies)
|
* Debian based system (uses `apt` package manager for dependencies)
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ dokku plugin:install https://github.com/josegonzalez/dokku-supply-config.git
|
|
||||||
$ dokku plugin:install https://github.com/decentral1se/dokku-ansible-playbook.git
|
$ dokku plugin:install https://github.com/decentral1se/dokku-ansible-playbook.git
|
||||||
```
|
```
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
All files must be placed within the `.dokku/ansible` folder of your git repository.
|
All files must be placed within the `ansible` folder of your git repository.
|
||||||
|
|
||||||
* `requirements.yml`: what role dependencies to download before running your plays.
|
* `requirements.yml`: what role dependencies to download before running your plays.
|
||||||
|
|
||||||
The following hooks are supported (add `.yml` to the hook name in `.dokku/ansible`):
|
The following hooks are supported (add `.yml` to the hook name in `ansible`):
|
||||||
|
|
||||||
* `pre-deploy`
|
* `pre-deploy`
|
||||||
* `post-deploy`
|
* `post-deploy`
|
||||||
|
|
||||||
|
Everything is copied into `$DOKKU_LIB_ROOT/data/ansible/$APP` on the `post-extract` hook.
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
### .dokku/ansible/requirements.yml
|
### ansible/requirements.yml
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
---
|
---
|
||||||
@ -36,7 +36,7 @@ The following hooks are supported (add `.yml` to the hook name in `.dokku/ansibl
|
|||||||
version: v2020.3.15
|
version: v2020.3.15
|
||||||
```
|
```
|
||||||
|
|
||||||
### .dokku/ansible/pre-deploy.yml
|
### ansible/pre-deploy.yml
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
---
|
---
|
||||||
|
@ -7,15 +7,15 @@ function run_playbook() {
|
|||||||
local requirements="$2"
|
local requirements="$2"
|
||||||
|
|
||||||
if [[ ! -f "$play_path" ]]; then
|
if [[ ! -f "$play_path" ]]; then
|
||||||
echo " $play_path not found or executable bit not set"
|
echo "-----> $play_path not found or executable bit not set"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -f "$requirements" ]]; then
|
if [[ -f "$requirements" ]]; then
|
||||||
echo " $requirements file found"
|
echo "-----> $requirements file found"
|
||||||
ansible-galaxy install -fr "$requirements"
|
ansible-galaxy install -fr "$requirements"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo " $play_path file found"
|
echo "-----> $play_path file found"
|
||||||
ansible-playbook -i 127.0.0.1, -c local -v "$play_path"
|
ansible-playbook -i 127.0.0.1, -c local "$play_path"
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,10 @@
|
|||||||
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
||||||
|
|
||||||
APP="$1"
|
APP="$1"
|
||||||
PLAYBOOK="$DOKKU_ROOT/$APP/ansible/post-deploy.yml"
|
PLAYBOOK="$DOKKU_LIB_ROOT/data/ansible/$APP/post-deploy.yml"
|
||||||
REQUIREMENTS="$DOKKU_ROOT/$APP/ansible/requirements.yml"
|
REQUIREMENTS="$DOKKU_LIB_ROOT/data/ansible/$APP/requirements.yml"
|
||||||
|
|
||||||
|
. $(dirname "$0")/functions
|
||||||
|
|
||||||
echo "-----> Running post-deploy ansible playbook"
|
echo "-----> Running post-deploy ansible playbook"
|
||||||
. $(dirname "$0")/functions
|
|
||||||
run_playbook "$PLAYBOOK" "$REQUIREMENTS"
|
run_playbook "$PLAYBOOK" "$REQUIREMENTS"
|
||||||
|
14
post-extract
Executable file
14
post-extract
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
||||||
|
|
||||||
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
||||||
|
|
||||||
|
APP="$1"; verify_app_name "$APP"
|
||||||
|
TMP_WORK_DIR="$2"
|
||||||
|
|
||||||
|
pushd "$TMP_WORK_DIR" >/dev/null
|
||||||
|
|
||||||
|
cp -r "$TMP_WORK_DIR/ansible/*" "$DOKKU_LIB_ROOT/data/ansible/$APP"
|
||||||
|
|
||||||
|
popd >/dev/null
|
@ -3,9 +3,10 @@
|
|||||||
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
||||||
|
|
||||||
APP="$1"
|
APP="$1"
|
||||||
PLAYBOOK="$DOKKU_ROOT/$APP/ansible/post-deploy.yml"
|
PLAYBOOK="$DOKKU_LIB_ROOT/data/ansible/$APP/pre-deploy.yml"
|
||||||
REQUIREMENTS="$DOKKU_ROOT/$APP/ansible/requirements.yml"
|
REQUIREMENTS="$DOKKU_LIB_ROOT/data/ansible/$APP/requirements.yml"
|
||||||
|
|
||||||
|
. $(dirname "$0")/functions
|
||||||
|
|
||||||
echo "-----> Running pre-deploy ansible playbook"
|
echo "-----> Running pre-deploy ansible playbook"
|
||||||
. $(dirname "$0")/functions
|
|
||||||
run_playbook "$PLAYBOOK" "$REQUIREMENTS"
|
run_playbook "$PLAYBOOK" "$REQUIREMENTS"
|
||||||
|
Reference in New Issue
Block a user