【问题标题】:mysql_replication_role is default or user defined? If User defined, How can I set it in my playbook?mysql_replication_role 是默认的还是用户定义的?如果用户定义,我如何在我的剧本中设置它?
【发布时间】:2018-07-18 07:31:25
【问题描述】:

在 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 时,如何在我的 playbook 中设置 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

【问题讨论】:

    标签: ansible yaml ansible-facts


    【解决方案1】:

    如何在我的剧本中设置 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 页面上了解更多信息。

    【讨论】:

    • 嗨,我在这个 qstn 中添加了我的库存文件代码。根据您的建议,如何根据主机在配置中设置属性。
    • 请阅读以上答案。如果您询问有关使用 YAML 进行库存的问题,请参阅 this answer
    猜你喜欢
    • 2016-05-18
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多