2016-12-08 10 views
0

아래 yaml 플레이 북은 jboss 서버를 다시 시작하지만 다음 제어 명령을 실행하기 위해 다시 제어권을 얻지는 않습니다. 나는 또한 현재 명령 결과를 기다리는 것을 멈추고 다음 명령을 기다리는 모듈 기다리기를 사용했다. 그러나 여전히 현재 명령에 무기한 정지 명령이 내려집니다. 내가 잘못했을 때 알려주시겠습니까?jboss 서버를 시작하고 재부팅하는 컨트롤을 사용합니다.

--- 
    - hosts: test1 
     tasks: 
     - name: simple command 
     become: true 
     command: whoami 
     register: output 
     - debug: 
      msg: "I gave the command whoami and the out is '{{output.stdout}}'" 

     - name: change to jboss user 
     become: true 
     become_user: jboss 
     command: whoami 
     register: output 
     - debug: 
      msg: "I gave the command whoami and the out is '{{output.stdout}}'" 


     - name: start jboss server as jboss user 
     become: true 
     become_user: jboss 
     command: sh /usr/jboss/bin/run.sh -c XXXXXXXX -b x.x.x.x & 
     when: inventory_hostname in groups['test1'] 
     register: restartscript 
     - debug: 
      msg: "output of server restart command is '{{restartscript.stdout}}'" 
     - name: waiting for server to come back 
     local_action: 
      module: wait_for 
      timeout=20 
      host=x.x.x.x 
      port=8080 
      delay=6 
      state=started 

단자 출력 메시지

FOR USER SSH 연결을 설정 XXXXXXXXXXX SSH : EXEC sshpass -d12 SSH -vvv -C -o ControlMaster = ControlPersist = 60 -o 사용자 -o 자동 = XXXXXXXXX -o ConnectTimeout = 10 -o ControlPath =/home/tcprod/XXXXXXXXXX/.ansible/cp/ansible-ssh- % h- % p- % r -tt XXXX '/ bin/sh -c' " '"'sudo -H - "-u jboss/bin/sh -c" "" "" " '"echo BECOME-SUCCESS-hvgwnsbxpkxvbcmtcfvvsplfphdrevxg;/usr/bin/python /tmp/ansible-tmp-XXXXXXXXX.XX-XXXXXXXXXXXXXX/command.py ' "'" ' "'" ' "& & 잠 0' ''" ''

답변

0

&은 가능한 "명령"에 사용할 수 없습니다.

command: sh /usr/jboss/bin/run.sh -c XXXXXXXX -b x.x.x.x & 

명령을 제거하거나 명령 대신 셸을 사용하십시오. Ansible documentation about command 가입일

:

주어진 명령 [...] 상기 쉘을 통해 처리되지 않을 것이다 $ HOME 같은 변수와 같은 동작 너무 "<", ">", "|" , ";" 및 "&"이 작동하지 않습니다 (이러한 기능이 필요하면 ).