自动化运维工具——ansible详解(一) (5)

force  #需要在两种情况下强制创建软链接,一种是源文件不存在,但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no
group  #定义文件/目录的属组。后面可以加上mode:定义文件/目录的权限
owner  #定义文件/目录的属主。后面必须跟上path:定义文件/目录的路径
recurse  #递归设置文件的属性,只对目录有效,后面跟上src:被链接的源文件路径,只应用于state=link的情况
dest  #被链接到的路径,只应用于state=link的情况
state  #状态,有以下选项:

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

  用法举例如下:
① 创建目录:

[root@server ~]# ansible web -m file -a 'path=http://www.likecs.com/data/app state=directory' 192.168.37.122 | SUCCESS => { "changed": true, "gid": 0, "group": "root", "mode": "0755", "owner": "root", "path": "/data/app", "size": 6, "state": "directory", "uid": 0 } 192.168.37.133 | SUCCESS => { "changed": true, "gid": 0, "group": "root", "mode": "0755", "owner": "root", "path": "/data/app", "size": 4096, "state": "directory", "uid": 0 }

  我们可以查看一下:

[root@server ~]# ansible web -m shell -a 'ls -l /data' 192.168.37.122 | SUCCESS | rc=0 >> total 28 drwxr-xr-x 2 root root 6 Dec 6 10:21 app 192.168.37.133 | SUCCESS | rc=0 >> total 44 drwxr-xr-x 2 root root 4096 Dec 5 10:21 app

  可以看出,我们的目录已经创建完成。
② 创建链接文件

[root@server ~]# ansible web -m file -a 'path=http://www.likecs.com/data/bbb.jpg src=http://www.likecs.com/aaa.jpg state=link' 192.168.37.122 | SUCCESS => { "changed": true, "dest": "/data/bbb.jpg", "gid": 0, "group": "root", "mode": "0777", "owner": "root", "size": 7, "src": "http://www.likecs.com/aaa.jpg", "state": "link", "uid": 0 } 192.168.37.133 | SUCCESS => { "changed": true, "dest": "/data/bbb.jpg", "gid": 0, "group": "root", "mode": "0777", "owner": "root", "size": 7, "src": "http://www.likecs.com/aaa.jpg", "state": "link", "uid": 0 }

  我们可以去查看一下:

[root@server ~]# ansible web -m shell -a 'ls -l /data' 192.168.37.122 | SUCCESS | rc=0 >> total 28 -rw-r--r-- 1 root root 5649 Dec 5 13:49 aaa.jpg lrwxrwxrwx 1 root root 7 Dec 6 10:25 bbb.jpg -> aaa.jpg 192.168.37.133 | SUCCESS | rc=0 >> total 44 -rw-r--r-- 1 root root 5649 Dec 4 14:44 aaa.jpg lrwxrwxrwx 1 root root 7 Dec 5 10:25 bbb.jpg -> aaa.jpg

  我们的链接文件已经创建成功。
③ 删除文件

[root@server ~]# ansible web -m file -a 'path=http://www.likecs.com/data/a state=absent' 192.168.37.122 | SUCCESS => { "changed": true, "path": "/data/a", "state": "absent" } 192.168.37.133 | SUCCESS => { "changed": true, "path": "/data/a", "state": "absent" }

  我们可以查看一下:

[root@server ~]# ansible web -m shell -a 'ls /data/a' 192.168.37.122 | FAILED | rc=2 >> ls: cannot access /data/a: No such file or directory 192.168.37.133 | FAILED | rc=2 >> ls: cannot access /data/a: No such file or directory

  发现已经没有这个文件了。
  

6)fetch 模块

  该模块用于从远程某主机获取(复制)文件到本地。
  有两个选项:

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

  具体举例如下:

[root@server ~]# ansible web -m fetch -a 'src=http://www.likecs.com/data/hello dest=http://www.likecs.com/data' 192.168.37.122 | SUCCESS => { "changed": true, "checksum": "22596363b3de40b06f981fb85d82312e8c0ed511", "dest": "/data/192.168.37.122/data/hello", "md5sum": "6f5902ac237024bdd0c176cb93063dc4", "remote_checksum": "22596363b3de40b06f981fb85d82312e8c0ed511", "remote_md5sum": null } 192.168.37.133 | SUCCESS => { "changed": true, "checksum": "22596363b3de40b06f981fb85d82312e8c0ed511", "dest": "/data/192.168.37.133/data/hello", "md5sum": "6f5902ac237024bdd0c176cb93063dc4", "remote_checksum": "22596363b3de40b06f981fb85d82312e8c0ed511", "remote_md5sum": null }

  我们可以在本机上查看一下文件是否复制成功。要注意,文件保存的路径是我们设置的接收目录下的被管制主机ip目录下:

[root@server ~]# cd /data/ [root@server data]# ls 1 192.168.37.122 192.168.37.133 fastdfs web [root@server data]# cd 192.168.37.122 [root@server 192.168.37.122]# ls data [root@server 192.168.37.122]# cd data/ [root@server data]# ls hello [root@server data]# pwd /data/192.168.37.122/data 7)cron 模块

  该模块适用于管理cron计划任务的。
  其使用的语法跟我们的crontab文件中的语法一致,同时,可以指定以下选项:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxdjz.html