Ansible 제어 사양을 통해 Windows에서 조용히 제거 톰캣Ansible
OS: RHEL 6.8 (Santiago)
Ansible version: 2.3.2.0
Python version: 2.6.6
대상 시스템 사양
OS: Windows 2008 Server R2
Tomcat version: 8.0.41
(권장) win_package 모듈
사용Tomcat의 설치/제거를 자동화하기 위해 Ansible을 사용하려고합니다 (사용자 상호 작용없이 조용히해야합니다).
나는 성공적으로 다음과 같이 윈도우 설치 프로그램을 사용하여 Tomcat을 설치할 수 있어요 : 소프트웨어를 제거- name: Install Tomcat
win_package:
path: "https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.41/bin/apache-tomcat-8.0.41.exe"
product_id: "Apache Tomcat 8.0 Tomcat8"
arguments: /S
그러나, 나는 데 문제. 나는 위와 비슷한 접근법을 사용하여 (그리고 "state : absent"옵션을 추가) 시도했다. 설치 프로그램을 다운로드하고 로컬 경로를 사용해 보았습니다. 또한 "인수"옵션을 생략했습니다.
win_shell 모듈
를 사용하여 I은 레지스트리 키 검토 : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 8.0 Tomcat8
을하고 "의 UninstallString"속성에는 다음이 포함되어 보았다 : "C:\Program Files\Apache Software Foundation\Tomcat 8.0\Uninstall.exe" -ServiceName="Tomcat8"
.
물론,이 정확한 명령을 대상 컴퓨터에서 수동으로 실행하면 작동하지만, 무인이 아니기 때문에 무인기를 통해 실행하는 것이 중단됩니다. 위의 명령을 실행 말
& "C:\Program Files\Apache Software Foundation\Tomcat 8.0\Uninstall.exe" -ServiceName="Tomcat8" /S
에
추가 "/ S"인수는 모두 수동으로 ansible를 통해 (똑같은 동작을) 작동하지 않습니다. 두 방법 모두 바람둥이 루트에서 폴더를 삭제합니다 (bin
, conf
, lib
, logs
및 webapps
). 또한 어느 옵션도 레지스트리 항목이나 tomcat 서비스를 제거하지 않으며 "프로그램 및 기능"목록에 tomcat이 계속 나열됩니다. 수동으로 위의 명령을 실행하는 중간
& "C:\Program Files\Apache Software Foundation\Tomcat 8.0\Uninstall.exe" /S -ServiceName="Tomcat8"
에
추가 "/ S"인수는 완벽하게 작동합니다 (그것은 conf
, logs
및 webapps
디렉토리 뒤에 잎하지만이 예상됩니다 - this post 참조). 그러나 anabilities를 통해 실행하면 tomcat 루트에서 Uninstall.exe 파일이 삭제됩니다. Tomcat 루트, 레지스트리 항목 또는 Tomcat 서비스에서 다른 것을 제거하지 않습니다. 그리고 여전히 "프로그램 및 기능"목록에 나열되어 있습니다. 여기
- name: Uninstall Tomcat
win_shell: '& "C:\Program Files\Apache Software Foundation\Tomcat 8.0\Uninstall.exe" /S -ServiceName="Tomcat8"'
하지만 퍼팅 할 때 다음 완전히 다른의 행동 '/ S '중간에?