Ansaible-windos日常命令
一.编辑临时host文件
[win:vars]
Ansible_ssh_user=”用户名”
Ansible_ssh_pass=”密码”
Ansible_ssh_port=”5985” 端口号
Ansible_connection=”winrm”
Ansible_winrm_server_cert_validation=ignore
[win:children]
Ip
[ip]
10.169.180.10
二.测试windos网络连通命令
Ansible –i host IP –m win_ping
三.远程传输文件(copy)
Ansible -I host 10.180.92.10–m win_copy –a ‘src=/home/mcger/123.zip dest=d:\ ’ -f 50 –o
四. 远程解压(unzip)
Ansible -I host 10.180.92.10 –m win_unzip –a ‘creates=no src=d:\123.zip dest=d:\123 ’ -f 50 –o
五. Find-查找文件内容
命令 |
涉及模块 |
支持命令 |
Findstr
|
win-shell |
Dir , cd |
Find
|
win_command |
不支持 cd dir
|
Find 参数:
- /v 过滤掉匹配内容
- /c 统计匹配内容
- /i 忽略大小写
参数 |
|
备注 |
v |
过滤掉匹配内容 |
|
c |
统计匹配内容 |
|
i |
忽略大小写 |
|
文件查找
Ansible –I host 10.180.92.12 –m win_shell –a “dir d: | findstr /m .run”
文件内容查找
Ansible –I host 10.180.92.12 –m win_command –a ‘“findstr /i “1235567678” d:\detest\log\20210907\result.log’
查找业务相关日志文件
Tree : 会形成一个树形列表
/F 显示每个文件夹中文件的名称
/A 使用ascll字符。而不使用扩展名
Ansible –I host 10.180.92.12 –m win_shell –a “tree /F z:\fd_log | findstr /s “.264 “
六.删除文件-win_file (state=absent)
Ansible –I host 10.180.92.12 –m win_file -a ‘dest=d:/mcger/we state=absent’ 删除目录
Ansible –I host 10.180.92.12 –m win_file -a ‘dest=d:/cger/run.log state=absent’ 删除文件
Ansible –I host 10.180.92.12 –m win_file -a ‘dest=d:/ state=touch’ 在d盘创建11文件
Ansible–I host 10.180.92.12 –m win_file-a ‘dest=d:/ state=directory’ 创建11目录
ansible –I host 10.180.92.12 –m win_shell –a ‘d:;del 10.168.18.79.*’ 删除多个文件
七 查看配置数- (measure-object-line)
Ansible –I host 10.180.92.12 –m win_shell –a “cd d:/mcger/fsmp/ | findstr /m .smp | measure-object-line” –o –f 50 | tee smp.log
(measure-object-line 统计行数)
八 .重命名文件-(ren)
Ansible –I host 10.180.92.12 –m win_shell -a ‘ren “d:/mcger””mcger.bak”’
九.Video_filter日常维护命令
9.1 程序启动/关闭 (关闭程序/服务无需跟目录)
VFService服务
命令 |
|
net stop VFService |
关闭系统服务(无需目录) |
net start VFService |
启系统动服务 |
注:
单台关闭服务执行可用 sc stop
Ansible远程执行 net stop
exe程序
Exe程序 |
|
备注 |
Taskkill/im video_filter.exe /f |
关闭程序 |
|
StartD:\deectSystem\ video_filter.exe |
启动程序 |
须跟目录 |
例:
- 关闭exe程序
Taskkill /im video_filter.exe /f
Net stop VFsetup (停掉守护)
- 启动exe程序(程序启动需跟目录)
Start D:\deectSystem\VFSetup.exe 启动守护
Start D:\deectSystem\ video_filter.exe 启动video_filter.exe主程序
9.3 findstr-文件查询
注 :
Finstr 后跟目录
Ansible –I host 10.180.92.12 –m win_shell –a ‘findstr /I 1235567678 d:\detest\log\20210907\result.log’
十
十 COPY 模块
参数
参数 |
注释 |
备注 |
Src |
操作目录 |
Content(可更改文件内容) |
Dest |
目的目录 |
|
force |
是否覆盖 |
默认为yes |
Backuo |
备份 |
Backup=yes |
Owner |
属主 |
|
group |
组 |
|
mode |
权限 |
权限设置为"rw-r--r--" |
传输文件
Ansible -I host–m win_copy –a ‘src=/home/mcger/video_file.exe dest=d:\detectsystem\ ’ 传输文件
Src-copy文件/目录
src=需要copy的文件或目录
dest-拷贝的目录
dest=指定文件将被拷贝到远程主机的哪个目录中
content-可直接指定文件内容 :
当不使用src指定拷贝的文件时,可以使用content直接指定文件内容,src与content两个参数必有其一,否则会报错。
Force-是否覆盖 :
force= yes/no,默认值为yes,表示覆盖,贝操作,远程主机中的文件保持不变。
Backup-是否备份 :
Backup=yes 主机的目标路径中已经存在同名文件,内容不同时,是否对远程主机的文件进行备份,
Owner-所属主 :
指定文件拷贝到远程主机后的属主,但是远程主机上必须有对应的用户,否则会报错。
Group-所属组 :
指定文件拷贝到远程主机后的属组,但是远程主机上必须有对应的组,否则会报错。
Mode-权限:
指定文件拷贝到远程主机后的权限,如果你想将权限设置为"rw-r--r--",则可以使
例:
1. 将ansible主机中/testdir/copytest文件复制到远程主机的/opt目录下,注意,如果copytest文件已经存在于远程主机的/opt目录中,并且远程主机中的copytest与ansible主机中copytest文件内容不同,那么使用如下命令时,远程主机中的copytest文件将被覆盖。
ansible test70 -m copy -a "src=/testdir/copytest dest=/opt/"
2.在远程主机的/opt目录下生成文件test,test文件中有两行文本,第一行文本为aaa,第二行为bbb,当使用content指定文件内容时,dest参数对应的值必须是一个文件,而不能是一个路径。
ansible test70 -m copy a 'content="aaa\nbbb\n" dest=/opt/test'
十一 . file-文件处理(创建、删除,修改权限)
参数 |
注释 |
备注 |
Dest/path |
操作目录 |
Path drst name为要操作目录或文件 |
State |
指定文件属性 |
state=directory 目录 state=touch 文件 state=link 软连接 state=hard 硬连接 state=absen 删除文件 |
Src |
软连接 |
当state设置为link或者hard时 Src=指定链接源。 |
Force |
强制链接 |
state=link force=yes 可配合此参数强制创建链接文件 |
Owner |
属主 |
|
group |
组 |
|
Mode |
权限 |
|
Recurse |
删除 |
递归修改文件属性 |
file模块可以帮助我们完成一些对文件的基本操作,比如,创建文件或目录、删除文件或目录、修改文件权限等
path 操作文件/目录
dest SSS
Path-操作文件/目录 :
指定要操作的文件或目录,使用dest或name也可以。
State-指定文件属性 :
- state=directory 目录:
- state=touch 文件
- state=link 软连接
- state=hard 硬连接
- state=absen 删除文件(部分文件目录软连接)
src-设置软/硬连接:
当state设置为link或者hard时
Src=指定链接源。
Force-强制连接 :
state=link
force=yes 可配合此参数强制创建链接文件
owner-属主 :
用于指定被操作文件的属主,
group-数组 :
用于指定被操作文件的属组,
Mode-权限:
用于指定被操作文件的权限,
Recurse-删除:
当要操作的文件为目录,将recurse设置为yes,可以递归的修改目录中文件的属性。
例案:
1. 创建一个名为testfile的文件,如果testfile文件已经存在,则会更新文件的时间戳,与touch命令的作用相同。
ansible test70 –m file a "path=/testdir/testfile state=touch"
2.创建一个名为testdir的目录,如果testdir目录已经存在
ansible test70 -m file -a "path=/testdir/testfile state=
directory"
-
3.
为testfile文件创建软链接文件,软链接名为linkfile
"path=/testdir/linkfile state=link src=/testdir/testfile"
4.testfile文件创建硬链接文件,硬链接名为hardfile,执行下面命令的时候
"
path=/testdir/hardfile
state=hard
src=/testdir/testfile force=yes"
Fore=yes
链接文件与其他文件同名时,强制覆盖同名文件或者创建链接文
5.删除远程机器上的指定文件或目录
"path=/testdir/testdir
state=absent"
6. 在创建文件或目录的时候指定属主,或者修改远程主机上的文件或目录的属主
owner=zsy 属主
group=zsy"
属组
mode=0644
权限
recurse=yes
递归修改属性
"path=/testdir/abc state=touch owner=zsy"
"path=/testdir/abc owner=zsy"
"path=/testdir/abc state=directory owner=zsy"