ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ansible中的重试逻辑

2021-09-07 18:04:21  阅读:259  来源: 互联网

标签:逻辑 git 重试 ansible BASIC disk


背景

经常出现访问某个git,或者 url的时候,会出现 失败,需要 重试逻辑

方案

- name: "[BASIC] [05_disk] handle disk mount logic for all spec"
  tags: mre-disk
  block: <<==0. 先搞一个block,在一个block里,所有register的变量作用域
    - name: "[BASIC] [05_disk] fetch machine spec from cmdb api"
      uri:
        url: "{{ devops_api.host }}/xxxxxxxxx"
        method: POST
        body: { "ip_query_condition": {"ip_scope": "bk_host_innerip", "exact_match": "1", "ip_list": ["{{ ansible_host }}"]} }
        body_format: json
      register: host_search  <<== 1. 将url的结果存到变量: host_search

    - debug: var= host_search  <<== 2. 打印host_search 的结果,做调试, 后面才知道 应该如何 写判断条件

    - name: "[BASIC] [05_disk] check if the server is [H14 Server]"
      shell: "echo This is H14"
      register: machine_spec
      when:
        - host_search.json.data.info[0].host.spec == "H14"

    - debug: var=machine_spec

    - name: "[BASIC] [05_disk] copy auto-init script"
      copy:
        src: files/init_disk_for_spec.sh
        dest: /tmp/init_disk_for_spec.sh
        owner: root
        group: root
        mode: '0644'

    - name: "[BASIC] [05_disk] init disk [H14 Server]"
      shell: "bash /tmp/init_disk_for_spec.sh H14"
      register: H14_output
      until: H14_output.rc == 0 <<== 4.你需要先知道H14_output 是啥? 可以通过- debug: var=H14_output 来看
      retries: 3
      delay: 3  <<== 重试间隔3s
      when: host_search.json.data.info[0].host.spec == "H14" <<== 3.根据变量写判断条件,python风格

    - debug: var=H14_output
    - debug: var=H14_output.rc
```

测试方法: 

```
ansible-playbook -i inventory/ahao.mu.D2_V2.ip playbooks/infra_init_new.yml --tags slow_jobs
```

标签:逻辑,git,重试,ansible,BASIC,disk
来源: https://www.cnblogs.com/muahao/p/15239468.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有