Skip to content

Commit b1f018b

Browse files
committed
massive updates
1 parent 7a156d8 commit b1f018b

25 files changed

+1005
-731
lines changed

LICENSE

Lines changed: 201 additions & 674 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ This template contains the following items:
2828

2929
---
3030

31-
Role Name
31+
TAK Server
3232
=========
3333

34-
A brief description of the role goes here.
34+
An Ansible role for deploying & configuring a [TAK Server](https://www.tak.gov/)
3535

3636
Requirements
3737
------------
@@ -60,9 +60,9 @@ ansible-playbook tests/test.yml -i tests/inventory --extra-vars '{"var":"value"}
6060
License
6161
-------
6262

63-
GPLv3
63+
Apache License, Version 2.0
6464

6565
Author Information
6666
------------------
6767

68-
[Coopdevs](https://coopdevs.org)
68+
SNSTAC

defaults/main.yml

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,40 @@
1+
# Description: Default variables for the TAK Server role
2+
13
takserver_rpm: |
24
You must specify the TAK Server RPM in the
35
takserver_rpm variable.
4-
6+
7+
takserver_epel_repo_url: "https://dl.fedoraproject.org/pub/epel/epel-release-latest-{{ ansible_distribution_major_version }}.noarch.rpm"
8+
takserver_epel_repo_gpg_key_url: "https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-{{ ansible_distribution_major_version }}"
9+
takserver_epel_repofile_path: "/etc/yum.repos.d/epel.repo"
10+
takserver_epel_repo_disable: false
11+
12+
takserver_cert_name: "takserver"
13+
takserver_ca_name: "takserver-ca"
14+
takserver_intermediateca_name: "takserver-intermediate-ca"
15+
takserver_ca_state: "California"
16+
takserver_ca_city: "San Francisco"
17+
takserver_ca_org: "TAK Server"
18+
takserver_ca_ou: "TAK Server"
19+
takserver_ca_country: "US"
20+
takserver_ca_email: "[email protected]"
21+
takserver_ca_capass: "atakatak"
22+
23+
takserver_cert_pass: "atakatak"
24+
takserver_cert_keysize: 2048
25+
takserver_cert_days: 3650
26+
27+
takserver_db_name: "cot"
28+
takserver_db_user: "martiuser"
29+
takserver_db_pass: "atakatak"
30+
takserver_db_host: "localhost"
31+
takserver_db_port: 5432
32+
takserver_db_sslmode: "disable"
33+
takserver_db_sslcert: ""
34+
takserver_db_sslkey: ""
35+
takserver_db_sslrootcert: ""
36+
takserver_db_sslcrl: ""
37+
38+
takserver_users: ["takadmin", "enroll"]
39+
takserver_user_pass: "-default-X-2025-"
40+
takserver_admins: ["takadmin"]

files/CoreConfig.xml

Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!-- CoreConfig.xml from https://github.com/snstac/ansible-takserver -->
3+
<Configuration xmlns="http://bbn.com/marti/xml/config"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:schemaLocation="CoreConfig.xsd">
6+
7+
<network multicastTTL="5" serverId="serverId">
8+
9+
<input _name="stdssl" protocol="tls" port="8089" coreVersion="2" auth="x509" />
10+
11+
<!-- <input _name="stdudp" protocol="udp" port="8087" auth="anonymous"/> -->
12+
<!-- <input _name="streamtcp" protocol="stcp" port="8088" auth="anonymous"/> -->
13+
<!-- <input _name="stdtcp" protocol="tcp" port="8087" auth="anonymous"/> -->
14+
<!-- <input _name="SAproxy" protocol="mcast" group="239.2.3.1" port="6969" auth="anonymous" /> -->
15+
<!-- <input _name="GeoChatproxy" protocol="mcast" group="224.10.10.1" port="17012" auth="anonymous" /> -->
16+
<!--<announce enable="true" uid="Marti1" group="239.2.3.1" port="6969" interval="1" ip="192.168.1.137" />-->
17+
<!--<input _name="stdssl" protocol="tls" port="8089"/>-->
18+
<!--<input _name="sslauth" protocol="tls" port="8090" auth="ldap"/> -->
19+
20+
<!--<input _name="stdtcpwithgroups" protocol="tcp" port="8087" auth="anonymous">-->
21+
<!--<filtergroup>group one</filtergroup>-->
22+
<!--<filtergroup>group two</filtergroup>-->
23+
<!--</input>-->
24+
25+
<!--<input _name="stdtcpwithfilters" protocol="tcp" port="8087" auth="anonymous">-->
26+
<!--<filter>-->
27+
<!--<geospatialFilter>-->
28+
<!--<boundingBox minLongitude="-80" minLatitude="34" maxLongitude="-70" maxLatitude="36" />-->
29+
<!--<boundingBox minLongitude="-100" minLatitude="34" maxLongitude="-90" maxLatitude="36" />-->
30+
<!--</geospatialFilter>-->
31+
<!--</filter>-->
32+
<!--</input>-->
33+
34+
<!-- web connectors -->
35+
<connector port="8443" _name="https"/>
36+
<!-- <connector port="8451" _name="https" enableAdminUI="true" enableWebtak="false" /> -->
37+
<!-- <connector port="8452" _name="https" enableAdminUI="false" enableWebtak="true" /> -->
38+
<!-- <connector port="8453" _name="https" enableAdminUI="false" enableWebtak="false" enableNonAdminUI="false"/> -->
39+
40+
<connector port="8444" useFederationTruststore="true" _name="fed_https"/>
41+
<!-- <connector port="8446" clientAuth="false" _name="cert_https" enableWebtak="false"/> -->
42+
43+
<connector port="8446" clientAuth="false" _name="cert_https"/>
44+
<!-- <connector port="8446" clientAuth="false" _name="cert_https" keystore="JKS" keystoreFile="certs/files/letsencrypt/demo.snstak.net.jks" keystorePass="atakatak"/> -->
45+
<!-- <connector port="8080" tls="false" _name="http_plaintext"/> -->
46+
</network>
47+
48+
<auth>
49+
<!-- Example OpenLDAP -->
50+
<!--
51+
<ldap
52+
url="ldap://hostname.bbn.com/"
53+
userstring="uid={username},ou=People,dc=XXX,dc=bbn,dc=com"
54+
updateinterval="60"
55+
style="DS"
56+
/>
57+
-->
58+
59+
<!-- Example ActiveDirectory -->
60+
61+
<!--NOTE!! In the example below, GroupBaseDN should be specified relative to the naming context provided in the url attribute below -->
62+
<!--
63+
<ldap
64+
url="ldap://hostname.bbn.com/dc=XXX,dc=bbn,dc=com"
65+
userstring="DOMAIN\{username}"
66+
updateinterval="60"
67+
groupprefix=""
68+
style="AD"
69+
ldapSecurityType="simple"
70+
serviceAccountDN="cn=fred001,cn=Users,cn=Partition1,dc=XYZ,dc=COM"
71+
serviceAccountCredential="XXXXXX"
72+
groupObjectClass="group"
73+
groupBaseRDN="CN=Groups"/>
74+
/>
75+
76+
-->
77+
<File location="UserAuthenticationFile.xml"/>
78+
</auth>
79+
80+
<submission ignoreStaleMessages="false" validateXml="false"/>
81+
82+
<subscription reloadPersistent="false">
83+
<!-- example static subscription that publishes messages to a UDP multicast address and port -->
84+
<!-- <static _name="MulticastProxy" protocol="udp" address="239.2.3.1" port="6969" /> -->
85+
</subscription>
86+
87+
<repository enable="true" numDbConnections="200" primaryKeyBatchSize="500" insertionBatchSize="500">
88+
89+
<connection url="jdbc:postgresql://127.0.0.1:5432/cot" username="martiuser" password="4mEt48lCJgar2yq" />
90+
91+
<!-- <connection url="jdbc:postgresql://127.0.0.1:5432/cot" username="martiuser"
92+
sslEnabled="true" sslMode="verify-ca"
93+
sslCert="certs/files/martiuser.pem" sslKey="certs/files/martiuser.key.pk8"
94+
sslRootCert="certs/files/ca.pem"/> -->
95+
96+
</repository>
97+
98+
<repeater enable="true" periodMillis="3000" staleDelayMillis="15000">
99+
<!-- Examples -->
100+
<repeatableType initiate-test="/event/detail/emergency[@type='911 Alert']" cancel-test="/event/detail/emergency[@cancel='true']" _name="911"/>
101+
<repeatableType initiate-test="/event/detail/emergency[@type='Ring The Bell']" cancel-test="/event/detail/emergency[@cancel='true']" _name="RingTheBell"/>
102+
<repeatableType initiate-test="/event/detail/emergency[@type='Geo-fence Breached']" cancel-test="/event/detail/emergency[@cancel='true']" _name="GeoFenceBreach"/>
103+
<repeatableType initiate-test="/event/detail/emergency[@type='Troops In Contact']" cancel-test="/event/detail/emergency[@cancel='true']" _name="TroopsInContact"/>
104+
</repeater>
105+
106+
<dissemination smartRetry="false" />
107+
108+
<filter>
109+
<flowtag enable="true" text=""/>
110+
<streamingbroker enable="true"/>
111+
<!--
112+
<injectionfilter enable="false"/>
113+
<dropfilter>
114+
<typefilter type="u-d-p" />
115+
<typefilter type="u-d-c" />
116+
</dropfilter>
117+
-->
118+
<scrubber enable="false" action="overwrite"/>
119+
</filter>
120+
121+
<buffer>
122+
<latestSA enable="true"/>
123+
<queue/>
124+
</buffer>
125+
126+
<security>
127+
<tls context="TLSv1.2"
128+
keymanager="SunX509"
129+
keystore="JKS" keystoreFile="certs/files/takserver.jks" keystorePass="atakatak"
130+
truststore="JKS" truststoreFile="certs/files/truststore-root.jks" truststorePass="atakatak">
131+
<!-- <crl _name="TAKServer CA" crlFile="certs/files/ca.crl"/> -->
132+
133+
</tls>
134+
135+
<!-- previous locations of keystore and truststore -->
136+
<!--
137+
<tls context="TLSv1.2"
138+
keymanager="SunX509"
139+
keystore="JKS" keystoreFile="certs/TAKServer.jks" keystorePass="atakatak"
140+
truststore="JKS" truststoreFile="certs/truststore.jks" truststorePass="atakatak">
141+
</tls>
142+
-->
143+
144+
</security>
145+
146+
<federation>
147+
<federation-server port="9000" v1enabled="false" v2port="9001" v2enabled="true">
148+
<tls context="TLSv1.2"
149+
keymanager="SunX509"
150+
keystore="JKS" keystoreFile="certs/files/takserver.jks" keystorePass="atakatak"
151+
truststore="JKS" truststoreFile="certs/files/fed-truststore.jks" truststorePass="atakatak"/>
152+
</federation-server>
153+
</federation>
154+
155+
<!-- previous locations of federate keystore and truststore -->
156+
157+
<!--
158+
<tls context="TLSv1.2"
159+
keymanager="SunX509"
160+
keystore="JKS" keystoreFile="certs/TAKServer.jks" keystorePass="atakatak"
161+
truststore="JKS" truststoreFile="certs/fed-truststore.jks" truststorePass="atakatak"/>
162+
-->
163+
164+
<certificateSigning CA="TAKServer">
165+
<certificateConfig>
166+
<nameEntries>
167+
<nameEntry name="O" value="SNSTAC"/>
168+
<nameEntry name="OU" value="SNSTAK"/>
169+
</nameEntries>
170+
</certificateConfig>
171+
<TAKServerCAConfig keystore="JKS" keystoreFile="certs/files/ca-signing.jks" keystorePass="atakatak" validityDays="90" signatureAlg="SHA256WithRSA" CAcertificate="certs/files/intermediate"/>
172+
</certificateSigning>
173+
174+
<!--
175+
<certificateSigning CA="{TAKServer | MicrosoftCA}">
176+
<certificateConfig>
177+
<nameEntries>
178+
<nameEntry name="O" value="Test Org Name"/>
179+
<nameEntry name="OU" value="Test Org Unit Name"/>
180+
</nameEntries>
181+
</certificateConfig>
182+
<TAKServerCAConfig
183+
keystore="JKS"
184+
keystoreFile="certs/files/intermediate-signing.jks"
185+
keystorePass="atakatak"
186+
validityDays="30"
187+
signatureAlg="SHA256WithRSA" />
188+
<MicrosoftCAConfig
189+
username="{MS CA Username}"
190+
password="{MS CA Password}"
191+
truststore="/opt/tak/certs/files/keystore.jks"
192+
truststorePass="atakatak"
193+
svcUrl="https://{server}/{CA name}_CES_UsernamePassword/service.svc"
194+
templateName="Copy of User"/>
195+
</certificateSigning>
196+
-->
197+
198+
<vbm enabled="false" />
199+
200+
</Configuration>

files/DP.pref

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version='1.0' standalone='yes'?>
2+
<preferences>
3+
<preference version="1" name="cot_streams">
4+
<entry key="count" class="class java.lang.Integer">1</entry>
5+
<entry key="description0" class="class java.lang.String">Example TAK Server</entry>
6+
<entry key="enabled0" class="class java.lang.Boolean">true</entry>
7+
<entry key="connectString0" class="class java.lang.String">tak.example.net:8089:ssl</entry>
8+
<entry key="caLocation0" class="class java.lang.String">cert/truststore.p12</entry>
9+
<entry key="caPassword0" class="class java.lang.String">atakatak</entry>
10+
<entry key="enrollForCertificateWithTrust0" class="class java.lang.Boolean">true</entry>
11+
<entry key="useAuth0" class="class java.lang.Boolean">false</entry>
12+
<entry key="certificateLocation0" class="class java.lang.String">cert/client.p12</entry>
13+
<entry key="clientPassword0" class="class java.lang.String">atakatak</entry>
14+
</preference>
15+
<preference version="1" name="com.atakmap.app_preferences">
16+
</preference>
17+
</preferences>

0 commit comments

Comments
 (0)