pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

<legend id='1EmZk'><style id='1EmZk'><dir id='1EmZk'><q id='1EmZk'></q></dir></style></legend>
<i id='1EmZk'><tr id='1EmZk'><dt id='1EmZk'><q id='1EmZk'><span id='1EmZk'><b id='1EmZk'><form id='1EmZk'><ins id='1EmZk'></ins><ul id='1EmZk'></ul><sub id='1EmZk'></sub></form><legend id='1EmZk'></legend><bdo id='1EmZk'><pre id='1EmZk'><center id='1EmZk'></center></pre></bdo></b><th id='1EmZk'></th></span></q></dt></tr></i><div class="jlhnnvv" id='1EmZk'><tfoot id='1EmZk'></tfoot><dl id='1EmZk'><fieldset id='1EmZk'></fieldset></dl></div>

    • <bdo id='1EmZk'></bdo><ul id='1EmZk'></ul>

    1. <tfoot id='1EmZk'></tfoot>

        <small id='1EmZk'></small><noframes id='1EmZk'>

        如何在ansible中為不同的主機使用另一個任務中的

        How to use return values of one task in another task for a different host in ansible(如何在ansible中為不同的主機使用另一個任務中的一個任務的返回值)

        1. <i id='JQlqX'><tr id='JQlqX'><dt id='JQlqX'><q id='JQlqX'><span id='JQlqX'><b id='JQlqX'><form id='JQlqX'><ins id='JQlqX'></ins><ul id='JQlqX'></ul><sub id='JQlqX'></sub></form><legend id='JQlqX'></legend><bdo id='JQlqX'><pre id='JQlqX'><center id='JQlqX'></center></pre></bdo></b><th id='JQlqX'></th></span></q></dt></tr></i><div class="xrnbhj7" id='JQlqX'><tfoot id='JQlqX'></tfoot><dl id='JQlqX'><fieldset id='JQlqX'></fieldset></dl></div>

          <tfoot id='JQlqX'></tfoot>

          <small id='JQlqX'></small><noframes id='JQlqX'>

            <tbody id='JQlqX'></tbody>
              • <bdo id='JQlqX'></bdo><ul id='JQlqX'></ul>

                  <legend id='JQlqX'><style id='JQlqX'><dir id='JQlqX'><q id='JQlqX'></q></dir></style></legend>
                  本文介紹了如何在ansible中為不同的主機使用另一個任務中的一個任務的返回值的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  限時送ChatGPT賬號..

                  我試圖為由 2 個 mysql 主機組成的主機組使用 ansible 設置 mysql 主從復制.

                  I was trying to setup mysql master slave replication with ansible for a hostgroup consisting of 2 mysql hosts.

                  這是我的場景:

                  我在第一個主機上運行一個任務并跳過第二個主機,所以第一個任務(即主復制狀態)返回一些值,如位置、文件等.

                  I run one task in the 1st host and skips the 2nd host, so the 1st task (i.e master replication status) returns some values like Position, File etc.

                  然后,我在第 2 個主機上運行另一個任務(跳過第一個主機),該任務使用第一個任務的返回值,如 master.Position、master.File 等.

                  Then, I run another task in 2nd host (skips the 1st hosts), This task uses the return values of the 1st task like master.Position, master.File etc.

                  現在,當我運行劇本時,第一個任務的變量似乎在第二個任務中不起作用

                  Now, when I run the playbook, the variables of the 1st task does not seem to be working in the 2nd task

                  庫存文件

                      [mysql]
                      stagmysql01 ansible_host=1.1.1.1 ansible_ssh_user=ansible ansible_connection=ssh
                      stagmysql02 ansible_host=1.1.1.2 ansible_ssh_user=ansible ansible_connection=ssh 
                  

                  Master 上的任務

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

                  Slave 上的任務

                  - 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: "{{ master.File }}"
                      master_log_pos: "{{ master.Position }}"
                    ignore_errors: True
                  

                  主輸出

                  TASK [Mysql_Base : Mysql - Check master replication status.] ****************
                  skipping: [stagmysql02]
                  ok: [stagmysql01]
                  
                  TASK [Mysql_Base : debug] ***************************************************
                  ok: [stagmysql01] => {
                      "master": {
                          "Binlog_Do_DB": "", 
                          "Binlog_Ignore_DB": "mysql,performance_schema", 
                          "Executed_Gtid_Set": "", 
                          "File": "mysql-bin.000003", 
                          "Is_Master": true, 
                          "Position": 64687163, 
                          "changed": false, 
                          "failed": false
                      }
                  }
                  ok: [stagmysql02] => {
                      "master": {
                          "changed": false, 
                          "skip_reason": "Conditional result was False", 
                          "skipped": true
                      }
                  }
                  

                  從輸出

                  TASK [Mysql_Base : Mysql - Configure replication on the slave.] *************
                  skipping: [stagmysql01]
                  fatal: [stagmysql02]: FAILED! => {"failed": true, "msg": "The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'File'\n\nThe error appears to have been in '/root/ansible/roles/Mysql_Base/tasks/replication.yml': line 30, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: Mysql - Configure replication on the slave.\n  ^ here\n\nexception type: <class 'ansible.errors.AnsibleUndefinedVariable'>\nexception: 'dict object' has no attribute 'File'"}
                  ...ignoring
                  

                  正如您在上面看到的,由于未定義的變量,第二個主機的第二個任務失敗.但是,第一個主機的第一個任務中存在所需的變量.

                  As, you can see above, the 2nd task failed for 2nd host because of undefined variables. However the required variables are there in 1st task of 1st host.

                  如何在另一個任務中使用從第一臺主機返回到第二臺主機的變量?

                  How do I use the variables returned from 1st host in 2nd host in another task ?

                  P.S:我見過使用 {{ hostvars['inventory_hostname']['variable'] }} 的方法.但是我對這種方法很困惑,因為需要直接添加庫存主機名或 IP 地址.我正在尋找可用于不同清單文件和劇本的通用模板.

                  P.S: I have seen the approach of using {{ hostvars['inventory_hostname']['variable'] }}. However I'm quite confused with this approach as the inventory_hostname or IP address needs to be added directly. I was looking for a common template that can be used for different inventory files and playbooks.

                  推薦答案

                  我解決了我的問題>hostvars.

                  I was able to solve my problem by defining the variables to a new dummy host and then using it across the playbook with hostvars.

                  如何設置注冊變量以在 ansible 中的播放之間保持不變?但是直到我發布這個問題我才注意到它.

                  Similar solution was already mentioned in one of the answers in How do I set register a variable to persist between plays in ansible? However I did not notice it until I posted this question.

                  這是我在 ansible 任務中所做的:

                  Here is what I did in the ansible tasks:

                  • 我創建了一個虛擬主機 master_value_holder 并定義了所需的變量.(這里我需要 master_log_filemaster_log_Postion)
                  • 使用 hostvars['master_value_holder']['master_log_file'] 訪問變量
                  • I have created a dummy host master_value_holder and defined the required variables. (Here I needed master_log_file and master_log_Postion)
                  • Accessed the variables using hostvars['master_value_holder']['master_log_file']

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

                  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
                  

                  輸出

                  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]
                  

                  從上面的輸出中可以看出,主復制狀態現在對兩臺主機都可用.

                  As you can see from the above output that the master replication status is available for both the hosts now.

                  這篇關于如何在ansible中為不同的主機使用另一個任務中的一個任務的返回值的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  SQL query to get all products, categories and meta data woocommerce/wordpress(獲取所有產品、類別和元數據的 SQL 查詢 woocommerce/wordpress)
                  How to use MySQL in WSL (Windows Subsystem for Linux)?(如何在 WSL(Linux 的 Windows 子系統)中使用 MySQL?)
                  PowerShell MySQL Backup Script Error in Task Scheduler 0x00041301(任務計劃程序中的 PowerShell MySQL 備份腳本錯誤 0x00041301)
                  Import the data from the XML files into a MySQL database(將數據從 XML 文件導入 MySQL 數據庫)
                  installed Xampp on Windows 7 32-bit. Errors when starting(在 Windows 7 32 位上安裝 Xampp.啟動時的錯誤)
                  Mysql lower case table on Windows xampp(Windows xampp 上的 Mysql 小寫表)

                    <tbody id='zPONz'></tbody>

                      <legend id='zPONz'><style id='zPONz'><dir id='zPONz'><q id='zPONz'></q></dir></style></legend>

                        <small id='zPONz'></small><noframes id='zPONz'>

                        <tfoot id='zPONz'></tfoot>
                        • <bdo id='zPONz'></bdo><ul id='zPONz'></ul>

                            <i id='zPONz'><tr id='zPONz'><dt id='zPONz'><q id='zPONz'><span id='zPONz'><b id='zPONz'><form id='zPONz'><ins id='zPONz'></ins><ul id='zPONz'></ul><sub id='zPONz'></sub></form><legend id='zPONz'></legend><bdo id='zPONz'><pre id='zPONz'><center id='zPONz'></center></pre></bdo></b><th id='zPONz'></th></span></q></dt></tr></i><div class="xjx77tl" id='zPONz'><tfoot id='zPONz'></tfoot><dl id='zPONz'><fieldset id='zPONz'></fieldset></dl></div>
                          1. 主站蜘蛛池模板: 水性绝缘漆_凡立水_绝缘漆树脂_环保绝缘漆-深圳维特利环保材料有限公司 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 通信天线厂家_室分八木天线_对数周期天线_天线加工厂_林创天线源头厂家 | 小程序开发公司_APP开发多少钱_软件开发定制_微信小程序制作_客户销售管理软件-济南小溪畅流网络科技有限公司 | 【同风运车官网】一站式汽车托运服务平台,验车满意再付款 | 超声波乳化机-超声波分散机|仪-超声波萃取仪-超声波均质机-精浩机械|首页 | 「安徽双凯」自动售货机-无人售货机-成人用品-自动饮料食品零食售货机 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | C形臂_动态平板DR_动态平板胃肠机生产厂家制造商-普爱医疗 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | CE认证_FCC认证_CCC认证_MFI认证_UN38.3认证-微测检测 CNAS实验室 | 全自动真空上料机_粉末真空上料机_气动真空上料机-南京奥威环保科技设备有限公司 | 双段式高压鼓风机-雕刻机用真空泵-绍兴天晨机械有限公司 | 压砖机、液压制砖机、静压砖机、环保砖机生产厂家—杜甫机械 | 耐酸泵,耐腐蚀真空泵,耐酸真空泵-淄博华舜耐腐蚀真空泵有限公司 精密模具-双色注塑模具加工-深圳铭洋宇通 | 深圳侦探联系方式_深圳小三调查取证公司_深圳小三分离机构 | 成都竞价托管_抖音代运营_网站建设_成都SEM外包-成都智网创联网络科技有限公司 | 精雕机-火花机-精雕机 cnc-高速精雕机-电火花机-广东鼎拓机械科技有限公司 | 集装箱标准养护室-集装箱移动式养护室-广州璟业试验仪器有限公司 | 考勤系统_考勤管理系统_网络考勤软件_政企|集团|工厂复杂考勤工时统计排班管理系统_天时考勤 | 大流量卧式砂磨机_强力分散机_双行星双动力混合机_同心双轴搅拌机-莱州市龙跃化工机械有限公司 | 钢格栅板_钢格板网_格栅板-做专业的热镀锌钢格栅板厂家-安平县迎瑞丝网制造有限公司 | 模具ERP_模具管理系统_模具mes_模具进度管理_东莞市精纬软件有限公司 | 塑料托盘厂家直销-吹塑托盘生产厂家-力库塑业【官网】 | 精密光学实验平台-红外粉末压片机模具-天津博君 | 三氯异氰尿酸-二氯-三氯-二氯异氰尿酸钠-优氯净-强氯精-消毒片-济南中北_优氯净厂家 | 热镀锌槽钢|角钢|工字钢|圆钢|H型钢|扁钢|花纹板-天津千百顺钢铁贸易有限公司 | 螺旋丝杆升降机-SWL蜗轮-滚珠丝杆升降机厂家-山东明泰传动机械有限公司 | 河北码上网络科技|邯郸小程序开发|邯郸微信开发|邯郸网站建设 | 选矿设备,选矿生产线,选矿工艺,选矿技术-昆明昆重矿山机械 | 车充外壳,车载充电器外壳,车载点烟器外壳,点烟器连接头,旅行充充电器外壳,手机充电器外壳,深圳市华科达塑胶五金有限公司 | 广东机电安装工程_中央空调工程_东莞装饰装修-广东粤标建设有限公司 | 齿轮减速马达一体式_蜗轮蜗杆减速机配电机-德国BOSERL齿轮减速电动机生产厂家 | 恒温油槽-恒温水槽-低温恒温槽厂家-宁波科麦仪器有限公司 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 全球化工设备网—化工设备,化工机械,制药设备,环保设备的专业网络市场。 | 施工电梯_齿条货梯_烟囱电梯_物料提升机-河南大诚机械制造有限公司 | 电动葫芦|手拉葫芦|环链电动葫芦|微型电动葫芦-北京市凌鹰起重机械有限公司 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 金环宇|金环宇电线|金环宇电缆|金环宇电线电缆|深圳市金环宇电线电缆有限公司|金环宇电缆集团 | 公交驾校-北京公交驾校欢迎您! 工作心得_读书心得_学习心得_找心得体会范文就上学道文库 |