当前位置:

首页 > 软件教程 > Ansible Ad-Hoc 命令行工具

Ansible Ad-Hoc 命令行工具

官方文档:https://docs.ansible.com/ansible/latest/command_guide/intro_adhoc.html简介Ad-hoc命令是一种临时输入并执行的命令,通常用于测试和调试。它们不需要永久保存,简单来说,ad-hoc就是“即时命令”。常用模块1、command模块(默认模块)默认模块,没有shell强大,基本上shell模块都可以支持command模块的功能。【1】帮助ansible-doccommand#推荐使用下面这个ansible-doccommand-s

本文目录

    官方文档:https://docs.ansible.com/ansible/latest/command_guide/intro_adhoc.html

    Ansible Ad-Hoc(点对点模式)

    简介

    Ad-hoc命令是一种临时输入并执行的命令,通常用于测试和调试。它们不需要永久保存,简单来说,ad-hoc就是“即时命令”。

    常用模块

    1、command 模块(默认模块)

    默认模块,没有shell强大,基本上shell模块都可以支持command模块的功能。

    【1】帮助

    ansible-doc command
    # 推荐使用下面这个
    ansible-doc command -s

    【2】参数解释

    • free_form——必须参数,指定需要远程执行的命令。需要说明一点,free_form 参数与其他参数(如果想要使用一个参数,那么则需要为这个参数赋值,也就是name=value模式)并不相同。比如,当我们想要在远程主机上执行 ls 命令时,我们并不需要写成”free_form=ls” ,这样写反而是错误的,因为并没有任何参数的名字是 free_form,当我们想要在远程主机中执行 ls 命令时,直接写成 ls 即可。因为 command 模块的作用是执行命令,所以,任何一个可以在远程主机上执行的命令都可以被称为 free_form。
    • chdir——此参数的作用就是指定一个目录,在执行对应的命令之前,会先进入到 chdir 参数指定的目录中。
    • creates——看到 creates,你可能会从字面上理解这个参数,但是使用这个参数并不会帮助我们创建文件,它的作用是当指定的文件存在时,就不执行对应命令,比如,如果 /testdir/test文件存在,就不执行我们指定的命令。
    • removes——与 creates 参数的作用正好相反,它的作用是当指定的文件不存在时,就不执行对应命令,比如,如果 /testdir/tests 文件不存在,就不执行我们指定的命令,此参数并不会帮助我们删除文件。

    【3】示例演示

    # 上面命令表示在 web 主机上执行 ls 命令,因为使用的是 root 用户,所以默认情况下,ls 出的结果是 web 主机中 root 用户家目录中的文件列表。
    ansible web -m command -a "ls"
    
    # chdir 参数表示执行命令之前,会先进入到指定的目录中,所以上面命令表示查看 web 主机上 /testdir 目录中的文件列表,返回显示有2个文件。
    ansible web -m command -a "chdir=/testdir ls"
    
    # 下面命令表示 /testdir/testfile1 文件存在于远程主机中,则不执行对应命令。/testdir/testfile3 不存在,才执行”echo test”命令。
    ansible web -m command -a "creates=/testdir/testfile1 echo test"
    
    # 下面命令表示 /testdir/testfile3 文件不存在于远程主机中,则不执行对应命令。/testdir/testfile1 存在,才执行”echo test”命令。
    ansible web -m command -a "removes=/testdir/testfile1 echo test"

    2、shell 模块

    shell模块 [执行远程主机的shell/python等脚本]。

    【1】查看帮助

    ansible-doc shell -s

    【2】示例演示

    # -o:一行显示
    # 安装httpd
    ansible web -m shell -a 'yum -y install httpd' -o
    
    # 查看时间
    ansible web -m shell -a 'uptime' -o

    3、script 模块

    script模块 [在远程主机执行主控端的shell/python等脚本 ]。

    【1】查看帮助

    ansible-doc script -s

    【2】参数解释

    • free_form——必须参数,指定需要执行的脚本,脚本位于 ansible 管理主机本地,并没有具体的一个参数名叫 free_form,具体解释请参考 command 模块。
    • chdir——此参数的作用就是指定一个远程主机中的目录,在执行对应的脚本之前,会先进入到 chdir 参数指定的目录中。
    • creates——使用此参数指定一个远程主机中的文件,当指定的文件存在时,就不执行对应脚本,可参考 command 模块中的解释。
    • removes——使用此参数指定一个远程主机中的文件,当指定的文件不存在时,就不执行对应脚本,可参考 command 模块中的解释。

    【3】示例演示

    # 下面命令表示 ansible 主机中的 /testdir/testscript.sh 脚本将在 web 主机中执行,执行此脚本之前,会先进入到 web 主机中的 /opt 目录
    ansible web -m script -a "chdir=/opt /testdir/testscript.sh"
    
    # 下面命令表示,web主机中的 /testdir/testfile1文件已经存在,ansible 主机中的 /testdir/testscript.sh 脚本将不会在 web 主机中执行。
    ansible web -m script -a "creates=/testdir/testfile1 /testdir/testscript.sh"
    
    # 下面命令表示,web 主机中的 /testdir/testfile1 文件存在,ansible 主机中的 /testdir/testscript.sh 脚本则会在 web 主机中执行。
    ansible ansible-demo3 -m script -a "removes=/testdir/testfile1 /testdir/testscript.sh"

    4、raw 模块

    raw模块 [类似于command模块、支持管道传递]。

    【1】查看帮助

    ansible-doc raw -s

    【2】示例演示

    ansible web -m raw -a "ifconfig eth0 |sed -n 2p |awk '{print $2}' |awk -F: '{print $2}'"

    5、copy 模块

    copy 模块 从主控端复制文件到被控端。

    【1】查看帮助

    ansible-doc copy -s

    【2】示例演示

    # -a,--args:后面接参数
    ansible web -m copy -a 'src=/etc/ansible/hosts dest=/tmp/hosts owner=root group=bin mode=777'
    
    # backup=yes/no:文件存在且文件内容不一样是否备份,默认不备份
    ansible web -m copy -a 'src=/etc/ansible/hosts dest=/tmp/hosts owner=root group=bin mode=777 backup=yes'

    6、fetch 模块

    copy 模块从被控端复制文件到主控端,正好跟copy相反。

    【1】查看帮助

    ansible-doc fetch -s

    【2】示例演示

    # 跟copy支持的参数差不多,src:远端主机的目录,dest:主控端目录,其实真正存放的目录在:/tmp/192.168.182.129/tmp/up.sh,会按每台主机分组存放
    #This `must' be a file, not a directory:只支持单个文件获取
    ansible 192.168.182.129 -m fetch -a "src=/etc/fstab dest=/testdir/ansible/"

    7、unarchive 模块(解包模块)

    unarchive 模块是解包模块。

    【1】查看帮助

    ansible-doc unarchive -s

    【2】参数解释

    • copy——默认为yes,当copy=yes,那么拷贝的文件是从ansible主机复制到远程主机上的,如果设置为copy=no,那么会在远程主机上寻找src源文件。
    • src——源路径,可以是ansible主机上的路径,也可以是远程主机上的路径,如果是远程主机上的路径,则需要设置copy=no。
    • dest——远程主机上的目标路径。
    • mode——设置解压缩后的文件权限。

    【3】示例演示

    ansible 192.168.182.129 -m unarchive -a 'src=/testdir/ansible/data.tar.gz dest=/tmp/tmp/'

    8、archive模块(打包模块)

    unarchive 模块是打包模块。

    【1】查看帮助

    ansible-doc archive -s

    【2】示例演示

    # path:主控端目录,format:压缩格式,dest:被控端目录文件'
    ansible 192.168.182.129 -m archive -a 'path=/tmp/ format=gz dest=/tmp/tmp/t.tar.gz'

    9、user 模块

    【1】查看帮助

    ansible-doc user -s

    【2】示例演示

    # 创建用户(present:默认,可以不写)
    ansible web -m user -a 'name=test state=present'
    
    # 删除用户(absent)
    ansible web -m user -a 'name=test state=absent'
    
    # 修改密码
    # 步骤一、生成加密密码
    echo '777777'|openssl passwd -1 -stdin
    
    # 步骤二、修改秘密
    ansible web -m user -a 'name=test password="$1$Jo5FD9Jr$2QB.BuybbtR35ga4O5o8N."'
    
    # 修改shell
    ansible web -m user -a 'name=test shell=/sbin/noglogin append=yes'

    10、group 模块

    【1】查看帮助

    ansible-doc group -s

    【2】示例演示

    # 创建
    ansible 192.168.182.129 -m group -a 'name=testgroup system=yes'
    # 删除
    ansible 192.168.182.129 -m group -a 'name=testgroup state=absent'

    11、yum 模块

    【1】查看帮助

    ansible-doc yum -s

    【2】示例演示

    # 升级所有包
    ansible web -m yum -a 'name="*" state=latest'
    
    # 安装apache
    ansible web -m yum -a 'name="httpd" state=latest'

    12、service 模块

    【1】查看帮助

    ansible-doc service -s
    

    【2】示例演示

    ansible web -m service -a 'name=httpd state=started'
    
    ansible web -m service -a 'name=httpd state=started enabled=yes'
    
    ansible web -m service -a 'name=httpd state=stopped'
    
    ansible web -m service -a 'name=httpd state=restarted'
    
    ansible web -m service -a 'name=httpd state=started enabled=no'

    13、file 模块

    【1】查看帮助

    ansible-doc file -s

    【2】示例演示

    # 创建文件
    ansible web -m file -a 'path=/tmp/88.txt mode=777 state=touch'
    
    # 创建目录
    ansible web -m file -a 'path=/tmp/99 mode=777 state=directory'
    
    # 删除
    ansible web -m file -a 'path=/tmp/99 state=absent'

    14、setup 模块

    【1】查看帮助

    ansible-doc setup -s

    【2】示例演示

    ansible web -m setup
    
    ansible web -m setup -a 'filter=ansible_all_ipv4_addresses'

    15、cron 模块

    【1】查看帮助

    ansible-doc cron -s

    【2】示例演示

    # 创建定时任务
    ansible 192.168.182.129 -m cron -a 'minute=* weekday=1,3,5,6,7 job="/usr/bin/wall FBI warning" name=warningcron'
    
    # 关闭定时任务
    ansible 192.168.182.129 -m cron -a 'disabled=true job="/usr/bin/wall FBI warning" name=warningcron'
    
    # 删除定时任务
    ansible 192.168.182.129 -m cron -a ' job="/usr/bin/wall FBI warning" name=warningcron state=absent'

    16、hostname 模块

    【1】查看帮助

    ansible-doc hostname -s

    【2】示例演示

    ansible 192.168.182.129 -m hostname -a 'name=192.168.182.129'
    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    软件教程
    相关文章 更多
    编程的收获
    编程的收获

    今天这节编程课,咱们算是正式认识了。说实话,能收获这样一份真诚的反馈,心里挺暖的。幽默只是教学过程中的一点小调料,真正能让你有“满足”和“自豪”感的,是你自己亲手敲出代码、并看到它运行出结果的那一刻。 你提到的“困难”和“细节的重要性”,确实是编程入门时最真实的感受。第一次接触,能意识到“细节决定成

    Ansible自动部署PHP环境配置指南
    Ansible自动部署PHP环境配置指南

    Ansible通过YAMLPlaybook实现PHP环境自动化部署和配置标准化。1.安装Ansible并配置SSH免密登录;2.编写Playbook定义PHP版本、扩展及配置任务,如安装PHP包、配置PHP-FPM、创建Web根目录;3.使用Jinja2模板生成配置文件;4.运行Playbook并验证部署结果。可通过定义多个PHP版本并结合循环安装实现多版本管理,Ansible的apt模块自动处理依赖,部署应用时可结合git和composer模块完成代码克隆与依赖安装。

    Go Get:获取和管理 Go 模块
    Go Get:获取和管理 Go 模块

    明确答案:GoGet是一个命令行工具,用于管理Go模块及其依赖项。详细描述:GoGet可用于获取Go模块,语法为:goget[-u]<modulepath>。可以指定特定模块版本:goget<modulepath>@<version>。使用goget-u<modulepath>更新已安装模块。通过gomodtidy删除不再使用的模块。

    如何使用PHP进行部署:Ansible、Capistrano和Fabric
    如何使用PHP进行部署:Ansible、Capistrano和Fabric

    随着Web应用程序愈发复杂,服务器管理变得更加重要。当你的应用程序访问量增加时,你需要确保这些系统可靠地运行。一些自动化工具(例如Ansible、Capistrano和Fabric)可以帮助我们简化这个过程,以便更容易地部署和管理PHP应用程序。本文将介绍这三种工具。什么是Ansible?Ansible是一个用于自动化软件部署、配置和管理的平台。它可以帮助我

    Openharmony驱动的智能教室
    Openharmony驱动的智能教室

    想了解更多关于开源的内容,请访问:51CTO鸿蒙开发者社区https://ost.51cto.com作品背景随着互联网技术的不断发展,在当今社会有越来越多的智能项目走进了我们的日常生活中,而如此便于我们生活的智能应用同时也走进了校园。该项目旨在建立一个基于OpenHarmony的智能教室,提供先进的技术和智能设备,改善学习环境,同时提升教学质量和效率,为学生和教师创造创新、互动和舒适的学习环境功能特点智能教室产品包括五个模块:智能风扇、智能烟雾检测、智能可燃气检测、智能闹钟和智能温湿度检测。这些模块为教室

    如何提高ansible执行的效率
    如何提高ansible执行的效率

    收到项目反馈,客户在使用我们提供的工具部署产品时遇到了困难,在主机添加步骤上遇到了问题,导致实施团队无法继续推进工作,因此向我们寻求帮助。环境信息:kylin10架构:arm初见端倪在系统部署过程中,针对主机的批量操作,我们开发时采用了ansible剧本。最近遇到了执行过程卡顿的问题,初步怀疑是ansible执行时出现了阻塞。为了验证这一点,我已经发送了一条命令给现场进行测试。localhost$date2024年02月19日星期17:30:41CSTlocalhost$ansibleall-i"192.

    如何解决Python的模块导入路径错误?
    如何解决Python的模块导入路径错误?

    Python是一种广泛应用的高级编程语言,它的模块化设计是其成功的一个重要因素。不过,在使用Python时,我们有时会遇到模块导入路径错误的问题,这可以影响程序的正常运行。本篇文章将介绍如何解决Python的模块导入路径错误问题。一、Python中模块的导入方式在Python中,我们使用import语句来导入模块。例如,我们可以使用以下方式导入Python标

    WLAN可拓展性模块无法激活
    WLAN可拓展性模块无法激活

    本文详细介绍了解决事件ID10000的方法,该事件表明无线局域网扩展模块无法启动。在Windows11/10PC的事件日志中可能会显示此错误。WLAN可扩展性模块是Windows的一个组件,允许独立硬件供应商(IHV)和独立软件供应商(ISV)为用户提供定制的无线网络特性和功能。它通过增加Windows默认功能以扩展本机Windows网络组件的功能。在操作系统加载网络组件时,WLAN可扩展性模块作为初始化的一部分启动。如果无线局域网扩展模块遇到问题无法启动,您可能会在事件查看器的日志中看到错误消息,事件I

    WLAN扩展模块已停止[修复]
    WLAN扩展模块已停止[修复]

    如果您的Windows计算机上的WLAN扩展模块出现问题,可能会导致您与互联网断开连接。这种情况常常让人感到困扰,但幸运的是,本文提供了一些简单的建议,可以帮助您解决这个问题,让您的无线连接重新正常运行。修复WLAN扩展模块已停止如果您的Windows计算机上的WLAN可扩展性模块已停止工作,请按照以下建议进行修复:运行网络和Internet故障排除程序禁用并重新启用无线网络连接重新启动WLAN自动配置服务修改电源选项修改高级电源设置重新安装网络适配器驱动程序运行一些网络命令现在,让我们来详细看看这些。1

    常用的七个Ansible自动化运维命令
    常用的七个Ansible自动化运维命令

    安装完ansible后,我们可以通过七个主要指令来使用它,这些指令分别是:ansible、ansible-doc、ansible-galaxy、ansible-lint、ansible-playbook、ansible-pull、ansible-vault。我们可以通过查看指令的usage部分来了解如何使用它们,而详细信息则可以通过运行“指令-h”来获取。Ansible常用命令ansibleAnsible的核心部分是用于执行ad-hoc命令的,即单条命令。默认情况下,命令需要指定主机和选项部分,如果不指定

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。