2016-06-28 108 views
-1

我希望編寫一本劇本,首先將我的包轉移到遠程的主機,然後運行腳本。詳細地說,假設我在本地機器上安裝了apache包,並且需要將它scp/rsync到遠程節點A & B.然後我有我的腳本在A & B上安裝包,檢查它是否安裝正確,然後仔細檢查配置文件等。只有傳輸成功時,該腳本才能運行。用於遠程複製和腳本執行的Ansible劇本

寫了以下應該滿足以上要求的劇本。請確認是否需要進一步改進。提前致謝 !

劇本:

--- 
- hosts: droplets 
    remote_user: root 

    tasks: 

    - name: Copy package to target machines 
     synchronize: src=/home/luckee/apache.rpm dest=/var/tmp/ 

    - name: Run installation and verification script 
     script: /home/luckee/apache_install.sh 
     register: result 

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

回答

0

這樣,如果複印任務的改變(在這個過程中execuded),併成功退出安裝腳本將只運行:

--- 
- hosts: droplets 
    remote_user: root 

    tasks: 

    - name: Copy package to target machines 
     synchronize: src=/home/luckee/apache.rpm dest=/var/tmp/ 
     register: result_copy 


    - name: Run installation and verification script 
     script: /home/luckee/apache_install.sh 
     register: result_run 
     when: result_copy.changed 

    - name: Show result 
     debug: msg="{{ result_run.stdout }}" 
...