Ansible mysql\u复制\u角色是默认的还是用户定义的?如果是用户定义的,我如何在我的剧本中设置它?

Ansible mysql\u复制\u角色是默认的还是用户定义的?如果是用户定义的,我如何在我的剧本中设置它?,ansible,yaml,ansible-facts,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

在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\u replication\u role=master和mysql\u replication\u role=slave

我的库存文件代码如下

master:
    10.0.0.1
    20.0.0.1
slave: 
    10.0.0.2
    20.0.0.2
如何在我的剧本中设置mysql\u replication\u role=master和mysql\u replication\u role=slave

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

[my_hosts]
srv123 mysql_replication_role=master
srv456 mysql_replication_role=slave
类似地,您可以在主机变量、组变量中设置,这些变量被视为库存的一部分,具体取决于您希望如何组织库存;Ansible在这方面很灵活


阅读更多信息。

您好,我在这个qstn中添加了我的库存文件代码。根据您的建议,如何在配置中根据主机设置属性。请阅读以上答案。如果您询问使用YAML进行库存,请参阅。