首页 > 代码库 > ansile(2)模块之get_url

ansile(2)模块之get_url

ansible  get_url将文件从HTTP,HTTPS或FTP下载到节点

参数是否必须
默认选项说明
attributesnoNone

yes

no

文件或目录的属性应该是。要获得支持的标志,请查看taget系统上chattr的手册页.
backupnono
创建一个包括时间戳信息的备份文件,这样你可以得到原始文件,如果你不正确地弄错了。
checksumno

如果将校验和传递给此参数,则将在下载目标文件的摘要后计算摘要,以确保其完整性,并验证传输是否成功完成。格式:<algorithm>:<checksum>,例如:checksum =“sha256:D98291AC [...] B6DC7B97”如果你担心可移植性,只有sha1算法可用于所有平台和python版本。可以安装第三方hashlib库以访问其他算法。此外,如果将校验和传递给此参数,并且文件位于dest位置下,则将计算destination_checksum,如果校验和等于destination_checksum,则将跳过文件下载(除非force为true)。
destyes

将文件下载到的绝对路径。

如果dest是目录,则服务器提供的文件名,如果没有提供,则将使用远程服务器上的URL的基本名称。如果一个目录,force没有效果。如果dest是一个目录,文件将总是被下载(不管force选项),但是只有当内容改变时才被替换。

forcenono

yes

no

如果是的,dest不是目录,将每次下载文件,如果内容改变,替换文件。如果否,则只有在目标不存在时才会下载该文件。一般应该是只对小的本地文件。在0.6之前,此模块的行为好像是默认值。
force_basic_authnono

yes

no

httplib2,uri模块使用的库只会在webservice以401状态响应初始请求时发送身份验证信息。由于一些基本的auth服务没有正确发送401,登录将失败。此选项强制在初始请求时发送Basic认证头。
groupno

应该拥有文件/目录的组的名称,将被发送到chown。
headersno

以格式“key:value,key:value”向请求添加自定义HTTP标头
modeno

模式文件或目录应该是。对于那些用于/ usr / bin / chmod的记住,模式实际上是八进制数字(如0644)。离开领先的零可能会有意想不到的结果。从版本1.8起,模式可以被指定为符号模式(例如,u + rwx或u = rw,g = r,o = r)。
othersno

文件模块接受的所有参数也在这里工作
ownerno

应该拥有文件/目录的用户的名称,将被发送到chown。

selevelnos0
SELinux文件上下文的级别部分。这是MLS / MCS属性,有时称为范围。 _default功能与seuser相同。
seroleno

SELinux文件上下文的角色部分,_default功能与seuser一样。
setypeno

键入SELinux文件上下文的一部分,_default功能与seuser一样工作.
sha256sumno

如果将SHA-256校验和传递给此参数,则将在下载目标文件的摘要后计算摘要,以确保其完整性,并验证传输是否成功完成。此选项已弃用。使用‘校验和‘。
timeoutno

网址请求的超时(以秒为单位)
tmp_destno

临时文件下载到的绝对路径。

默认为TMPDIR,TEMP或TMP env变量或特定于平台的值

https://docs.python.org/2/library/tempfile.html#tempfile.tempdir

unsafe_writesno

通常,此模块使用原子操作来防止数据损坏或从目标文件读取不一致,有时系统配置或只是破坏以防止这种情况。一个例子是docker挂载的文件,它们不能被原子地更新,并且只能以不安全的方式完成。

这个布尔选项允许ansible回退到不安全的更新文件的方法,在那些没有任何其他选择的情况下。请注意,这是受种族条件的制约,可能导致数据损坏。

urlyes

HTTP, HTTPS, or FTP URL in the form 
url_passwordno

用于HTTP基本认证的密码。如果未指定url_username参数,则不会使用url_password参数。
url_usernameno

用于HTTP基本认证的用户名。对于允许空密码的站点,可以在不使用url_password的情况下使用此参数。
use_proxynoyes

yes

no

如果没有,它将不使用代理,即使在目标主机上的环境变量中定义了一个代理。
validate_certsnoyes

yes

no

如果否,SSL证书将不会验证。这只应在使用自签名证书的个人控制站点上使用。
  1. 下载文件

# ansible webserver -m get_url -a "url=http://muzhi.baidu.com/question/13193725.html dest=/tmp/"
172.16.110.47 | SUCCESS => {
    "changed": true, 
    "checksum_dest": null, 
    "checksum_src": "a6b0a0327865daba2b920fb4678545bd2c212963", 
    "dest": "/tmp/13193725.html", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "888dc8c9883f8f9468fb9a6e83ba36fe", 
    "mode": "0644", 
    "msg": "OK (unknown bytes)", 
    "owner": "root", 
    "size": 20637, 
    "src": "/tmp/tmpQlWqAU", 
    "state": "file", 
    "uid": 0, 
    "url": "http://muzhi.baidu.com/question/13193725.html"
}
172.16.110.48 | SUCCESS => {
    "changed": true, 
    "checksum_dest": null, 
    "checksum_src": "c22386c304380819fa9407097d21c0bd942819ad", 
    "dest": "/tmp/13193725.html", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "29c8669695e64e134a3e93a646653536", 
    "mode": "0644", 
    "msg": "OK (unknown bytes)", 
    "owner": "root", 
    "size": 20637, 
    "src": "/tmp/tmppkHcOz", 
    "state": "file", 
    "uid": 0, 
    "url": "http://muzhi.baidu.com/question/13193725.html"
}

2.下载nginx包,权限为740,属主为ckl属组为ckl,并制定校验码

# ansible webserver -m get_url -a "url=http://nginx.org/download/nginx-1.11.8.zip  dest=/tmp/ group=ckl owner=ckl mode=740 checksum=‘sha256:0f06c91e86322a7658fcd4c210e1af69512ae9ff974df5e2beb4e4952e678016‘"
172.16.110.47 | SUCCESS => {
    "changed": true, 
    "checksum_dest": null, 
    "checksum_src": "fa31bdfaead51dbe94b9de6958021038ce9a779e", 
    "dest": "/tmp/nginx-1.11.8.zip", 
    "gid": 1000, 
    "group": "ckl", 
    "md5sum": "cedc1474bfe20e43fe67907664b6741a", 
    "mode": "0740", 
    "msg": "OK (1398628 bytes)", 
    "owner": "ckl", 
    "size": 1398628, 
    "src": "/tmp/tmpqBcnhn", 
    "state": "file", 
    "uid": 1000, 
    "url": "http://nginx.org/download/nginx-1.11.8.zip"
}
172.16.110.48 | SUCCESS => {
    "changed": true, 
    "checksum_dest": null, 
    "checksum_src": "fa31bdfaead51dbe94b9de6958021038ce9a779e", 
    "dest": "/tmp/nginx-1.11.8.zip", 
    "gid": 1000, 
    "group": "ckl", 
    "md5sum": "cedc1474bfe20e43fe67907664b6741a", 
    "mode": "0740", 
    "msg": "OK (1398628 bytes)", 
    "owner": "ckl", 
    "size": 1398628, 
    "src": "/tmp/tmpdny5Fq", 
    "state": "file", 
    "uid": 1000, 
    "url": "http://nginx.org/download/nginx-1.11.8.zip"
}

查看文件:

# ll nginx-1.11.8.zip 
-rwxr----- 1 ckl ckl 1398628 Dec 29 15:29 nginx-1.11.8.zip

3.下载文件指定用户名和密码

ansible webserver -m get_url -a ‘url=http://redistat.quanmin.tv dest=/tmp/ url_username=‘ckl‘ url_password="hh!123"‘
172.16.110.47 | SUCCESS => {
    "changed": true, 
    "checksum_dest": null, 
    "checksum_src": "5eb6b5401bdbf69556e0a83e6b02590f25704e24", 
    "dest": "/tmp/index.html", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "23b07c0e7c4d143f3f877a7d0ed63099", 
    "mode": "0644", 
    "msg": "OK (33395 bytes)", 
    "owner": "root", 
    "size": 33395, 
    "src": "/tmp/tmpk3Scw3", 
    "state": "file", 
    "uid": 0, 
    "url": "http://redistat.quanmin.tv"
}
172.16.110.48 | SUCCESS => {
    "changed": true, 
    "checksum_dest": null, 
    "checksum_src": "5eb6b5401bdbf69556e0a83e6b02590f25704e24", 
    "dest": "/tmp/index.html", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "23b07c0e7c4d143f3f877a7d0ed63099", 
    "mode": "0644", 
    "msg": "OK (33395 bytes)", 
    "owner": "root", 
    "size": 33395, 
    "src": "/tmp/tmpxjpA9e", 
    "state": "file", 
    "uid": 0, 
    "url": "http://redistat.quanmin.tv"
}


本文出自 “深呼吸再出击” 博客,请务必保留此出处http://ckl893.blog.51cto.com/8827818/1887301

ansile(2)模块之get_url