Ansible 如何根据环境确定作业属性值
在ansible cron作业定义中,如何根据环境动态地给出作业属性值。我需要使用不同的参数执行同一个cronjob,现在要做到这一点,需要定义两个不同的cron作业,一个用于prod,另一个用于UAT,开发人员:我们是否可以为所有环境定义一个作业,并根据环境更改作业值 编写如下代码Ansible 如何根据环境确定作业属性值,ansible,devops,ansible-2.x,Ansible,Devops,Ansible 2.x,在ansible cron作业定义中,如何根据环境动态地给出作业属性值。我需要使用不同的参数执行同一个cronjob,现在要做到这一点,需要定义两个不同的cron作业,一个用于prod,另一个用于UAT,开发人员:我们是否可以为所有环境定义一个作业,并根据环境更改作业值 编写如下代码 name: Ensure a job that runs purge backup for UAT,DEV and QA cron: name: "Cassandra purge backup job"
name: Ensure a job that runs purge backup for UAT,DEV and QA
cron:
name: "Cassandra purge backup job"
user: cassandra
minute: 0
hour: 3
weekday: "5,6"
job: "/usr/ops/base/bin/cron.sh /usr/ops/cassandra/bin/backupfiles.sh /nas_csd_backup/uat_backup 7"
when: cassandra_backup_enable
with_items:
- dev
- qa
- uat
name: Ensure a job that runs purge backup for PROD
cron:
name: "Cassandra purge backup job"
user: cassandra
minute: 0
hour: 3
weekday: "5,6"
job: "/usr/ops/base/bin/cron.sh /usr/ops/cassandra/bin/backupfiles.sh /nas_csd_backup/prod_backup 7 /nas_csd_backup/prod_keep_backup 365"
when: cassandra_backup_enable
with_items:
- production
在上述代码中,除“作业”外,所有参数均相同。您可以使用
这应该起作用:
---
- hosts: localhost
vars:
cassandra_backup_enable: true
tasks:
- debug:
msg: > # multiline operator
/usr/ops/base/bin/cron.sh /usr/ops/cassandra/bin/backupfiles.sh /nas_csd_backup/prod_backup 7
{{ (item in ['dev', 'qa', 'uat']) | ternary('', '/nas_csd_backup/prod_keep_backup 365') }}
loop:
- dev
- qa
- uat
- production
- name: Ensure a job that runs purge backup
cron:
name: "Cassandra purge backup job"
user: cassandra
minute: 0
hour: 3
weekday: "5,6"
job: > # multiline operator
/usr/ops/base/bin/cron.sh /usr/ops/cassandra/bin/backupfiles.sh /nas_csd_backup/prod_backup 7
{{ (item in ['dev', 'qa', 'uat']) | ternary('', '/nas_csd_backup/prod_keep_backup 365') }}
when: cassandra_backup_enable
loop:
- dev
- qa
- uat
- production
所以,如果它不是prod,它将采用默认值,否则它会附加三元运算符中提到的字符串吗?如果是这种情况,我们是否给空字符串作为三值运算符的第一个参数?
bool |三值(value_1,value_2)
将具有value_1
如果bool
为True
或value_2
如果bool
为False
。作业:{(cassandra purge\u backup\u-enable)}三值('/usr/ops/base/bin/cronic.sh/usr/ops/cassandra/bin/TH_Purge_Backupfiles.sh/nas_csd_backup/uat_backup 7','/usr/ops/bin/cronic.sh/usr/ops/cassandra/bin/TH_Purge_Backupfiles.sh/nas_csd_backup/prod_backup 7/nas_csd_backup/prod_backup/prod_keep_backup 7'}}这有意义吗?