Задачи Ansible по-прежнему выполняются независимо от тегов

#ansible #tags #ansible-2.x

#ansible #Теги #ansible-2.x

Вопрос:

У меня есть следующая пьеса. Если я запускаю с —tags «decommision», были запущены только 2 задачи, что является правильным. Но когда я запускаю playbook с помощью —tags «deliver», последние задачи все еще выполняются, независимо от того, что их теги являются «списанием». Кажется, я не могу понять. Мой отступ тоже в порядке.

 tasks:
- name: Change PS 1
  command: sed -i 's/PS1="[\u@\h \W]/PS1="[\u@\H \W]/g' /etc/bashrc
  tags: deliver, update
  
- name: Update Info In CMDB 
  uri:
    url: "update url"
    method: POST
    body: {"ip_list": ["{{ ansible_host }}"]}
    body_format: json
  tags: deliver, update

- name: Remove Old Targets
  uri:
    url: "remove url"
    method: POST
    body: {"job_name": "{{ jobname }}", "host_list": ["{{ ansible_host }}"]}
    body_format: json
  tags: deliver, decommision, update

- name: Associate Host With Prometheus
  uri:
    url: "prometheus url"
    method: POST
    body: {"ip_list": [ "{{ ansible_host }}" ]}
    body_format: json
  tags: deliver 

- name: Register monitoring job
  uri:
    url: "register url"
    method: POST
    body: {"host_list": ["{{ ansible_host }}"]}
    body_format: json
  tags: deliver, update_hostname

- name: Remove Association Host With Prometheus
  uri:
    url: "remove url"
    method: POST
    body: {"ip_list": [ "{{ ansible_host }}" ]}
    body_format: json
  tags: decommision
  

Комментарии:

1. Я не могу воспроизвести проблему. Должна быть какая-то причина, не очевидная из опубликованного вами кода. Вы должны минимизировать код и попытаться изолировать проблему. Например, начните с «debug» только в каждой задаче и попытайтесь воспроизвести проблему.

Ответ №1:

Работает так, как ожидалось

 shell> cat pb.yml
- hosts: localhost
  gather_facts: false

  tasks:
    - debug:
        msg: Change PS 1
      tags: deliver, update
  
    - debug:
        msg: Update Info In CMDB
      tags: deliver, update

    - debug:
        msg: Remove Old Targets
      tags: deliver, decommision, update

    - debug:
        msg: Associate Host With Prometheus
      tags: deliver 

    - debug:
        msg: Register monitoring job
      tags: deliver, update_hostname

    - debug:
        msg: Remove Association Host With Prometheus
      tags: decommision
  

дает (сокращенный)

 shell> ansible-playbook pb.yml --tags "deliver" | grep msg:
  msg: Change PS 1
  msg: Update Info In CMDB
  msg: Remove Old Targets
  msg: Associate Host With Prometheus
  msg: Register monitoring job