首页 > 解决方案 > 如何成功退出剧本任务

问题描述

我有一个重复一个任务的剧本,从 ansible 任务调用 shell,但它不会在任务完成后成功退出并再次重复 shell 指令。

剧本:

---
hosts: dev-servers

tasks:

  - name: clean up directoty
    shell: rm -rf /opt/data/latest/*

  - name: copy the file
    copy: src=/home/data/metadata.zip dest=/opt/data

  - name: Change directoty
    shell: cd /opt/data

  - name: copy the file
    copy: src=/root/Run_Build.sh dest=/opt/deployment_scripts

  - name: permission
    shell: chmod +x /opt/deployment_scripts/Run_Build.sh

  - name: deploy
    command: sh /opt/deployment_scripts/Run_Build.sh
    run_once: true
    register: result

  - debug: msg="{{ result.stdout }}"

  - debug: msg="{{ result.stderr }}"

Run_Build.sh:

#!/bin/bash

Jboss_logs=/opt/jboss/jboss-eap-6.4/standalone/log/server.log

for i in {1..100}; do
    sleep 10
    if [ -f  $Jboss_logs/server.log ]; then
        if  grep -e 'Deployed "deploy.war"' $Jboss_logs/server.log ; then

            echo "Code successfully deployed"
            exit 0

        else
            echo "*****************************************************************************"
            echo " JBOSS is still loading deployment - please be patient .... Loading again in 10 sec" 
            echo "*****************************************************************************" 
        fi
    else
        echo "server log file has not been created yet, please wait for sometime."
    fi
done

标签: ansibleansible-2.x

解决方案


推荐阅读