ansible--ad-hoc第一篇

ansible常见模块的使用

级别:简单 建议:练习五次以上
准备工作:安装ansible的centos、远程服务器(用于测试);
熟练使用ad-hoc的语法格式;
建议在xshell上做;
精通Linux常用操作命令。

一、command模块
功能:在远程主机执行命令,此模块为默认模块
常用参数:
chdir ##执行命令前先进入到指定目录
cmd ##运行命令指定
creates ##如果文件存在将不运行
removes ##如果文件存在将运行
free_form ##在远程主机中执行的命令,此参数不需要加
举例
ansible test -m command -a “chdir=/etc cat passwd”
实验步骤:
1、在testserver服务器上,创建一个文件路径/etc/名字首字母+学号后四位/ 的这样的路径。
2、在这个路径下创建一个文本(limy),并且写入“I am very good”
如下图:在这里插入图片描述
3、使用ansible主机控制并远程读取testserver服务器上的内容。
ansible all -m command -a “chdir=/etc/limy1110 cat limy”
在这里插入图片描述
实验结论:我在130服务器上写入了,这时候控制test组并发指令会得到130服务器的返回值,在131服务器上没有写入,这时候131服务器上就不会有返回的数值。

在远程服务器上创建一个文件。
1、要求:在130服务器/etc/limy1110/ 目录上创建一个文件并命名为123.
ansible 192.168.207.130 -m command -a “chdir=/etc/limy1110 mkdir 123”
在这里插入图片描述
二、shell模块
功能: 和command功能类似

常用参数
chdir ##执行命令前先进入到指定目录
cmd ##运行命令指定
creates ##如果文件存在将不运行
removes ##如果文件存在在将运行
free_form ##在远程主机中执行的命令,此参数不需要加
executable ##指定执行环境,默认为sh(比command多的参数)

举例
ansible test -m shell -a “executable=sh ps ax | grep $$ " -k
1、在两台远程主机130、131上创建一个文件/etc/limy1110/sekiro。
在这里插入图片描述
在操作的结果中有一台服务器错误,有一台服务器正确。
在这里插入图片描述
三、copy模块
功能:从ansible主机复制到远程受控主机。
src ##源文件地址
dest ##目的地文件地址
owner ##指定目的地文件所有人
group ##指定目的地文件所有组
mode ##指定目的地文件权限
backup=yes ##当受控主机中存在文件时备份原文件(传送的文件名字和已有文件名字冲突时)
content ##指定文本内容直接在受控主机中生成文件
实验步骤:
1、在ansible主机创建一个目录/etc/limy1110/sekiro
2、在这个目录下创建一个文件并取名为123.doc
3、在123.doc里面写入“today is good day,i am very cool”
如下图:
在这里插入图片描述
将这个123.doc拷贝到远程主机130和131
先验证130和130没有这个文件
在这里插入图片描述
在这个数据里面可以看到,我们在/etc/limy1110/sekiro里面是没有任何文件的。
在这里插入图片描述
上面的状态是changed这个时候只需将刚才的命令再运行一下。
在这里插入图片描述
就会看到黄色的变为了绿色,状态也是从changed变为了success
这个时候就执行成功了。
3、现在再来验证一下看看是否成功。
在这里插入图片描述
可以清晰的看见,在/etc/limy1110/sekiro目录下已有这个123.doc这个文件。
而且可以看到所属者的权限是6,所属组的权限是4,其他人的权限也是4。那么我们来改变一下。
ansible test -m copy -a “src=/etc/limy1110/sekiro/123.doc dest=/etc/limy1110/sekiro owner=limy mode=760”
在这里插入图片描述
接下来同学将你们创建好的文件也拷贝到自己的远程主机,将所属者改为你们登录的那个账户,所属组改为root,所属者权限改为读写执行,所属组的权限读写,其他人的权限为读。
四、fetch模块
功能:从受控主机把文件复制到ansible主机,但是不支持目录。
这里就和我的copy有点相反的意思了。
常用的参数:
src #指的是受控主机的源文件
dest #本机目录
flat ##可以直接拷贝文件,忽略文件的上层目录
实验步骤:
1、将130服务器上123.doc文件复制到本地主机的/etc/abc目录
2、在ansible服务器上创建一个本地目录abc。如下图
在这里插入图片描述
表示目录已经创建好。
3、现在将130主机的文件拷贝到ansible主机
在这里插入图片描述
执行完两次后从changed变为success及完成。
我们可以回到ansible主机进行验证操作。
在这里插入图片描述
文件还是那个文件。
本次实验就到这里了,同学们要多练习这几个模块。command、shell、copy、fatch,勤加练习,方得始终。
祝大家学习愉快,感谢CSDN平台

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李茂茂茂茂茂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值