2017-01-18 8 views
1

は、mysql_use_sslが定義されている場合にのみssl_camysql_dbモジュールに渡す必要があります。これは、次のような1つのタスクを使用して可能ですか?可能性:条件付きタスクパラメータ

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はオフになりません。

答えて

2

このため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 }}" 
関連する問題