我只想在db_version var相等或不相等时运行某些任务。这是我的任务:
- name: Install Software Only 12.1 or 12.2
shell: |
{{ stage_dir}}/runInstaller -silent -waitforcompletion \
oracle.install.option=INSTALL_DB_SWONLY \
UNIX_GROUP_NAME=dba \
INVENTORY_LOCATION={{ db_inventory }} \
ORACLE_HOME={{ oracle_home }} \
ORACLE_BASE={{ oracle_base }} \
..
when: db_version == "12.1.0.2" or db_version == "12.2.0.2"
- name: Install Software Only for 18c and above
shell: |
{{ oracle_home}}/runInstaller -silent -applyRU {{ stage_dir }} -waitforcompletion \
oracle.install.option=INSTALL_DB_SWONLY \
UNIX_GROUP_NAME=dba \
INVENTORY_LOCATION={{ db_inventory }} \
ORACLE_HOME={{ oracle_home }} \
ORACLE_BASE={{ oracle_base }} \
...
when: db_version != "12.1.0.2" or db_version != "12.2.0.2"
当db_version为12.1.0.2时,它将运行18c任务。这种“简单”的条件有什么问题?
谢谢
答案 0 :(得分:1)
显然可以使用jinja2版本解决此问题。
when: db_version is version('12.2.0.2','<=')
和
when: db_version is version('18','>=')
在ansible 2.5中,将ansible重命名为version_compare到version