Ad-hoc命令和模块简介

news2024/11/18 2:28:59

华子目录

  • 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' on
        successful contact. It does not make sense in playbooks, but it
        is useful from `/usr/bin/ansible' to verify the ability to
        login and that a usable Python is configured. This is NOT ICMP
        ping, this is just a trivial test module that requires Python
        on 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: historical

OPTIONS (= is mandatory):

- data
        Data to return for the `ping' return value.
        If this parameter is set to `crash', the module will cause an
        exception.
        default: pong
        type: str


ATTRIBUTES:

        check_mode:
          description: Can run in check_mode and return changed status prediction without
            modifying target
          support: full
        diff_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.coloradmin.cn/o/1900440.html

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

相关文章

uni-app打包小程序的一些趣事~

前言 Huilderx版本&#xff1a;4.15 uni-app Web端版本&#xff1a;3.4.21 问题1 Web端/APP端样式好好的&#xff0c;打包微信小程序就乱了咋整&#xff1f; 使用::v-deep/::deep/deep(){}都是没用滴~~ 原因&#xff1f; 解决&#xff1a; <script lang"ts"…

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…

将IConfiguration对象转换成一个具体的对象,以面向对象的方式来使用配置

我们倾向于将IConfiguration对象转换成一个具体的对象&#xff0c;以面向对象的方式来使用配置&#xff0c;我们将这个转换过程称为配置绑定。除了将配置树叶子节点配置节的绑定为某种标量对象外&#xff0c;我们还可以直接将一个配置节绑定为一个具有对应结构的符合对象。除此…

C语言课程回顾:八、C语言之函 数

C语言之函 数 8 函 数8.1 概述8.2 函数定义的一般形式8.3 函数的参数和函数的值8.3.1 形式参数和实际参数8.3.2 函数的返回值 8.4 函数的调用8.4.1 函数调用的一般形式8.4.2 函数调用的方式8.4.3 被调用函数的声明和函数原型 8.5 函数的嵌套调用8.6 函数的递归调用8.7 数组作为…

大厂面试官问我:MySQL宕机重启了,怎么知道哪些事务是需要回滚的哪些是需要提交的?【后端八股文九:Mysql事务八股文合集】

本文为【Mysql事务八股文合集】初版&#xff0c;后续还会进行优化更新&#xff0c;欢迎大家关注交流~ 大家第一眼看到这个标题&#xff0c;不知道心中是否有答案了&#xff1f;在面试当中&#xff0c;面试官经常对项目亮点进行深挖&#xff0c;来考察你对这个项目亮点的理解以及…

AIGC | 为机器学习工作站安装NVIDIA 4070 Ti Super显卡驱动

[ 知识是人生的灯塔&#xff0c;只有不断学习&#xff0c;才能照亮前行的道路 ] 0x00 前言简述 话接上篇《AIGC | Ubuntu24.04桌面版安装后必要配置》文章&#xff0c;作为作者进行机器学习的基础篇&#xff08;筑基期&#xff09;&#xff0c;后续将主要介绍机器学习环境之如何…

32位Arm嵌入式开发Ubuntu环境设置

32位Arm嵌入式开发Ubuntu环境设置 今天在调试一块32位ARM A7开发板时老是不成功&#xff0c;我装的是Ubuntu22.04版&#xff0c;在终端下运行工具链里的gdb程序居然报了一大堆错误&#xff0c;缺这个缺那个&#xff0c;按照提示装了一遍&#xff0c;再运行发现需要Python2.7环境…

NSK发布新版在线计算工具

July 01, 2024 NSK Ltd. Corporate Communications Department NSK Ltd. announced today that it has improved the engineering tools available on its website. The new engineering tools — NSK Online Catalog, Technical Calculations, and 2D/3D CAD Data — which …

STM32第十五课:LCD屏幕及应用

文章目录 需求一、LCD显示屏二、全屏图片三、数据显示1.显示欢迎词2.显示温湿度3.显示当前时间 四、需求实现代码 需求 1.在LCD屏上显示一张全屏图片。 2.在LCD屏上显示当前时间&#xff0c;温度&#xff0c;湿度。 一、LCD显示屏 液晶显示器&#xff0c;简称 LCD(Liquid Cry…

分析Profiler Timeline中的算子序列,通过寻找频繁项集的办法,得到TOPK可融合的算子序列

分析Profiler Timeline中的算子序列,通过寻找频繁项集的办法,得到TOPK可融合的算子序列 1.相关链接2.代码【仅分析带通信算子的Pattern】3.在实际工程中发现 [all_gather, matrix_mm_out]频率最高4.[Ascend MC2](https://gitee.com/ascend/MindSpeed/blob/master/docs/features…

路径规划之基于二次规划的路径平滑Matlab代码

参考&#xff1a; 自动驾驶决策规划算法第二章第二节(上) 参考线模块_哔哩哔哩_bilibili 自动驾驶决策规划算法第二章第二节(下) 参考线代码实践_哔哩哔哩_bilibili QP函数&#xff0c;二次规划的逻辑 function [smooth_path_x,smooth_path_y] QP(path_x, path_y, w_cost_s…

docker也能提权??内网学习第6天 rsync未授权访问覆盖 sudo(cve-2021-3156)漏洞提权 polkit漏洞利用

现在我们来说说liunx提权的操作&#xff1a;前面我们说了环境变量&#xff0c;定时任务来进行提权的操作 rsync未授权访问覆盖 我们先来说说什么是rsync rsync是数据备份工具&#xff0c;默认是开启的873端口 我们在进行远程连接的时候&#xff0c;如果它没有让我们输入账号…

从海上长城到数字防线:视频技术在海域边防现代化中的创新应用

随着全球化和科技发展的加速&#xff0c;海域安全问题日益凸显其重要性。海域边防作为国家安全的第一道防线&#xff0c;其监控和管理面临着诸多挑战。近年来&#xff0c;视频技术的快速发展为海域边防场景提供了新的解决方案&#xff0c;其高效、实时、远程的监控特点极大地提…

【优化论】基本概念与细节

优化论&#xff08;Optimization Theory&#xff09;是数学和计算机科学中一个重要的分支&#xff0c;旨在寻找给定问题的最优解。这个领域的应用非常广泛&#xff0c;从经济学、工程学到机器学习、金融等各个领域都有其踪迹。我们可以通过一系列直观的比喻来理解优化论的基本概…

数据库之SQL(二)

目录 一、简述SQL中如何将“行”转换为“列” 二、简述SQL注入 三、如何将一张表的部分数据更新到另一张表 四、WHERE和HAVING的区别 一、简述SQL中如何将“行”转换为“列” 我们以MySQL数据库为例&#xff0c;来说明行转列的实现方式。 首先&#xff0c;假设我们有一张分…

2024亚太杯中文赛数学建模B题完整论文讲解(含每一问python代码+结果+可视化图)

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了2024 年第十四届 APMCM 亚太地区大学生数学建模竞赛B题洪水灾害的数据分析与预测完整的成品论文。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人…

【JavaWeb程序设计】JSP编程II

目录 一、输入并运行下面的import_test.jsp页面 1.1 代码运行结果 1.2 修改编码之后的运行结果 二、errorPage属性和isErrorPage属性的使用 2.1 下面的hello.jsp页面执行时将抛出一个异常&#xff0c;它指定了错误处理页面为errorHandler.jsp。 2.1.2 运行截图 2.2 下面…

罗剑锋的C++实战笔记学习(一):const、智能指针、lambda表达式

1、const 1&#xff09;、常量 const一般的用法就是修饰变量、引用、指针&#xff0c;修饰之后它们就变成了常量&#xff0c;需要注意的是const并未区分出编译期常量和运行期常量&#xff0c;并且const只保证了运行时不直接被修改 一般的情况&#xff0c;const放在左边&…

政安晨【零基础玩转各类开源AI项目】基于Ubuntu系统部署ComfyUI:功能最强大、模块化程度最高的Stable Diffusion图形用户界面和后台

目录 ComfyUI的特性介绍 开始安装 做点准备工作 在Conda虚拟环境中进行 依赖项的安装 运行 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 零基础玩转各类开源AI项目 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&…

2024年江苏省研究生数学建模竞赛B题人造革性能优化设计研究论文和代码

经过不懈的努力&#xff0c; 2024年江苏省研究生数学建模竞赛B题人造革性能优化设计研究论文和代码已完成&#xff0c;代码为C题全部问题的代码&#xff0c;论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解&#xff08;问题1模型的建立和求解、问题2模…