5.5#Anisble中的任务执行控制

2023-10-23 16:49
文章标签 控制 执行 任务 5.5 anisble

本文主要是介绍5.5#Anisble中的任务执行控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实验环境:

在这里插入图片描述在这里插入图片描述

1.循环

循环迭代任务

1.1 简单循环
loop:		##赋值列表- value1- value2- ...{{item}}	##迭代变量名称

在这里插入图片描述

实例

运行useradd.yml,依次建立三个用户westos1、westos2、westos3,密码分别为123、456、789

1.2 循环散列或字典列表
---
- name: create filehosts: 172.25.0.254tasks:- name: file moduleservice:name: "{{ item.name}}"state: "{{ item.state }}"loop:- name: httpdstate: started- name: vsftpdstate: stopped
实验:

运行useradd.yml,依次建立三个用户westos1、westos2、westos3,密码分别为123、456、789

在这里插入图片描述

2.条件
when:- 条件1- 条件2
2.1 条件判断
==			value == "字符串",value == 数字
<			value <  数字
>			value >  数字
<=			value <= 数字
>=			value >= 数字 
!=			value != 数字
is defined value	value is defined		变量存在
is not defined		value is not defined	变量不存在
in                  value is in value       变量为    
not in              value is not in value   变量不为
bool变量 为true		value	  value的值为true
bool变量 false		not value value的值为falsevalue in value2	    value的值在value2列表中
实验1:

判断文件是否存在

在这里插入图片描述
在这里插入图片描述

实验2:

检测硬盘是否存在

准备工作:
在这里插入图片描述脚本:
在这里插入图片描述
过程:
在这里插入图片描述
检测:
在这里插入图片描述

实验3:

in

在这里插入图片描述

2.2 多条条件组合

条件1 and 条件2

when:- 条件1- 条件2

条件1 or 条件2

when: >条件1or条件2

实验3:

建立playbook ~/ansibles/lvm.yml要求如下:
*建立大小为1500M名为exam_lvm的lvm 在westos组中
*如果westos不存在请输出:
vg westos is not exist
*如果westos大小不足1500M请输出:
vg westos is less then 1500M
并建立800M大小的lvm

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

3.触发器

notify:触发器当遇到更改时触发handlers

handlers: 触发器触发后执行的动作

实验:
下载软件httpd,然后启动服务,火墙添加服务,如果软件已经下载,不执行启动服务和火墙
在这里插入图片描述
服务第一次安装:
在这里插入图片描述服务已经安装之后:不启动
在这里插入图片描述

4.处理失败任务
4.1 ignore_errors

作用:
当play遇到任务失败是会终止
ignore_errors: yes 将会忽略任务失败使下面的任务继续运行

实例
- name: testdnf:name: westosstate: latestignore_errors: yes- name: create filefile:path: /mnt/westosstate: touch
4.2.force_handlers

作用:
#当任务失败后play被终止也会调用触发器进程
#example

---
- name: apache change porthosts: 172.25.0.254force_handlers: yesvars:http_port: 80tasks:- name: configure apache conf filelineinfile:path: /etc/httpd/conf/httpd.confregexp: "^Listen"line: "Listen {{ http_port }}"notify: restart apache- name: install errordnf:name: westosstate: latesthandlers:- name: restart apacheservice:name: httpdstate: restartedenabled: yes
4.3.changed_when

作用:
控制任务在任何时候都更改changed (true/false)


  • name: apache change port
    hosts: 172.25.0.254
    force_handlers: yes
    vars:
    http_port: 8080
    tasks:

    • name: configure apache conf file
      lineinfile:
      path: /etc/httpd/conf/httpd.conf
      regexp: “^Listen”
      line: “Listen {{ http_port }}”
      changed_when: true
      notify: restart apache

    handlers:

    • name: restart apache
      service:
      name: httpd
      state: restarted
      enabled: yes
4.4.failed_when

不管命令执行成功失败,都指定输出信息(true/false)

---
- name: testhosts: 172.25.0.254tasks:- name: shellshell: echo helloregister: westosfailed_when: "'hello' in westos.stdout"
4.5.block/rescue/always
block: 		##定义要运行的任务
rescue:		##定义当block句子中出现失败任务后运行的任务
always:	##定义最终独立运行的任务

在这里插入图片描述

#测试练习#
建立playbook ~/westos.yml要求如下:
建立大小为1500M名为/dev/vdb1的设备
如果/dev/vdb不存在请输入:
/dev/vdb is not exist
如果/dev/vdb大小不足2G请输出:
/dev/vdb is less then 2G
并建立800M大小的/dev/vdb1
此设备挂载到/westos上
在这里插入图片描述在这里插入图片描述

这篇关于5.5#Anisble中的任务执行控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/269140

相关文章

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结

《SpringBoot整合ShedLock处理定时任务重复执行的问题小结》ShedLock是解决分布式系统中定时任务重复执行问题的Java库,通过在数据库中加锁,确保只有一个节点在指定时间执行... 目录前言什么是 ShedLock?ShedLock 的工作原理:定时任务重复执行China编程的问题使用 Shed

Spring IOC控制反转的实现解析

《SpringIOC控制反转的实现解析》:本文主要介绍SpringIOC控制反转的实现,IOC是Spring的核心思想之一,它通过将对象的创建、依赖注入和生命周期管理交给容器来实现解耦,使开发者... 目录1. IOC的基本概念1.1 什么是IOC1.2 IOC与DI的关系2. IOC的设计目标3. IOC

详解如何在React中执行条件渲染

《详解如何在React中执行条件渲染》在现代Web开发中,React作为一种流行的JavaScript库,为开发者提供了一种高效构建用户界面的方式,条件渲染是React中的一个关键概念,本文将深入探讨... 目录引言什么是条件渲染?基础示例使用逻辑与运算符(&&)使用条件语句列表中的条件渲染总结引言在现代

Python Invoke自动化任务库的使用

《PythonInvoke自动化任务库的使用》Invoke是一个强大的Python库,用于编写自动化脚本,本文就来介绍一下PythonInvoke自动化任务库的使用,具有一定的参考价值,感兴趣的可以... 目录什么是 Invoke?如何安装 Invoke?Invoke 基础1. 运行测试2. 构建文档3.

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资