У меня есть несколько задач, как показано ниже
- 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"