This is a bit old (jdk8, tomcat8) and has a few assumptions which might not
be true for your environment (the jdk and tomcat installers are kept on a
web server refered to as {{build_server}}. Its two roles one for the jdk
and one for tomcat.
Definitely some things could be improved - likely you don't need a jdk,
only a JRE for a start. The service restart might not be correct and might
be better as a handler anyway.
Hopefully this is enough to get you started though.
Jon
$:~/roles/win-jdk$ tree -A
.
├── defaults
│ └── main.yml
└── tasks
└── main.yml
2 directories, 2 files
$:~/roles/win-jdk$ cat defaults/main.yml
---
java_major_version: 8
java_minor_version: 73
java_product_id: "{64A3A4F4-B792-11D6-A78A-00B0D0180730}"
$:~/roles/win-jdk$ cat tasks/main.yml
---
# file: roles/win-jdk/tasks/main.yml
# only assumes win-fft-folders role applied to server
# this role adds java to a server. Intended to replace win-fft-java role
# Currently intended to supply the same java version for use by all FFT
services.
# see ../defaults/main.yml for the default versions used
# the defaults can be overriden by setting vars in the playbook, inventory
or groups
- name: fetch java if needed
win_get_url: url="{{ build_server }}jdk-{{ java_major_version }}u{{
java_minor_version }}-windows-x64.exe" dest="{{ win_deploy_dir }}jdk-{{
java_major_version }}u{{ java_minor_version }}-windows-x64.exe" force=no
- name: ensure java installed
win_package:
name: "Java SE Development Kit {{ java_major_version }} Update {{
java_minor_version }} (64-bit)"
path: "{{ win_deploy_dir }}jdk-{{ java_major_version }}u{{
java_minor_version }}-windows-x64.exe"
product_id: "{{ java_product_id }}"
state: present
arguments: INSTALL_SILENT=1 AUTO_UPDATE=0 WEB_JAVA=0 WEB_ANALYTICS=0 /s
/L C:\deployment\log\java-installation.log
# added install options based on options here:
http://docs.oracle.com/javase/8/docs/technotes/guides/install/config.html#table_config_file_options
win-tomcat8$ cat defaults/main.yml
---
tomcat_home: C:\Tomcat8
tomcat_installer: apache-tomcat-8.0.35.exe
$:~roles/win-tomcat8$ cat tasks/main.yml
---
# file: roles/win-tomcat8/tasks/main.yml
# this role adds tomcat 8 if not present
# It also removes default webapps from the installed tomcat 8
# tomcat_home is now picked up from ../defaults/main.yml
- name: fetch tomcat
win_get_url: url="{{ build_server }}{{ item }}" dest="{{ win_deploy_dir
}}{{ item }}" force=no
with_items:
- "{{tomcat_installer }}"
- name: check for existence of latest tomcat
win_stat:
path: "{{ tomcat_home }}"
register: current_tomcat
- name: install tomcat if needed
win_shell: '{{ win_deploy_dir }}{{ tomcat_installer }} /S /D={{
tomcat_home }}'
when: current_tomcat.stat.exists == false
- name: remove unwanted webapps ROOT manager docs from tomcat
win_file: 'state=absent path={{ tomcat_home }}\webapps\{{item}}'
with_items:
- ROOT
- manager
- docs
- name: set tomcat parameters for startup
win_shell: '{{ tomcat_home }}\bin\tomcat8.exe update --Startup=auto
--JvmMs=2000 --JvmMx=2000 --JvmOptions="-Dcatalina.home={{ tomcat_home
}}\;-Dcatalina.base={{ tomcat_home }}\;-Djava.endorsed.dirs={{ tomcat_home
}}\endorsed;-Djava.io.tmpdir={{ tomcat_home
}}\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file={{
tomcat_home
}}\conf\logging.properties;-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n;-Xms1500M;-Xmx1500M;"
- name: restart tomcat service
win_service:
name: 'Tomcat 8'
start_mode: auto
state: restarted
On Thursday, November 16, 2017 at 2:46:05 PM UTC, [email protected] wrote:
>
> Hello,
>
> I am kind of new to ansible. I did my first steps and got the ping from my
> control server to a windows machine up and working. So far so good.
> Now I need to install Tomcat from scratch and add later on some patches. I
> was in the hope to find some example roles on ansible-galaxy but there are
> non for Tomcat on Windows.
> So here is my question, does any one know w source for such a role which I
> can use as a base to develop upon?
>
> Thank you very much
> Michael
>
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/609bcad2-c18f-40c9-bc66-bc75fb5cd3f0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.