file 关闭_ansible(copy,file,fetch,archive,yum,service,cron)

ansible重要必须掌握的模块说明

文件类型的模块:

copy --- 复制文件到远程主机上(管理主机 -- 被管理主机上) (推,上传)

参数

·src:指定将本地什么数据信息进行复制

·dest:指定复制的数据保存的路径信息

实践操作01:完成基本远程复制操作

00ae1300301fe5fc483eec0b3798ef36.png

mode: 数据被复制之后,修改文件权限属性信息

mode=600

owner:设置文件属主信息

group:设置文件属组信息

时间操作02:完成复制文件,并且修改文件权限属性信息(属主 属组 权限)

98a3e89bb70e121dfeea8a8786ef0f17.png

356c49d8b76733905a23036b5533ec53.png

backup: 复制备份 backup=yes

时间操作03:开启复制备份功能

c02ec1cca8ecf6f98e89777517ade95d.png
现在本地管理机nfs02上vim /etc/mmp.txt内容为oldboy,然后再用ansible 发送给其他服务器

baec9a652692ba8881b91deeffdc4402.png

6f60f0518980dff99b29d1a3cb33f39e.png

4fe464db17eb734cfd36a85354873eed.png
我们利用backup模块的目的是在我们用主机更改文件内容的时候,发布给下面所有机器,一旦出现问题,我们还有其余备份可以还原,但是backup备份后他会出现随机的号码,时间上面也不同步所以,为了今后还原资料,尽量不要用backup

remote_src:指定使用源信息是什么

如果参数设置为no: remote_src=no 表示src路径数据信息从管理主机进行获取

如果参数设置为yes: remote_src=yes 表示src路径数据信息从被管理主机进行获取

f21dca3e2216c829d6b577c28efc9ba3.png
加上remote_src=yes

a30b193992da68915413c94f26b0bfaa.png
这样就可以把被管理主机上的文件进行备份,方便后期还原。还原操作: ansible all -m copy -a "src=/ceshi/mmp.txt_bak dest=/ceshi/mmp.txt mode=644 owner=oldboy group=oldboy remote_src=yes"

content:批量再远程主机直接创建文件,并再文件中写入简单的信息(太多的信息是生成不了的 )

实践操作:

42504dc24981e64f8a2e544e8a3a921b.png
content=123456987654 可以实现多行内容信息创建

53ef9db95403cdb0943b5cefe725f81b.png

fetch --- 复制文件从远程主机到本地管理主机上 (拉,下载)

src:指定将远程主机上的什么数据信息进行拉取

dest:指定将远程主机上的数据信息拉取保存到本地

——————————————————————————————————————

file: 设置文件属性信息/进行文件 目录 连接文件创建

参数

src:源文件

path (以前叫dest可以混合使用):指定要修改属性信息的数据信息;指定要创建数据的路径信息。

mode: 表示修改文件目录权限信息。

owner:修改数据属主信息

group:修改数据属组信息

实践操作

ansible all -m file -a "dest=/ceshi/mmp.txt mode=600 owner=root group=root"

de47341a9422800b68a0a57212d6c6d2.png

431ab17d9a114d527b67a51052ef9645.png

以上是修改文件,也可以对目录进行修改,但是修改目录后,不会递归修改目录下文件进行修改

recurse:recurse=yes:可以对目录下的东西进行递归修改

ansible all -m file -a "dest=/ceshi/shenfan mode=600 owner=oldboy group=oldboy recurse=yes"

fdc387780c744f76283bc3b53532b384.png

9ceb7566ab82bcc8b3e654410cb8ec9f.png

7a21f3fb0157a3217ad1b59e5d956ecb.png

state:实现再远程主机上 批量创建数据信息(以下几种情况组合使用)

file:默认用于检测文件是否存在

touch:用于创建普通文件

directory:用于创建目录文件

link :创建软连接

hard:创建硬链接

absent:删除数据

实践操作02:创建空文件 空目录 链接文件的方法

创建文件:state=touch

ansible all -m file -a "dest=/ceshi/Sf.txt state=touch "

634be01a13967d935518bf80581f3b36.png

b4b83ddfa3232952c44d745e5cc1e2ef.png

创建目录:state=directory

ansible all -m file -a "dest=/ceshi/Sf.d state=directory "

08a94d5bd6bf18787f244382880e92ba.png

b452bb1b3e8f73abb763b729eff522e5.png

创建文件硬链接:state=hard

ansible all -m file -a "src=/crshi/mmp.txt dest=/ceshi/mmp.txt_hard.link state=hard "

7211b3124d1a4a52966ec44501ce2a1b.png

19df458b3630e8ccc3c97df00e4e708f.png

创建软连接:state=link

ansible all -m file -a "src=/ceshi/mmp.txt dest=/ceshi/mmp.txt_soft.link state=link "

dd6c06e3c03a58ae0ace30c98d2dbe13.png

d52fd9adc89cbf5bac67a4dd7b72909e.png

删除数据:state=absent(默认就是递归删除)

668c762714dfe883e6784352863b4f6a.png

c067560afb32336cc0b0c048960791f6.png

archive :对文件或者目录数据信息进行压缩处理

参数

path:将什么数据信息进行压缩处理

dest:将压缩完后的数据包保存在什么路径中

format:表示压缩成什么类型的压缩包(bz2,gz* tar xz zip)

exclude_path:派出指定输出信息不会被压缩处理

remove=yes/no:

实践操作(未解决的)


总结:file类型重要模块

copy, fetch ,file, archive ,unarchive ,template

——————————————————————————————————————

yum:下载软件的模块

参数

name:制定下载软件的名称信息

state:指定是否下载 卸载

installed ; present ; latest :下载安装

absent ; removed :软件卸载

实践操作:下载/卸载安装软件

1b097a580b9c74ec45324fef04160a8f.png

7f1dcdc6cab9db8885a6a88d06ee5f65.png

下载软件

cb7e329d7424dded46a413066df78e10.png

ba74a132565427cc3783195f6d1d48e6.png

注意:yum模块安装过一次之后再次安装,会变成绿色提示,但是不会重新安装,shell模块就会重新安装。用shell安装现在看不出什么问题,但是以后剧本理由判断就会出错!

——————————————————————————————————————

ping :用于测试管理端到被管理端连通性模块

e4002b6059ed9683c22302e031f71d61.png

——————————————————————————————————————

service : 管理服务启动/停止/重启 ; 管理服务是否开机自动运行或者关闭

参数

name : 定义服务名称

enabled=no/yes :控制服务是否开机自启动

state : 服务启动状态。 =reloaded :平滑重启; = restarted:重启 ; =started:启动; =stopped:停止。

——————————————————————————————————————

cron:批量设置定时任务

时间信息参数:

minute: 分 0-59

hour: 时 0-23

day: 日 1-31

month:月 1-12

weekday: 周 0-6

任务信息定义

job : 定义执行的定时任务信息

name:定义定时任务的注释信息,注释信息相同的定时任务不会重复设置

拓展参数信息

state:定义向应定时任务是否删除

=absent:表示删除

=present 表示创建

disabled:定义相应定时任务是否注释

yes:注释定时任务

no:取消注释

实践操作:编写定时任务 (每天凌晨两点二十分 执行一个脚本)

ansible 172.16.1.71 -m cron -a "minute= hour=* day= month= weekday=* job='/bin/sh /server/scripts/dingshi.sh"

ansible 172.16.1.71 -m cron -a "minute=20 hour=02 day=* month=* weekday=* job='/bin/sh /server/scripts/dingshi.sh"

以上设置方式会出现重复的定时任务可以crontab -l查看

加上name就可以解决以上问题,相当于给定时任务起一个特殊的名字,这样就不会重复启动。

ansible 172.16.1.71 -m cron -a "name='oldboy-01' minute=20 hour=02 day=* month=* weekday=* job='/bin/sh /server/scripts/dingshi.sh"

定时任务设置名称效果总结

1:没有任务名称 定时任务相同,会再相应任务上添加名称注释信息

2:任务名称相同 定时任务相同,不会重复创建定时任务

3:任务名称相同,定时任务不同,会对原有名称定时任务进行修改

实践操作:删除定时任务

ansible 172.16.1.71 -m cron -a "name='oldboy-01' state=absent"

根据服务名称进行删除即可


mount:挂载

path:定义挂载点信息

src:要被挂载的设备信息

fstype:指定挂载的文件系统信息

state:指定挂载操作方式

mounted present:挂载

unmounted absent:卸载

实践操作:

挂载:

showmount -e 先检查

ansible all -m mount -a "src=172.16.1.31:/data path=/mnt fstype=nfs state=mounted"

利用mounted挂载参数,即完成了设备挂载操作,有修改了/etc/fstab

文件信息。

卸载:ansible all -m monut -a "path=/mnt state=unmounted"

卸载,但是并不会改变/etc/fstab里面的文件信息

present挂载

ansible all -m mount -a "src=172.16.1.31:/data path=/mnt fstype=nfs state=present"

指挥修改etc/fstab下的文件信息,不会直接挂载

卸载:ansible all -m monut -a "path=/mnt state=absent"

既卸载了挂载点,也会修改etc/fstab里的文件内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值