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

ansible自动化运维实战--script、unarchive和shell模块(6)

文章目录

    • 一、script模块
      • 1.1、功能
      • 1.2、常用参数
      • 1.3、举例
    • 二、unarchive模块
      • 2.1、功能
      • 2.2、常用参数
      • 2.3、举例
    • 三、shell模块
      • 3.1、功能
      • 3.2、常用参数
      • 3.3、举例

一、script模块

1.1、功能

Ansible 的 script 模块允许你在远程主机上运行本地的脚本文件,其提供了一种便捷的方式来执行自定义脚本以实现特定的自动化任务。

1.2、常用参数

  • chdir:可选参数,用于指定在远程主机上执行脚本时的工作目录。例如,若脚本依赖于特定目录下的文件,可通过该参数指定目录。
  • creates:可选参数,指定一个文件路径。如果该文件在远程主机上已经存在,脚本将不会执行。这可以避免重复执行某些耗时或有副作用的脚本。
  • removes:可选参数,指定一个文件路径。如果该文件在远程主机上不存在,脚本将不会执行。
  • executable:可选参数,用于指定执行脚本的解释器。例如,若脚本是 Python 脚本,可指定 executable: /usr/bin/python3。

1.3、举例

首先在ansible主机中创建一个脚本文件

vim van.sh#脚本文件中的内容
date > /tmp/time.txt
  • 创建script服务
ansible webserves -m script -a "/root/van.sh"

在这里插入图片描述

在任何主机中查看文件:

在这里插入图片描述

二、unarchive模块

2.1、功能

Ansible 的 unarchive 模块用于在远程主机上解压缩归档文件,如 .tar、.tar.gz、.zip 等。

2.2、常用参数

  • src:必选参数,指定要解压缩的归档文件的路径。该路径可以是本地控制节点上的文件路径,也可以是远程主机上的文件路径。如果文件位于本地,需要结合 copy 参数使用。
  • dest:必选参数,指定解压缩文件的目标目录,即归档文件内容将被解压到这个目录下。
  • copy:布尔类型参数,默认值为 true。当设置为 true 时,Ansible 会先将本地的归档文件复制到远程主机,然后再进行解压缩操作;当设置为 false 时,假定归档文件已经存在于远程主机上,直接在远程主机上进行解压缩。
  • creates:可选参数,指定一个文件或目录路径。如果该文件或目录在远程主机上已经存在,解压缩操作将不会执行,可避免重复解压。
  • owner:可选参数,用于指定解压缩后的文件和目录的所有者。
  • group:可选参数,用于指定解压缩后的文件和目录的所属组。
  • mode:可选参数,用于指定解压缩后的文件和目录的权限,例如 mode: ‘0755’。

2.3、举例

在ansible主机中操作:

#压塑etc目录为tigerhhzz02.tar压缩文件
tar -Pzcvf tigerhhzz02.tar /root/tiger-test/

把tigerhhzz.tar压缩包解压到主机组中的每台机子中

ansible webserves -m unarchive -a 'src=/root/tigerhhzz02.tar dest=/home'

在这里插入图片描述

查看组中的任意一台机子的home目录下:
在这里插入图片描述

三、shell模块

3.1、功能

shell模块能让你在远程主机上执行任意 shell 命令,实现系统配置、软件安装、文件操作等多种自动化任务。与command模块不同,shell模块会通过 shell 环境(如/bin/sh)来执行命令,这意味着它支持 shell 的一些特性,像管道、重定向等。

3.2、常用参数

  • chdir:指定在远程主机上执行命令时的工作目录。在执行依赖特定路径的命令时很有用。
  • creates:指定一个文件路径,如果该文件在远程主机上已经存在,命令将不会执行,避免重复操作。
  • removes:指定一个文件路径,如果该文件在远程主机上不存在,命令将不会执行。
  • executable:指定执行命令的 shell 解释器,默认是/bin/sh,你可以根据需要指定其他解释器,如/bin/bash。

3.3、举例

查看组中每个主机的主机名:

ansible webserves -m shell -a "hostname" -o

在这里插入图片描述

批量安装vsftpd服务到组中每个主机:

ansible webserves -m shell -a "yum install -f vsftpd" -o

并开启vsftpd服务:

ansible webserves -m shell -a "systemctl start vsftpd" -o

在这里插入图片描述


生活可能不像你想象的那么好,但是也不会像你想象的那么糟。


http://www.lryc.cn/news/525663.html

相关文章:

  • 理解深度学习pytorch框架中的线性层
  • 电路研究9.2——合宙Air780EP使用AT指令
  • Qt数据库相关操作
  • 2025-01-22 Unity Editor 1 —— MenuItem 入门
  • 解锁C#编程新姿势:Z.ExtensionMethods入门秘籍
  • 不使用 JS 纯 CSS 获取屏幕宽高
  • Node.js NativeAddon 构建工具:node-gyp 安装与配置完全指南
  • 【ARTS】【LeetCode-704】二分查找算法
  • Vue.js 配置路由:基本的路由匹配
  • 鸿蒙(HarmonyOS)Json格式转实体对象(2)
  • 代码随想录 栈与队列 test 6
  • 动手学深度学习2025.1.23
  • 生存网络与mlr3proba
  • C#与AI的共同发展
  • 2000-2020年各省第二产业增加值数据
  • 【MySQL】 库的操作
  • docker 启动镜像命令集合
  • 微信小程序获取位置服务
  • Docker Load后存储的镜像及更改镜像存储目录的方法
  • Langchain本地知识库部署
  • java基础学习——jdbc基础知识详细介绍
  • 联想电脑怎么设置u盘启动_联想电脑设置u盘启动方法(支持新旧机型)
  • C# 解析 HTML 实战指南
  • 光谱相机在智能冰箱的应用原理与优势
  • 编写0号中断的处理程序
  • “““【运用 R 语言里的“predict”函数针对 Cox 模型展开新数据的预测以及推理。】“““
  • 群晖docker获取私有化镜像http: server gave HTTP response to HTTPS client].
  • 使用 C++ 在深度学习中的应用:如何通过 C++20 构建高效神经网络
  • 当 Facebook 窥探隐私:用户的数字权利如何捍卫?
  • Spring MVC中HandlerInterceptor和Filter的区别