(1)when判断语句

      实践案例一、根据不同操作系统,安装相同的软件包

        [root@m01 project1]# cat tasks_1.yml

          - hosts: oldboy

          tasks:

           - name: Installed {{ ansible_distribution }} Httpd Server

          yum: name=httpd state=present

          when: ( ansible_distribution == "CentOS" )

          - name: Installed {{ ansible_distribution }} Httpd2 Server

          yum: name=httpd2 state=present

          when: ( ansible_distribution == "Ubuntu" )

      实践案例二、为所有的web主机名添加nginx仓库,其余的都跳过添加

        [root@m01 project1]# cat tasks_2.yml

          - hosts: all

          tasks:

             - name: Create YUM Repo

                yum_repository:

                   name: ansible_nginx

                   description: ansible_test

                   baseurl: https://mirrors.oldboy.com

                   gpgcheck: no

                   enabled: no

                when: ( ansible_fqdn is match ("web*"))

    (2)循环语句 with_items

      实践案例一、使用循环启动多个服务

        [root@m01 project1]# cat tasks_4.yml

          - hosts: webserver

          tasks:

          - name: Service Nginx Server

          service: name={{ item }} state=restarted

            with_items:

                  - nginx

                  - php-fpm

      实践案例二、使用变量字典循环方式批量创建用户

        [root@m01 project1]# cat tasks_6.yml

          - hosts: webserver

          tasks:

          - name: Create User

          user: name={{ item.name }} groups={{ item.groups }} state=present

           with_items:

                   - { name: 'www', groups: 'bin'}

                   - { name: 'test', groups: 'root'}

    (3) handlers 触发器

      notify监控  --->通知 --->  Handlers触发

      使用template模板,引用上面vars定义的变量至配置文件中

        - name: Configure Httpd Server

        template: src=./httpd.conf dest=/etc/httpd/conf/httpd.conf

        notify:   #调用名称为Restart Httpd Server的handlers(可以写多个)

        - Restart Httpd Server

      如果配置文件发生变化会调用该handlers下面的对应名称的task

         handlers:

            - name: Restart Httpd Server

              service: name=httpd state=restarted

    (4)tags标签

      指定执行某个tags标签

        [root@m01 docs1]# ansible-playbook -i hosts nginx_php.yml -t "test_user"

      忽略执行某个tags标签

        [root@m01 docs1]# ansible-playbook -i hosts nginx_php.yml --skip-tags "test_user"

    (5)include包含

      1)编写restart_httpd.yml文件

        [root@ansible project1]# cat restart_httpd.yml   #注意这是一个tasks所有没有play的任何信息

          - name: Restart Httpd Server

          service: name=httpd state=restarted

      2)A Project的playbook如下

        [root@ansible project1]# cat a_project.yml

          - hosts: webserver

          tasks:

          - name: A Project command

          command: echo "A"

          - name: Restart httpd

          include: restart_httpd.yml

    (6)change_when语句

      案例、使用changed_when检查tasks任务返回的结果

        [root@m01 project1]# cat tasks_12.yml

          - hosts: webserver

          tasks:

          - name: Installed Nginx Server

          yum: name=nginx state=present

          - name: Configure Nginx Server

          copy: src=./nginx.conf.j2 dest=/etc/nginx/nginx.conf

          notify: Restart Nginx Server

          - name: Check Nginx Configure Status

                command: /usr/sbin/nginx -t

                register: check_nginx

                changed_when:

                 - ( check_nginx.stdout.find('successful'))

                 - false

           - name: Service Nginx Server

           service: name=nginx state=started

          handlers:

          - name: Restart Nginx Server

          service: name=nginx state=restarted

ansible笔记第三章(Ansible--tasks任务控制)的更多相关文章

  1. Android群英传笔记——第三章:Android控件架构与自定义控件讲解

    Android群英传笔记--第三章:Android控件架构与自定义控件讲解 真的很久没有更新博客了,三四天了吧,搬家干嘛的,心累,事件又很紧,抽时间把第三章大致的看完了,当然,我还是有一点View的基 ...

  2. 《DOM Scripting》学习笔记-——第三章 DOM

    <Dom Scripting>学习笔记 第三章 DOM 本章内容: 1.节点的概念. 2.四个DOM方法:getElementById, getElementsByTagName, get ...

  3. 《Linux内核设计与分析》第六周读书笔记——第三章

    <Linux内核设计与实现>第六周读书笔记——第三章 20135301张忻估算学习时间:共2.5小时读书:2.0代码:0作业:0博客:0.5实际学习时间:共3.0小时读书:2.0代码:0作 ...

  4. spring boot 笔记--第三章

    spring boot 笔记 第三章,使用Spring boot 构建系统: 强烈建议支持依赖管理的构建系统,Maven或Gradle 依赖管理: Spring Boot的每版本都会提供它支持的依赖列 ...

  5. The Road to learn React书籍学习笔记(第三章)

    The Road to learn React书籍学习笔记(第三章) 代码详情 声明周期方法 通过之前的学习,可以了解到ES6 类组件中的生命周期方法 constructor() 和 render() ...

  6. [HeadFrist-HTMLCSS学习笔记]第三章构建模块:Web页面建设

    [HeadFrist-HTMLCSS学习笔记]第三章构建模块:Web页面建设 敲黑板!! <q>元素添加短引用,<blockquote>添加长引用 在段落里添加引用就使用< ...

  7. JVM学习笔记-第三章-垃圾收集器与内存分配策略

    JVM学习笔记-第三章-垃圾收集器与内存分配策略 tips:对于3.4之前的章节可见博客:https://blog.csdn.net/sanhewuyang/article/details/95380 ...

  8. Spring学习笔记 - 第三章 - AOP与Spring事务

    原文地址:Spring学习笔记 - 第三章 - AOP与Spring事务 Spring 学习笔记全系列传送门: Spring学习笔记 - 第一章 - IoC(控制反转).IoC容器.Bean的实例化与 ...

  9. 《SQL CookBook 》笔记-第三章-多表查询

    目录 3.1 叠加两个行集 3.2 合并相关行 3.3 查找两个表中相同的行 3.4 查找只存在于一个表中的数据 3.5 从一个表检索与另一个表不相关的行 3.6 新增连接查询而不影响其他连接查询 3 ...

  10. JavaScript高级编程学习笔记(第三章之一)

    继续记笔记,JavaScript越来越有意思了. 继续... 第三章:JavaScript基础 ECMAScript语法在很大程度上借鉴了C和其它类似于C的语言,比如Java和Perl. 大小写敏感: ...

随机推荐

  1. JZOJ 3570. 【GDKOI2014】壕壕的寒假作业

    解析 这道题比较水. 求最快什么时候做完作业? 如果要最快完成第i份作业,那么是i的前继那些作业都要完成之后才能够完成i,所以,为了尽快完成i,我们要把i的前继的作业全部先做完. 最慢什么时候做完作业 ...

  2. 在windows环境中如何批量添加IP地址 and 求助 : 在CMD命令行中配置IP地址, 提示 : 未能配置DHCP服务, 接口可能已经断开, 系统找不到指定的文件.

    转载csdn: 在windows环境中如何批量添加IP地址_user_yuewu的博客-CSDN博客_windows批量添加ip 求助 : 在CMD命令行中配置IP地址, 提示 : 未能配置DHCP服 ...

  3. php使用PDO获取结果集的方法

    php使用PDO获取结果集的方法  转载:https://www.jb51.net/article/105797.htm 更新时间:2017年02月16日 11:11:42   作者:水晶依恋     ...

  4. API 小白入门教程

    正如汽车行业必须达到一定的规模,才能让企业只生产一个部件.软件产业现在已经足够大了,尤其当你接受所谓的"软件吞噬世界"此类的说法时更是如此.因此,和汽车工业不再生产自己的钢铁一样, ...

  5. Mysql数据库基础第六章:变量、存储过程与函数

    Mysql数据库基础系列 软件下载地址 提取码:7v7u 数据下载地址 提取码:e6p9 mysql数据库基础第一章:(一)数据库基本概念 mysql数据库基础第一章:(二)mysql环境搭建 mys ...

  6. vue-element-admin框架连接yapi配置vue.config.js

    devServer: { host:'localhost', port:port, proxy:{ [process.env.VUE_APP_BASE_API + '/admin']: { //配置p ...

  7. git提交到代码到远程仓库,合并分支提示entirely different commit histories(备忘)

    最近提交代码到github,合并分支的时候提示"master and main are entirely different commit histories" master为本地 ...

  8. react修改打包后css,js,src引入的静态地址路径修改

    在package.json 里边增加该配置 (当然,配置的地址可以由部署环境决定,可以是 './' , 也可以是 '../',根据需要配置即可) 查找到到"private": tr ...

  9. QtQuick与Qml介绍

    文章纲要: 1.QtQuick是什么 2.qml与QtQuick关系 一.QtQuick是什么 "quick--快速创建应用程序" "quick--Qt User Int ...

  10. 7.Object

    Object类 超类.基类,所以类的直接或间接父类,位于继承树的最顶层 任何类,如没有书写extends显示继承某个类,都默认直接继承Object类,否则为间接继承 Object类中所定义的方法,是所 ...