我只有在定义时才需要传递ssl_ca
给mysql_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.
这有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 }}"