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