sql >> Database teknologi >  >> RDS >> Mysql

Hvordan man bruger returværdier for en opgave i en anden opgave for en anden vært i ansible

Jeg var i stand til at løse mit problem ved at definere variablerne til en ny dummy-vært og derefter bruge det på tværs af spillebogen med hostvars .

Lignende løsning var allerede nævnt i et af svarene i Hvordan indstiller jeg registrering af en variabel til at fortsætte mellem afspilninger i ansible? Jeg lagde dog ikke mærke til det, før jeg postede dette spørgsmål.

Her er, hvad jeg gjorde i de mulige opgaver:

  • Jeg har oprettet en dummy-vært master_value_holder og definerede de nødvendige variabler. (Her havde jeg brug for master_log_file ogmaster_log_Postion )
  • Få adgang til variablerne ved hjælp af hostvars['master_value_holder']['master_log_file']

Opgaver på 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 }}"

Opgaver til 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
 

Output

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]
 

Som du kan se fra ovenstående output, er masterreplikeringsstatus tilgængelig for begge værter nu.




  1. Antal median grupperet efter dag

  2. Sådan bruger du index efficienty i mysql-forespørgsel

  3. Hvordan bruger jeg en LIKE-klausul i en PDO udarbejdet erklæring?

  4. Sådan fungerer POSITION()-funktionen i MySQL