Назад | Перейти на главную страницу

Ansible: вызов тегов из роли, но они не выполняются

У меня есть несколько задач, как показано ниже

- name: Add the server's domain to the hosts file
  lineinfile:
   dest: /etc/hosts
   #regexp='.*{{ item }}$'
   line: "{{ hostvars[item].ansible_default_ipv4.address }} {{ LOCAL_FQDN_NAME }} {{ LOCAL_HOSTNAME }}"
   state:  present
  when: hostvars[item].ansible_default_ipv4.address is defined
  with_items: "{{ groups['cache'] }}"
  tags: [ 'never', 'hostname' ]

- name: Set the timezone for the server to be UTC
  file:
    path: /usr/share/zoneinfo/UTC
    dest: /etc/localtime
    state: link

- name: Copy the NGINX repository definition
  copy: src=nginx.repo dest=/etc/yum.repos.d/
  tags: [ 'never', 'setuprepo' ]

и я называю их из своей пьесы как

- hosts: cache
  vars:
   LOCAL_HOSTNAME: 'web02'
  roles:
  - { role: basic-setup, tags: [ 'hostname', 'setuprepo', 'firewall' ]}

Но, несмотря на явный вызов тегов, соответствующие задачи, такие как «Добавьте домен сервера в файл hosts"Не выполняется, тогда как"Установите часовой пояс для сервера в формате UTC»Исполняется.

изменить: Моя командная строка проста

ansible-playbook server.yml 

Вот как выполнялась команда

Как видите, когда я выполняю команду, я не вижу задач для тегов, из которых я вызвал

Что я здесь делаю не так?

Но вы не указали никаких тегов для использования!

Вы дали свою команду как:

ansible-playbook server.yml 

Вы не указали никаких тегов для использования.

Итак, все, что имеет теги never не получает колл, как, например, ваши две игры выше.

Использовать теги, вы указываете теги, которые хотите использовать в ansible-playbook командная строка, когда вы даете команду. Например:

ansible-playbook server.yml --tags "firewall,hostname"

Вы также можете указать пропуск тегов:

ansible-playbook server.yml --skip-tags "setuprepo"