sql >> Databáze >  >> RDS >> Mysql

Jak použít návratové hodnoty jedné úlohy v jiné úloze pro jiného hostitele v ansible

Podařilo se mi vyřešit můj problém definováním proměnných do nového fiktivního hostitele a poté jej použít v příručce s hostvars .

Podobné řešení již bylo zmíněno v jedné z odpovědí v Jak nastavím registraci proměnné tak, aby mezi přehráními v ansible přetrvávala? Nevšiml jsem si toho, dokud jsem neposlal tuto otázku.

Zde je to, co jsem udělal v ansible úlohách:

  • Vytvořil jsem fiktivního hostitele master_value_holder a definovat požadované proměnné. (Zde jsem potřeboval master_log_file amaster_log_Postion )
  • Přístup k proměnným pomocí hostvars['master_value_holder']['master_log_file']

Úkoly na Master

- name: Mysql - Check master replication status.
  mysql_replication: mode=getmaster
  register: master

- name: "Add master return values to a dummy host"
  add_host:
    name:   "master_value_holder"
    master_log_file: "{{ master.File }}"
    master_log_pos: "{{ master.Position }}"

Úkoly pro Slave

- name: Mysql - Displaying master replication status
  debug: msg="Master Bin Log File  is {{ hostvars['master_value_holder']['master_log_file'] }} and Master Bin Log Position is {{ hostvars['master_value_holder']['master_log_pos'] }}"

- name: Mysql - Configure replication on the slave.
  mysql_replication:
    mode: changemaster
    master_host: "{{ replication_master }}"
    master_user: "{{ replication_user }}"
    master_password: "{{ replication_pass }}"
    master_log_file: "{{ hostvars['master_value_holder']['master_log_file'] }}"
    master_log_pos: "{{ hostvars['master_value_holder']['master_log_pos'] }}"
  when: ansible_eth0.ipv4.address != replication_master and not slave.Slave_SQL_Running

Výstup

TASK [Mysql_Base : Mysql - Check master replication status.] ****************
skipping: [stagmysql02]
ok: [stagmysql01]

TASK [AZ-Mysql_Base : Add master return values to a dummy host] ****************
changed: [stagmysql01]

TASK [AZ-Mysql_Base : Mysql - Displaying master replication status] ************
ok: [stagmysql01] => {
    "msg": "Master Bin Log File  is mysql-bin.000001 and Master Bin Log Position is 154"
}
ok: [stagmysql02] => {
    "msg": "Master Bin Log File  is mysql-bin.000001 and Master Bin Log Position is 154"
}

TASK [AZ-Mysql_Base : Mysql - Configure replication on the slave.] *************
skipping: [stagmysql01]
skipping: [stagmysql02]

Jak můžete vidět z výše uvedeného výstupu, stav hlavní replikace je nyní dostupný pro oba hostitele.




  1. Chyba Postgres na insertu - CHYBA:neplatná sekvence bajtů pro kódování UTF8:0x00

  2. Jak vytvořit databázi mysql pomocí sequelize (nodejs)

  3. 13 blogových článků o doporučených postupech a tipech pro návrh databáze

  4. Instalace Oracle Forms and Reports 11g Release 2