账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请问 Ansible tag 在role中不能生效
    75
    0

    /roles/test/tasks/main.yml

    ---
    - name: deploy
      debug: msg="This is an install method."
      tags:
        - deploy
    
    - name: uninstall
      debug: msg="test uninstall section."
      tags: 
        - uninstall

    /site.yml

    ---
    - hosts: localhost
      gather_facts: no
      tasks:
        - name: loading role
          include_role:
            name: test
            tags: deploy

    运行

    ansible-playbook site.yml

    结果是:

    PLAY [localhost] ***************************************************************************************************************
    
    TASK [test : deploy] ***********************************************************************************************************
    ok: [localhost] => {
        "msg": "This is a install method."
    }
    
    TASK [test : uninstall] ********************************************************************************************************
    ok: [localhost] => {
        "msg": "test uninstall section."
    }
    
    PLAY RECAP *********************************************************************************************************************
    localhost                  : ok=2    changed=0    unreachable=0    failed=0

    我觉得写的没错的话,应该是仅仅运行deploy那个任务的,为啥所有的任务都运行了?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在Ansible中,tags用于将角色分配给特定的运行集。每个运行集都有一个唯一的标签,这个标签用于识别它与其他运行集之间的区别。但是,如果你想在运行集中使用标签,但这个标签在角色中无法生效,那么原因可能是以下几种情况:

      1. 没有将标签添加到角色中:在创建角色时,你需要将标签添加到role.yml文件中。例如,你可以使用tag: my-role来为角色添加一个标签。

      2. 防火墙设置:你的运行集可能设置了防火墙规则,阻止了标签的访问。你可以检查你的运行集防火墙设置,确保标签能够被访问。

      3. 账户权限问题:如果你的角色需要特定的账户权限才能运行,那么这个权限可能在运行集中没有被授予。你需要检查运行集的用户权限设置,确保角色需要的权限被授予。

      4. 安全策略:你的Ansible安全策略可能阻止了标签的访问。你需要检查你的安全策略,确保标签能够被访问。

      以上就是一些可能导致标签在角色中无法生效的原因。你需要根据实际情况进行排查。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部