mysql_replication_role是默认值还是用户定义的?如果用户定义了,如何在剧本中进行设置?

时间:2018-07-18 07:31:25

标签: ansible yaml ansible-facts

在Ansible安装MySQL中,我在配置中使用了以下代码所示的属性

{% if mysql_replication_master %}
# Replication
server-id = {{ mysql_server_id }}

{% if mysql_replication_role == 'master' %}
log_bin = mysql-bin
log-bin-index = mysql-bin.index
expire_logs_days = {{ mysql_expire_logs_days }}
max_binlog_size = {{ mysql_max_binlog_size }}
binlog_format = {{mysql_binlog_format}}

{% for db in mysql_databases %}
{% if db.replicate|default(1) %}
binlog_do_db = {{ db.name }}
{% else %}
binlog_ignore_db = {{ db.name }}
{% endif %}
{% endfor %}
{% endif %}

{% if mysql_replication_role == 'slave' %}
read_only
relay-log = relay-bin
relay-log-index = relay-bin.index
{% endif %}
{% endif %}

在安装MySql时,如何在剧本中设置mysql_replication_role = master和mysql_replication_role = slave。

还有我的清单文件代码

master:
    10.0.0.1
    20.0.0.1
slave: 
    10.0.0.2
    20.0.0.2

1 个答案:

答案 0 :(得分:0)

  

如何在我的剧本中设置mysql_replication_role = master和mysql_replication_role = slave

这是您要分配给目标服务器的属性,因此您不应在剧本中,而应在清单中,例如:

[my_hosts]
srv123 mysql_replication_role=master
srv456 mysql_replication_role=slave

同样,您可以在host_vars,group_vars中进行设置,这取决于清单的组织方式,它们被视为清单的一部分。 Ansible在这方面很灵活。

Working with Inventory页上了解更多信息。