Ansible常用模块

news2025/1/12 2:42:27

ping模块

验证主机的连通性

[root@monster1 ~]# ansible all -m ping
192.168.71.131 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
[root@monster1 ~]# 

shell模块

执行shell命令

[root@monster1 ~]# ansible all -m shell -a 'df -h'
192.168.71.131 | CHANGED | rc=0 >>
Filesystem                  Size  Used Avail Use% Mounted on
devtmpfs                    716M     0  716M   0% /dev
tmpfs                       730M     0  730M   0% /dev/shm
tmpfs                       730M  8.7M  722M   2% /run
tmpfs                       730M     0  730M   0% /sys/fs/cgroup
/dev/mapper/cl_fedora-root   17G  2.2G   15G  14% /
/dev/nvme0n1p2             1014M  155M  860M  16% /boot
/dev/nvme0n1p1              599M  9.0M  590M   2% /boot/efi
tmpfs                       146M     0  146M   0% /run/user/0

[root@monster1 ~]# 

command模块

此模块是默认模块,不指定模块默认使用此模块,只能执行些简单命令,不支持特殊符号

[root@monster1 ~]# ansible all -a 'hostname'
192.168.71.131 | CHANGED | rc=0 >>
monster2

[root@monster1 ~]# 

script模块

执行分发脚本,如下创建了个docker安装redis以及启动redis容器并显示正在运行的容器,再通过ansible分发给所有主机执行。

[root@monster1 ~]# cat redis.sh 
docker pull redis
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -d redis redis-server
docker ps
[root@monster1 ~]# ansible all -m script -a 'redis.sh'

安装过程的信息太多只截最后面的信息了

在这里插入图片描述

file模块

用来创建目录、文件、软连接
path 路径
src 源
state 状态(directory创建目录、file默认状态,修改文件内容,如果文件不存在不会创建文件、touch创建文件、link软连接)

[root@monster1 ~]# ansible all -m file -a 'path=data/file state=directory'
192.168.71.131 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "gid": 0, 
    "group": "root", 
    "mode": "0755", 
    "owner": "root", 
    "path": "data/file", 
    "secontext": "unconfined_u:object_r:admin_home_t:s0", 
    "size": 6, 
    "state": "directory", 
    "uid": 0
}
[root@monster1 ~]# ansible all -m file -a 'path=data/file/file.log state=touch'
192.168.71.131 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "dest": "data/file/file.log", 
    "gid": 0, 
    "group": "root", 
    "mode": "0644", 
    "owner": "root", 
    "secontext": "unconfined_u:object_r:admin_home_t:s0", 
    "size": 0, 
    "state": "file", 
    "uid": 0
}
[root@monster1 ~]# ansible all -m file -a 'src=~/data/file path=/file state=link'
192.168.71.131 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "dest": "/file", 
    "gid": 0, 
    "group": "root", 
    "mode": "0777", 
    "owner": "root", 
    "secontext": "unconfined_u:object_r:root_t:s0", 
    "size": 15, 
    "src": "/root/data/file", 
    "state": "link", 
    "uid": 0
}
[root@monster1 ~]# 

copy模块

复制文件到其它服务器节点,注意斜杠的区别,/data/copy是copy整个目录本身包括里面的文件,/data/copy/是只复制copy里面的文件。
src 源
dest 目标
backup 覆盖前备份,backup=yes
owner 修改所有者
group 修改用户组
mode 权限

[root@monster1 ~]# ansible all -m copy -a 'src=/data/copy dest=/data/'
192.168.71.131 | CHANGED => {
    "changed": true, 
    "dest": "/data/", 
    "src": "/data/copy"
}
[root@monster1 ~]# ansible all -m copy -a 'src=/data/copy dest=/data/ backup=yes owner=monster group=monster mode=777'
192.168.71.131 | CHANGED => {
    "changed": true, 
    "dest": "/data/", 
    "src": "/data/copy"
}
[root@monster1 ~]# 

在这里插入图片描述

systemd模块

管理开机自不自启,服务开启关闭重启指令
name 服务名称
enable 开机自启enable=yes
state 服务状态,started开启、stopped关闭、restarted重启、reloaded重载配置
daemon_reload 重新加载systelctl配置,daemon_reload=yes


[root@monster1 copy]# ansible all -m systemd -a 'name=firewalld state=stopped'
192.168.71.131 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "name": "firewalld", 
    "state": "stopped", 
    "status": {
        "ActiveEnterTimestamp": "Fri 2022-12-23 02:24:01 EST", 
        "ActiveEnterTimestampMonotonic": "90582071019", 
        "ActiveExitTimestamp": "Thu 2022-12-22 01:15:40 EST", 
        "ActiveExitTimestampMonotonic": "80805568", 
        "ActiveState": "active", 
        .......

yum模块

name 软件包名字
state installed安装,removed删除,latest安装或更新

root@monster1 ~]# ansible all -m yum -a 'name=nginx state=installed'
192.168.71.131 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "changes": {
        "installed": [
            "nginx"
        ]
    }, 
    "msg": "Warning: RPMDB altered outside of yum.\n", 
    "rc": 0, 
    "results": [
        "Loaded plugins: fastestmirror\nLoading mirror speeds from cached hostfile\n * base: ftp.yz.yamagata-u.ac.jp\n * epel: hkg.mirror.rackspace.com\n * extras: ftp.yz.yamagata-u.ac.jp\n * updates: ftp.yz.yamagata-u.ac.jp\nResolving Dependencies\n--> Running transaction check\n---> Package nginx.aarch64 1:1.22.1-1.el7.ngx will be installed\n--> Processing Dependency: libpcre2-8.so.0()(64bit) for package: 1:nginx-1.22.1-1.el7.ngx.aarch64\n--> Running transaction check\n---> Package pcre2.aarch64 0:10.23-2.el7 will be installed\n--> Finished Dependency Resolution\n\nDependencies Resolved\n\n================================================================================\n Package     Arch          Version                     Repository          Size\n================================================================================\nInstalling:\n nginx       aarch64       1:1.22.1-1.el7.ngx          nginx-stable       736 k\nInstalling for dependencies:\n pcre2       aarch64       10.23-2.el7                 base               179 k\n\nTransaction Summary\n================================================================================\nInstall  1 Package (+1 Dependent package)\n\nTotal size: 915 k\nInstalled size: 3.3 M\nDownloading packages:\nRunning transaction check\nRunning transaction test\nTransaction test succeeded\nRunning transaction\n  Installing : pcre2-10.23-2.el7.aarch64                                    1/2 \n  Installing : 1:nginx-1.22.1-1.el7.ngx.aarch64                             2/2 \n----------------------------------------------------------------------\n\nThanks for using nginx!\n\nPlease find the official documentation for nginx here:\n* https://nginx.org/en/docs/\n\nPlease subscribe to nginx-announce mailing list to get\nthe most important news about nginx:\n* https://nginx.org/en/support.html\n\nCommercial subscriptions for nginx are available on:\n* https://nginx.com/products/\n\n----------------------------------------------------------------------\n  Verifying  : pcre2-10.23-2.el7.aarch64                                    1/2 \n  Verifying  : 1:nginx-1.22.1-1.el7.ngx.aarch64                             2/2 \n\nInstalled:\n  nginx.aarch64 1:1.22.1-1.el7.ngx                                              \n\nDependency Installed:\n  pcre2.aarch64 0:10.23-2.el7                                                   \n\nComplete!\n"
    ]
}
[root@monster1 ~]# 

yum_repository源模块

name yum源名字
description 注释信息
baseurl 下载地址
enabled 是否启动源,yes/no
gpgcheck 是否启动gpgcheck,yes/no
file yum源的文件名

[root@monster1 ~]# ansible all -m yum_repository -a 'name=nginx-stable description="注释信息----可有可无" baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ enabled=yes gpgcheck=no file=nginx'
192.168.71.131 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "repo": "nginx-stable", 
    "state": "present"
}
[root@monster1 ~]# 

在这里插入图片描述

get_url模块

下载文件
url 下载链接地址
dest 下载到哪个目录

[root@monster1 ~]# ansible all -m get_url -a 'dest=/data url=https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-14.noarch.rpm'
192.168.71.131 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "checksum_dest": null, 
    "checksum_src": "772e0dbc7c1690a950cd733901097cdeabd8dc09", 
    "dest": "/data/epel-release-7-14.noarch.rpm", 
    "elapsed": 1, 
    "gid": 0, 
    "group": "root", 
    "md5sum": "966ae7fbf5106958334a7ec9a8c22ba4", 
    "mode": "0644", 
    "msg": "OK (15608 bytes)", 
    "owner": "root", 
    "secontext": "system_u:object_r:default_t:s0", 
    "size": 15608, 
    "src": "/root/.ansible/tmp/ansible-tmp-1671853530.03-21495152662750/tmpzt6pvM", 
    "state": "file", 
    "status_code": 200, 
    "uid": 0, 
    "url": "https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-14.noarch.rpm"
}
[root@monster1 ~]# 

cron模块

name 注释
minute 分钟
hour 小时
day 天
month 月
week 周
job 指定命令或脚本
state present 添加任务,absent删除任务

[root@monster1 ~]# ansible all -m cron -a 'name=alltime minute=*/2 job="/sbin/ntpdate ntp1.aliyun.com &>dev/null" state=present'
192.168.71.131 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "envs": [], 
    "jobs": [
        "alltime"
    ]
}
[root@monster1 ~]# 

在这里插入图片描述

group模块

name 组名字
gid 组gid
state present添加,absent删除

[root@monster1 ~]# ansible all -m group -a 'name=monster gid=1888 state=present'
192.168.71.131 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "gid": 1888, 
    "name": "monster", 
    "state": "present", 
    "system": false
}
[root@monster1 ~]# 

user模块

name 用户名
uid 指定id
group 指定组
gourps 指定多个组
shell 指定命令
create_home 创建家目录
state present添加,absent删除

[root@monster1 ~]# ansible all -m user -a 'name=monster group=monster uid=1888 create_home=no shell=/sbin/nologin state=present'
192.168.71.131 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "append": false, 
    "changed": true, 
    "comment": "", 
    "group": 1888, 
    "home": "/home/monster", 
    "move_home": false, 
    "name": "monster", 
    "shell": "/sbin/nologin", 
    "state": "present", 
    "uid": 1888
}
[root@monster1 ~]# 

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

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

相关文章

Java中mongodb指定DB通过aggregate聚合查询操作示例

目录 前言: 应用场景: 命令描述:​ 代码示例: 聚会查询: 数量查询: 前言: 大家都知道,mongodb是一个非关系型数据库,也就是说,mongodb数据库中的每张表…

node-express学习总结

项目搭建 1. 使用express提供的框架构建(不需要) 2. 从零开始(推荐)安装 初始化项目 npm init -y安装express npm install express1.express的基本使用 创建js文件 const express require(express) // 1,创建服…

SSL/TLS类安全漏洞及SLB安全漏洞问题

SSL/TLS类安全漏洞及SLB安全漏洞问题1 : 问题背景1.1、SSL/TLS类漏洞-Sweet32 攻击1.2、SSL/TLS类漏洞-弱密码套件2 : 解决思路2.1、学习SSL/TLS是什么2.2、安装检测工具2.3、升级OpenSSL2.4、调整加密算法3 : 总结3.1、比较环境的不同3.2、解决该问题3.3、相关资源1 : 问题背景…

创建进程与进程地址空间

目录 创建进程 进程地址空间 为什么要用虚拟地址呢? 什么是进程地址空间? 为什么要写时拷贝呢? 创建进程 前面提到使用fork可以创建子进程,现在介绍fork创建子进程的细节。 fork创建子进程的时候,子进程的内核数…

如何给公司内网搭建一个专用的DNS服务器?

如何给公司内网搭建一个专用的DNS服务器? 引言 平时做域名解析,一般直接修改的/etc/hosts文件。对于服务器数量小的情况完全可以,但是如果服务器数量较多,每个都修改比较麻烦。 DNS是作为域名解析。在实际的生产过程中&#xff…

基于ASP.NET C#的服装商城管理系统

摘 要 本毕业设计的内容是设计并且实现一个基于net语言的服装商城管理系统。它是在Windows下,以SQL Server为数据库开发平台,服装商城管理系统的功能已基本实现,主要包括用户、服装信息、通知公告、留言板、订单信息等。 论文主要从系统的分…

飞腾FT-2000/4处理器+复旦微FPGA+国产操作系统解决方案(2)

XM-1104飞腾核心处理主板 ▶体积小、功耗低、高性能。 ▶功能接口多样化,采用高密度连接器,抗震效果好。 ▶成本低,扩展性强,根据用户的需求定制各种底板。 ▶产品灵活,便于维护,生命周期长。 指标 参数 …

SuperMap GIS地质体数据处理QA

作者:hyy 一、地质体数据简介 什么是三维地质建模?百度上给出的解析是:将地质、测井、地球物理资料和各种解释结果或者概念模型综合在一起生成的三维定量随机模型。 已建成的地质模型可以为我们提供很多信息。首先是地质的三维可视化。通过三维可视化&…

量子计算机:一场改变世界的开发竞赛

这样的设备可能会帮助解决气候变化和粮食短缺问题,也可能破坏互联网。在这场竞赛中,美国和中国谁会先到达目标? 神秘的机器 在加利福尼亚州圣巴巴拉的郊区,在果园和大海之间,坐落着一个不起眼的仓库,它的窗…

【区块链 | EVM】深入理解学习EVM - 深入Solidity数据存储位置

目录 目录 简介 EVM是一个工业工厂 为什么要在 Solidity 中理解 Evm 数据位置? 数据位置 → 概述 存储 内存 Calldata 堆栈(Stack) 代码 数据位置 - 规则 变量的默认位置 参考类型 在函数参数上的规则 在函数体内的规则 内存…

使用 QuTrunk+Amazon ParallelCluster3 进行并行计算

1.丘秉宜;2.邵伟;3.黄文;4.郭梦杰;5.刘利;6.刘波 1.亚马逊云科技 Hero;2.启科开发者生态负责人;3.启科 DEVOPS 工程师;4.启科量子资深研发工程师;5和;6.C高级…

Linux运维之knockd部署

如果你有一台公众可访问的服务器,黑客可以轻松扫描其IP地址,查找服务器上的开放端口(尤其是用于SSH的端口22)。将服务器隐藏起来、不让黑客看见的一种方法是使用knockd。knockd是一种端口试探服务器工具。它侦听以太网或其他可用接口上的所有流量&#x…

以代码绘制圣诞,过快乐圣诞节!

2022年圣诞节 12月25日 星期日 圣诞节的由来 基督教纪念耶稣诞生的重要节日。亦称耶稣圣诞节、主降生节,天主教亦称耶稣圣诞瞻礼。耶稣诞生的日期,《圣经》并无记载。公元336年罗马教会开始在12月25日过此节。12月25日原是罗马帝国规定的太阳神诞辰。有人…

百度百科怎么创建的?百度百科创建技巧分享

百度百科的创建并没有那么简单,虽然百度百科人人都可以编辑,我们在网上一搜就会出来很多相关的百科创建步骤,但是当你真的按照这些步骤去做的时候,就会出现很多问题,导致根本通不过。 百度百科怎么创建的?实…

ArcGIS基础实验操作100例--实验2平移矢量要素

实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 基础编辑篇--实验2 平移矢量要素 目录 一、实验背景 二、实验数据 三、实验步骤 (1)加载【Move】工具 (2)平移矢量要素 一、…

rocketmq搭建启动集成springboot落地并监控

目录 一、rocketmq服务器搭建启动: 二、springboot 集成rocketmq落地: 三、可视化页面集成: rocketmq是最近很流行的消息中间件,有很多的优点,比如多个topic也不会引起性能问题;今天我们开始搭建启动集成…

这5个素材库,新手也能让你做出精美的 PPT。

高质量免费PPT模板,各种PPT素材都有,文案模板直接套用,还有教程学习,对新手特别友好。1、菜鸟图库 https://www.sucai999.com/pptx.html?vNTYwNDUx网站有各种主题的PPT模板,工作总结、教育课件、述职汇报、节日庆典、…

美颜sdk中的人脸美型实现流程详解

在之前的文章中,小编讲了许多美颜sdk的功能实现流程,有一些是热门功能,例如美白、磨皮等,但是有一个功能小编遗漏没有讲到,虽然不常提起,但是它的热度并不低,这个功能就是——“人脸美型”。本篇…

一文解析Linux中断子系统softirq和tasklet

说明: Kernel版本:4.14ARM64处理器,Contex-A53,双核使用工具:Source Insight 3.5, Visio 1. 概述 中断子系统中有一个重要的设计机制,那就是Top-half和Bottom-half,将紧急的工作放…

电子招标采购系统—企业战略布局下的采购寻源

​ 智慧寻源 多策略、多场景寻源,多种看板让寻源过程全程可监控,根据不同采购场景,采取不同寻源策略, 实现采购寻源线上化管控;同时支持公域和私域寻源。 询价比价 全程线上询比价,信息公开透明&#xff0c…