diff --git a/monitor-service-model/src/main/java/com/monitor/model/domain/CenterSwitchModel.java b/monitor-service-model/src/main/java/com/monitor/model/domain/CenterSwitchModel.java
index 27ab4d7..c825726 100644
--- a/monitor-service-model/src/main/java/com/monitor/model/domain/CenterSwitchModel.java
+++ b/monitor-service-model/src/main/java/com/monitor/model/domain/CenterSwitchModel.java
@@ -21,12 +21,13 @@ public class CenterSwitchModel {
 
     private String cName;
 
+    //目标云可用区
     /**
      * toAws  :aws云不再用了,去掉了
      * 或
-     * toQcloud
+     * toQcloud  AZ1
      * 或者
-     * toQcloudaz2
+     * toQcloudaz2  AZ2
      */
     private String exe;
 
diff --git a/monitor-service-switch/src/main/java/com/monitor/switchs/centerSwitch/ctrl/CenterSwitchCtrl.java b/monitor-service-switch/src/main/java/com/monitor/switchs/centerSwitch/ctrl/CenterSwitchCtrl.java
index 0f672a8..b67b4c8 100644
--- a/monitor-service-switch/src/main/java/com/monitor/switchs/centerSwitch/ctrl/CenterSwitchCtrl.java
+++ b/monitor-service-switch/src/main/java/com/monitor/switchs/centerSwitch/ctrl/CenterSwitchCtrl.java
@@ -7,7 +7,6 @@ import com.monitor.switchs.centerSwitch.service.SwitchService;
 import com.yoho.ops.cmdb.qcloud.util.QcloudDnspotUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
@@ -15,6 +14,10 @@ import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.CopyOnWriteArraySet;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * Created by zhengyouwei on 2016/10/24.
@@ -22,6 +25,8 @@ import java.util.List;
 @RestController
 @RequestMapping(value = "/centerSwitch")
 public class CenterSwitchCtrl {
+    private static Set<String> SWITCH_TOKEN_SET=new CopyOnWriteArraySet<>();
+
     @Autowired
     private SwitchService switchService;
 
@@ -31,6 +36,99 @@ public class CenterSwitchCtrl {
     //@Value("${SWITCH_DB_URL}")
     private String SWITCH_DB_URL="http://10.66.4.28:8011/switchdb/switchMysql";
 
+    @RequestMapping("/switchWithAnsible")
+    @ResponseBody
+    public BaseResponse switchWithAnsible(@RequestBody CenterSwitchModel centerSwitchModel){
+        String token=centerSwitchModel.getTokenID();
+        boolean pass=false;
+        if (StringUtils.isNotBlank(token)&&SWITCH_TOKEN_SET.contains(token)){
+            pass=true;
+            SWITCH_TOKEN_SET.remove(token);
+        }
+        if(!pass){
+            return new BaseResponse(201,"access deny :校验不通过");
+        }
+        //开始调用
+        String switchResult=switchService.switchWithAnsible(centerSwitchModel.getExe());
+        BaseResponse rtn= new BaseResponse();
+        rtn.setData(switchResult);
+        return rtn;
+    }
+
+
+    @RequestMapping("/doExeAndCheckBefore")
+    @ResponseBody
+    public BaseResponse doExeAndCheckBefore() {
+       /* String smsCode=httpRestClientService.postForObject(SWITCH_DB_URL+"/getSmsCode",null , String.class);
+        if(StringUtils.isBlank(smsCode)){
+            return new BaseResponse(201,"错误:获取的短信校验码为空");
+        }
+        switchService.sendSmsCode(smsCode);*/
+        switchService.sendSmsCode();
+        return  new BaseResponse();
+
+    }
+
+    @RequestMapping("/checkSmsCode")
+    @ResponseBody
+    public BaseResponse checkSmsCode(String code) {
+       /* String token=httpRestClientService.postForObject(SWITCH_DB_URL+"/checkSmsCode?code="+code,null , String.class);
+        if(StringUtils.isBlank(token)||"false".equals(token.toLowerCase())){
+            return new BaseResponse(201,"验证码校验失败");
+        }else{
+            if (token.length()!=32){
+                return new BaseResponse(201,"验证码校验失败,返回token错误");
+            }
+            BaseResponse rtn=  new BaseResponse();
+            rtn.setData(token);
+            return  rtn;
+        }*/
+
+        boolean result=switchService.checkCode(code);
+        if(result){
+            //产生一个token
+            String token = UUID.randomUUID().toString().replaceAll("-","");
+            SWITCH_TOKEN_SET.add(token);
+            BaseResponse rtn=  new BaseResponse();
+            rtn.setData(token);
+            return  rtn;
+        }else{
+            return new BaseResponse(201,"验证码校验失败");
+        }
+
+    }
+
+    /**
+     * 只是用来查看状态
+     * @param centerSwitchModel
+     * @return
+     */
+    @RequestMapping("/checkStatus")
+    @ResponseBody
+    public BaseResponse checkStatus(@RequestBody CenterSwitchModel centerSwitchModel) {
+        BaseResponse baseResponse = new BaseResponse();
+        if(!"status".equals(centerSwitchModel.getExe())){
+            baseResponse.setCode(500);
+            baseResponse.setMessage("当前接口只用来查看状态......");
+            return baseResponse;
+        }
+        //以防万一
+        centerSwitchModel.setExe("status");
+        String result ="";
+        if(centerSwitchModel.getName().toLowerCase().equals("switch_mysql")){
+            //mysql的状态从另外一个sprigboot项目获取
+            result =httpRestClientService.postForObject(SWITCH_DB_URL+"/checkStatus", null, String.class);
+        }else if(centerSwitchModel.getName().toLowerCase().equals("switch_dnspod")){
+            //dnspot调用腾讯云api
+            result = QcloudDnspotUtil.recordList();
+        }else{
+            result = switchService.doCommond(centerSwitchModel);
+        }
+
+        baseResponse.setData(result==null?"":result);
+        return baseResponse;
+    }
+
     @RequestMapping("/getSwitchList")
     @ResponseBody
     public BaseResponse getSwitchList() {
@@ -102,6 +200,7 @@ public class CenterSwitchCtrl {
         return mysqlResponse;
     }
 
+
     @RequestMapping("/doExeAndCheck")
     @ResponseBody
     public BaseResponse doExeAndCheck(@RequestBody CenterSwitchModel centerSwitchModel) {
@@ -149,72 +248,6 @@ public class CenterSwitchCtrl {
         return baseResponse;
     }
 
-    @RequestMapping("/doExeAndCheckBefore")
-    @ResponseBody
-    public BaseResponse doExeAndCheckBefore() {
-        String smsCode=httpRestClientService.postForObject(SWITCH_DB_URL+"/getSmsCode",null , String.class);
-        if(StringUtils.isBlank(smsCode)){
-            return new BaseResponse(201,"错误:获取的短信校验码为空");
-        }
-        switchService.sendSmsCode(smsCode);
-        //switchService.sendSmsCode();
-        return  new BaseResponse();
-
-    }
-
-    @RequestMapping("/checkSmsCode")
-    @ResponseBody
-    public BaseResponse checkSmsCode(String code) {
-        String token=httpRestClientService.postForObject(SWITCH_DB_URL+"/checkSmsCode?code="+code,null , String.class);
-        if(StringUtils.isBlank(token)||"false".equals(token.toLowerCase())){
-            return new BaseResponse(201,"验证码校验失败");
-        }else{
-            if (token.length()!=32){
-                return new BaseResponse(201,"验证码校验失败,返回token错误");
-            }
-            BaseResponse rtn=  new BaseResponse();
-            rtn.setData(token);
-            return  rtn;
-        }
-        /*boolean result=switchService.checkCode(code);
-        if(result){
-            return  new BaseResponse();
-        }else{
-            return new BaseResponse(201,"验证码校验失败");
-        }*/
-        //return  new BaseResponse();
-    }
-
-    /**
-     * 只是用来查看状态
-     * @param centerSwitchModel
-     * @return
-     */
-    @RequestMapping("/checkStatus")
-    @ResponseBody
-    public BaseResponse checkStatus(@RequestBody CenterSwitchModel centerSwitchModel) {
-        BaseResponse baseResponse = new BaseResponse();
-        if(!"status".equals(centerSwitchModel.getExe())){
-            baseResponse.setCode(500);
-            baseResponse.setMessage("当前接口只用来查看状态......");
-            return baseResponse;
-        }
-        //以防万一
-        centerSwitchModel.setExe("status");
-        String result ="";
-        if(centerSwitchModel.getName().toLowerCase().equals("switch_mysql")){
-            //mysql的状态从另外一个sprigboot项目获取
-            result =httpRestClientService.postForObject(SWITCH_DB_URL+"/checkStatus", null, String.class);
-        }else if(centerSwitchModel.getName().toLowerCase().equals("switch_dnspod")){
-            //dnspot调用腾讯云api
-            result = QcloudDnspotUtil.recordList();
-        }else{
-            result = switchService.doCommond(centerSwitchModel);
-        }
-
-        baseResponse.setData(result==null?"":result);
-        return baseResponse;
-    }
 
     /**
      * 获取defalutDns
diff --git a/monitor-service-switch/src/main/java/com/monitor/switchs/centerSwitch/service/SwitchService.java b/monitor-service-switch/src/main/java/com/monitor/switchs/centerSwitch/service/SwitchService.java
index 7861ca1..71b91f0 100644
--- a/monitor-service-switch/src/main/java/com/monitor/switchs/centerSwitch/service/SwitchService.java
+++ b/monitor-service-switch/src/main/java/com/monitor/switchs/centerSwitch/service/SwitchService.java
@@ -14,6 +14,7 @@ import org.springframework.stereotype.Service;
 
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * Created by zhengyouwei on 2017/3/9.
@@ -31,10 +32,22 @@ public class SwitchService {
     @Autowired
     private GetUsersInfoUtil getUsersInfoUtil;
 
-    private static Set<String> set = new HashSet<>();
+    private static Set<String> smsCodeSet = new HashSet<>();
+
+    private static AtomicInteger count=new AtomicInteger(0);
+
 
     private static Random random = new Random();
 
+    private final String ansible_switch_py="ssh master@10.66.202.46 /usr/bin/python /home/master/qcloud-switch/one_key_switch.py --zone=";
+
+    public String switchWithAnsible(String toCloud){
+        //String logId = "switch_idc_py_"+count.incrementAndGet();
+        String command=ansible_switch_py+toCloud;
+        String result=CommodUtil.exe(command,"\r\n");
+        return result;
+    }
+
 
     public String doCommond(CenterSwitchModel centerSwitchModel) {
         try{
@@ -71,7 +84,7 @@ public class SwitchService {
 
     public void sendSmsCode() {
         String code = StringUtils.leftPad(Integer.toString(random.nextInt(9999)), 4, "0");
-        set.add(code);
+        smsCodeSet.add(code);
         String mobile_yunwei_switch_center = getUsersInfoUtil.getMobileByAlarmGroup(AlarmGroupContants.GROUP_NAME_YUNWEI_SWITCH_CENTER);
         if(StringUtils.isBlank(mobile_yunwei_switch_center)){
             mobile_yunwei_switch_center="18751986615";
@@ -81,8 +94,8 @@ public class SwitchService {
         new Thread(() -> {
             try {
                 Thread.sleep(1000*60);
-                if (set.contains(code)){
-                    set.remove(code);
+                if (smsCodeSet.contains(code)){
+                    smsCodeSet.remove(code);
                 }
             } catch (InterruptedException e) {
                 e.printStackTrace();
@@ -91,21 +104,21 @@ public class SwitchService {
         }).start();
 
     }
-    /**
+    /*
      * 从switchdb系统获取验证码,然后发送
      * @param msgCode
      */
-    public void sendSmsCode(String msgCode) {
+    /*public void sendSmsCode(String msgCode) {
         String mobile_yunwei_switch_center = getUsersInfoUtil.getMobileByAlarmGroup(AlarmGroupContants.GROUP_NAME_YUNWEI_SWITCH_CENTER);
         if(StringUtils.isBlank(mobile_yunwei_switch_center)){
             mobile_yunwei_switch_center="18751986615";
         }
         alarmMsgService.sendSms("switch_mobile", "即将进行双中心切换,请输入以下数字:" + msgCode+"。一分钟内有效", mobile_yunwei_switch_center);
-    }
+    }*/
 
     public boolean checkCode(String code) {
-        if (set.contains(code)){
-            set.remove(code);
+        if (smsCodeSet.contains(code)){
+            smsCodeSet.remove(code);
             return true;
         }
         return false;