当前位置:  开发笔记 > 后端 > 正文

Ansible:条件任务参数

如何解决《Ansible:条件任务参数》经验,为你挑选了1个好方法。

我只有在定义时才需要传递ssl_camysql_db模块mysql_use_ssl.这是否可以使用一个任务,例如:

mysql_db: name=mydb state=import target=/tmp/mysql.sql login_host="mydbhost" login_user="root" login_password="password" {% if mysql_use_ssl %}ssl_ca=/path/to/cert.pem{% endif %}

这个实际的片段不起作用,结果:

{"failed": true, "msg": "template error while templating string: Encountered unknown tag 'endif'.. String: /path/to/cert.pem{% endif %}"}

移动条件时:

mysql_db: name=mydb state=import target=/tmp/mysql.sql login_host="mydbhost" login_user="root" login_password="password" ssl_ca="{% if mysql_use_ssl %}/path/to/cert.pem{% else %}none{% endif %}"

然后它"工作"但none不支持关闭mysql ssl连接的参数,因此它不会关闭ssl.



1> Konstantin S..:

这有omit关键字/变量:

mysql_db:
  name: mydb
  state: import
  target: /tmp/mysql.sql
  login_host: mydbhost
  login_user: root
  login_password: password
  ssl_ca: "{{ '/path/to/cert.pem' if mysql_use_ssl | default(false) else omit }}"

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有