#!/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|]${NC}" echo -e "\nКоманды:" echo -e " ${CY}list${NC} - показать список известных частей playbook'а." echo -e " ${CY}${NC} - (опционально) установить только часть playbook'а. Можно указать несколько частей, разделяя их запятой(,)." echo -e " * - Полная установка." }