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

ansible学习笔记之02command模块与shell模块

目录

1、概述

2、模块介绍

2.1 command模块

2.2 shell模块      

2.3 小结

3、实验

3.1 测试ls命令

3.2 测试环境变量

3.3 测试操作符">"


1、概述

        本文介绍ansible的command模块与shell模块,并通过实验比对两个模块的异同。

2、模块介绍

2.1 command模块

        command模块不是调用的shell的指令,不支持操作符(例如 '|', '<', '>', '&')。其他和shell没有区别。执行 ansible 时,不加 -m 默认使用 command ,可以在 /etc/ansible/ansible.cfg 中修改。
        command模块常用参数: 
        free_form参数 :必须参数,指定需要远程执行的命令。需要说明一点,free_form 参数与其他参数(如果想要使用一个参数,那么则需要为这个参数赋值,也就是name=value模式)并不相同。比如,当我们想要在远程主机上执行 ls 命令时,我们并不需要写成”free_form=ls” ,这样写反而是错误的,因为并没有任何参数的名字是 free_form,当我们想要在远程主机中执行 ls 命令时,直接写成 ls 即可。因为 command 模块的作用是执行命令,所以,任何一个可以在远程主机上执行的命令都可以被称为 free_form。
        chdir参数 : 此参数的作用就是指定一个目录,在执行对应的命令之前,会先进入到 chdir 参数指定的目录中。
        creates参数 :看到 creates,你可能会从字面上理解这个参数,但是使用这个参数并不会帮助我们创建文件,它的作用是当指定的文件存在时,就不执行对应命令,比如,如果 /tmp2/a.txt文件存在,就不执行我们指定的命令。
        removes参数 :与 creates 参数的作用正好相反,它的作用是当指定的文件不存在时,就不执行对应命令,比如,如果 /tmp2/a.txt 文件不存在,就不执行我们指定的命令,此参数并不会帮助我们删除文件。

2.2 shell模块      

      shell 模块可以帮助我们在远程主机上执行命令。与 command 模块不同的是,shell 模块在远程主机中执行命令时,会经过远程主机上的 /bin/sh 程序处理。
        shell模块常用参数: 
        free_form参数 :必须参数,指定需要远程执行的命令,但是并没有具体的一个参数名叫free_form,具体解释参考 command 模块。
        chdir参数 : 此参数的作用就是指定一个目录,在执行对应的命令之前,会先进入到 chdir 参数指定的目录中。
        creates参数 :使用此参数指定一个文件,当指定的文件存在时,就不执行对应命令,可参考command 模块中的解释。
        removes参数 :使用此参数指定一个文件,当指定的文件不存在时,就不执行对应命令,可参考 command 模块中的解释。
        executable参数:默认情况下,shell 模块会调用远程主机中的 /bin/sh 去执行对应的命令,通常情况下,远程主机中的默认 shell 都是 bash。如果你想要使用其他类型的 shell 执行命令,则可以使用此参数指定某种类型的 shell 去执行对应的命令。指定 shell 文件时,需要使用绝对路径。

2.3 小结

        在ansible中,两个模块都要避免使用, 应该优先考虑更具体的 ansible 模块。比如用 command 或者 shell 执行 yum 命令前, 应该先了解到直接的 yum 模块。使用具体模块比执行命令要优雅很多, 因为这些模块设计都是具有幂等性的, 并满足其他标准, 如异常处理等.
 

3、实验

3.1 测试ls命令

测试command模块

ansible dm_agent -m command -a "chdir=/tmp2 ls"

测试shell模块

ansible dm_agent -m shell -a "chdir=/tmp2 ls"

执行结果一致

3.2 测试环境变量

执行命令echo $PATH,测试这两个模块的环境变量是否一致

测试command模块

ansible dm_agent -m command -a "echo $PATH"

测试shell模块

ansible dm_agent -m shell -a "echo $PATH"

执行结果一致

3.3 测试操作符">"

测试command模块,在command模块中"> d.txt"被视为字符串的一部分,下面的命令等同于echo "dddddd > d.txt",如下图

ansible dm_agent -m command -a "chdir=/tmp2 echo dddddd > d.txt"

测试shell模块,命令正确执行,生成文件e.txt,如下图

ansible dm_agent -m shell -a "chdir=/tmp2 echo eeeeee > e.txt"

本文结束!
20241207
参考文档:
https://blog.csdn.net/dylloveyou/article/details/80412513
 

相关文章:

ansible学习笔记之02command模块与shell模块

目录 1、概述 2、模块介绍 2.1 command模块 2.2 shell模块 2.3 小结 3、实验 3.1 测试ls命令 3.2 测试环境变量 3.3 测试操作符">" 1、概述 本文介绍ansible的command模块与shell模块&#xff0c;并通过实验比对两个模块的异同。 2、模块介绍 2.1…...

在Docker中部署禅道,亲测可用

1、确保centos中已安装docker docker -v 2、启动docker systemctl start docker 3、可设置docker开机启动 systemctl enable docker.service 4、获取最新版禅道开源版镜像 docker pull idoop/zentao 5、运行镜像生成禅道容器【创建 /data/www /data/data 目录】 doc…...

C++(十二)

前言&#xff1a; 本文将进一步讲解C中&#xff0c;条件判断语句以及它是如何运行的以及内部逻辑。 一&#xff0c;if-else,if-else语句。 在if语句中&#xff0c;只能判断两个条件的变量&#xff0c;若想实现判断两个以上条件的变体&#xff0c;就需要使用if-else,if-else语…...

【数学建模】线性规划问题及Matlab求解

问题一 题目&#xff1a; 求解下列线性规划问题 解答&#xff1a; 先将题目中求最大值转化为求最小值&#xff0c;则有 我们就可以得到系数列向量: 我们对问题中所给出的不等式约束进行标准化则得到了 就有不等式约束条件下的变系数矩阵和常系数矩阵分别为&#xff1a; 等式…...

【JavaWeb后端学习笔记】Spring全局异常处理器

在程序运行时&#xff0c;不可避免的会出现异常。在三层开发架构中&#xff0c;当Mapper层出现异常、如果不进行处理会抛给Service层&#xff0c;如果Service层也不处理则会抛给Controller层&#xff0c;通常Controller层有许多接口&#xff0c;如果对每个接口单独处理异常&…...

PT8M2102 触控型 8Bit MCU

1 产品概述 ● PT8M2102 是一款基于 RISC 内核的8位 MTP 单片机&#xff0c;内部集成了电容式触摸感应模块、TIMER&#xff0c;PWM、LVR、LVD、WDT等外设&#xff0c;其主要用作触摸按键开关&#xff0c;广泛适用于触控调光、电子玩具、消费电子、家用电器等领域&#xff0c;具…...

4. React 性能优化技巧:如何让你的应用更快

在构建大型应用时&#xff0c;性能优化是一个非常重要的话题。React 提供了许多优化工具&#xff0c;帮助我们提高应用的渲染速度和响应能力。本文将分享一些常见的 React 性能优化技巧。 4.1. 使用 React.memo 缓存组件 当组件的 props 没有变化时&#xff0c;React 默认不会…...

pytest中使用conftest做测试前置和参数化

pytest中比较高阶的应用是&#xff0c;使用conftest去做测试前置工作、测试收尾工作和参数化。conftest是pytest的一个组件&#xff0c;用于配置测试环境和参数。通过conftest, 可以创建一个可复用的测试配置文件&#xff0c;以便在多个测试模块之间共享配置信息。即&#xff0…...

Spring Boot 中使用 @Transactional 注解配置事务管理

事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编程式和声明式的两种方式。编程式事务指的是通过编码方式实现事务&#xff1b;声明式事务基于 AOP,将具体业务逻辑与事务处理解耦。声明式事务管理使业务代码逻辑不受污…...

MATLAB 建筑顶面面积计算(95)

MATLAB 建筑顶面面积计算(95) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 根据给出的建筑顶面点云,计算建筑面积,具体的方法实现和结果如下: 二、算法实现 1.代码 代码如下(示例): % 从 PLY 文件读取点云数据 filename = D:\shuju\屋顶2.ply; % 替换为你的…...

Linux网络编程之---组播和广播

一.组播 1.概述 单播地址标识单个IP 接口&#xff0c;广播地址标识某个子网的所有IP 接口&#xff0c; 多播地址标识一组IP 接口。单播和广播是寻址方案的两个极端(要么单个要么全部)&#xff0c; 多播则意在两者之间提供一种折中方案。多播数据报只应该由对它感兴趣的接口接收…...

Apache Dolphinscheduler可视化 DAG 工作流任务调度系统

Apache Dolphinscheduler 关于 一个分布式易扩展的可视化 DAG 工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系&#xff0c;使调度系统在数据处理流程中开箱即用。 DolphinScheduler 的主要特性如下&#xff1a; 易于部署&#xff0c;提供四种部署方式&am…...

docker 部署共享文档ZFile

1、拉取ZFile镜像 docker pull crpi-k5k93ldwfc7o75ip.cn-hangzhou.personal.cr.aliyuncs.com/tirling-pdf/zfile:latest 2、创建文件夹和进入文件夹 mkdir zfile && cd zfile 3、创建docker-compose.yml配置文件。 vim docker-compose.yml version: 3.3 service…...

面试题之JVM

一、Java虚拟机基本概念 题目1&#xff1a;Java虚拟机&#xff08;JVM&#xff09;是什么&#xff1f; 选项&#xff1a; A. 一种编程语言 B. 一个可以执行Java字节码的虚拟机进程 C. 一个操作系统 D. 一个数据库 参考答案&#xff1a;B 解析&#xff1a;Java虚拟机是一个可…...

二叉树的深搜(不定期更新。。。。。)

二叉树的深搜 验证二叉搜索树 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左 子树 只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉…...

WebLLM Chat:无服务器、私密的AI聊天体验

简介 什么是 Web-LLM ? Web-LLM 是一个高性能的浏览器内语言模型推理引擎&#xff0c;允许用户在没有服务器支持的情况下直接在网页浏览器中进行语言模型推理。它利用 WebGPU 进行硬件加速&#xff0c;从而实现强大的 LLM 操作。Web-LLM 完全兼容 OpenAI API&#xff0c;支持…...

C#中的模拟服务器与客户端建立连接

创建一个控制台项目&#xff0c;命名为Server&#xff0c;模拟服务器端。在同一个解决方案下&#xff0c;添加新项目&#xff0c;命名为Client&#xff0c;模拟客户端。在服务器端与客户端之间建立TCP连接&#xff0c;并在客户端发送消息&#xff0c;在服务器端输出。 Server项…...

【深度学习】利用Java DL4J 构建和训练医疗影像分析模型

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s…...

application.yml 和 bootstrap.yml

在 Spring Boot 中&#xff0c;application.yml 和 bootstrap.yml 都是用来配置应用程序的属性文件&#xff0c;通常用于环境配置、服务配置等。但是&#xff0c;它们有一些不同的用途和加载顺序。以下是它们之间的主要区别&#xff1a; 1. application.yml&#xff1a; 主要…...

使用uniapp开发小程序场景:在百度地图上调用接口返回的设备相关信息并展示

首先在百度地图开发者平台注册微信小程序开发密钥下载百度地图SDK-bmap-wx.min.js,下载地址在项目入口index.html页面进行引入页面中进行调用&#xff0c;代码示例如下<map id"map" longitude"108.95" latitude"34.34" scale"3" :m…...

高性能缓冲管理中的数组翻译技术解析

1. 高性能缓冲管理中的数组翻译技术解析在现代数据库系统中&#xff0c;缓冲管理器是连接内存与持久化存储的关键组件&#xff0c;其核心任务是将逻辑页ID映射到物理内存帧。传统方案如哈希表或指针交换存在三个根本性缺陷&#xff1a;内存开销随数据集线性增长、并行访问时的锁…...

Docker Compose实战:一键部署OpenClaw项目与环境管理

1. 项目概述&#xff1a;一个为OpenClaw项目量身定制的Docker助手 如果你正在折腾一个名为OpenClaw的开源项目&#xff0c;并且被它复杂的依赖环境、繁琐的配置步骤搞得焦头烂额&#xff0c;那么你很可能需要“vivganes/openclaw-docker-helper”这个工具。简单来说&#xff0…...

Arduino开源贡献全流程:从Fork到Pull Request的工程实践

1. 项目概述与核心价值 如果你在玩Arduino&#xff0c;发现某个常用库有个小bug&#xff0c;或者想给它加个新功能&#xff0c;你会怎么做&#xff1f;是去论坛发个帖子&#xff0c;还是自己改完代码藏起来用&#xff1f;对于很多刚接触开源的朋友来说&#xff0c;虽然有心贡献…...

CircuitPython内存优化:冻结模块原理与嵌入式开发实践

1. 项目概述&#xff1a;当微控制器项目撞上内存墙在嵌入式开发的世界里&#xff0c;尤其是玩转像Adafruit Circuit Playground Express这类资源受限的微控制器时&#xff0c;我们常常会与一个无形的“天花板”迎头相撞——内存限制。你可能正兴致勃勃地为你的智能徽章或互动艺…...

COMSOL声学建模实战:从无源特征频率到有源辐射边界

1. COMSOL声学建模基础&#xff1a;从理论到实践 声学建模在工程领域应用广泛&#xff0c;无论是建筑声学设计、噪声控制还是音频设备开发&#xff0c;都需要对声波传播特性有深入理解。COMSOL Multiphysics作为一款强大的多物理场仿真软件&#xff0c;提供了完整的声学建模解决…...

普通人 0 基础能转网安吗?转行路径全面拆解,告诉你到底值不值得

前言 最近在后台有看到很多朋友问我关于网络安全转行的问题&#xff0c;今天做了一些总结&#xff0c;其中最多的是&#xff0c;觉得目前的工作活多钱少、不稳定、一眼望到头&#xff0c;还有一些就是目前工作稳定但是缺乏上升空间的。总的来说&#xff0c;大家主要的问题是&a…...

使用Python快速接入Taotoken并切换不同模型进行对话测试

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用Python快速接入Taotoken并切换不同模型进行对话测试 本文面向希望快速上手Taotoken平台的Python开发者。我们将通过一份最小化…...

WechatSogou:基于搜狗微信搜索的公众号数据采集解决方案实战指南

WechatSogou&#xff1a;基于搜狗微信搜索的公众号数据采集解决方案实战指南 【免费下载链接】WechatSogou 基于搜狗微信搜索的微信公众号爬虫接口 项目地址: https://gitcode.com/gh_mirrors/we/WechatSogou 在微信公众号生态日益繁荣的今天&#xff0c;如何高效、稳定…...

Pytorch图像去噪实战(九十三):数据集版本管理实战,保证每次训练数据可追溯、可回滚

Pytorch图像去噪实战(九十三):数据集版本管理实战,保证每次训练数据可追溯、可回滚 一、问题场景:模型效果变好了,但不知道用了哪批数据训练 图像去噪项目进入迭代阶段后,数据会不断变化: 新增用户反馈样本 新增真实噪声数据 删除低质量图片 加入OCR场景样本 加入低光…...

DotNext内存映射文件:高性能IO操作的终极解决方案

DotNext内存映射文件&#xff1a;高性能IO操作的终极解决方案 【免费下载链接】dotNext Next generation API for .NET 项目地址: https://gitcode.com/gh_mirrors/do/dotNext DotNext作为下一代.NET API&#xff0c;提供了强大的内存映射文件功能&#xff0c;为开发者带…...