用户工具

站点工具


常见问题:ansible复制脚本执行取回结果

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

常见问题:ansible复制脚本执行取回结果 [2022/07/13 20:57] (当前版本)
pwbty 创建
行 1: 行 1:
 +====== 通过copy复制脚本到各机器 ======
 +
 +复制脚本到各机器的tmp目录中,模块-a中无法使用“*”这种通配符,因此如果多文件的话在本地创建新目录放进去再copy传输目录即可。
 +
 +<code>
 +ansible all -i hosts -m copy -a "src=/tmp/check.sh dest=/tmp mode=755"
 +</code>
 +
 +====== 执行命令 ======
 +
 +sh后面的ip是传入的参数,最后加become是使用root执行,先cd进目录中因为脚本中调用其他脚本,如果目录不对直接运行会找不到其他脚本无法继续执行。
 +
 +<code>
 +ansible 10.110.95.1 -i hosts -m shell -a "cd /tmp && sh check.sh 10.110.95.1" -b -become_method=su
 +</code>
 +
 +====== 通过fetch取回脚本运行结果文件 ======
 +
 +脚本结果会生成一个名称为”IP+linux”的动态结果,幸亏是IP,通过变量可取回。
 +
 +%% “{{ inventory_hostname }}” %% 变量是以hosts配置文件中对应主机的ip为结果值。变量加载dest中也是可以的,这样会在取回的本机对应目录中新建对应ip文件夹单独存放每台设备的结果文件。
 +
 +<code>
 +ansible all -i hosts -m fetch -a "src=/tmp/{{ inventory_hostname }}_linux_chk.xml dest=/tmp/chk" -b -become_method=su
 +</code>
 +
 +====== 整理结果文件 ======
 +
 +取回的文件在 /tmp/对应ip/tmp/ 之中如果单独想把结果拷贝出来可以吧他们放一起。
 +
 +<code>
 +find /tmp/chk/ -name "*.xml" -exec mv {} . \;
 +find /tmp/chk/ -type f -exec mv {} . \; 
 +</code>
  
常见问题/ansible复制脚本执行取回结果.txt · 最后更改: 2022/07/13 20:57 由 pwbty