当file模块使用一个参数(路径参数)的时候,他将返回文件的相关信息。当提供更多属性,他会尝试改变文件属性,并返回是否成功的提示。几乎所有的Ansible的模块都会返回这种提示,它在接下来的palsybooks中非常重要!
使用以下命令调用file模块。
$ ansible machinename -u root -k -m file -a 'path=/etc/fstab'
返回的数据类似:
machinename | success >> {
"changed": false,
"group": "root",
"mode": "0644",
"owner": "root",
"path": "/etc/fstab",
"size": 779,
"state":
"file"
}
使用file模块在远程受管主机的/tmp下新建目录:
$ ansible machinename -u root -k -m file -a 'path=/tmp/test
state=directory mode=0700 owner=root'
返回:
machinename | success >> {
"changed": true,
"group": "root",
"mode": "0700",
"owner": "root",
"path": "/tmp/test",
"size": 4096,
"state": "directory"
}
当第一次运行这个命令的时候,改变变量被设置为Ture,所以当远程受管主机不存在该目录或者拥有不同属性的时候,命令会生效,并且改变远程受管主机的配置,当再一次运行该命令的时候,改变变量被设置为Faulse,这表示改变不会生效。
machinename | success >> {
"changed": false,
"group": "root",
"mode": "0700",
"owner": "root",
"path": "/tmp/test",
"size": 4096,
"state": "directory"
}
有很多模块跟file模块有类似的参数,比如copy模块,copy模块从控制机器复制文件到远程受管主机的相应目录,并设置权限、属性。
从本地控制主机复制/etc/fstab文件到远程受管主机的/tmp目录下,命令如下:
$ ansible machinename -m copy -a 'path=/tmp/fstab mode=0700 owner=root'
第一次运行的时候返回如下:
machinename | success >> {
"changed": true,
"dest": "/tmp/fstab",
"group": "root",
"md5sum": "fe9304aa7b683f58609ec7d3ee9eea2f",
"mode": "0700",
"owner": "root",
"size": 637,
"src": "/root/.ansible/tmp/ansible-1374060150.96-
77605185106940/source",
"state": "file"
}
正确的命令应该是:
ansible hz17 -u root -k -m copy -a "src=/etc/fstab dest=/tmp/test/fstab mode=0700 owner=root"
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-49614-7.html
我最亲爱的鸽子
打倒美帝国主义