Ich möchte Tomcat über ansible auf einem Windows-Server installieren, ich überprüfe, ob es eine Java-Installation gibt und den Pfad zu java.exe erhalten. Welches ist:Wie erhält man einen Teilstring eines Pfadnamens mit Ansible?
"path": "D:\\Products\\abcd\\java\\jdk1.8.0_51\\bin\\java.exe"
Ich brauche JAVA_HOME in einem Config-var für tomcat zu setzen, wie kann ich den benötigten Teil erhalten ->D:\\Products\\abcd\\java\\jdk1.8.0_51
aus dem Weg? Ich kann JAVA_HOME nicht vom Remote-Server abrufen, da es verschiedene Installationen gibt.
TASK [tomcat : debug]
ok: [v-sax-769-e-a.develop.ebiz.grp] => {
"file_info_java.files[0]": {
"attributes": "Archive",
"checksum": "8c2c2f3d687fe99d9a724514f09f53bcb989a1e0",
"creationtime": 1511365795.4331064,
"extension": ".exe",
"filename": "java.exe",
"isarchive": true,
"isdir": false,
"ishidden": false,
"islnk": false,
"isreadonly": false,
"isshared": false,
"lastaccesstime": 1511365795.4331064,
"lastwritetime": 1438168336,
"owner": "BUILTIN\\Administrators",
"path": "D:\\Products\\CPeRef\\java\\jdk1.8.0_51\\bin\\java.exe",
"size": 206400
}
}
Danke, gibt es eine Methode, um den extrahierten Pfad zu einer Variablen zu verwenden, anstatt dies in einer Debug-Anweisung zu tun? – MBushveld
Ja: Verwenden Sie es in einer Variablenzuordnung anstelle einer Debug-Anweisung. – techraf
Ich habe es mit set_facts gemacht: - set_fact: some_variable = {{file_info_java.files [0] .path | win_dirname | regex_replace ('\\\ bin', '')}} aber gibt es keinen besseren Weg, als die Fakten zu verderben? – MBushveld