运维神器Ansible的常用模块

引言:话不多说,今天分享一下Ansible的常用模块,建议收藏哦

1、ping模块

ping模块可以进行主机连通性测试

命令格式

ansible 主机或主机组 -m ping
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

例,成功显示如下:

2、command 模块

command模块可以直接在远程主机上执行命令,并将结果返回本主机

命令格式

ansible 主机或主机组 -m command -a '命令'
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 例,成功显示如下:

需要注意的是:这里的命令模块,给定的命令它不会通过shell进行处理,比如$HOME和操作如"<",">","|",";","&" 工作都不支持

下面来看一看该模块下常用的几个命令:

chdir           # 在执行命令之前,先切换到该目录

executable         # 切换shell来执行命令,需要使用命令的绝对路径

free_form         # 要执行的Linux指令,一般使用Ansible的-a参数代替。

creates             # 一个文件名,当这个文件存在,则该命令不执行,可以用来做判断

removes             # 一个文件名,这个文件不存在,则该命令不执行

例1:

例2:

3、shell 模块

shell模块可以在远程主机上调用shell解释器运行命令,支持shell的各种功能

命令格式

ansible 主机或主机组 -m shell -a 'shell命令'
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

例:

4、copy模块

copy模块用于将文件复制到远程主机,同时支持给定内容生成文件和修改权限等

其相关选项如下:

src        #被复制到远程主机的本地文件。可以是绝对路径,也可以是相对路径。如果路径是一个目录,则会递归复制,用法类似于"rsync"

content      #用于替换"src",可以直接指定文件的值

dest         #必选项,将源文件复制到的远程主机的绝对路径

backup     #当文件内容发生改变后,在覆盖之前把源文件备份,备份文件包含时间信息

directory_mode    #递归设定目录的权限,默认为系统默认权限

force    #当目标主机包含该文件,但内容不同时,设为"yes",表示强制覆盖;设为"no",表示目标主机的目标位置不存在该文件才复制。默认为"yes"

others #所有的 file 模块中的选项可以在这里使用

用法例1:

 现在可以去看看我们的文件是否拷贝成功了

用法例2:

给定内容生成文件,并制定权限

现在可以去查看一下我们生成的文件内容及其权限:

5、file 模块

file 模块主要用于设置文件的属性,比如创建文件、创建链接文件、删除文件等

下面是一些常见的命令:

force     #需要在两种情况下强制创建软链接,一种是源文件不存在,但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no

group     #定义文件/目录的属组。后面可以加上

mode:定义文件/目录的权限

owner     #定义文件/目录的属主。后面必须跟上

path:定义文件/目录的路径

recurse  #递归设置文件的属性,只对目录有效,后面跟上

src:           #被链接的源文件路径,只应用于state=link的情况

dest        #被链接到的路径,只应用于state=link的情况

state状态,有以下选项:

directory:如果目录不存在,就创建目录 link:创建软链接 hard:创建硬链接 touch:如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间 absent:删除目录、文件或者取消链接文件

用法例1:

创建目录

我们可以查看一下:

用法例2:

创建链接文件

我们去/tmp目录下查看一下

6、fetch 模块

fetch 模块用于从远程某主机获取(复制)文件到本地

有两个选项:

dest:用来存放文件的目录

src:在远程拉取的文件,并且必须是一个file,不能是目录

用法举例:

7、cron 模块

cron 模块适用于管理cron计划任务的

其使用的语法跟我们的crontab文件中的语法一致,同时,可以指定以下选项:

day=      #日应该运行的工作( 1-31, , /2, )

hour=              # 小时 ( 0-23, , /2, )

minute=          #分钟( 0-59, , /2, )

month=            # 月( 1-12, *, /2, )

weekday=         # 周 ( 0-6 for Sunday-Saturday,, )

job=          #指明运行的命令是什么

name=      #定时任务描述

reboot              # 任务在重启时运行,不建议使用,建议使用special_time

special_time    #特殊的时间范围,参数:reboot(重启时),annually(每年),monthly(每月),weekly(每周),daily(每天),hourly(每小时)

state     #指定状态,present表示添加定时任务,也是默认设置,absent表示删除定时任务

user               # 以哪个用户的身份执行

用法举例:

添加计划任务

我们可以查看文件内容

8、yum 模块

yum 模块主要用于软件的安装‘’


选项如下:

name=              #所安装的包的名称

state=             #present--->安装, latest--->安装最新的, absent---> 卸载软件。

update_cache  #强制更新yum的缓存

conf_file        #指定远程yum安装时所依赖的配置文件(安装本地已有的包)。

disable_gpg_check  #是否禁止GPG checking,只用于presentor latest

disablerepo   #临时禁止使用yum库。 只用于安装或更新时。

enablerepo     #临时使用的yum库。只用于安装或更新时。

用法举例:

安装net-tools包

我们可以使用rpm -qa 查看一下

9、service 模块

service 模块用于服务程序的管理

主要选项如下:

arguments #命令行提供额外的参数

enabled #设置开机启动。

name= #服务名称

runlevel #开机启动的级别,一般不用指定。

sleep #在重启服务的过程中,是否等待。如在服务关闭以后等待2秒再启动。(定义在剧本中。)

state有四种状态,分别为:

started--->启动服务, stopped--->停止服务, restarted--->重启服务, reloaded--->重载配置

用法举例1:

开启服务并设置自启动

我们可以去查看一下端口是否打开:

用法举例2:

关闭服务

我们可以去查看一下端口是否被关闭:

10、user 模块

user 模块主要是用来管理用户账号。

主要选项如下:

comment  # 用户的描述信息

createhome  # 是否创建家目录

force    # 在使用state=absent时, 行为与userdel –force一致.

group    # 指定基本组

groups  # 指定附加组,如果指定为(groups=)表示删除所有组

home      # 指定用户家目录

move_home  # 如果设置为home=时, 试图将用户主目录移动到指定的目录

name      # 指定用户名

non_unique  # 该选项允许改变非唯一的用户ID值

password  # 指定用户密码,对密码加密可以使用python的crypt和passlib

remove  # 在使用state=absent时, 行为是与userdel –remove一致

shell    # 指定默认shell

state    # 设置帐号状态,不指定为创建,指定值为absent表示删除

system  # 当创建一个用户,设置这个用户是系统用户。这个设置不能更改现有用户

uid       # 指定用户的uid

用法举例:

添加一个用户并指定其 uid

我们可以查看一下zaotounan用户

11、group 模块

group 模块主要用于添加或删除组

常用的选项如下:

gid=  #设置组的GID号

name=  #指定组的名称

state=  #指定组的状态,默认为创建,设置值为

absent  #删除

system=  #设置值为yes,表示创建为系统组

用法举例:

创建组并指定gid号

创建过后,我们来查看一下:

累了,下期在更新!!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java并发面试题

目录 一.线程基础 1.线程和进程的区别 2.并行和并发的区别 3.创建线程的方式 4.线程包括哪些状态,状态之间如何变化 5.如何保证线程间按顺序执行 6.notify()和notifyAll()的区别 7.java中wait和sleep方法的区别 8.如何停止正在运行的线程 二.线程安全 1.synchronized…

springboot121编程训练系统设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的编程训练系统设计与实现 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四…

liunx服务异常分析

systemd-journald 服务分析系统日志 实验环境&#xff1a;本地 Centos 7 请勿在 vps 服务器上操作&#xff01;&#xff01;&#xff01; 1 systemd-journald 介绍 systemd-journald 是一个收集并存储各类日志数据的系统服务。 它创建并维护一个带有索引的、 结构化的日志数据…

浅谈WPF之UI布局

一个成功的软件&#xff0c;离不开人性化的UI设计&#xff0c;如何抓住用户第一视觉&#xff0c;让用户产生依赖感&#xff0c;合适优雅的布局必不可少。本文以一些简单的小例子&#xff0c;简述WPF中布局 面板 控件的使用&#xff0c;仅供学习分享使用&#xff0c;如有不足之处…

学习笔记-李沐动手学深度学习(二)(08-09、线性回归、优化算法、Softmax回归、损失函数、图片分类)

总结 以_结尾的方法&#xff0c;好像是原位替换&#xff08;即 原地修改&#xff0c;就地修改变量&#xff09;如 fill_() 感恩的心&#xff1a;&#xff08;沐神的直播环境&#xff09; 08-线性回归基础优化算法 引言&#xff08;如何在美国买房&#xff09; 根据现在行…

51单片机ESP8266

一、MQTT透传AT固件 安信可提供的烧录WiFi固件工具&#xff1a; 链接: https://docs.ai-thinker.com/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B72 安信可提供的固件库链接: https://docs.ai-thinker.com/%E5%9B%BA%E4%BB%B6%E6%B1%87%E6%80%BB 经过测试&#xff0c;选择这个不可以…

LeetCode刷题---删除排序链表中的重复元素 II

解题思路: 1.首先定义虚拟节点dummy,dummy的下一个节点指向head节点。 2.定义辅助节点cur指向dummy节点 3.开始遍历链表&#xff0c;如果当前节点cur的下一个节点和下下一个节点都不为空的情况下&#xff0c;对cur的下一个节点和下下一个节点的值进行判断。 4.如果当前节点cur的…

Python基础第九篇(Python可视化的开发)

文章目录 一、json数据格式&#xff08;1&#xff09;.转换案例代码&#xff08;2&#xff09;.读出结果 二、pyecharts模块介绍三、pyecharts模块入门&#xff08;1&#xff09;.pyecharts模块安装&#xff08;2&#xff09;.pyecharts模块操作&#xff08;1&#xff09;.代码…

洛谷刷题-【入门2】分支结构

目录 1.苹果和虫子 题目描述 输入格式 输出格式 输入输出样例 2.数的性质 题目描述 输入格式 输出格式 输入输出样例 3.闰年判断 题目描述 输入格式 输出格式 输入输出样例 4.apples 题目描述 输入格式 输出格式 输入输出样例 5.洛谷团队系统 题目描述 …

什么是信号抖动

对于抖动&#xff0c;有一个简单而直观的定义&#xff1a; “Jitter is defined as the short-term variations of a digital signal’s significant instants from their ideal positions in time.” 翻译过来&#xff0c;就是&#xff1a; “抖动被定义为一个数字信号的重要时…

Duplicate keys detected: ‘41172‘. This may cause an update error.

在写项目的过程中&#xff0c;遇到了 Duplicate keys detected: 41172. This may cause an update error. 这个错误具体错误信息如下&#xff1a; 原因&#xff1a;v-for 循环时&#xff0c;用了重复的key值 解决方案&#xff1a; 1、单个v-for循环&#xff0c;选择id或其他唯一…

【C++杂货铺】快速学会命名空间

目录 &#x1f308;前言 &#x1f4c1; 命名空间的定义 &#x1f4c1; 命名空间的使用 ● 加命名空间名称及作用域限定符 ● 使用using将命名空间中某个成员引入 ● 使用using namespace 命名空间名称 引入 &#x1f4c1; C输入 和 输出 &#x1f4c1; 总结 &#x1f3…

微信小程序首页、界面布局、功能简洁(示例三)

微信小程序首页界面布局、页面简洁&#xff0c;功能简单 直接上具体代码&#xff1a; 1、js代码 Page({/*** 页面的初始数据*/data: {imgList: [../../images/demo.jpg, ../../images/demo.jpg, ../../images/demo.jpg],navList: [{src: ../../images/nav1.png,title: 菜单一}…

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第 2章感知机

文章目录 第 2章感知机2.1 感知机模型2.2 感知机学习策略2.2.1 数据集的线性可分性2.2.2 感知机学习策略 2.3 感知机学习算法2.3.1 感知机学习算法的原始形式2.3.2 算法的收敛性2.3.3 感知机学习算法的对偶形式 实践&#xff1a;二分类模型&#xff08;iris数据集&#xff09;数…

【机器学习300问】17、什么是欠拟合和过拟合?怎么解决欠拟合与过拟合?

一个问题出现了&#xff0c;我们首先要描述这个问题&#xff0c;然后分析问题出现的原因&#xff0c;找到原因后提出解决方案。废话不多说&#xff0c;直接上定义&#xff0c;然后通过回归和分类任务的例子来做解释。 一、什么是欠拟合和过拟合&#xff1f; &#xff08;1&am…

微信小程序之全局配置-window和tabBar

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

日常修复msvcp140.dll丢失的解决方法,msvcp140.dll文件的影响

msvcp140.dll文件是Microsoft Visual C Redistributable包的一部分&#xff0c;它在Windows系统中发挥着重要作用。当出现msvcp140.dll丢失的情况时&#xff0c;这意味着操作系统或应用程序无法找到该文件&#xff0c;可能会导致应用程序无法启动、错误提示等问题。幸运的是&am…

【漏洞复现】Atlassian Confluence远程代码执行漏洞(CVE-2023-22527)

文章目录 前言声明一、Atlassian Confluence简介二、漏洞描述三、影响版本四、漏洞复现五、整改意见 前言 Atlassian Confluence是澳大利亚Atlassian公司的一套专业的企业知识管理与协同软件&#xff0c;也可以用于构建企业WiKi。 声明 请勿利用文章内的相关技术从事非法测试…

knife4j调用接口报404

问题 Knife4j文档请求异常&#xff0c;请求资源的接口都是404 解决方法 就是请求路径出错了&#xff0c;我一开始还以为是拦截器拦截了来自knife4j发来的请求。。。

C++后端开发之Sylar学习一:配置环境

Sylar学习一&#xff1a;配置环境 安装虚拟机 我安装的是Ubuntu 20.04&#xff0c;分配了60G的SSD容量&#xff0c;8G的内存 配置Ubuntu 修改软件源 切换到管理员账户进入到/etc/apt目录 /etc/apt 目录是 Ubuntu 系统中存储与包管理系统 APT (Advanced Package Tool) 相关…