Ansible:从角色调用标签,但未执行

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 

命令执行方式如下 在此处输入图片描述

正如您所看到的,当我执行命令时,我没有看到我调用的标签的任何任务

  • { 角色: nginx,标签: ['主机名','setuprepo','防火墙' ]}

我在这里做错了什么?

答案1

但您尚未指定要使用的任何标签!

您给出的命令如下:

ansible-playbook server.yml 

您尚未指定要使用的任何标签。

因此,任何带有标签的东西never都不会被调用,比如上面的两个剧本。

使用标签,您可以在命令行中指定要使用的标签ansible-playbook。例如:

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

您还可以指定跳过标签:

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

相关内容