Ad-hoc命令和模块简介

华子目录

  • Ad-hoc命令和模块简介
    • 1.概念
    • 2.格式
    • 3.Ansible命令常用参数
    • 4.模块类型
      • 4.1 三种模块类型
      • 4.2`Ansible`核心模块和附加模块
  • 示例1
  • 示例2

Ad-hoc命令和模块简介

1.概念

  • Ansible提供两种方式去完成任务,一是ad-hoc命令,一是写Ansible playbook(剧本)
  • Ad-hoc命令:即交互式临时命令,是一种单条命令,命令不需要特别保存下来,执行后即结束,可以用于执行简单的临时命令,相当于shell命令
  • Ansible playbook:更适合解决复杂或需固化下来的任务,相当于Linux系统的Shell脚本

2.格式

[root@server ~]# ansible 主机或组 -m 模块名 -a '模块参数' -i 清单文件
  • 使用ansible命令时,必须指明受管主机的信息,如果已经设置过主机清单文件(/etc/ansible/hosts),则可以使用all参数来指代全体受管控的主机,-a是要传递给模块的参数,只有功能极其简单的模块才不需要额外参数,所以大多情况下-m-a参数都会同时出现

3.Ansible命令常用参数

参数说明
-m指定要使用地模块名
-a设置传递给模块地参数
-i指定主机清单文件
-k手动输入ssh协议密码
-S使用su命令
-M指定要使用地模块路径
-T设置ssh协议连接超时时间
-h帮助信息
--version查看ansible版本信息

4.模块类型

  • Ansible服务的强大之处在于只需要一条命令,便可以操控成千上万台的主机节点,由于Ansible服务实际上只是一个框架,能够完成工作的是模块化功能代码

4.1 三种模块类型

  • 核心模块:由Ansible的官方团队提供
  • 附加模块:由各个社区提供的,如:openstack社区、docker社区
  • 用户自定义模块自己设计的模块

4.2Ansible核心模块和附加模块

  • 1000+,需要使用帮助文档来查询、记忆、理解
  • 查询模块信息:
[root@server ~]# ansible-doc  模块名称
[root@server ~]# ansible-doc ping
> ANSIBLE.BUILTIN.PING    (/usr/lib/python3.9/site-packages/ansible/modules/ping.py)A trivial test module, this module always returns `pong' onsuccessful contact. It does not make sense in playbooks, but itis useful from `/usr/bin/ansible' to verify the ability tologin and that a usable Python is configured. This is NOT ICMPping, this is just a trivial test module that requires Pythonon the remote-node. For Windows targets, use the[ansible.windows.win_ping] module instead. For Network targets,use the [ansible.netcommon.net_ping] module instead.ADDED IN: historicalOPTIONS (= is mandatory):- dataData to return for the `ping' return value.If this parameter is set to `crash', the module will cause anexception.default: pongtype: strATTRIBUTES:check_mode:description: Can run in check_mode and return changed status prediction withoutmodifying targetsupport: fulldiff_mode:
......
......
......
  • 列出所有模块信息
[root@server ~]# ansible-doc -l | wc -l   #有多少模块
7736
  • 列出yum模块
[root@server ~]# ansible-doc -l | grep yum
ansible.builtin.yum                                                                              Manages packages with the...
ansible.builtin.yum_repository                                                                   Add or r...
community.general.yum_versionlock                                                                Locks / unlocks a installed package(s) from being updated ...
  • 常用模块

在这里插入图片描述

示例1

  • 通过ansiblenode1node2下载安装httpd
[root@node1 ~]# yum list httpd
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。上次元数据过期检查:1:43:02 前,执行于 2024年07月06日 星期六 11时32分13秒。
可安装的软件包
httpd.x86_64                               2.4.57-8.el9                               app
[root@node2 ~]# yum list httpd
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。上次元数据过期检查:1:47:15 前,执行于 2024年07月06日 星期六 11时28分19秒。
可安装的软件包
httpd.x86_64                               2.4.57-8.el9                               app
[root@server ~]# vim /etc/ansible/hosts
node1.example.com
node2.example.com[root@server ~]# ansible all -m ping   #首先测试网络连通性
node1.example.com | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"},"changed": false,"ping": "pong"
}
node2.example.com | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"},"changed": false,"ping": "pong"
}[root@server ~]# ansible all -m yum -a "name=httpd state=installed"   #下发yum命令
node2.example.com | CHANGED => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"},"changed": true,"msg": "","rc": 0,"results": ["Installed: httpd-tools-2.4.57-8.el9.x86_64","Installed: httpd-filesystem-2.4.57-8.el9.noarch","Installed: apr-util-1.6.1-23.el9.x86_64","Installed: httpd-2.4.57-8.el9.x86_64","Installed: apr-util-bdb-1.6.1-23.el9.x86_64","Installed: mod_lua-2.4.57-8.el9.x86_64","Installed: httpd-core-2.4.57-8.el9.x86_64","Installed: apr-util-openssl-1.6.1-23.el9.x86_64","Installed: centos-logos-httpd-90.8-1.el9.noarch","Installed: mod_http2-2.0.26-2.el9.x86_64","Installed: apr-1.7.0-12.el9.x86_64"]
}
node1.example.com | CHANGED => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"},"changed": true,"msg": "","rc": 0,"results": ["Installed: httpd-tools-2.4.57-8.el9.x86_64","Installed: apr-util-1.6.1-23.el9.x86_64","Installed: httpd-2.4.57-8.el9.x86_64","Installed: apr-util-bdb-1.6.1-23.el9.x86_64","Installed: httpd-filesystem-2.4.57-8.el9.noarch","Installed: mod_lua-2.4.57-8.el9.x86_64","Installed: httpd-core-2.4.57-8.el9.x86_64","Installed: apr-util-openssl-1.6.1-23.el9.x86_64","Installed: centos-logos-httpd-90.8-1.el9.noarch","Installed: mod_http2-2.0.26-2.el9.x86_64","Installed: apr-1.7.0-12.el9.x86_64"]
}
  • 测试
[root@node1 ~]# yum list httpd
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。上次元数据过期检查:1:48:50 前,执行于 2024年07月06日 星期六 11时32分13秒。
已安装的软件包
httpd.x86_64                              2.4.57-8.el9                               @app
[root@node2 ~]# yum list httpd
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。上次元数据过期检查:1:52:53 前,执行于 2024年07月06日 星期六 11时28分19秒。
已安装的软件包
httpd.x86_64                              2.4.57-8.el9                               @app

示例2

  • server端操控node1node2
[root@server ~]# ansible all -a 'df -h'
node1.example.com | CHANGED | rc=0 >>
文件系统               容量  已用  可用 已用% 挂载点
devtmpfs               4.0M     0  4.0M    0% /dev
tmpfs                  968M     0  968M    0% /dev/shm
tmpfs                  388M  9.6M  378M    3% /run
/dev/mapper/rhel-root   16G  7.0G  8.7G   45% /
/dev/nvme0n1p1         395M  235M  161M   60% /boot
tmpfs                  194M   52K  194M    1% /run/user/42
tmpfs                  194M   36K  194M    1% /run/user/0
node2.example.com | CHANGED | rc=0 >>
文件系统               容量  已用  可用 已用% 挂载点
devtmpfs               4.0M     0  4.0M    0% /dev
tmpfs                  968M     0  968M    0% /dev/shm
tmpfs                  388M  9.5M  378M    3% /run
/dev/mapper/rhel-root   16G  4.1G   12G   27% /
/dev/nvme0n1p1         395M  235M  161M   60% /boot
tmpfs                  194M   52K  194M    1% /run/user/42
tmpfs                  194M   36K  194M    1% /run/user/0
[root@server ~]# ansible node2.example.com -a 'ls /root'
node2.example.com | CHANGED | rc=0 >>
公共
模板
视频
图片
文档
下载
音乐
桌面
anaconda-ks.cfg
[root@server ~]# ansible node1.example.com -a 'cat /etc/os-release'
node1.example.com | CHANGED | rc=0 >>
NAME="Red Hat Enterprise Linux"
VERSION="9.1 (Plow)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="9.1"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Red Hat Enterprise Linux 9.1 (Plow)"
ANSI_COLOR="0;31"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:redhat:enterprise_linux:9::baseos"
HOME_URL="https://www.redhat.com/"
DOCUMENTATION_URL="https://access.redhat.com/documentation/red_hat_enterprise_linux/9/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 9"
REDHAT_BUGZILLA_PRODUCT_VERSION=9.1
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.1"
[root@server ~]# ansible node1.example.com -a 'hostname'
node1.example.com | CHANGED | rc=0 >>
node1.example.com

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

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

相关文章

【电商纯干货分享】干货速看!电商数据集数据API接口数据分析大全!

数据分析——深入探索中小企业数字化转型,专注提供各行业数据分析干货、分析技巧、工具推荐以及各类超实用分析模板,为钻研于数据分析的朋友们加油充电。 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中&#xff09…

02浅谈大模型文本生成的背后逻辑

02浅谈大语言模型文本生成的背后逻辑 两个概念: 通俗理解大模型文本生成逻辑 假设有一个prompt:How are you ?,输入给大模型,那么大模型使怎么输出?

uni-app x 跨平台开发框架

目录 uni-app x 是什么 和Flutter对比 uts语言 uvue渲染引擎 组合式API的写法 选项式API写法 页面生命周期 API pages.json全局配置文件 总结 uni-app x 是什么 uni-app x,是下一代 uni-app,是一个跨平台应用开发引擎。 uni-app x 是一个庞…

ETAS工具导入Com Arxml修改步骤

文章目录 前言Confgen之前的更改Confgen之后的修改CANCanIfComComMEcuM修改CanNmCanSMDCMCanTp生成RTE过程报错修改DEXT-诊断文件修改Extract问题总结前言 通讯协议栈开发一般通过导入DBC实现,ETAS工具本身导入DBC也是生成arxml后执行cfggen,本文介绍直接导入客户提供的arxml…

动态颤抖的眼睛效果404页面源码

动态颤抖的眼睛效果404页面源码, 源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面 动态颤抖的眼睛效果404页面源码

springboot+vue+mybatis图书馆借阅管理系统+PPT+论文+讲解+售后

21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到…

AI大模型时代的存储发展趋势

从2022年下半年,大模型和AIGC这两个词变得极其火热,而GPU的市场也是一卡难求。对于这种迷乱和火热,让我想起了当年的比特币挖矿和IPFS。似乎世界一年一个新风口,比特币、元宇宙、NFT、AIGC,金钱永不眠,IT炒…

IIS数字功放MAX98357开发板/评估系统

前言 MAX98357中文介绍请访问下行链接 MAX98357、MAX98357A、MAX98357B小巧、低成本、PCM D类IIS放大器,具有AB类性能中文说明规格书 一般描述 MAX98357 开发板(DEV 板)是一个完全组装并经过测试的 PCB,用于评估 MAX98357 I2S …

C++怎么解决不支持字符串枚举?

首先,有两种方法:使用命名空间和字符串常量与使用 enum class 和辅助函数。 表格直观展示 特性使用命名空间和字符串常量使用 enum class 和辅助函数类型安全性低 - 编译器无法检查字符串有效性,运行时发现错误高 - 编译期类型检查&#xf…

2024 年 6 月区块链游戏研报:Pixels 引发 DAU 波动,行业用户留存率差异显著

作者:Stella L (stellafootprint.network) 数据来源:区块链游戏研究页面 2024 年 6 月,加密货币市场遭遇显著回调,比特币跌幅达 7.3%,以太坊更是下跌了 9.8%。此番波动不可避免地波及区块链游戏领域,导致…

Hudi 写入流程(图)

前言 主要为之前总结的源码文章补充流程图。总结一下整体流程说明 之前以Java Client为例,总结了 Insert 源码的整体流程及部分源码,由于各种原因,没有总结完。长时间不看这方面的源码,容易忘记,之前没有总结流程图,现在回忆起来比较麻烦,不如看流程图方便快捷。所以先补…

2024亚太杯中文赛B题洪水灾害的数据分析与预测原创论文分享

大家好,从昨天肝到现在,终于完成了2024年第十四届 APMCM 亚太地区大学生数学建模竞赛B题洪水灾害的数据分析与预测的完整论文啦。 实在精力有限,具体的讲解大家可以去讲解视频: 2024亚太杯中文赛B题洪水灾害预测原创论文保姆级教…

2024/7/6 英语每日一段

More than half of late-teens are specifically calling for more youth work that offers “fun”, with older teenagers particularly hankering for more jollity, according to a study carried out by the National Youth Agency. One in 10 said they have zero option…

量化机器人:金融市场的智能助手

引言 想象一下,在繁忙的金融市场中,有一位不知疲倦、冷静客观的“超级交易员”,它能够迅速分析海量数据,精准捕捉交易机会,并自动完成买卖操作。这位“超级交易员”不是人类,而是我们今天要聊的主角——量…

Vue 3 中集成 ECharts(附一些案例)

Vue 3 中集成 ECharts 的完全指南 引言 在现代Web开发中,Vue 3以其卓越的性能和灵活的Composition API赢得了广泛的关注。而ECharts,作为开源的一个使用JavaScript实现的强大可视化库,以其丰富的图表类型和高度可定制性成为了数据可视化的首…

计算机的错误计算(二十二)

摘要 计算机的错误计算(十九)展示了计算机的一个错误计算:本应该为 0的算式的结果不为0. 那么,增加计算精度,能确定是0吗?不一定。 计算机的错误计算(十九)展示了计算机对 的错误计…

适用于 Windows的 5 个最佳 PDF 转 Word 转换器

PDF 文件是共享文档的首选格式,但是,此类文件存在限制,使其难以修改或编辑。因此,您可能会发现自己正在寻找一种将 PDF 文件转换为 Word 或其他可编辑格式的方法。 有许多不同的 PDF 转换器,每个转换器的功能略有不同…

vue require引入静态文件报错

如果是通过向后端发送请求,动态的获取对应的文件数据流很容易做到文件的显示和加载。现在研究,一些不存放在后端而直接存放在vue前端项目中的静态媒体文件如何加载。 通常情况下,vue项目的图片jpg,png等都可以直接在/ass…

招聘一个1-3年经验的Java工程师:企业视角的技能与素质要求

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

Git错误分析

错误案例1: 原因:TortoiseGit多次安装导致,会记录首次安装路径,若安装路径改变,需要配置最后安装的路径。