Ansible中的tags使用

如果你有一个很大的playbook,而你只想run其中的某个task,这个时候tags是你的最佳选择。

如何使用呢?

一、最常见的使用形式:

抄取官方的实例:

tasks:

    - yum: name={{ item }} state=installed
      with_items:
         - httpd
         - memcached
      tags:
         - packages

    - template: src=templates/src.j2 dest=/etc/foo.conf
      tags:
         - configuration

此时若你希望只run其中的某个task,这run 的时候指定tags即可

ansible-playbook example.yml --tags "configuration,packages"   #run 多个tags
ansible-playbook example.yml --tags packages                   # 只run 一个tag

相反,也可以跳过某个task

ansible-playbook example.yml --skip-tags configuration

二、tags 和role 结合使用

tags 这个属性也可以被应用到role上,例如:

roles:
  - { role: webserver, port: 5000, tags: [ ‘web‘, ‘foo‘ ] }

三、tags和include结合使用

- include: foo.yml tags=web,foo

这样,fool.yml 中定义所有task都将被执行

四、系统中内置的特殊tags:

always、tagged、untagged、all 是四个系统内置的tag,有自己的特殊意义

always: 指定这个tag 后,task任务将永远被执行,而不用去考虑是否使用了--skip-tags标记

tagged: 当 --tags 指定为它时,则只要有tags标记的task都将被执行,--skip-tags效果相反

untagged: 当 --tags 指定为它时,则所有没有tag标记的task 将被执行,--skip-tags效果相反

all: 这个标记无需指定,ansible-playbook 默认执行的时候就是这个标记.所有task都被执行

时间: 2024-10-14 01:42:38

Ansible中的tags使用的相关文章

ansible中的playbook

ansible中的playbook,将常用的模块任务,写入到playbook中,ansible方便快捷的管理主机. playbook使用yaml语言来书写,简单说下yaml语言. 1.YAML简介 YAML是一个可读性高的用来表达资料序列的格式.优点 YAML的可读性好 YAML和脚本语言的交互性好 YAML使用实现语言的数据类型 YAML有一个一致的信息模型 YAML易于实现 YAML可以基于流来处理 YAML表达能力强扩展性好 YAML的语法和其他高阶语言类似并且可以简单表达清单.散列表.标

ansible中的循环都是借助迭代来实现的。

1. 循环 ansible中的循环都是借助迭代来实现的.基本都是以"with_"开头.以下是常见的几种循环. 1.1 with_items迭代列表 ansibel支持迭代功能.例如,有一大堆要输出的命令.一大堆要安装的软件包.一大堆要copy的文件等等. 例如,要安装一堆软件包. --- - hosts: localhost tasks: - yum: name="{{item}}" state=installed with_items: - pkg1 - pkg2

ansible中的playbook详解

首先简单说明一下playbook,playbook是什么呢?根本上说playbook和shell脚本没有任何的区别,playbook就像shell一样,也是把一堆的命令组合起来,然后加入对应条件判断等等,在shell脚本中是一条一条的命令,而在playbook中是一个一个的task任务构成,每个task任务可以看做shell中的一条命令:shell脚本一般只是在当前服务器上执行,而playbook则是在不止一个服务器上执行,因此playbook需要在其中指定运行该playbook的服务器名. p

如何在Ansible中使用静态和动态库存(4)

在Ansible系列的第4部分中,我们将说明如何使用静态和动态清单来定义Ansible中的主机组. 在Ansible中,由Ansible控制节点控制的托管主机或服务器在主机清单文件中定义,如所述.主机清单文件是一个文本文件,由托管主机或远程服务器的主机名或IP地址组成. 托管主机可以列为单个条目,也可以按组名归类,我们将在后面看到.在Ansible中,库存文件有两种类型:静态和动态. 原文地址:https://blog.51cto.com/yueyong/2459369

ansible中的幂等性

1.ansible中的幂等性 ansible中绝大多数的模块都具有幂等特性,意味着执行依次或多次不会产生副作用.但是shell.command.script.raw这四个模块时不满足幂等性,所有操作会重复执行,但是有些操作不允许重复执行,比如MySQL的初始化命令mysql_install_db,逻辑上它只在第一次配置的过程中初始化依次,其他任何时候都不应该再执行.所有,每当使用这四个模块的时候,都要想一想,重复执行这个命令会不会产生负面影响. 当然,在上面的四个模块中,除了raw模块外,都提供

ansible中角色和模板使用及部署lamp平台

一.roles ansilbe自1.2版本引入的新特性,用于层次性.结构化地组织playbook.roles能够根据层次型结构自动装载变量文件.tasks以及handlers等.要使用roles只需要在playbook中使用include指令即可.简单来讲,roles就是通过分别将变量.文件.任务.模块及处理器放置于单独的目录中,并可以便捷地include它们的一种机制.角色一般用于基于主机构建服务的场景中,但也可以是用于构建守护进程等场景中. 一个roles的案例如下所示:        si

在开源中国(oschina)git中新建标签(tags)

我今天提交代码到主干上面,本来想打个标签(tags)的. 因为我以前新建过标签(tags),但是我现在新建的时候不知道入库在哪了.怎么找也找不到了. 从网上找资料也没有,找客服没有人理我,看到一个交流群也没有加我,我只好自己琢磨. 我点开我以前新建的标签(tags)管理页面. 我无意中发现浏览器地址栏里面有个tags,然后我灵机一动. 我突然有个想法,那就是在我的项目名字后边加上/tags就可以访问到标签列表了,就可以新建标签(tags)了 在项目地址后边加上  /tags http://***

ansible 中如何取消ssh交换式 yes/no

如何去除ssh无交互式添加 known_hosts 配置文件/etc/ansible/ansible.cfg的[defaults]中 打开注释 # uncomment this to disable SSH key host checking host_key_checking = False

Ansible中Roles的使用

Roles的介绍 Roles是ansible自1.2版本引入的新特性,用于层次性,结构化地组织playbook,roles能够根据层次型结构自动自动装在变量文件.tasks以及handlers 等.要使用roles只需要在playbook中使用include指令即可.简单来讲,roles就是通过分别将变量.文件.任务.模板及处理器放置于单独的目录中 并可以便捷地include他们的一种机制,角色一般用于主机构建服务的场景中,但也可以是用于构建守护进程等场景中. 创建roles的步骤 创建以rol