2016-11-21 28 views
0

我想爲每個數據庫實例執行多個操作,特別是配置一個crontab項。with_items的多個操作

這是我的主機條目:

hkxtsdbdv1 ansible_host=hkxtsdbdv1.alpha.lftltd.net instances='["XTS_DEV","XTS_UAT","XTS_OPT"]' 

這裏是我試圖運行劇本:

- hosts: "{{hosts}}" 
    tasks: 
     - name: add_cron_entries 
     with_items: "{{ instances }}" 
     cron: name="RMAN {{item}} Archivelog Backup" minute="0" hour="*" job="cron.sh rman.pl {{item}} archivelog" 
#  - cron: name="RMAN {{item}} Database Backup" minute="0" hour="0,4,8,12,16,20" job="cron.sh rman.pl {{item}} database" 
#  - cron: name="RMAN {{item}} Database Backup" minute="0" hour="1" weekday="0" job="cron.sh rman.pl {{item}} validate" 

我已經嘗試了各種方法來得到這個工作,但掙扎,不肯定是否因爲我對YAML或Ansible(或兩者)缺乏瞭解。 請有人幫我出來。

回答

1

這些都是恰好在同一個列表上迭代的獨立任務。因此,您希望像這樣打破您的任務:

- hosts: "{{hosts}}" 
    tasks: 
     - name: archivelog backup cron 
     with_items: "{{ instances }}" 
     cron: name="RMAN {{item}} Archivelog Backup" minute="0" hour="*" job="cron.sh rman.pl {{item}} archivelog" 

     - name: database backup cron 
     with_items: "{{ instances }}" 
     cron: name="RMAN {{item}} Database Backup" minute="0" hour="0,4,8,12,16,20" job="cron.sh rman.pl {{item}} database" 

     - name: database backup validation cron 
     with_items: "{{ instances }}" 
     cron: name="RMAN {{item}} Database Backup" minute="0" hour="1" weekday="0" job="cron.sh rman.pl {{item}} validate"