mysql_replication_role 是默认的还是用户定义的?如果用户定义,我如何在我的剧本中设置它?

mysql_replication_role is default or user defined? If User defined, How can I set it in my playbook?

在 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

How do I set mysql_replication_role = master and mysql_replication_role = slave in my playbook

这是一个属性你想分配给目标服务器,所以你不应该在剧本中这样做,而是在清单中,例如:

[my_hosts]
srv123 mysql_replication_role=master
srv456 mysql_replication_role=slave

同样,您可以将其设置在 host_vars、group_vars 中,它们被视为库存的一部分,具体取决于您希望如何组织库存; Ansible 在这方面是灵活的。

Working with Inventory 页面上阅读更多内容。