
rootmaster:~# ansible web -m copy -a ‘dest/data00/check.sh backupyes content123’10.37.120.9 | CHANGED {“ansible_facts”: {“discovered_interpreter_python”: “/usr/local/bin/python3.13”},# 可以看到这里已经备份了“backup_file”: “/data00/check.sh.153008.2026-07-1011:21:34~”,“changed”: true,“checksum”: “40bd001563085fc35165329ea1ff5c5ecbdbbeef”,“dest”: “/data00/check.sh”,“gid”: 0,“group”: “root”,“md5sum”: “202cb962ac59075b964b07152d234b70”,“mode”: “0644”,“owner”: “root”,“size”: 3,“src”: “/root/.ansible/tmp/ansible-tmp-1783653694.0950441-1977803-183011264332546/.source.sh”,“state”: “file”,“uid”: 0}10.37.99.63 | CHANGED {“ansible_facts”: {“discovered_interpreter_python”: “/usr/local/bin/python3.13”},“backup_file”: “/data00/check.sh.160197.2026-07-1011:21:34~”,“changed”: true,“checksum”: “40bd001563085fc35165329ea1ff5c5ecbdbbeef”,“dest”: “/data00/check.sh”,“gid”: 0,“group”: “root”,“md5sum”: “202cb962ac59075b964b07152d234b70”,“mode”: “0644”,“owner”: “root”,“size”: 3,“src”: “/root/.ansible/tmp/ansible-tmp-1783653694.092595-1977802-74590298560295/.source.sh”,“state”: “file”,“uid”: 0}fetch拉取远程文件到本地自动按主机名分目录存储仅支持文件不支持目录。核心参数src远程系统上要获取的文件。 这必须是一个文件而不是一个目录。 后续版本可能会支持递归提取。dest保存文件的目录。 例如如果dest目录是/backup在主机host.example.com上命名为/ etc/profile的src文件将被保存示例rootmaster:~# ansible web -m fetch -a ‘src/etc/hosts dest/data00’10.37.120.9 | CHANGED {“changed”: true,“checksum”: “ce9964c64b3d6c002d8a0fdc015009090fa5ccf0”,# 拉取到本地的这个目录下“dest”: “/data00/10.37.120.9/etc/hosts”,“file”: “/etc/hosts”,“md5sum”: “1b3869c148c86190b1b5c004a91adf0f”,“remote_checksum”: “ce9964c64b3d6c002d8a0fdc015009090fa5ccf0”,“remote_md5sum”: null}10.37.99.63 | CHANGED {“changed”: true,“checksum”: “a3f1671554da35a2b22a0a4c3d3f611528745891”,“dest”: “/data00/10.37.99.63/etc/hosts”,“file”: “/etc/hosts”,“md5sum”: “bea8ca6ca04563655de18130ddab5d22”,“remote_checksum”: “a3f1671554da35a2b22a0a4c3d3f611528745891”,“remote_md5sum”: null}lineinfile修改文件中的行,类似linux工具中的sed工具确保某一行文本存在于指定的文件中或者确保从文件中删除指定的文本即确保指定的文本不存在于文件中还可以根据正则表达式替换修改某一行文本参数path 必须参数指定要操作的文件。line : 使用此参数指定文本内容。regexp 使用正则表达式匹配对应的行当替换文本时如果有多行文本都能被匹配则只有最后面被匹配到的那行文本才会被替换当删除文本时如果有多行文本都能被匹配这么这些行都会被删除。state 当想要删除对应的文本时需要将state参数的值设置为absentabsent为缺席之意表示删除state的默认值为present。backrefs 默认是yesbackrefs为yes时如果没有匹配则文件保持不变。如果匹配了把匹配内容替被换为line内容backrefs为no时如果没有匹配,则添加一行line。如果匹配了则把匹配内容替被换为line内容。insertafter 借助insertafter参数可以将文本插入到“指定的行”之后insertafter参数的值可以设置为EOF或者正则表达式EOF为End Of File之意表示插入到文档的末尾默认情况下insertafter的值为EOF如果将insertafter的值设置为正则表达式表示将文本插入到匹配到正则的行之后如果正则没有匹配到任何行则插入到文件末尾当使用backrefs参数时此参数会被忽略。insertbefore 借助insertbefore参数可以将文本插入到“指定的行”之前insertbefore参数的值可以设置为BOF或者正则表达式BOF为Begin Of File之意表示插入到文档的开头如果将insertbefore的值设置为正则表达式表示将文本插入到匹配到正则的行之前如果正则没有匹配到任何行则插入到文件末尾当使用backrefs参数时此参数会被忽略。backup 是否在修改文件之前对文件进行备份。create 当要操作的文件并不存在时是否创建对应的文件。示例在指定文件中写入内容rootmaster:~# ansible web -m lineinfile -a ‘path/data00/check.sh line456’10.37.120.9 | CHANGED {“ansible_facts”: {“discovered_interpreter_python”: “/usr/local/bin/python3.13”},“backup”: “”,“changed”: true,“msg”: “line added”}10.37.99.63 | CHANGED {“ansible_facts”: {“discovered_interpreter_python”: “/usr/local/bin/python3.13”},“backup”: “”,“changed”: true,“msg”: “line added”}查看一下rootmaster:~# ansible web -m command -a ‘cat /data00/check.sh’10.37.120.9 | CHANGED | rc0 12345610.37.99.63 | CHANGED | rc0 123456blockinfile插入 / 删除一段多行内容自带# BEGIN/END ANSIBLE MANAGED BLOCK标记只管理标记内内容。参数path 必须参数指定要操作的文件。block : 使用此参数指定文本块内容。state 当想要删除对应的文本时需要将state参数的值设置为absentabsent为缺席之意表示删除state的默认值为present。insertafter 借助insertafter参数可以将文本插入到“指定的行”之后insertafter参数的值可以设置为EOF或者正则表达式EOF为End Of File之意表示插入到文档的末尾默认情况下insertafter的值为EOF如果将insertafter的值设置为正则表达式表示将文本插入到匹配到正则的行之后如果正则没有匹配到任何行则插入到文件末尾当使用backrefs参数时此参数会被忽略。insertbefore 借助insertbefore参数可以将文本插入到“指定的行”之前insertbefore参数的值可以设置为BOF或者正则表达式BOF为Begin Of File之意表示插入到文档的开头如果将insertbefore的值设置为正则表达式表示将文本插入到匹配到正则的行之前如果正则没有匹配到任何行则插入到文件末尾当使用backrefs参数时此参数会被忽略。backup 是否在修改文件之前对文件进行备份。create 当要操作的文件并不存在时是否创建对应的文件。marker默认值# {mark} ANSIBLE MANAGED BLOCK,自定义标记行的模板。{mark} 是一个占位符会被替换为 BEGIN 和 END示例rootmaster:~# ansible web -m blockinfile -a “path/data00/check.sh block123456789 marker‘# {mark} ANSIBLE MANAGED BLOCK’”10.37.120.9 | CHANGED {“ansible_facts”: {“discovered_interpreter_python”: “/usr/local/bin/python3.13”},“changed”: true,“msg”: “Block inserted”}10.37.99.63 | CHANGED {“ansible_facts”: {“discovered_interpreter_python”: “/usr/local/bin/python3.13”},“changed”: true,“msg”: “Block inserted”}