with_items的多个操作

时间:2016-11-21 10:01:57

标签: ansible ansible-playbook

我正在尝试为每个数据库实例执行多个操作,特别是配置crontab条目。

这是我的主持人条目:

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 个答案:

答案 0 :(得分: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"