当前位置: 首页 > news >正文

总结Anisble中的任务执行控制并练习

文章目录

  • 一、循环
    • 1.简单循环
    • 2.循环散列或字典列表
  • 二、条件
  • 三、触发器
  • 四、处理失败任务
    • 1.ignore_errors
    • 2.force_handlers
    • 3.changed_when
    • 4.failed_when
    • 5.block
  • 五、 练习
    • 建立大小为1500M名为/dev/sdb1的设备
    • 利用ansible循环安装且开启vsftpd,apache,dns,并在火墙中设定
    • 建立用户
    • 挂载,检测是否存在
  • 六、重要:ansible-doc用法


一、循环

循环迭代任务

1.简单循环

loop:         ##赋值列表- value1- value2- ...
{{item}}     ##迭代变量名称#实例#
---
- name: create filehosts: 172.25.0.254tasks:- name: file modulefile:name: /mnt/{{item}}state: presentloop:- westos_file1- westos_file2

在这里插入图片描述

在这里插入图片描述

2.循环散列或字典列表

---
- name: create filehosts: 172.25.0.254tasks:- name: file moduleservice:name: "{{ item.name}}"state: "{{ item.state }}"loop:- name: httpdstate: started- name: vsftpdstate: stopped

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

二、条件

when:- 条件1- 条件2
#条件判断#
=                     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列表中
#多条条件组合#
when:条件1 and 条件2- 条件1- 条件2
when:条件1 or 条件2
when: >条件1or条件2

在这里插入图片描述
在这里插入图片描述
2.
在这里插入图片描述
在这里插入图片描述
3.多个条件
在这里插入图片描述
在这里插入图片描述
4.true和false
在这里插入图片描述

在这里插入图片描述

三、触发器

notify:      触发器当遇到更改是触发handlers
handlers:   触发器触发后执行的动作
#实例#
---
- name: create virtualhost for web serverhosts: 172.25.0.254vars_files:./vhost_list.ymltasks:- name: create documentfile:path: "{{web2.document}}"state: directory- name: create vhost.confcopy:dest: /etc/httpd/conf.d/vhost.confcontent:"<VirtualHost *:{{web1.port}}>\n\tServerName {{web1.name}}\n\tDocumentRoot 
{{web1.document}}\n\tCustomLog logs/{{web1.name}}.log combined\n</VirtualHost>\n\n<VirtualHost *:
{{web2.port}}>\n\tServerName {{web2.name}}\n\tDocumentRoot {{web2.document}}\n\tCustomLog logs/
{{web2.name}}.log combined\n</VirtualHost>"notify:restart apachehandlers:- name: restart apacheservice:name: httpdstate: restarted

在这里插入图片描述

四、处理失败任务

1.ignore_errors

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

#实例#
- name: testdnf:name: westosstate: latestignore_errors: yes- name: create filefile:path: /mnt/westosstate: touch

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

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

更改24、25主机的ftp匿名用户访问
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.changed_when

#作用:
#控制任务在何时报告它已进行更改;强制更改:true,强制不更改:false

---
- name: apache change porthosts: 172.25.0.254force_handlers: yesvars:http_port: 8080tasks:- name: configure apache conf filelineinfile:path: /etc/httpd/conf/httpd.confregexp: "^Listen"line: "Listen {{ http_port }}"changed_when: truenotify: restart apachehandlers:- name: restart apacheservice:name: httpdstate: restartedenabled: yes

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

4.failed_when

#当符合条件时强制任务失败
#强制某个play为失败状态

---
- name: testhosts: 172.25.0.254tasks:- name: shellshell: echo helloregister: westosfailed_when: "'hello' in westos.stdout"

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

5.block

block:       ##定义要运行的任务
rescue:      ##定义当block句子中出现失败任务后运行的任务##block运行成功,则rescue不运行
always:     ##定义最终独立运行的任务

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

五、 练习

测试题:
建立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

建立大小为1500M名为/dev/sdb1的设备

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

实验前提:在24主机建立1G硬盘,25主机无硬盘
在这里插入图片描述
在这里插入图片描述

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

利用ansible循环安装且开启vsftpd,apache,dns,并在火墙中设定

在这里插入图片描述
在这里插入图片描述
实验中遇到的问题:主机网络仓库未镜像!!!
在这里插入图片描述

建立用户

建立用户user1、user2;密码均为:westos
在建立用户时需要检测用户是否存在,如果用户存在保持原密码不变!!
在这里插入图片描述

在这里插入图片描述

挂载,检测是否存在

挂载/dev/cdrom 至/mnt/isodir
检测/mnt/isodir是否存在
不存在:输出:/mnt/isodir is not exist ,并且建立:/mnt/isodir
存在:直接挂载
在这里插入图片描述

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

六、重要:ansible-doc用法

在这里插入图片描述

相关文章:

总结Anisble中的任务执行控制并练习

文章目录一、循环1.简单循环2.循环散列或字典列表二、条件三、触发器四、处理失败任务1.ignore_errors2.force_handlers3.changed_when4.failed_when5.block五、 练习建立大小为1500M名为/dev/sdb1的设备利用ansible循环安装且开启vsftpd&#xff0c;apache&#xff0c;dns&…...

PMP好考吗,有多大的价值?

关于PMP考试题型及考试内容&#xff0c;PMP考试共200道单选题&#xff0c;其中25道题不计分&#xff0c;会被随机抽查&#xff0c;答对106道题以上通过考试&#xff0c;参考比例106/175&#xff0c;60.57%估计答对&#xff08;10625&#xff09;道题及上即可通过&#xff0c;参…...

http常用状态码(204,304, 404, 504,502)含义

网络状态码含义&#xff0c;常用&#xff08;204&#xff0c;304, 404, 504&#xff0c;502&#xff09; 200 – 服务器成功返回网页 404 – 请求的网页不存在 503 – 服务不可用 常见HTTP状态码大全 1xx&#xff08;临时响应&#xff09; 表示临时响应并需要请求者继…...

记录锁,间隙锁,插入意向锁,临键锁兼容关系

插入意向锁是什么&#xff1f; 注意&#xff01;插入意向锁名字里虽然有意向锁这三个字&#xff0c;但是它并不是意向锁&#xff0c;它属于行级锁&#xff0c;是一种特殊的间隙锁。 在MySQL的官方文档中有以下重要描述&#xff1a; An Insert intention lock is a type of gap…...

map相关接口(map接口、HashMap、LinkedHashMap、TreeMap)

Java知识点总结&#xff1a;想看的可以从这里进入 目录8.3、map结构8.3.1、 map接口8.3.2、HashMap8.3.3、LinkedHashMap8.3.4、TreeMap8.3、map结构 8.3.1、 map接口 map的集合是以键值对的形式存在的 (key-value)&#xff0c;每个键只能对应一个值&#xff0c;通常通过键去…...

抽象工厂模式(Abstract Factory Pattern)

1.抽象工厂模式定义: 抽象工厂模式提供了一个创建一系列相关或者相互依赖对象的接口&#xff0c;无需指定它们具体的类 2.抽象工厂模式适用场景: 客户端(应用层)不依赖于产品类实例如何被创建、实现等细节强调一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量…...

Linux驱动学习笔记

驱动学习笔记 1、字符设备驱动 Linux 驱动有两种运行方式 第一种就是将驱动编译进 Linux 内核中&#xff0c;这样当 Linux 内核启 动的时候就会自动运行驱动程序。 第二种就是将驱动编译成模块(Linux 下模块扩展名为.ko)&#xff0c;在 Linux 内核启动以后使用“insmod”命…...

tarfile — 访问 Tar 压缩文件

tarfile — 访问 Tar 压缩文件 1.概述 tarfile 模块提供对 Unix tar 存档的读写访问&#xff0c;包括压缩文件。除了 POSIX 标准之外&#xff0c;还支持几种 GNU tar 扩展。还提供处理 Unix 特殊文件类型&#xff0c;如硬链接和软链接&#xff0c;以及设备节点. 虽然 tarfile…...

C++14深度探索之C++基础-共享指针与弱指针使用

shared_ptr : 共享指针 管理多个客户使用的内存,多客户都拥有该内存块, 当共享指针不再拥有该内存时,内存会自动释放, 多用于并发领域,当所有访问该内存的线程都退出时,释放该内存 共享指针可被随意复制,与独占指针相反,独占指针不能被复制 在内存与时间上有一定的开销…...

【React全家桶】reac组件通信

&#x1f39e;️&#x1f39e;️&#x1f39e;️ 博主主页&#xff1a; 糖 &#xff0d;O&#xff0d; &#x1f449;&#x1f449;&#x1f449; react专栏&#xff1a;react全家桶 &#x1f339;&#x1f339;&#x1f339;希望各位博主多多支持&#xff01;&#xff01;&a…...

2023,再转行去做软件测试还有前途吗?

近年来&#xff0c;以云计算、移动互联网、物联网、工业互联网、人工智能、大数据及区块链等新一代信息技术构建的智能化应用和产品出现爆发式增长&#xff0c;突破了传统对于软件形态的认知&#xff0c;软件形态正以各种展现方式诠释着对新型智能软件的定义。这也使得软件的质…...

Java程序API数据接口

API&#xff1a;应用程序接口&#xff08;API&#xff1a;Application Program Interface&#xff09; 一、使用数据接口的作用 1、封装逻辑 数据接口从数据库查询出数据&#xff0c;并组织成json格式&#xff0c;这个逻辑如果在每个终端都写一遍&#xff0c;那样将编写大量…...

剑指offer 7 数组中和为0的三个数

此问题属于nsum问题&#xff0c;题目链接&#xff1a;力扣 要求在数组中找到不重复的三元组&#xff0c;三个数加起来为0&#xff0c;且每个下标只能用一次。而且需要返回所有这样的不重复数组。 1. 排序 双指针 1. 「不重复」的本质是什么&#xff1f;我们保持三重循环的大…...

DockerFile

大家想想&#xff0c;Nginx&#xff0c;tomcat&#xff0c;mysql 这些镜像都是哪里来的&#xff1f;官方能写&#xff0c;我们不能写吗&#xff1f; 我们要研究自己如何做一个镜像&#xff0c;而且我们写的微服务项目以及springboot打包上云部署&#xff0c;Docker就是最方便的…...

Vue-Router 介绍及路由原理分析

文章目录Vue-Router 路由模式单页面与传统页面跳转的区别Hash 模式History 模式abstract 模式原理解析Hash 模式原理History 模式原理路由使用引入 Vue-Router获取全局路由跳转参数的变化获取路由中带的参数重定向页面Vue-Router 路由模式 单页面与传统页面跳转的区别 单页面…...

git代码提交后jenkins构建和自动部署

利用jenkins和gitlab的webhook结合&#xff0c;实现提交代码之后&#xff0c;自动触发jenkins的构建。顺带介绍一下通过触发器构建&#xff0c;比如直接通过url去触发的方式。 一、jenkins结合webhook 1、jenkins配置 a、首先jenkins得需要安装两个gitlab的插件&#xff1a;(…...

2023面试题目总结

项目遇到的问题难点&#xff1f; 老项目版本过低(angular4),相关框架太少&#xff0c;需要升级成新框架。 1.single-spa 2.qiankun 3.iframe 样式环境隔离/js隔离/公共依赖的加载 JS 原型&#xff0c;原型链&#xff0c;new 原型是存放公共属性地方&#xff0c;所有实例都…...

Vue常用指令及声明周期

文章目录知识点前端开发环境配置v-text && v-htmlv-if、v-else && v-showv-forv-onv-modelv-bind、v-cloak、v-pre&&v-once全局 API 是什么Vue.directive 自定义组件Vue.directive 是什么自定义组件回调函数参数自定义组件的生命周期Vue.set 全局操作为…...

MariaDB 成功敲钟上市 | 它与 Navciat 缘起 10 年前

MariaDB 敲钟上市2022 年底&#xff0c;云数据库公司 MariaDB 与 Angel Pond Holdings 公司完成合并&#xff0c;并在纽交所上市。新公司更名为 MariaDB&#xff0c;MySQL 之父奋斗了13年终敲钟。这标志着 MariaDB 开启新篇章。无论从开源还是商业之路&#xff0c;都将成为业内…...

LESS模型与随机森林

模型学习 1 随机森林 https://blog.csdn.net/weixin_35770067/article/details/107346591? 森林就是建立了很多决策树&#xff0c;把很多决策树组合到一起就是森林。 这些决策树都是为了解决同一任务建立的&#xff0c;最终的目标也都是一致的&#xff0c;最后将其结果来平均…...

双模型对比:OpenClaw同时接入nanobot与云端API的性能测试

双模型对比&#xff1a;OpenClaw同时接入nanobot与云端API的性能测试 1. 测试背景与目标 最近在尝试用OpenClaw搭建一个能同时处理本地轻量任务和复杂云端任务的智能助手系统。核心需求是&#xff1a;日常简单查询走本地部署的轻量模型&#xff08;nanobot&#xff09;&#…...

Unsloth Docker部署详解:从零开始搭建训练环境

Unsloth Docker部署详解&#xff1a;从零开始搭建训练环境 1. 环境准备与Docker安装 1.1 系统要求检查 在开始之前&#xff0c;请确保你的系统满足以下基本要求&#xff1a; 64位Linux系统&#xff08;推荐Ubuntu 22.04&#xff09;NVIDIA显卡驱动已安装&#xff08;建议版…...

探索AI原生应用领域向量数据库的无限潜力

探索AI原生应用领域向量数据库的无限潜力关键词&#xff1a;向量数据库、AI原生应用、Embedding、向量相似度、多模态检索、大模型协同、语义理解摘要&#xff1a;当AI从“辅助工具”进化为“原生生产力”&#xff0c;一种专为AI设计的数据库——向量数据库&#xff0c;正在重塑…...

橄榄菜芝士焗三文鱼配脆米饼:潮汕咸香与海洋鲜美的跨界狂想

潮汕人家的厨房里&#xff0c;总有一罐橄榄菜。乌黑油亮&#xff0c;咸香醇厚&#xff0c;是白粥的最佳伴侣&#xff0c;也是蒸鱼炒菜的秘武器。而深海里的三文鱼&#xff0c;肥美丰腴&#xff0c;油脂均匀&#xff0c;是西餐的宠儿。当潮汕的咸香遇见西式的丰腴&#xff0c;再…...

黑丝空姐-造相Z-Turbo实战项目:数据库课程设计之AI图库管理系统

黑丝空姐-造相Z-Turbo实战项目&#xff1a;数据库课程设计之AI图库管理系统 最近在带学生做数据库课程设计&#xff0c;发现一个挺有意思的现象&#xff1a;很多同学觉得数据库设计就是建几张表&#xff0c;写几个查询&#xff0c;做完就完了&#xff0c;跟实际应用脱节挺大的…...

all-MiniLM-L6-v2保姆级教程:Ollama模型卸载、版本回滚与缓存清理指南

all-MiniLM-L6-v2保姆级教程&#xff1a;Ollama模型卸载、版本回滚与缓存清理指南 1. 为什么需要管理你的Ollama模型&#xff1f; 你可能已经用Ollama成功部署了all-MiniLM-L6-v2&#xff0c;体验了它轻量高效的句子嵌入能力。但用久了你会发现&#xff0c;硬盘空间在悄悄减少&…...

做客户管理之前,先看看这 6 个教训

方案 A&#xff1a;传统开发方式分析 传统开发需要组建专业团队&#xff0c;包括产品经理、UI 设计师、前后端开发、测试工程师等。中等规模项目团队 5-8 人&#xff0c;开发周期 3-6 个月&#xff0c;人力成本 30-100 万。开发过程中需求沟通成本高&#xff0c;业务人员用自然…...

英雄联盟智能工具League Akari:提升游戏体验的终极指南

英雄联盟智能工具League Akari&#xff1a;提升游戏体验的终极指南 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari是…...

百川2-13B-4bits量化版对比测试:OpenClaw日常任务执行效率报告

百川2-13B-4bits量化版对比测试&#xff1a;OpenClaw日常任务执行效率报告 1. 测试背景与动机 最近在折腾OpenClaw自动化工作流时&#xff0c;发现一个棘手问题&#xff1a;当任务链条较长时&#xff0c;本地部署的大模型显存占用会飙升到16GB以上&#xff0c;导致我的RTX 30…...

机器视觉C# 调用相机:从 USB 摄像头到海康工业相机(WinForms WPF)

&#x1f3a5; 机器视觉C# 调用相机&#xff1a;从 USB 摄像头到海康工业相机&#xff08;WinForms & WPF&#xff09; &#x1f4dd; 前言 在工业自动化、医疗影像或简单软件开发中&#xff0c;调用摄像头是一个绕不开的话题。在项目中同时遇到了两种需求&#xff1a; …...