sql >> データベース >  >> RDS >> Mysql

Ansibleの別のホストの別のタスクで1つのタスクの戻り値を使用する方法

    新しいダミーホストに変数を定義することで、問題を解決することができました。 次に、 hostvarsを使用してプレイブック全体で使用します。 。

    同様の解決策は、 ansibleの再生間で永続化する変数を登録するにはどうすればよいですか? しかし、この質問を投稿するまで気づきませんでした。

    これが私がansibleタスクで行ったことです:

    • ダミーホストを作成しましたmaster_value_holder 必要な変数を定義しました。 (ここで master_log_fileが必要でした およびmaster_log_Postion
    • hostvars ['master_value_holder'] ['master_log_file']を使用して変数にアクセスしました

    マスターのタスク

    - 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 }}"
    

    スレーブのタスク

    - 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
    

    出力

    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]
    

    上記の出力からわかるように、マスターレプリケーションステータスが両方のホストで利用可能になっていることがわかります。




    1. group byで非集計列を使用できますか?

    2. whereの使用を修正します。一時的な使用; filesortの使用

    3. SpringBoot構成で正しいMySQLJDBCタイムゾーンを設定する方法

    4. Sphider検索を私のWebサイトに追加するにはどうすればよいですか?データベースに接続できません