77 lines
2.4 KiB
Bash
77 lines
2.4 KiB
Bash
#!/bin/bash
|
||
# vi: set tabstop=2 shiftwidth=2 noexpandtab :
|
||
|
||
MAP_COMMAND["install"]=fn_command_install
|
||
MAP_COMMAND_DESC["install"]="запуск установки."
|
||
MAP_COMMAND_HELP["install"]=fn_command_install_help
|
||
|
||
function fn_command_install() {
|
||
local __parts=($@)
|
||
|
||
if [[ "list" == "${__parts[0]}" ]]; then
|
||
echo "Части playbook'а:"
|
||
for __ansible_part in "${ANSIBLE_PARTS[@]}"; do
|
||
echo -e " - ${CY}${__ansible_part}${NC}"
|
||
done
|
||
exit 0
|
||
fi
|
||
|
||
if [[ ${#__parts[@]} -gt 0 ]]; then
|
||
# Проверяем указанные части
|
||
for __part in "${__parts[@]}"; do
|
||
if [[ ! "${ANSIBLE_PARTS[*]}" =~ "${__part}" ]]; then
|
||
LogError "Unknown part: ${CY}${__part}${NC}"
|
||
exit 1
|
||
fi
|
||
done
|
||
fi
|
||
|
||
run ${__parts[*]}
|
||
}
|
||
|
||
function run() {
|
||
local __parts=($@)
|
||
|
||
local __ansible_extra_vars
|
||
__ansible_extra_vars="--extra-vars \"dd_vars=$ANSIBLE_TARGET_HOST\""
|
||
|
||
if [[ ${#__parts[@]} -eq 0 ]]; then
|
||
__ansible_extra_vars="$__ansible_extra_vars --extra-vars \"dd_install=true\""
|
||
else
|
||
for __part in "${__parts[@]}"; do
|
||
__ansible_extra_vars="$__ansible_extra_vars --extra-vars \"dd_install_${__part}=true\""
|
||
done
|
||
fi
|
||
|
||
local __ansible_become=""
|
||
if [[ $ANSIBLE_BECOME == 1 ]]; then
|
||
__ansible_become="--become --become-user=$ANSIBLE_BECOME_USER"
|
||
fi
|
||
|
||
local __ansible_vvv=""
|
||
if [[ $DD_DEBUG -gt 1 ]]; then
|
||
__ansible_vvv="-vvv"
|
||
fi
|
||
|
||
local __ansible_eval="ansible-playbook \
|
||
$__ansible_vvv \
|
||
$__ansible_become \
|
||
-i "$BASE_DIR"/hosts.yml \
|
||
-l "$ANSIBLE_TARGET_HOST" \
|
||
"$BASE_DIR"/"$ANSIBLE_PLAYBOOK" \
|
||
$__ansible_extra_vars"
|
||
|
||
Title "Start Annsible Playbook"
|
||
LogDebug $__ansible_eval
|
||
eval $__ansible_eval
|
||
}
|
||
|
||
function fn_command_install_help() {
|
||
echo "Использование:"
|
||
echo -e " ${CW}$(basename $0) ${CY}install ${CC}[list|<PARTS>]${NC}"
|
||
echo -e "\nКоманды:"
|
||
echo -e " ${CY}list${NC} - показать список известных частей playbook'а."
|
||
echo -e " ${CY}<PARTS>${NC} - (опционально) установить только часть playbook'а. Можно указать несколько частей, разделяя их запятой(,)."
|
||
echo -e " * - Полная установка."
|
||
}
|