-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathentrypoint.sh
68 lines (55 loc) · 1.44 KB
/
entrypoint.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/env bash
# --- Parse Options ---
PLAYBOOK_FILE="${1}"
INVENTORY_FILE="${2}"
REQUIREMENTS_FILE="${3}"
ADDITIONAL_ARGUMENTS="${4}"
PRE_TASK="${5}"
POST_TASK="${6}"
# --- Print Options ---
echo ""
echo ">>> Options:"
echo "PLAYBOOK_FILE: $PLAYBOOK_FILE"
echo "INVENTORY_FILE: $INVENTORY_FILE"
echo "REQUIREMENTS_FILE: $REQUIREMENTS_FILE"
echo "ADDITIONAL_ARGUMENTS: $ADDITIONAL_ARGUMENTS"
echo "PRE_TASK: $PRE_TASK"
echo "POST_TASK: $POST_TASK"
# --- Check Options ---
if [ -z "$PLAYBOOK_FILE" ]; then
echo ""
echo "No Ansible-Playbook file option was set (or is empty)!"
exit 1
fi
if [ -z "$INVENTORY_FILE" ]; then
echo ""
echo "No Ansible-Playbook inventory file option was set (or is empty)!"
exit 1
fi
# --- Pre Task ---
if [ ! -z "$PRE_TASK" ]; then
echo ""
echo ">>> Running pre task"
eval "$PRE_TASK"
fi
# --- Requirements ---
if [ ! -z "$REQUIREMENTS_FILE" ]; then
echo ""
echo ">>> Installing requirements"
eval "ansible-galaxy install -r $REQUIREMENTS_FILE"
fi
# --- Execute Playbook ---
echo ""
echo ">>> Execute Playbook"
eval "ansible-playbook -i $INVENTORY_FILE $ADDITIONAL_ARGUMENTS $PLAYBOOK_FILE"
EXIT_STATUS=$?
if [ $EXIT_STATUS -ne 0 ]; then
echo "Ansible-Playbook execution failed. Check the log (above) for more information."
exit $EXIT_STATUS
fi
# --- Post Task ---
if [ ! -z "$POST_TASK" ]; then
echo ""
echo ">>> Running post task"
eval "$POST_TASK"
fi