Ansible——script模块

 

目录

特点

参数总结

 使用 ansible 命令

1. 基本示例

2. 传递参数

3. 使用 creates 参数

4. 使用 removes 参数

 示例 Playbook 文件

 基本语法

1. 基本使用

2. 传递参数

3. 使用 creates 参数

4. 使用 removes 参数

5. 使用 register 捕获输出

6. 使用 args 指定参数


Ansible 的 script 模块是用来在远程主机上运行本地脚本文件的一个模块。它将本地脚本文件复制到目标主机上并执行。这个模块对于一些复杂操作性任务或者需要快速运行自定义脚本的场景非常有用。

特点

  • 脚本语言不限:可以是任何可执行的脚本,比如 Bash、Python、Perl 等。
  • 参数传递:允许传递参数给脚本。
  • 直接执行:无需考虑远程主机的具体环境,直接在远程主机上执行脚本。

 

参数总结

  1. chdir:

    • 描述:在执行脚本前更改到此目录。
    • 类型:字符串
    • 默认值:无
  2. creates:

    • 描述:仅在指定文件不存在时执行脚本。
    • 类型:字符串
    • 默认值:无
  3. executable:

    • 描述:用于执行脚本的可执行程序(例如 bash, python, ruby 等)。
    • 类型:字符串
    • 默认值:无
  4. removes:

    • 描述:仅在指定文件存在时执行脚本。
    • 类型:字符串
    • 默认值:无
  5. stdin:

    • 描述:为脚本提供标准输入。
    • 类型:字符串
    • 默认值:无
  6. stdin_add_newline:

    • 描述:如果为 yes,则在标准输入数据末尾添加一个新行。
    • 类型:布尔值
    • 默认值:yes
  7. strip_empty_ends:

    • 描述:如果为 yes,则从标准输入数据的两端移除空行。
    • 类型:布尔值
    • 默认值:no
  8. cmd:

    • 描述:要执行的本地脚本的路径和可选参数。
    • 类型:字符串或列表
    • 必需:是

 

 使用 ansible 命令

 

1. 基本示例

在远程主机上运行本地脚本 my_script.sh

ansible all -m script -a "/path/to/my_script.sh"

2. 传递参数

在远程主机上运行本地脚本 my_script.sh 并传递参数:

ansible all -m script -a "/path/to/my_script.sh --option value"

3. 使用 creates 参数

只有在远程主机上不存在 /tmp/myfile 时才运行脚本:

ansible all -m script -a "creates=/tmp/myfile /path/to/my_script.sh"

4. 使用 removes 参数

只有在远程主机上存在 /tmp/myfile 时才运行脚本:

ansible all -m script -a "removes=/tmp/myfile /path/to/my_script.sh"

 

 示例 Playbook 文件

 

 基本语法

一个典型的 script 模块结构如下:

- name: Description of the taskscript: /path/to/local/script.sh

还可以添加多个可选参数,如 creates 和 removes,来条件化执行脚本。

1. 基本使用

在远程主机上执行脚本 my_script.sh

---
- name: Run basic scripthosts: alltasks:- name: Execute the scriptscript: /path/to/my_script.sh

2. 传递参数

在远程主机上执行脚本 my_script.sh 并传递参数:

---
- name: Run script with argumentshosts: alltasks:- name: Execute the script with argumentsscript: /path/to/my_script.sh --option value

3. 使用 creates 参数

只有在远程主机上不存在 /tmp/myfile 文件时才执行脚本:

---
- name: Conditionally run script if file does not existhosts: alltasks:- name: Execute the script if file does not existscript:path: /path/to/my_script.shcreates: /tmp/myfile

4. 使用 removes 参数

只有在远程主机上存在 /tmp/myfile 文件时才执行脚本:

---
- name: Conditionally run script if file existshosts: alltasks:- name: Execute the script if file existsscript:path: /path/to/my_script.shremoves: /tmp/myfile

5. 使用 register 捕获输出

捕获脚本执行的输出并在后续任务中使用:

---
- name: Capture script outputhosts: alltasks:- name: Run script and capture outputscript: /path/to/my_script.shregister: script_output- name: Print script outputdebug:var: script_output.stdout

6. 使用 args 指定参数

在脚本中指定额外参数:

---
- name: Run script with specific argumentshosts: alltasks:- name: Execute the script with multiple argumentsscript:path: /path/to/my_script.shargs:creates: /tmp/myfileremoves: /tmp/removefile

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/24469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Vue】sync修饰符

文章目录 一、介绍二、语法三、代码示例 一、介绍 作用:可以实现 子组件 与 父组件数据 的 双向绑定,简化代码 简单理解:子组件可以修改父组件传过来的props值 特点:prop属性名,可以自定义,非固定为valu…

如何安装 CleanMyMac X 4.15.3破解版

CleanMyMac X 4.15.3破解版是一款专业的Mac系统清理软件,可一键智能扫描清理mac系统日志缓存磁盘垃圾和多余语言安装包,快速释放电脑内存,轻松管理和升级Mac上的应用。同时CleanMyMac X 破解版可以强力卸载恶意软件,修复系统漏洞&…

仿今日头条的新闻资讯系统

软件简介 新闻资讯系统,前端基于 Uniapp、Uview,后端基于Ruoyi系统,代码易读易懂、界面简洁美观。一套前端代码,同时支持微信小程序、Android、Ios应用等多种应用。 平台简介 新闻资讯系统,主要包括首页、行业资讯、…

Adobe Illustrator 矢量图设计软件下载安装,Illustrator 轻松创建各种矢量图形

Adobe Illustrator,它不仅仅是一个简单的图形编辑工具,更是一个拥有丰富功能和强大性能的设计利器。 在这款软件中,用户可以通过各种精心设计的工具,轻松创建和编辑基于矢量路径的图形文件。这些矢量图形不仅具有高度的可编辑性&a…

高中数学:数列-基础概念

一、什么是数列? 一般地,我们把按照确定的顺序排列的一列数称为数列,数列中的每一个数叫做这个数列的项,数列的第一项称为首项。 项数有限个的数列叫做有穷数列,项数无限个的数列叫做无穷数列。 二、一般形式 数列和…

Ubuntu20.04-SLAM软件安装

目录 安装环境安装问题1.Ubuntu20.04在T440p上的安装问题1.1 安装后提示"x86/cpu:VMX(outside TXT) disabled by BIOS"1.2 ACPI Error:Needed type[Reference],found [Integer] 等错误1.3 ima: Error Communicating to TPM chip 2.中文输入法-google pinyin3. gcc/cm…

计算机二级Access操作题总结——简单应用

查询设计 创建一个查询,能够在客人每次结账时根据客人的姓名提示统计这个客人已住天数和应交金额,并显示“姓名”、“房间号”、“已住天数”和“应交金额”,所建查询命名为“qT2”。 注:输入姓名时应提示“请输入姓名”。已住天…

SpringBoot: 可执行jar的特殊逻辑

这一篇我们来看看Java代码怎么操作zip文件(jar文件),然后SpringBoot的特殊处理,文章分为2部分 Zip API解释,看看我们工具箱里有哪些工具能用SpringBoot的特殊处理,看看SpringBoot Jar和普通Jar的不同 1. Zip API解释 1. ZipFil…

深度学习论文: Emerging Properties in Self-Supervised Vision Transformers

深度学习论文: Emerging Properties in Self-Supervised Vision Transformers Emerging Properties in Self-Supervised Vision Transformers PDF: https://arxiv.org/pdf/2104.14294v1 PyTorch代码: https://github.com/shanglianlm0525/CvPytorch PyTorch代码: https://githu…

Composition API函数

unref unref函数用于获取响应式对象的原始值。如果传入的是一个响应式对象,则返回其value属性;如果传入的是一个普通的JavaScript对象,则返回它本身。 unref函数在某些情况下很有用,例如在使用watchEffect函数时,可…

go语言实战--基于Vue3+gin框架的实战Cetide网项目(讲解开发过程中的各种踩坑)

最近被要求学习go语言开发,也就做一个项目实战巩固一下,也分享一下关于gin框架的实战项目 (后续应该还是会继续学习Java,这一期还是做一个govue的) 经过一段时间的开发过后,感觉现在的开发效率要快不少了&…

传统工科硕士想转嵌入式,时间够吗?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 零基础开始学&#xff0…

[NOVATEK] NT96580行车记录仪功能学习笔记(持续更新~

一、u-Boot升级灯 运行u-Boot程序时LED灯闪烁,找到运行过程中一直在运行的函数在里面进行LED引脚电平的翻转 宏定义 Z:\SunFan\AHD580\pip\na51055_PIP\BSP\u-boot\include\configs\nvt-na51055-evb.h Z:\SunFan\AHD580\pip\na51055_PIP\BSP\u-boot\drivers\mtd\nvt_flash_…

什么是JWT(Json-Web-Token)?JWT的用途和优势是什么?

什么是JWT(Json-Web-Token)? JWT,全称JSON Web Token,是一种开放标准(RFC 7519)。它定义了一种紧凑的、自包含的方式,用于在各方之间安全地传输信息。这种信息被设计成JSON对象格式…

简介RESTful API和中间件Web API网关

从RESTful API开始 RESTful API(Representational State Transfer API)是一种设计Web服务的架构风格,它基于REST(Representational State Transfer)理论。REST是一种软件架构风格,由Roy Fielding在其博士论文《Architectural Styles and the Design of Network-based So…

LeetCode 550, 380, 234

目录 550. 游戏玩法分析 IV题目链接表要求知识点思路代码 380. O(1) 时间插入、删除和获取随机元素题目链接标签思路代码 234. 回文链表题目链接标签思路代码 550. 游戏玩法分析 IV 题目链接 550. 游戏玩法分析 IV 表 表Activity的字段为player_id,device_id&am…

Linux卸载残留MySQL【带图文命令巨详细】

Linux卸载残留MySQL 1、检查残留mysql2、检查并删除残留mysql依赖3、检查是否自带mariadb库 1、检查残留mysql 如果残留mysql组件,使用命令 rpm -e --nodeps 残留组件名 按顺序进行移除操作 #检查系统是否残留过mysql rpm -qa | grep mysql2、检查并删除残留mysql…

k8s——Pod容器中的存储方式及PV、PVC

一、Pod容器中的存储方式 需要存储方式前提:容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。 首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态&…

TensorRT 精度debug分析工具

tensorRT还提供了一套可用于engine生成过程中debug的工具,包括Polygraphy、ONNX GraphSurgeon和PyTorch-Quantization。这些小工具用处很大,值得花时间进一步研究。 Debug方法示例 polygraphy Polygraphy是TensorRT官方提供的一系列小工具合集&#x…

spring源码解析-(1)关于Bean

什么是Bean? 是spring对所有注入到IoC容器中的类的统称。 我们要注册进入spirng的bean千奇百怪,所以spring必须需要使用一个统一的定义来标识bean,就有了接下来的BeandDefinition,通过名称我们就可以知道,他是对bean…