Tip |
---|
请在使用站内资源的同时不要恶意进行爬取或倒链等行为,感谢支持! |
Note | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
相关文档:
|
Info | ||
---|---|---|
| ||
|
在远程 Windows 上启动 Jenkins.war 示例。
让 jenkins.war 在后台启动,可以执行批处理命令:(需要安装 JDK)
Code Block | ||
---|---|---|
| ||
$ start /min java -jar D:\jenkins.war |
命令放入脚本,放置不必要的错误:
Code Block | ||||
---|---|---|---|---|
| ||||
start /min java -jar D:\jenkins.war |
可执行 ansible 命令进行调用:
Code Block | ||
---|---|---|
| ||
$ ansible windows_test -m raw -a "D:\start.bat" |
Info |
---|
此时可能会卡很久,通常会写入到 ansible-playbook 中添加 async 参数设置执行时间上限。 |
设置停止脚本:
Code Block | ||||
---|---|---|---|---|
| ||||
$jps_object = C:\"Program Files"\Java\jdk1.8.0_201\bin\jps | findstr "jenkins" $java_pid = $jps_object.split()[0] taskkill /F /pid $java_pid |
可执行命令:
Code Block | ||
---|---|---|
| ||
$ ansible windows_test -m raw -a "D:\stop.ps1" |
写为 ansible-playbook 可执行为:
Code Block | ||||
---|---|---|---|---|
| ||||
--- - hosts: windows_test tasks: - name: stop service win_command: powershell D:\stop.ps1 - name: start service win_command: powershell.exe D:\start.bat async: 15 ignore_errors: true |
执行命令为:
Code Block | ||
---|---|---|
| ||
$ ansible-playbook demo.yaml PLAY [windows_test] *********************************************************************************************************************************************************************************************************************************** TASK [Gathering Facts] ******************************************************************************************************************************************************************************************************************************** ok: [10.31.129.16] TASK [stop service] *********************************************************************************************************************************************************************************************************************************** changed: [10.31.129.16] TASK [start service] ********************************************************************************************************************************************************************************************************************************** fatal: [10.31.129.16]: FAILED! => {"ansible_async_watchdog_pid": 8000, "ansible_job_id": "49468985171.7680", "changed": false, "finished": 1, "msg": "timed out waiting for module completion", "results_file": "C:\\Users\\Administrator\\AppData\\Local\\.ansible_async\\49468985171.7680", "started": 1} ...ignoring PLAY RECAP ******************************************************************************************************************************************************************************************************************************************** 10.31.129.16 : ok=3 changed=1 unreachable=0 failed=0 |
如果执行超时可设置 ignore_errors 对错误进行忽略,此时即可正常完成执行的命令。并且服务也在远端成功启动。
Warning |
---|
注意有个大坑,当直接在 Powershell 中执行 start.bat 时,如果让 Ansible 去执行 stop.ps1 实际上是无法执行的,因为 Ansible 使用的是 Administrator 用户,而 Powershell 直接执行使用的是 System 用户,所以使用 jps 是无法找到其他用户启动的进程的。 |
但此类方法并没有输出日志,只能在屏幕上滚动进程窗口,如果需要,可以已定义启动脚本如下:(需要用 Windows 编辑器打开并保存否则在 Linxu 或 MacOS 中保存的文件文件格式会报错)
Code Block | ||||
---|---|---|---|---|
| ||||
@echo off set logName=jenkins_ set logTime=%date:~0,4%%date:~5,2%%date:~8,2%%time:~1,1%%time:~3,2%%time:~6,2% set logSuffix=.log set logPath=D:\ set logFullName=%logPath%%logName%%logTime%%logSuffix% echo Log Output To: %logFullName% start /MIN /B java -jar D:\jenkins.war >> %logFullName% 2>&1 |
或使用如下方式进行格式转换:
Code Block | ||
---|---|---|
| ||
$ unix2dos start.bat |
日志输出格式如下:
Code Block | ||
---|---|---|
| ||
jenkins_2019050854116.log |
如果需要覆盖应用之前先进行备份,则可以使用以下脚本:
Code Block | ||
---|---|---|
| ||
@echo off
set rq=%date:~0,4%%date:~5,2%%date:~8,2%%time:~1,1%%time:~3,2%%time:~6,2%
set projectPath=D:\Web\Dev\ManageCommissionJob
mkdir %projectPath%\backup\%rq%
SETLOCAL ENABLEDELAYEDEXPANSION
set fileName=comm_job_test.jar
set sourceFilePath=%projectPath%\!fileName!
set backupFilePath=%projectPath%\backup\%rq%\!fileName!
echo "echo F|xcopy !backupFilePath! !sourceFilePath!" >> %projectPath%\backup\%rq%\rollback.bat
move !sourceFilePath! !backupFilePath! |
文档创建于 , 最后一次更新于 08 , 文档当前的状态
, 当前编写页面的版本 Status colour Green title 正式版
。 Status colour Blue title v1.3.1