1. tags标签

默认情况下, Ansible 在执行一个 playbook 时,会执行 playbook 中所有的任务。而标签功能是用来指定要运行 playbook 中的某个特定的任务;

  • playbook 添加标签的方式有如下几种:

    • 对一个 task 打一个标签;
    • 对一个 task 打多个标签;
    • 对多个 task 打一个标签;
  • task 打完标签使用的几种方式:
    • -t 执行指定tag标签对应的任务;
    • --skip-tags 执行除 --skip-tags 标签之外的所有任务;

1.1 指定执行某个tags

编写playbook文件,为每个task都设置一个tag

[root@xuzhichao playbook]# cat install_httpd.yml
---
- hosts: 192.168.20.23
remote_user: root tasks:
- name: Install Htttpd Server
yum:
name: httpd
state: present
tags:
- install_httpd
- install_apache - name: Configure Httpd Server
copy:
src: conf/httpd.conf.j2
dest: /etc/httpd/conf/httpd.conf
owner: "root"
group: "root"
mode: "0644"
notify: Restart Httpd Server
tags: conf_httpd - name: Init Httpd Server
copy:
src: file/test.html.j2
dest: /var/www/html/test.html
owner: "apache"
group: "apache"
mode: "0644"
tags: init_httpd - name: Start Httpd Server
service:
name: httpd
state: started
enabled: yes
tags: start_httpd handlers:
- name: Restart Httpd Server
service:
name: httpd
state: restarted

查看此playbook所有的tag

[root@xuzhichao playbook]# ansible-playbook install_httpd.yml --list-tags

playbook: install_httpd.yml

  play #1 (192.168.20.23): 192.168.20.23	TAGS: []
TASK TAGS: [conf_httpd, init_httpd, install_apache, install_httpd, start_httpd]

指定运行的任务的tag,使用 -t 指定 tags 标签对应的任务, 多个 tags 使用逗号隔开即可:

[root@xuzhichao playbook]# ansible-playbook -C -t install_httpd,start_httpd install_httpd.yml 

PLAY [192.168.20.23] ******************************************************************************************************************************************

TASK [Install Htttpd Server] **********************************************************************************************************************************
ok: [192.168.20.23] TASK [Start Httpd Server] *************************************************************************************************************************************
changed: [192.168.20.23] PLAY RECAP ****************************************************************************************************************************************************
192.168.20.23 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

1.2 指定排除某个tags

使用 --skip-tags 排除不执行的 tags

[root@xuzhichao playbook]# ansible-playbook --skip-tags install_httpd,start_httpd install_httpd.yml 

PLAY [192.168.20.23] ******************************************************************************************************************************************

TASK [Configure Httpd Server] *********************************************************************************************************************************
changed: [192.168.20.23] TASK [Init Httpd Server] **************************************************************************************************************************************
ok: [192.168.20.23] RUNNING HANDLER [Restart Httpd Server] ************************************************************************************************************************
changed: [192.168.20.23] PLAY RECAP ****************************************************************************************************************************************************
192.168.20.23 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

ansible系列(26)--ansible的tags标签的更多相关文章

  1. Ansible系列(五):playbook应用和roles自动化批量安装示例

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  2. Ansible系列(四):playbook应用和roles自动化批量安装示例

    Ansible系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html playbook是ansible实现批量自动化最重要的手段.在其中可以使用变 ...

  3. Ansible系列(七):执行过程分析、异步模式和速度优化

    本文目录:1.1 ansible执行过程分析1.2 ansible并发和异步1.3 ansible的-t选项妙用1.4 优化ansible速度 1.4.1 设置ansible开启ssh长连接 1.4. ...

  4. Ansible系列(二):选项和常用模块

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  5. Ansible系列(一):基本配置和使用

    本文目录:1.1 安装Ansible1.2 配置Ansible 1.2.1 环境配置 1.2.2 SSH互信配置 1.2.3 简单测试1.3 inventory Ansible是一种批量.自动部署工具 ...

  6. Ansible系列(六):各种变量定义方式和变量引用

    本文目录:1.1 ansible facts1.2 变量引用json数据的方式 1.2.1 引用json字典数据的方式 1.2.2 引用json数组数据的方式 1.2.3 引用facts数据1.3 设 ...

  7. Ansible系列(三):YAML语法和playbook写法

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  8. Ansible系列(六):循环和条件判断

    本文目录:1. 循环 1.1 with_items迭代列表 1.2 with_dict迭代字典项 1.3 with_fileglob迭代文件 1.4 with_lines迭代行 1.5 with_ne ...

  9. Ansible系列(五):各种变量定义方式和变量引用

    Ansible系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1.1 ansible facts facts组件是用来收集被管理节点信息的 ...

  10. 自动化运维工具ansible学习+使用ansible批量推送公钥到远程主机

    目录: 一.ansible简介 1.1.ansible是什么 1.2.ansible如何工作 1.3.ansible优缺点 1.4.ansible安装方式 1.5.ansible文件简单介绍 1.6. ...

随机推荐

  1. reinterpret_cast 和 static_cast 的区别

    安全性: static_cast 是一个安全的类型转换,它只能转换具有继承关系或密切相关的类型,并且在编译时进行类型检查. reinterpret_cast 是一个不安全的类型转换,它可以将任何类型的 ...

  2. Ubuntu20.04 LTS国内源安装指定版本Docker/docker-compose

    1.卸载旧版本Docker #卸载旧版本docker sudo apt-get remove docker docker-engine docker-ce docker.io #清空旧版docker占 ...

  3. Codeforces Round #682 (Div. 2)

    CF1438A Specific Tastes of Andre 洛谷传送门 CF1438A 代码(全铺成1就可以了) #include <cstdio> #include <cct ...

  4. #数学期望,高斯消元#洛谷 3232 [HNOI2013]游走

    题目 分析 如果计算出边的期望经过次数那就可以算出来答案 首先转换成点的期望经过次数,设\(dp[x]\)表示点\(x\)的期望经过次数 那么\(dp[x]=\sum_{y\in son}\frac{ ...

  5. Go 语言注释教程

    注释是在执行时被忽略的文本.注释可用于解释代码,使其更易读.注释还可用于在测试替代代码时防止代码执行.Go支持单行或多行注释. Go单行注释 单行注释以两个正斜杠(//)开头. 在//和行尾之间的任何 ...

  6. synchronized解锁源码分析

    上篇花了很大篇幅写了synchronized的加锁流程,并对比了ReentrantLock的设计,这篇我们收个尾,来聊一聊解锁流程,本来准备一章解决的,写着写着觉得内容过多,其实上一篇和Reentra ...

  7. C#中yield return的作用

    C#中yield return的作用 yield return作用在 return 时,保存当前函数的状态,下次调用时继续从当前位置处理.示例说明如下代码所示,主函数使用 foreach 输出 Get ...

  8. JavaScript 迈入 AI 新纪元

    随着人工智能技术的不断进步,JavaScript 也迎来了自己的 AI 时代. JS-Torch 是一个全新的深度学习库,专为 JavaScript 设计,其语法习惯与广受欢迎的 PyTorch 框架 ...

  9. 当年老夫手写的cookie

    前言 留来来只为了回忆,旧博客迁移. 正文 /** * Created by OC on 20xx/8/27. */ function setCookie(name,value,expires,pat ...

  10. next.js app目录 i18n国际化简单实现

    最近在用next写一个多语言的项目,找了好久没找到简单实现的教程,实践起来感觉都比较复杂,最后终于是在官方文档找到了,结合网上找到的代码demo,终于实现了,在这里简单总结一下. 此教程适用于比较简单 ...