Compare commits

..

7 Commits

Author SHA1 Message Date
Christer Warén
7ba547b092 Add kea-dhcp4.conf to Kea files 2025-08-08 18:13:19 +03:00
Christer Warén
4a5cf02393 Update network device configurations to INSTRUCTIONS.md 2025-08-08 18:13:19 +03:00
Christer Warén
dfb32da692 Update olympus host variables 2025-08-06 16:24:00 +03:00
Christer Warén
47db2224af Install Kea server as new DHCP server in Deployer tasks 2025-08-06 16:23:27 +03:00
Christer Warén
b059214c0a Update data directory location to be static in root user directory 2025-08-06 15:57:26 +03:00
Christer Warén
72af6d2110 Update DHCP server configuration 2025-08-06 15:51:31 +03:00
Christer Warén
587d9032ac Update network device configurations to INSTRUCTIONS.md 2025-08-06 15:28:04 +03:00
50 changed files with 945 additions and 4020 deletions

View File

@@ -1,5 +1,6 @@
{
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"files.trimFinalNewlines": true,
"editor.renderFinalNewline": false
}

View File

@@ -1,33 +1,11 @@
# TIETOJÄRJESTELMÄASENTAJIEN INFRA
## Ylläpitäjän ohjeet
**Työaseman asennus**
1. Asenna Windows Subsystem for Linux vaihtoehtoisista järjestelmäominaisuuksista.
2. Käynnistä työasema uudelleen
3. Asenna Debian käyttöjärjestelmä
1. Avaa Powershell järjestelmänvalvojana
2. Suorita asennuskomento `wsl --install -d Debian`
3. Aseta käyttäjätunnukseksi `asentaja` ja salasanaksi sama kuin työaseman Windows käyttäjän salasana.
4. Vaihda isännän nimi
1. Lisää Network kohtaan tai luo Network kohta `echo "[network]" > /etc/wsl.conf`
2. Lisää isännän nimi `echo "hostname = argo.aito.tjas" > /etc/wsl.conf`
3. Lisää Hosts tiedoston generointi `echo "generateHosts = true" > /etc/wsl.conf`
5. Sulje ikkuna
4. Aseta Debian oletusarvoiseksi käyttöjärjestelmäksi ja käynnistä se uudelleen
1. Avaa Powershell järjestelmänvalvojana
2. Vaihda oletusarvoinen käyttöjärjestelmä `wsl --set-default Debian`
3. Käynnistä uudelleen käyttöjärjestelmä `wsl -t Debian`
4. Sulje ikkuna
6. Avaa Debian käynnistävalikosta tai suorita Powershellissä komento järjestelmänvalvojana `wsl -d Debian`
7. Kohota oikeudet `sudo su`
8. Asenna curl-paketti käyttämällä APT-paketinhallintaa `apt update && apt install curl`
9. Lataa ja suorita Init.sh skripti `bash <(curl https://raw.githubusercontent.com/cwchristerw/tjas-infra/refs/heads/master/init.sh)`
#Tietojärjestelmäasentajien Infra
## PVJJK 1.VOS TJAS - Infra
### Ylläpitäjän ohjeet
**Palvelimen asennus**
1. Asenna Debian-käyttöjärjestelmä
2. Kirjaudu root käyttäjänä tai kohota oikeudet `sudo su`
3. Asenna curl-paketti käyttämällä APT-paketinhallintaa `apt update && apt install curl`
4. Lataa ja suorita Init.sh skripti `bash <(curl https://raw.githubusercontent.com/cwchristerw/tjas-infra/refs/heads/master/init.sh)`
2. Asenna curl-paketti käyttämällä APT-paketinhallintaa `apt update && apt install curl`
3. Lataa ja suorita Init.sh skripti `bash <(curl https://raw.githubusercontent.com/cwchristerw/tjas-infra/refs/heads/master/init.sh)`
**Verkkolaitteiden konfigurointi**
1. Kytke verkkolaitteen Console (Ethernet) porttiin serial portti adapteri sekä yhdistä siihen serial portti USB-adapteri
@@ -36,12 +14,12 @@
r1.net.tjas
```
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
!
hostname r1.net.tjas
!
boot-start-marker
@@ -84,35 +62,27 @@ interface FastEthernet0/1.10
description "TINU - INTERNET"
encapsulation dot1Q 10
ip address 192.168.1.1 255.255.255.224
ip access-group 10 out
ip helper-address 192.168.2.10
ip nat inside
no snmp trap link-status
!
interface FastEthernet0/1.20
description "JUVA - INTRA"
encapsulation dot1Q 20
ip address 192.168.2.1 255.255.255.224
ip access-group 20 out
ip helper-address 192.168.2.10
ip nat inside
no snmp trap link-status
!
interface FastEthernet0/1.30
description "AITO - TOIMISTO"
encapsulation dot1Q 30
ip address 192.168.3.1 255.255.255.224
ip access-group 30 out
ip helper-address 192.168.2.10
ip nat inside
no snmp trap link-status
!
interface FastEthernet0/1.69
description "SIVE - HALLINTA"
encapsulation dot1Q 69
ip address 192.168.69.1 255.255.255.192
ip access-group 69 in
ip access-group 69 out
ip helper-address 192.168.69.20
no snmp trap link-status
!
@@ -124,48 +94,15 @@ interface GigabitEthernet0/0/0
ip classless
!
ip http server
ip nat inside source list 1 interface FastEthernet0/0 overload
!
access-list 1 permit 192.168.1.0 0.0.0.31
access-list 1 permit 192.168.2.0 0.0.0.31
access-list 1 permit 192.168.3.0 0.0.0.31
access-list 10 deny 192.168.0.0 0.0.255.255
access-list 10 permit any
access-list 20 permit 192.168.2.0 0.0.0.31
access-list 20 deny 192.168.0.0 0.0.255.255
access-list 20 permit any
access-list 30 permit 192.168.2.10
access-list 30 permit 192.168.3.0 0.0.0.31
access-list 30 deny 192.168.0.0 0.0.255.255
access-list 30 permit any
access-list 69 permit 192.168.69.0 0.0.0.63
!
control-plane
!
banner motd ^C
.-') _ ('-. .-')
( OO) ) ( OO ).-. ( OO ).
/ '._ ,--. / . --. /(_)---\_)
|'--...__) .-')| ,| | \-. \ / _ |
'--. .--'( OO |(_|.-'-' | |\ :` `.
| | | `-'| | \| |_.' | '..`''.)
| | ,--. | | | .-. |.-._) \
| | | '-' / | | | |\ /
`--' `-----' `--' `--' `-----'
TIETOJÄRJESTELMÄASENTAJIEN INFRA
r1.net.tjas
^C
!
line con 0
line aux 0
line vty 0 4
password ********
password TJAS1234
login
!
scheduler allocate 20000 1000
@@ -176,13 +113,11 @@ end
s1.net.tjas
```
hostname "s1.net.tjas"
ip default-gateway 192.168.1.1
snmp-server community "public" Unrestricted
vlan 1
name "DEFAULT_VLAN"
untagged 4-52
untagged 1-52
ip address dhcp-bootp
no untagged 1-3
exit
vlan 10
name "TINU"
@@ -205,24 +140,6 @@ vlan 69
tagged 1-3
exit
ip authorized-managers 192.168.69.20 255.255.255.255
banner motd "
.-') _ ('-. .-')
( OO) ) ( OO ).-. ( OO ).
/ '._ ,--. / . --. /(_)---\_)
|'--...__) .-')| ,| | \-. \ / _ |
'--. .--'( OO |(_|.-'-' | |\ :` `.
| | | `-'| | \| |_.' | '..`''.)
| | ,--. | | | .-. |.-._) \
| | | '-' / | | | |\ /
`--' `-----' `--' `--' `-----'
TIETOJÄRJESTELMÄASENTAJIEN INFRA
s1.net.tjas
"
ip ssh
password manager
```
@@ -230,83 +147,16 @@ password manager
s2.net.tjas
```
hostname "s2.net.tjas"
interface 3
disable
exit
interface 4
disable
exit
interface 5
disable
exit
interface 6
disable
exit
interface 7
disable
exit
interface 8
disable
exit
interface 9
disable
exit
interface 10
disable
exit
interface 11
disable
exit
interface 12
disable
exit
interface 13
disable
exit
interface 14
disable
exit
interface 15
disable
exit
interface 16
disable
exit
interface 17
disable
exit
interface 18
disable
exit
interface 19
disable
exit
interface 20
disable
exit
interface 21
disable
exit
interface 22
disable
exit
interface 23
disable
exit
interface 24
disable
exit
ip default-gateway 192.168.2.1
snmp-server community "public" Unrestricted
vlan 1
name "DEFAULT_VLAN"
untagged 3-28
untagged 25-28
ip address dhcp-bootp
no untagged 1-2
no untagged 1-24
exit
vlan 20
name "JUVA"
untagged 3-24
untagged 2-24
ip address 192.168.2.2 255.255.255.224
tagged 1-2
exit
@@ -315,25 +165,7 @@ vlan 69
ip address 192.168.69.12 255.255.255.192
tagged 1-2
exit
ip authorized-managers 192.168.69.20
banner motd "
.-') _ ('-. .-')
( OO) ) ( OO ).-. ( OO ).
/ '._ ,--. / . --. /(_)---\_)
|'--...__) .-')| ,| | \-. \ / _ |
'--. .--'( OO |(_|.-'-' | |\ :` `.
| | | `-'| | \| |_.' | '..`''.)
| | ,--. | | | .-. |.-._) \
| | | '-' / | | | |\ /
`--' `-----' `--' `--' `-----'
TIETOJÄRJESTELMÄASENTAJIEN INFRA
s2.net.tjas
"
ip authorized-managers 192.168.69.20 255.255.255.255
ip ssh
password manager
```
@@ -341,40 +173,6 @@ password manager
s3.net.tjas
```
hostname "s3.net.tjas"
interface 2
disable
exit
interface 3
disable
exit
interface 4
disable
exit
interface 5
disable
exit
interface 6
disable
exit
interface 7
disable
exit
interface 8
disable
exit
interface 9
disable
exit
interface 10
disable
exit
interface 11
disable
exit
interface 12
disable
exit
ip default-gateway 192.168.3.1
snmp-server community "public" Unrestricted
vlan 1
name "DEFAULT_VLAN"
@@ -384,9 +182,9 @@ vlan 1
exit
vlan 30
name "AITO"
untagged 13-24
ip address 192.168.3.2 255.255.255.224
tagged 1
tagged 1,13-24
untagged
exit
vlan 69
name "SIVE"
@@ -394,31 +192,7 @@ vlan 69
ip address 192.168.69.13 255.255.255.192
tagged 1
exit
ip authorized-managers 192.168.69.20
banner motd "
.-') _ ('-. .-')
( OO) ) ( OO ).-. ( OO ).
/ '._ ,--. / . --. /(_)---\_)
|'--...__) .-')| ,| | \-. \ / _ |
'--. .--'( OO |(_|.-'-' | |\ :` `.
| | | `-'| | \| |_.' | '..`''.)
| | ,--. | | | .-. |.-._) \
| | | '-' / | | | |\ /
`--' `-----' `--' `--' `-----'
TIETOJÄRJESTELMÄASENTAJIEN INFRA
s3.net.tjas
"
ip authorized-managers 192.168.69.20 255.255.255.255
ip ssh
password manager
```
# LÄHTEET
## ISSUE - ASCII ART
ASCII Art Generator
https://www.textmods.com/ascii-art

View File

@@ -1,9 +1,9 @@
# Tietojärjestelmäasentajien Infra
## Tervetuloa
## PVJJK 1.VOS TJAS - Infra
Infran toteutus aloitettiin vuonna 2025 ja sen on suunnitellut [Jääkäri Warén](https://christerwaren.fi).
Voit halutessasi pyytää oikeudet tähän Github-repoon. Oikeudet myönnetään vain, jos olet niihin oikeutettu. Voit myös halutessasi forkata projektin ja jatkokehittää sitä eteenpäin tekemällä Pull Requestin.
Voit halutessasi pyytää oikeudet tähän Github-repoon. Oikeudet myönnetään vain, jos olet 1.VOS:issa. Voit myös halutessasi forkata projektin ja jatkokehittää sitä eteenpäin tekemällä Pull Requestin.
[Lue käyttöohjeet](INSTRUCTIONS.md)

View File

@@ -1,5 +1,5 @@
[defaults]
inventory = inventories
inventory = inventories/pvjjk-1vos-tjas
hash_behaviour = merge
gathering = smart
display_skipped_hosts = false

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

View File

@@ -1,274 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="695.94501"
height="695.94501"
viewBox="0 0 184.13545 184.13545"
version="1.1"
id="svg1"
sodipodi:docname="logo-square.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
inkscape:export-filename="logo-square.png"
inkscape:export-xdpi="96.010002"
inkscape:export-ydpi="96.010002"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="1.44"
inkscape:cx="329.51389"
inkscape:cy="169.44444"
inkscape:window-width="1920"
inkscape:window-height="1008"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<linearGradient
id="linearGradient1"
inkscape:collect="always">
<stop
style="stop-color:#c84dff;stop-opacity:1;"
offset="0"
id="stop1" />
<stop
style="stop-color:#ad00fa;stop-opacity:1;"
offset="0.20007552"
id="stop3" />
<stop
style="stop-color:#c84dff;stop-opacity:1;"
offset="0.36412308"
id="stop4" />
<stop
style="stop-color:#8800c4;stop-opacity:1;"
offset="0.49973571"
id="stop5" />
<stop
style="stop-color:#c84dff;stop-opacity:1;"
offset="0.82178771"
id="stop6" />
<stop
style="stop-color:#58007e;stop-opacity:1;"
offset="1"
id="stop2" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient2"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient3"
gradientUnits="userSpaceOnUse"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient4"
gradientUnits="userSpaceOnUse"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient5"
gradientUnits="userSpaceOnUse"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient6"
gradientUnits="userSpaceOnUse"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(1.7166583e-5,54.181246)">
<g
id="g9"
style="display:none"
transform="translate(-8.8234898,-66.083592)">
<g
id="g7">
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="39.283604"
y="115.8997"
id="text1"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;text-anchor:middle;stroke-width:0.264583"
x="39.283604"
y="115.8997"
id="tspan5">T</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="79.859314"
y="115.52763"
id="text1-1"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;text-anchor:middle;stroke-width:0.264583"
x="79.859314"
y="115.52763"
id="tspan5-8">J</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="122.32855"
y="115.8997"
id="text1-28"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;text-anchor:middle;stroke-width:0.264583"
x="122.32855"
y="115.8997"
id="tspan5-9">A</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="161.78362"
y="116.07333"
id="text1-2"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;text-anchor:middle;stroke-width:0.264583"
x="161.78362"
y="116.07333"
id="tspan5-3">S</tspan></text>
</g>
<g
id="g8"
style="stroke:none">
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke:none;stroke-width:0.264583"
x="39.344238"
y="128.46199"
id="text1-3-2"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;text-anchor:middle;stroke:none;stroke-width:0.264583"
x="39.344238"
y="128.46199"
id="tspan5-2-9">TANGO</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke:none;stroke-width:0.264583"
x="79.264"
y="128.3297"
id="text1-3"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;text-anchor:middle;stroke:none;stroke-width:0.264583"
x="79.264"
y="128.3297"
id="tspan5-2">JULIET</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke:none;stroke-width:0.264583"
x="122.30926"
y="128.43994"
id="text1-3-7"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;text-anchor:middle;stroke:none;stroke-width:0.264583"
x="122.30926"
y="128.43994"
id="tspan5-2-8">ALPHA</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke:none;stroke-width:0.264583"
x="161.81256"
y="128.5116"
id="text1-3-6"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;text-anchor:middle;stroke:none;stroke-width:0.264583"
x="161.81256"
y="128.5116"
id="tspan5-2-1">SIERRA</tspan></text>
</g>
</g>
<g
id="g17"
style="display:inline;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
transform="translate(-8.8234921,-66.083609)">
<g
id="g12"
style="fill:url(#linearGradient2);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers">
<path
style="font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient3);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 52.975791,80.428994 -0.248047,10.517187 -7.391797,0.297656 -1.885156,23.514843 -10.467578,0.5457 0.04961,-23.51484 -7.391797,0.396875 0.297656,-11.707812 z"
id="text9"
aria-label="T" />
<path
style="font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient4);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 91.864783,95.088571 q 0,1.463477 0,2.902149 0,1.438672 -0.148829,2.90215 -0.272851,3.10058 -1.339453,5.87871 -1.066601,2.75332 -2.902148,4.83691 -1.810742,2.0836 -4.415234,3.29903 -2.604493,1.21543 -5.97793,1.21543 -1.314648,0 -2.75332,-0.22325 -1.413867,-0.22324 -2.827735,-0.66972 -1.389062,-0.44649 -2.678906,-1.09141 -1.265039,-0.66973 -2.257226,-1.53789 l 1.53789,-10.26914 q 1.463477,1.41387 3.249414,2.30684 1.785938,0.86816 3.894336,0.86816 1.364258,0 2.306836,-0.39687 0.942578,-0.39688 1.562695,-1.09141 0.620118,-0.69453 0.967383,-1.61231 0.37207,-0.94257 0.520899,-1.98437 0.173632,-1.066602 0.198437,-2.182813 0.04961,-1.116211 0.04961,-2.207617 0,-3.943946 -0.396875,-7.838282 -0.396875,-3.91914 -0.694531,-7.838281 l 11.360547,-0.74414 q 0.744141,7.739062 0.74414,15.478124 z"
id="text10"
aria-label="J" />
<path
style="font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient5);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 138.9725,113.76649 -12.30313,1.5875 -1.48828,-5.60586 h -5.65547 l -1.24023,5.60586 -12.65039,-1.24023 9.87226,-33.039844 13.79141,-0.694532 z m -14.68438,-11.60859 -1.88515,-8.632031 -1.83555,8.632031 z"
id="text11"
aria-label="A" />
<path
style="font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient6);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 174.96731,102.87724 q 0,3.39824 -1.19063,5.95313 -1.16582,2.53007 -3.22461,4.21679 -2.03398,1.68672 -4.7873,2.53008 -2.72852,0.84336 -5.87871,0.84336 -1.21543,0 -2.67891,-0.32246 -1.43867,-0.32246 -2.92695,-0.79375 -1.48828,-0.4961 -2.87735,-1.0418 -1.36425,-0.57051 -2.43086,-1.0666 l 1.09141,-10.21953 q 2.1084,1.26504 4.66328,1.93476 2.57969,0.64493 5.06016,0.64493 0.47129,0 1.14101,-0.0248 0.66973,-0.0496 1.26504,-0.22324 0.62012,-0.19844 1.0418,-0.57051 0.42168,-0.37207 0.42168,-1.0666 0,-0.47129 -0.29766,-0.79375 -0.29765,-0.34727 -0.76894,-0.5457 -0.47129,-0.22325 -1.0666,-0.32246 -0.59532,-0.12403 -1.16582,-0.17364 -0.57051,-0.0496 -1.06661,-0.0496 -0.49609,0 -0.79375,0 -2.1332,0 -3.89433,-0.74414 -1.73633,-0.74414 -3.00137,-2.058786 -1.24023,-1.339453 -1.93476,-3.150195 -0.69454,-1.835547 -0.69454,-3.96875 0,-2.926953 1.16582,-5.233789 1.19063,-2.33164 3.1502,-3.943945 1.98437,-1.637109 4.53926,-2.505274 2.55488,-0.868164 5.2834,-0.868164 1.21543,0 2.50527,0.09922 1.28984,0.07441 2.55488,0.297656 1.28985,0.223243 2.50528,0.570508 1.21543,0.347266 2.30683,0.868164 l -0.94258,10.070703 q -1.68672,-0.570508 -3.54707,-0.942578 -1.83554,-0.396875 -3.59668,-0.396875 -0.32246,0 -0.84336,0.02481 -0.49609,0 -1.0666,0.07441 -0.5457,0.04961 -1.11621,0.173633 -0.57051,0.124023 -1.01699,0.347265 -0.44649,0.198438 -0.71934,0.545703 -0.27285,0.347266 -0.24804,0.818555 0.0248,0.545703 0.39687,0.892969 0.39688,0.322461 0.99219,0.520898 0.62012,0.173633 1.33945,0.248047 0.74414,0.07441 1.46348,0.09922 0.71933,0 1.33945,0 0.62012,-0.02481 1.01699,0.02481 1.98438,0.124023 3.57188,0.843359 1.5875,0.719336 2.67891,1.909961 1.11621,1.190625 1.68671,2.852539 0.59532,1.637116 0.59532,3.621486 z"
id="text12"
aria-label="S" />
</g>
<g
id="g16"
style="fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers">
<path
style="font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 28.126996,120.5796 -0.05512,2.33716 -1.642623,0.0661 -0.418924,5.22553 -2.326131,0.12127 0.01103,-5.22553 -1.642624,0.0882 0.06615,-2.60174 z m 6.493322,7.40834 -2.73403,0.35278 -0.33073,-1.24574 h -1.256772 l -0.275608,1.24574 -2.8112,-0.27561 2.193839,-7.34219 3.06476,-0.15434 z m -3.263197,-2.57969 -0.418924,-1.91823 -0.4079,1.91823 z m 10.875488,-4.85069 -0.396876,7.47448 -2.888371,0.26459 -1.543404,-4.00183 -0.242535,4.079 h -2.480471 l 0.198437,-7.81624 2.756079,-0.1323 1.907207,3.96876 0.08819,-3.74827 z m 7.099659,6.77995 q -0.259071,0.32522 -0.63941,0.56775 -0.380339,0.24254 -0.8158,0.40239 -0.43546,0.15985 -0.892969,0.23702 -0.457509,0.0827 -0.870921,0.0827 -0.799263,0 -1.471747,-0.28664 -0.672483,-0.28663 -1.163065,-0.78824 -0.48507,-0.50711 -0.760678,-1.19062 -0.275608,-0.68351 -0.275608,-1.47175 0,-0.60082 0.137804,-1.17409 0.137804,-0.57877 0.391363,-1.08589 0.259072,-0.51263 0.628386,-0.93707 0.369315,-0.42995 0.837849,-0.73863 0.468533,-0.30868 1.025261,-0.47956 0.556728,-0.17087 1.190626,-0.17087 0.237023,0 0.507119,0.022 0.270096,0.0165 0.534679,0.0661 0.270096,0.0441 0.523655,0.12678 0.25356,0.0827 0.463022,0.20395 l -0.154341,2.10564 q -0.308681,-0.11575 -0.63941,-0.15434 -0.325218,-0.0441 -0.639411,-0.0441 -0.440972,0 -0.826823,0.1378 -0.380339,0.13229 -0.666972,0.38585 -0.28112,0.25356 -0.446484,0.61736 -0.165365,0.36381 -0.165365,0.82132 0,0.28663 0.07717,0.55672 0.07717,0.26459 0.231511,0.47405 0.159852,0.20395 0.391363,0.33073 0.237023,0.12678 0.545704,0.12678 0.209462,0 0.429948,-0.0551 0.225998,-0.0551 0.385851,-0.18742 l 0.02205,-0.42995 -1.322918,-0.022 0.06615,-1.65365 q 0.821311,-0.0276 1.642623,-0.0441 0.821311,-0.0221 1.653647,-0.0551 z m 7.231952,-2.7671 q 0,0.5016 -0.115755,0.97014 -0.115755,0.46302 -0.336241,0.87092 -0.214975,0.4079 -0.529168,0.74965 -0.308681,0.33624 -0.700044,0.57878 -0.385851,0.24253 -0.84336,0.38034 -0.457509,0.13229 -0.97014,0.13229 -0.496094,0 -0.948091,-0.12678 -0.446485,-0.12678 -0.837848,-0.35278 -0.391363,-0.23151 -0.711069,-0.55122 -0.314193,-0.32521 -0.540191,-0.71658 -0.220487,-0.39687 -0.347266,-0.84887 -0.121268,-0.452 -0.121268,-0.94258 0,-0.47956 0.115756,-0.93706 0.115755,-0.46303 0.330729,-0.87093 0.220487,-0.4079 0.529167,-0.74965 0.308681,-0.34175 0.68902,-0.5898 0.385851,-0.24805 0.832336,-0.38585 0.446485,-0.1378 0.942579,-0.1378 0.799263,0 1.45521,0.24804 0.661459,0.24805 1.12448,0.71107 0.468534,0.45751 0.722093,1.11346 0.259071,0.65043 0.259071,1.45521 z m -2.447398,0.14331 q 0,-0.23702 -0.07166,-0.45751 -0.06615,-0.22599 -0.198438,-0.39687 -0.132291,-0.17639 -0.330729,-0.28112 -0.192926,-0.11025 -0.446485,-0.11025 -0.259071,0 -0.463021,0.0937 -0.20395,0.0937 -0.352778,0.25907 -0.143316,0.15986 -0.220487,0.38034 -0.07717,0.21498 -0.07717,0.45751 0,0.23151 0.06615,0.46302 0.06615,0.23151 0.198438,0.41893 0.132291,0.18741 0.325217,0.30317 0.198438,0.11575 0.457509,0.11575 0.259072,0 0.463021,-0.0992 0.209462,-0.10473 0.352779,-0.27561 0.143316,-0.17639 0.220486,-0.40238 0.07717,-0.226 0.07717,-0.46854 z"
id="text13"
aria-label="TANGO" />
<path
style="font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 68.416072,123.78768 q 0,0.32522 0,0.64492 0,0.31971 -0.03307,0.64492 -0.06063,0.68902 -0.297656,1.30638 -0.237023,0.61185 -0.644923,1.07488 -0.402387,0.46302 -0.981164,0.73311 -0.578777,0.2701 -1.32843,0.2701 -0.292145,0 -0.61185,-0.0496 -0.314193,-0.0496 -0.628386,-0.14883 -0.308681,-0.0992 -0.595313,-0.24253 -0.28112,-0.14883 -0.501606,-0.34176 l 0.341754,-2.28203 q 0.325217,0.31419 0.722092,0.51263 0.396876,0.19292 0.865409,0.19292 0.303169,0 0.512631,-0.0882 0.209462,-0.0882 0.347266,-0.24253 0.137804,-0.15435 0.214974,-0.3583 0.08268,-0.20946 0.115755,-0.44097 0.03858,-0.23702 0.0441,-0.48507 0.01102,-0.24804 0.01102,-0.49058 0,-0.87643 -0.08819,-1.74184 -0.08819,-0.87092 -0.15434,-1.74184 l 2.524568,-0.16537 q 0.165365,1.71979 0.165365,3.43959 z m 7.083124,-1.5875 q 0,0.4079 -0.03858,0.89848 -0.03858,0.49058 -0.12678,1.01424 -0.08819,0.52365 -0.23151,1.06384 -0.137804,0.53468 -0.347266,1.03078 -0.209462,0.49609 -0.490583,0.93155 -0.275607,0.42995 -0.63941,0.75517 -0.35829,0.3197 -0.804775,0.5016 -0.446485,0.18742 -0.992189,0.18742 -0.63941,0 -1.113456,-0.20947 -0.468533,-0.20395 -0.804775,-0.55121 -0.336241,-0.35278 -0.551216,-0.8158 -0.214974,-0.46853 -0.336241,-0.98668 -0.121268,-0.52365 -0.170877,-1.06384 -0.0441,-0.54571 -0.0441,-1.04731 0,-0.77171 0.07717,-1.5379 0.07717,-0.7717 0.220486,-1.53789 l 2.57969,0.0992 q -0.148828,0.86541 -0.259071,1.74184 -0.104731,0.87092 -0.104731,1.75287 0,0.0937 0.0055,0.28112 0.01102,0.1819 0.03307,0.41341 0.02205,0.226 0.06063,0.46853 0.0441,0.23703 0.115755,0.43546 0.07166,0.19844 0.170877,0.32522 0.104731,0.12678 0.242535,0.12678 0.159853,0 0.286632,-0.14883 0.12678,-0.15434 0.220486,-0.4079 0.09922,-0.25356 0.170877,-0.58429 0.07166,-0.33072 0.121268,-0.68902 0.04961,-0.35829 0.07717,-0.71658 0.03307,-0.35829 0.04961,-0.66697 0.02205,-0.30868 0.02756,-0.5457 0.0055,-0.23702 0.0055,-0.35278 0,-0.42995 -0.01654,-0.85438 -0.01102,-0.42995 -0.03859,-0.85439 h 2.57969 q 0.06615,0.76068 0.06615,1.54341 z m 5.28616,2.98759 -0.23151,2.44739 -4.641238,0.36381 q 0.03307,-1.92375 0.07166,-3.82544 0.0441,-1.9017 0.104731,-3.82544 h 2.866323 q -0.12678,1.20716 -0.242535,2.41433 -0.115756,1.20165 -0.165365,2.42535 0.259071,0.011 0.512631,0.011 0.253559,0 0.51263,0 0.308681,0 0.606338,-0.006 0.297656,-0.006 0.606337,-0.006 z m 3.235636,-4.61919 -0.606337,7.50756 -2.326131,0.12126 v -7.47448 z m 5.600354,-0.18742 q -0.03307,0.51815 -0.06063,1.02527 -0.02756,0.50711 -0.07166,1.02526 l -2.337155,0.12126 -0.05512,0.69454 H 88.7394 l -0.121267,1.70877 -1.653648,0.0551 -0.05512,0.80477 h 1.367015 0.97014 q -0.03307,0.60634 -0.07166,1.20717 -0.03307,0.59531 -0.06063,1.19613 l -4.751481,0.11025 0.17639,-7.94854 z m 6.013764,0.0662 -0.05512,2.33716 -1.642623,0.0661 -0.418924,5.22553 -2.326131,0.12126 0.01102,-5.22552 -1.642623,0.0882 0.06615,-2.60174 z"
id="text14"
aria-label="JULIET" />
<path
style="font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 113.02678,127.9659 -2.73403,0.35277 -0.33073,-1.24574 h -1.25677 l -0.27561,1.24574 -2.8112,-0.2756 2.19384,-7.3422 3.06476,-0.15434 z m -3.26319,-2.57969 -0.41893,-1.91824 -0.4079,1.91824 z m 8.22414,-0.0882 -0.23152,2.4474 -4.64123,0.3638 q 0.0331,-1.92374 0.0717,-3.82544 0.0441,-1.90169 0.10473,-3.82543 h 2.86632 q -0.12678,1.20716 -0.24254,2.41432 -0.11575,1.20165 -0.16536,2.42535 0.25907,0.011 0.51263,0.011 0.25356,0 0.51263,0 0.30868,0 0.60634,-0.006 0.29765,-0.006 0.60634,-0.006 z m 6.68073,-2.16076 q 0,0.53467 -0.15985,0.94809 -0.15985,0.41341 -0.44097,0.72209 -0.27561,0.30868 -0.65044,0.52365 -0.37483,0.21498 -0.80477,0.35278 -0.42444,0.13229 -0.88195,0.19844 -0.45751,0.0606 -0.89848,0.0661 v 2.56866 h -2.56867 q 0,-1.26228 0.006,-2.51354 0.006,-1.25126 0.0165,-2.52457 0.011,-0.67248 0.006,-1.34497 -0.006,-0.67248 0.0276,-1.35599 0.70556,-0.20946 1.41112,-0.31419 0.70555,-0.10473 1.45521,-0.10473 0.42443,0 0.84887,0.0717 0.42444,0.0661 0.81029,0.21497 0.39136,0.14883 0.72209,0.37483 0.33624,0.22048 0.57878,0.52916 0.24253,0.30868 0.38033,0.70556 0.14332,0.39136 0.14332,0.88195 z m -2.4474,0.18741 q 0,-0.35829 -0.22048,-0.55673 -0.21498,-0.20395 -0.56224,-0.20395 -0.11576,0 -0.24254,0.022 -0.12127,0.0165 -0.23151,0.0441 l -0.0662,1.60955 q 0.0772,0.011 0.14883,0.011 0.0717,0 0.14883,0 0.19844,0 0.38034,-0.0661 0.18741,-0.0662 0.33073,-0.18742 0.14332,-0.12678 0.226,-0.29214 0.0882,-0.17088 0.0882,-0.38034 z m 9.2935,5.11528 -2.75608,0.13229 -0.022,-2.54661 h -1.26779 l -0.0772,2.41432 h -2.46945 l 0.20946,-7.75009 2.62379,0.12126 -0.16536,3.95773 h 1.22369 l 0.011,-4.25538 2.51354,0.0661 z m 7.47449,-0.47404 -2.73403,0.35277 -0.33073,-1.24574 h -1.25677 l -0.27561,1.24574 -2.8112,-0.2756 2.19384,-7.3422 3.06476,-0.15434 z m -3.2632,-2.57969 -0.41892,-1.91824 -0.4079,1.91824 z"
id="text15"
aria-label="ALPHA" />
<path
style="font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 149.98623,125.57913 q 0,0.75516 -0.26459,1.32292 -0.25907,0.56224 -0.71658,0.93706 -0.452,0.37483 -1.06385,0.56224 -0.60633,0.18742 -1.30638,0.18742 -0.27009,0 -0.59531,-0.0717 -0.31971,-0.0717 -0.65043,-0.17639 -0.33073,-0.11024 -0.63942,-0.23151 -0.30316,-0.12678 -0.54019,-0.23702 l 0.24254,-2.27101 q 0.46853,0.28112 1.03628,0.42995 0.57327,0.14331 1.12448,0.14331 0.10474,0 0.25356,-0.006 0.14883,-0.011 0.28112,-0.0496 0.13781,-0.0441 0.23151,-0.12678 0.0937,-0.0827 0.0937,-0.23702 0,-0.10473 -0.0661,-0.17639 -0.0661,-0.0772 -0.17088,-0.12127 -0.10473,-0.0496 -0.23702,-0.0717 -0.1323,-0.0276 -0.25908,-0.0386 -0.12678,-0.011 -0.23702,-0.011 -0.11024,0 -0.17639,0 -0.47404,0 -0.86541,-0.16536 -0.38585,-0.16537 -0.66697,-0.45751 -0.27561,-0.29766 -0.42995,-0.70004 -0.15434,-0.4079 -0.15434,-0.88195 0,-0.65043 0.25907,-1.16307 0.26459,-0.51814 0.70005,-0.87643 0.44097,-0.3638 1.00872,-0.55673 0.56776,-0.19292 1.17409,-0.19292 0.2701,0 0.55673,0.0221 0.28663,0.0165 0.56775,0.0661 0.28664,0.0496 0.55673,0.12678 0.2701,0.0772 0.51263,0.19293 l -0.20946,2.23793 q -0.37483,-0.12678 -0.78824,-0.20946 -0.4079,-0.0882 -0.79926,-0.0882 -0.0717,0 -0.18741,0.006 -0.11025,0 -0.23703,0.0165 -0.12126,0.011 -0.24804,0.0386 -0.12678,0.0276 -0.226,0.0772 -0.0992,0.0441 -0.15986,0.12127 -0.0606,0.0772 -0.0551,0.1819 0.006,0.12127 0.0882,0.19844 0.0882,0.0717 0.22048,0.11575 0.13781,0.0386 0.29766,0.0551 0.16537,0.0165 0.32522,0.022 0.15985,0 0.29765,0 0.13781,-0.006 0.226,0.006 0.44098,0.0276 0.79375,0.18741 0.35278,0.15985 0.59532,0.42444 0.24804,0.26458 0.37482,0.63389 0.1323,0.36381 0.1323,0.80478 z m 3.32383,-4.82865 -0.60634,7.50756 -2.32613,0.12126 v -7.47448 z m 5.60035,-0.18742 q -0.0331,0.51815 -0.0606,1.02527 -0.0276,0.50711 -0.0717,1.02526 l -2.33716,0.12126 -0.0551,0.69454 h 1.64263 l -0.12127,1.70877 -1.65365,0.0551 -0.0551,0.80477 h 1.36701 0.97014 q -0.0331,0.60634 -0.0717,1.20717 -0.0331,0.59531 -0.0606,1.19613 l -4.75148,0.11025 0.17639,-7.94854 z m 6.64766,2.63482 q 0,0.42994 -0.0772,0.78272 -0.0717,0.34727 -0.23151,0.63941 -0.15985,0.29215 -0.41341,0.54019 -0.25356,0.24805 -0.61185,0.47405 l 1.31189,2.33716 -2.48047,0.48507 -0.84887,-2.34818 -0.68351,0.022 -0.0992,2.29306 h -2.37022 q 0.0276,-1.25677 0.0496,-2.50252 0.0276,-1.24575 0.0606,-2.50252 0.011,-0.6339 0.0221,-1.25677 0.011,-0.62287 0.0441,-1.25677 0.38585,-0.14332 0.76067,-0.23702 0.37483,-0.0937 0.74966,-0.14332 0.38034,-0.0551 0.76619,-0.0717 0.39136,-0.0221 0.79926,-0.0221 0.62839,0 1.21267,0.17639 0.58981,0.17088 1.0418,0.51814 0.452,0.34727 0.72209,0.86541 0.27561,0.51815 0.27561,1.20717 z m -2.46944,0.17639 q 0,-0.23152 -0.0661,-0.42444 -0.0606,-0.19293 -0.18741,-0.33073 -0.12127,-0.14332 -0.30868,-0.22049 -0.18191,-0.0827 -0.42995,-0.0827 -0.11025,0 -0.21498,0.0165 -0.10473,0.011 -0.20395,0.0386 l -0.0882,2.05053 h 0.13229 q 0.23702,0 0.47956,-0.0606 0.24805,-0.0606 0.44097,-0.18741 0.19844,-0.12678 0.31971,-0.32522 0.12678,-0.19844 0.12678,-0.47404 z m 9.31003,-0.17639 q 0,0.42994 -0.0772,0.78272 -0.0717,0.34727 -0.23151,0.63941 -0.15985,0.29215 -0.41341,0.54019 -0.25356,0.24805 -0.61185,0.47405 l 1.31189,2.33716 -2.48047,0.48507 -0.84887,-2.34818 -0.68351,0.022 -0.0992,2.29306 h -2.37022 q 0.0276,-1.25677 0.0496,-2.50252 0.0276,-1.24575 0.0606,-2.50252 0.011,-0.6339 0.0221,-1.25677 0.011,-0.62287 0.0441,-1.25677 0.38586,-0.14332 0.76068,-0.23702 0.37483,-0.0937 0.74966,-0.14332 0.38033,-0.0551 0.76619,-0.0717 0.39136,-0.0221 0.79926,-0.0221 0.62838,0 1.21267,0.17639 0.5898,0.17088 1.0418,0.51814 0.452,0.34727 0.72209,0.86541 0.27561,0.51815 0.27561,1.20717 z m -2.46944,0.17639 q 0,-0.23152 -0.0661,-0.42444 -0.0606,-0.19293 -0.18741,-0.33073 -0.12127,-0.14332 -0.30868,-0.22049 -0.18191,-0.0827 -0.42995,-0.0827 -0.11025,0 -0.21498,0.0165 -0.10473,0.011 -0.20395,0.0386 l -0.0882,2.05053 h 0.13229 q 0.23702,0 0.47956,-0.0606 0.24805,-0.0606 0.44097,-0.18741 0.19844,-0.12678 0.31971,-0.32522 0.12678,-0.19844 0.12678,-0.47404 z m 9.80061,4.66328 -2.73403,0.35278 -0.33073,-1.24575 h -1.25677 l -0.27561,1.24575 -2.8112,-0.27561 2.19384,-7.34219 3.06476,-0.15434 z m -3.2632,-2.57969 -0.41892,-1.91823 -0.4079,1.91823 z"
id="text16"
aria-label="SIERRA" />
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -1,273 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="695.94501"
height="286.38599"
viewBox="0 0 184.13545 75.772958"
version="1.1"
id="svg1"
sodipodi:docname="logo.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
inkscape:export-filename="logo.png"
inkscape:export-xdpi="96.010002"
inkscape:export-ydpi="96.010002"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="1.44"
inkscape:cx="329.51389"
inkscape:cy="169.44444"
inkscape:window-width="1920"
inkscape:window-height="1008"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<linearGradient
id="linearGradient1"
inkscape:collect="always">
<stop
style="stop-color:#c84dff;stop-opacity:1;"
offset="0"
id="stop1" />
<stop
style="stop-color:#ad00fa;stop-opacity:1;"
offset="0.20007552"
id="stop3" />
<stop
style="stop-color:#c84dff;stop-opacity:1;"
offset="0.36412308"
id="stop4" />
<stop
style="stop-color:#8800c4;stop-opacity:1;"
offset="0.49973571"
id="stop5" />
<stop
style="stop-color:#c84dff;stop-opacity:1;"
offset="0.82178771"
id="stop6" />
<stop
style="stop-color:#58007e;stop-opacity:1;"
offset="1"
id="stop2" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient2"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient3"
gradientUnits="userSpaceOnUse"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient4"
gradientUnits="userSpaceOnUse"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient5"
gradientUnits="userSpaceOnUse"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient6"
gradientUnits="userSpaceOnUse"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g9"
style="display:none"
transform="translate(-8.8234898,-66.083592)">
<g
id="g7">
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="39.283604"
y="115.8997"
id="text1"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;text-anchor:middle;stroke-width:0.264583"
x="39.283604"
y="115.8997"
id="tspan5">T</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="79.859314"
y="115.52763"
id="text1-1"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;text-anchor:middle;stroke-width:0.264583"
x="79.859314"
y="115.52763"
id="tspan5-8">J</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="122.32855"
y="115.8997"
id="text1-28"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;text-anchor:middle;stroke-width:0.264583"
x="122.32855"
y="115.8997"
id="tspan5-9">A</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="161.78362"
y="116.07333"
id="text1-2"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;text-anchor:middle;stroke-width:0.264583"
x="161.78362"
y="116.07333"
id="tspan5-3">S</tspan></text>
</g>
<g
id="g8"
style="stroke:none">
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke:none;stroke-width:0.264583"
x="39.344238"
y="128.46199"
id="text1-3-2"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;text-anchor:middle;stroke:none;stroke-width:0.264583"
x="39.344238"
y="128.46199"
id="tspan5-2-9">TANGO</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke:none;stroke-width:0.264583"
x="79.264"
y="128.3297"
id="text1-3"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;text-anchor:middle;stroke:none;stroke-width:0.264583"
x="79.264"
y="128.3297"
id="tspan5-2">JULIET</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke:none;stroke-width:0.264583"
x="122.30926"
y="128.43994"
id="text1-3-7"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;text-anchor:middle;stroke:none;stroke-width:0.264583"
x="122.30926"
y="128.43994"
id="tspan5-2-8">ALPHA</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke:none;stroke-width:0.264583"
x="161.81256"
y="128.5116"
id="text1-3-6"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;text-anchor:middle;stroke:none;stroke-width:0.264583"
x="161.81256"
y="128.5116"
id="tspan5-2-1">SIERRA</tspan></text>
</g>
</g>
<g
id="g17"
style="display:inline;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
transform="translate(-8.8234921,-66.083609)">
<g
id="g12"
style="fill:url(#linearGradient2);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers">
<path
style="font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient3);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 52.975791,80.428994 -0.248047,10.517187 -7.391797,0.297656 -1.885156,23.514843 -10.467578,0.5457 0.04961,-23.51484 -7.391797,0.396875 0.297656,-11.707812 z"
id="text9"
aria-label="T" />
<path
style="font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient4);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 91.864783,95.088571 q 0,1.463477 0,2.902149 0,1.438672 -0.148829,2.90215 -0.272851,3.10058 -1.339453,5.87871 -1.066601,2.75332 -2.902148,4.83691 -1.810742,2.0836 -4.415234,3.29903 -2.604493,1.21543 -5.97793,1.21543 -1.314648,0 -2.75332,-0.22325 -1.413867,-0.22324 -2.827735,-0.66972 -1.389062,-0.44649 -2.678906,-1.09141 -1.265039,-0.66973 -2.257226,-1.53789 l 1.53789,-10.26914 q 1.463477,1.41387 3.249414,2.30684 1.785938,0.86816 3.894336,0.86816 1.364258,0 2.306836,-0.39687 0.942578,-0.39688 1.562695,-1.09141 0.620118,-0.69453 0.967383,-1.61231 0.37207,-0.94257 0.520899,-1.98437 0.173632,-1.066602 0.198437,-2.182813 0.04961,-1.116211 0.04961,-2.207617 0,-3.943946 -0.396875,-7.838282 -0.396875,-3.91914 -0.694531,-7.838281 l 11.360547,-0.74414 q 0.744141,7.739062 0.74414,15.478124 z"
id="text10"
aria-label="J" />
<path
style="font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient5);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 138.9725,113.76649 -12.30313,1.5875 -1.48828,-5.60586 h -5.65547 l -1.24023,5.60586 -12.65039,-1.24023 9.87226,-33.039844 13.79141,-0.694532 z m -14.68438,-11.60859 -1.88515,-8.632031 -1.83555,8.632031 z"
id="text11"
aria-label="A" />
<path
style="font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient6);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 174.96731,102.87724 q 0,3.39824 -1.19063,5.95313 -1.16582,2.53007 -3.22461,4.21679 -2.03398,1.68672 -4.7873,2.53008 -2.72852,0.84336 -5.87871,0.84336 -1.21543,0 -2.67891,-0.32246 -1.43867,-0.32246 -2.92695,-0.79375 -1.48828,-0.4961 -2.87735,-1.0418 -1.36425,-0.57051 -2.43086,-1.0666 l 1.09141,-10.21953 q 2.1084,1.26504 4.66328,1.93476 2.57969,0.64493 5.06016,0.64493 0.47129,0 1.14101,-0.0248 0.66973,-0.0496 1.26504,-0.22324 0.62012,-0.19844 1.0418,-0.57051 0.42168,-0.37207 0.42168,-1.0666 0,-0.47129 -0.29766,-0.79375 -0.29765,-0.34727 -0.76894,-0.5457 -0.47129,-0.22325 -1.0666,-0.32246 -0.59532,-0.12403 -1.16582,-0.17364 -0.57051,-0.0496 -1.06661,-0.0496 -0.49609,0 -0.79375,0 -2.1332,0 -3.89433,-0.74414 -1.73633,-0.74414 -3.00137,-2.058786 -1.24023,-1.339453 -1.93476,-3.150195 -0.69454,-1.835547 -0.69454,-3.96875 0,-2.926953 1.16582,-5.233789 1.19063,-2.33164 3.1502,-3.943945 1.98437,-1.637109 4.53926,-2.505274 2.55488,-0.868164 5.2834,-0.868164 1.21543,0 2.50527,0.09922 1.28984,0.07441 2.55488,0.297656 1.28985,0.223243 2.50528,0.570508 1.21543,0.347266 2.30683,0.868164 l -0.94258,10.070703 q -1.68672,-0.570508 -3.54707,-0.942578 -1.83554,-0.396875 -3.59668,-0.396875 -0.32246,0 -0.84336,0.02481 -0.49609,0 -1.0666,0.07441 -0.5457,0.04961 -1.11621,0.173633 -0.57051,0.124023 -1.01699,0.347265 -0.44649,0.198438 -0.71934,0.545703 -0.27285,0.347266 -0.24804,0.818555 0.0248,0.545703 0.39687,0.892969 0.39688,0.322461 0.99219,0.520898 0.62012,0.173633 1.33945,0.248047 0.74414,0.07441 1.46348,0.09922 0.71933,0 1.33945,0 0.62012,-0.02481 1.01699,0.02481 1.98438,0.124023 3.57188,0.843359 1.5875,0.719336 2.67891,1.909961 1.11621,1.190625 1.68671,2.852539 0.59532,1.637116 0.59532,3.621486 z"
id="text12"
aria-label="S" />
</g>
<g
id="g16"
style="fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers">
<path
style="font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 28.126996,120.5796 -0.05512,2.33716 -1.642623,0.0661 -0.418924,5.22553 -2.326131,0.12127 0.01103,-5.22553 -1.642624,0.0882 0.06615,-2.60174 z m 6.493322,7.40834 -2.73403,0.35278 -0.33073,-1.24574 h -1.256772 l -0.275608,1.24574 -2.8112,-0.27561 2.193839,-7.34219 3.06476,-0.15434 z m -3.263197,-2.57969 -0.418924,-1.91823 -0.4079,1.91823 z m 10.875488,-4.85069 -0.396876,7.47448 -2.888371,0.26459 -1.543404,-4.00183 -0.242535,4.079 h -2.480471 l 0.198437,-7.81624 2.756079,-0.1323 1.907207,3.96876 0.08819,-3.74827 z m 7.099659,6.77995 q -0.259071,0.32522 -0.63941,0.56775 -0.380339,0.24254 -0.8158,0.40239 -0.43546,0.15985 -0.892969,0.23702 -0.457509,0.0827 -0.870921,0.0827 -0.799263,0 -1.471747,-0.28664 -0.672483,-0.28663 -1.163065,-0.78824 -0.48507,-0.50711 -0.760678,-1.19062 -0.275608,-0.68351 -0.275608,-1.47175 0,-0.60082 0.137804,-1.17409 0.137804,-0.57877 0.391363,-1.08589 0.259072,-0.51263 0.628386,-0.93707 0.369315,-0.42995 0.837849,-0.73863 0.468533,-0.30868 1.025261,-0.47956 0.556728,-0.17087 1.190626,-0.17087 0.237023,0 0.507119,0.022 0.270096,0.0165 0.534679,0.0661 0.270096,0.0441 0.523655,0.12678 0.25356,0.0827 0.463022,0.20395 l -0.154341,2.10564 q -0.308681,-0.11575 -0.63941,-0.15434 -0.325218,-0.0441 -0.639411,-0.0441 -0.440972,0 -0.826823,0.1378 -0.380339,0.13229 -0.666972,0.38585 -0.28112,0.25356 -0.446484,0.61736 -0.165365,0.36381 -0.165365,0.82132 0,0.28663 0.07717,0.55672 0.07717,0.26459 0.231511,0.47405 0.159852,0.20395 0.391363,0.33073 0.237023,0.12678 0.545704,0.12678 0.209462,0 0.429948,-0.0551 0.225998,-0.0551 0.385851,-0.18742 l 0.02205,-0.42995 -1.322918,-0.022 0.06615,-1.65365 q 0.821311,-0.0276 1.642623,-0.0441 0.821311,-0.0221 1.653647,-0.0551 z m 7.231952,-2.7671 q 0,0.5016 -0.115755,0.97014 -0.115755,0.46302 -0.336241,0.87092 -0.214975,0.4079 -0.529168,0.74965 -0.308681,0.33624 -0.700044,0.57878 -0.385851,0.24253 -0.84336,0.38034 -0.457509,0.13229 -0.97014,0.13229 -0.496094,0 -0.948091,-0.12678 -0.446485,-0.12678 -0.837848,-0.35278 -0.391363,-0.23151 -0.711069,-0.55122 -0.314193,-0.32521 -0.540191,-0.71658 -0.220487,-0.39687 -0.347266,-0.84887 -0.121268,-0.452 -0.121268,-0.94258 0,-0.47956 0.115756,-0.93706 0.115755,-0.46303 0.330729,-0.87093 0.220487,-0.4079 0.529167,-0.74965 0.308681,-0.34175 0.68902,-0.5898 0.385851,-0.24805 0.832336,-0.38585 0.446485,-0.1378 0.942579,-0.1378 0.799263,0 1.45521,0.24804 0.661459,0.24805 1.12448,0.71107 0.468534,0.45751 0.722093,1.11346 0.259071,0.65043 0.259071,1.45521 z m -2.447398,0.14331 q 0,-0.23702 -0.07166,-0.45751 -0.06615,-0.22599 -0.198438,-0.39687 -0.132291,-0.17639 -0.330729,-0.28112 -0.192926,-0.11025 -0.446485,-0.11025 -0.259071,0 -0.463021,0.0937 -0.20395,0.0937 -0.352778,0.25907 -0.143316,0.15986 -0.220487,0.38034 -0.07717,0.21498 -0.07717,0.45751 0,0.23151 0.06615,0.46302 0.06615,0.23151 0.198438,0.41893 0.132291,0.18741 0.325217,0.30317 0.198438,0.11575 0.457509,0.11575 0.259072,0 0.463021,-0.0992 0.209462,-0.10473 0.352779,-0.27561 0.143316,-0.17639 0.220486,-0.40238 0.07717,-0.226 0.07717,-0.46854 z"
id="text13"
aria-label="TANGO" />
<path
style="font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 68.416072,123.78768 q 0,0.32522 0,0.64492 0,0.31971 -0.03307,0.64492 -0.06063,0.68902 -0.297656,1.30638 -0.237023,0.61185 -0.644923,1.07488 -0.402387,0.46302 -0.981164,0.73311 -0.578777,0.2701 -1.32843,0.2701 -0.292145,0 -0.61185,-0.0496 -0.314193,-0.0496 -0.628386,-0.14883 -0.308681,-0.0992 -0.595313,-0.24253 -0.28112,-0.14883 -0.501606,-0.34176 l 0.341754,-2.28203 q 0.325217,0.31419 0.722092,0.51263 0.396876,0.19292 0.865409,0.19292 0.303169,0 0.512631,-0.0882 0.209462,-0.0882 0.347266,-0.24253 0.137804,-0.15435 0.214974,-0.3583 0.08268,-0.20946 0.115755,-0.44097 0.03858,-0.23702 0.0441,-0.48507 0.01102,-0.24804 0.01102,-0.49058 0,-0.87643 -0.08819,-1.74184 -0.08819,-0.87092 -0.15434,-1.74184 l 2.524568,-0.16537 q 0.165365,1.71979 0.165365,3.43959 z m 7.083124,-1.5875 q 0,0.4079 -0.03858,0.89848 -0.03858,0.49058 -0.12678,1.01424 -0.08819,0.52365 -0.23151,1.06384 -0.137804,0.53468 -0.347266,1.03078 -0.209462,0.49609 -0.490583,0.93155 -0.275607,0.42995 -0.63941,0.75517 -0.35829,0.3197 -0.804775,0.5016 -0.446485,0.18742 -0.992189,0.18742 -0.63941,0 -1.113456,-0.20947 -0.468533,-0.20395 -0.804775,-0.55121 -0.336241,-0.35278 -0.551216,-0.8158 -0.214974,-0.46853 -0.336241,-0.98668 -0.121268,-0.52365 -0.170877,-1.06384 -0.0441,-0.54571 -0.0441,-1.04731 0,-0.77171 0.07717,-1.5379 0.07717,-0.7717 0.220486,-1.53789 l 2.57969,0.0992 q -0.148828,0.86541 -0.259071,1.74184 -0.104731,0.87092 -0.104731,1.75287 0,0.0937 0.0055,0.28112 0.01102,0.1819 0.03307,0.41341 0.02205,0.226 0.06063,0.46853 0.0441,0.23703 0.115755,0.43546 0.07166,0.19844 0.170877,0.32522 0.104731,0.12678 0.242535,0.12678 0.159853,0 0.286632,-0.14883 0.12678,-0.15434 0.220486,-0.4079 0.09922,-0.25356 0.170877,-0.58429 0.07166,-0.33072 0.121268,-0.68902 0.04961,-0.35829 0.07717,-0.71658 0.03307,-0.35829 0.04961,-0.66697 0.02205,-0.30868 0.02756,-0.5457 0.0055,-0.23702 0.0055,-0.35278 0,-0.42995 -0.01654,-0.85438 -0.01102,-0.42995 -0.03859,-0.85439 h 2.57969 q 0.06615,0.76068 0.06615,1.54341 z m 5.28616,2.98759 -0.23151,2.44739 -4.641238,0.36381 q 0.03307,-1.92375 0.07166,-3.82544 0.0441,-1.9017 0.104731,-3.82544 h 2.866323 q -0.12678,1.20716 -0.242535,2.41433 -0.115756,1.20165 -0.165365,2.42535 0.259071,0.011 0.512631,0.011 0.253559,0 0.51263,0 0.308681,0 0.606338,-0.006 0.297656,-0.006 0.606337,-0.006 z m 3.235636,-4.61919 -0.606337,7.50756 -2.326131,0.12126 v -7.47448 z m 5.600354,-0.18742 q -0.03307,0.51815 -0.06063,1.02527 -0.02756,0.50711 -0.07166,1.02526 l -2.337155,0.12126 -0.05512,0.69454 H 88.7394 l -0.121267,1.70877 -1.653648,0.0551 -0.05512,0.80477 h 1.367015 0.97014 q -0.03307,0.60634 -0.07166,1.20717 -0.03307,0.59531 -0.06063,1.19613 l -4.751481,0.11025 0.17639,-7.94854 z m 6.013764,0.0662 -0.05512,2.33716 -1.642623,0.0661 -0.418924,5.22553 -2.326131,0.12126 0.01102,-5.22552 -1.642623,0.0882 0.06615,-2.60174 z"
id="text14"
aria-label="JULIET" />
<path
style="font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 113.02678,127.9659 -2.73403,0.35277 -0.33073,-1.24574 h -1.25677 l -0.27561,1.24574 -2.8112,-0.2756 2.19384,-7.3422 3.06476,-0.15434 z m -3.26319,-2.57969 -0.41893,-1.91824 -0.4079,1.91824 z m 8.22414,-0.0882 -0.23152,2.4474 -4.64123,0.3638 q 0.0331,-1.92374 0.0717,-3.82544 0.0441,-1.90169 0.10473,-3.82543 h 2.86632 q -0.12678,1.20716 -0.24254,2.41432 -0.11575,1.20165 -0.16536,2.42535 0.25907,0.011 0.51263,0.011 0.25356,0 0.51263,0 0.30868,0 0.60634,-0.006 0.29765,-0.006 0.60634,-0.006 z m 6.68073,-2.16076 q 0,0.53467 -0.15985,0.94809 -0.15985,0.41341 -0.44097,0.72209 -0.27561,0.30868 -0.65044,0.52365 -0.37483,0.21498 -0.80477,0.35278 -0.42444,0.13229 -0.88195,0.19844 -0.45751,0.0606 -0.89848,0.0661 v 2.56866 h -2.56867 q 0,-1.26228 0.006,-2.51354 0.006,-1.25126 0.0165,-2.52457 0.011,-0.67248 0.006,-1.34497 -0.006,-0.67248 0.0276,-1.35599 0.70556,-0.20946 1.41112,-0.31419 0.70555,-0.10473 1.45521,-0.10473 0.42443,0 0.84887,0.0717 0.42444,0.0661 0.81029,0.21497 0.39136,0.14883 0.72209,0.37483 0.33624,0.22048 0.57878,0.52916 0.24253,0.30868 0.38033,0.70556 0.14332,0.39136 0.14332,0.88195 z m -2.4474,0.18741 q 0,-0.35829 -0.22048,-0.55673 -0.21498,-0.20395 -0.56224,-0.20395 -0.11576,0 -0.24254,0.022 -0.12127,0.0165 -0.23151,0.0441 l -0.0662,1.60955 q 0.0772,0.011 0.14883,0.011 0.0717,0 0.14883,0 0.19844,0 0.38034,-0.0661 0.18741,-0.0662 0.33073,-0.18742 0.14332,-0.12678 0.226,-0.29214 0.0882,-0.17088 0.0882,-0.38034 z m 9.2935,5.11528 -2.75608,0.13229 -0.022,-2.54661 h -1.26779 l -0.0772,2.41432 h -2.46945 l 0.20946,-7.75009 2.62379,0.12126 -0.16536,3.95773 h 1.22369 l 0.011,-4.25538 2.51354,0.0661 z m 7.47449,-0.47404 -2.73403,0.35277 -0.33073,-1.24574 h -1.25677 l -0.27561,1.24574 -2.8112,-0.2756 2.19384,-7.3422 3.06476,-0.15434 z m -3.2632,-2.57969 -0.41892,-1.91824 -0.4079,1.91824 z"
id="text15"
aria-label="ALPHA" />
<path
style="font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 149.98623,125.57913 q 0,0.75516 -0.26459,1.32292 -0.25907,0.56224 -0.71658,0.93706 -0.452,0.37483 -1.06385,0.56224 -0.60633,0.18742 -1.30638,0.18742 -0.27009,0 -0.59531,-0.0717 -0.31971,-0.0717 -0.65043,-0.17639 -0.33073,-0.11024 -0.63942,-0.23151 -0.30316,-0.12678 -0.54019,-0.23702 l 0.24254,-2.27101 q 0.46853,0.28112 1.03628,0.42995 0.57327,0.14331 1.12448,0.14331 0.10474,0 0.25356,-0.006 0.14883,-0.011 0.28112,-0.0496 0.13781,-0.0441 0.23151,-0.12678 0.0937,-0.0827 0.0937,-0.23702 0,-0.10473 -0.0661,-0.17639 -0.0661,-0.0772 -0.17088,-0.12127 -0.10473,-0.0496 -0.23702,-0.0717 -0.1323,-0.0276 -0.25908,-0.0386 -0.12678,-0.011 -0.23702,-0.011 -0.11024,0 -0.17639,0 -0.47404,0 -0.86541,-0.16536 -0.38585,-0.16537 -0.66697,-0.45751 -0.27561,-0.29766 -0.42995,-0.70004 -0.15434,-0.4079 -0.15434,-0.88195 0,-0.65043 0.25907,-1.16307 0.26459,-0.51814 0.70005,-0.87643 0.44097,-0.3638 1.00872,-0.55673 0.56776,-0.19292 1.17409,-0.19292 0.2701,0 0.55673,0.0221 0.28663,0.0165 0.56775,0.0661 0.28664,0.0496 0.55673,0.12678 0.2701,0.0772 0.51263,0.19293 l -0.20946,2.23793 q -0.37483,-0.12678 -0.78824,-0.20946 -0.4079,-0.0882 -0.79926,-0.0882 -0.0717,0 -0.18741,0.006 -0.11025,0 -0.23703,0.0165 -0.12126,0.011 -0.24804,0.0386 -0.12678,0.0276 -0.226,0.0772 -0.0992,0.0441 -0.15986,0.12127 -0.0606,0.0772 -0.0551,0.1819 0.006,0.12127 0.0882,0.19844 0.0882,0.0717 0.22048,0.11575 0.13781,0.0386 0.29766,0.0551 0.16537,0.0165 0.32522,0.022 0.15985,0 0.29765,0 0.13781,-0.006 0.226,0.006 0.44098,0.0276 0.79375,0.18741 0.35278,0.15985 0.59532,0.42444 0.24804,0.26458 0.37482,0.63389 0.1323,0.36381 0.1323,0.80478 z m 3.32383,-4.82865 -0.60634,7.50756 -2.32613,0.12126 v -7.47448 z m 5.60035,-0.18742 q -0.0331,0.51815 -0.0606,1.02527 -0.0276,0.50711 -0.0717,1.02526 l -2.33716,0.12126 -0.0551,0.69454 h 1.64263 l -0.12127,1.70877 -1.65365,0.0551 -0.0551,0.80477 h 1.36701 0.97014 q -0.0331,0.60634 -0.0717,1.20717 -0.0331,0.59531 -0.0606,1.19613 l -4.75148,0.11025 0.17639,-7.94854 z m 6.64766,2.63482 q 0,0.42994 -0.0772,0.78272 -0.0717,0.34727 -0.23151,0.63941 -0.15985,0.29215 -0.41341,0.54019 -0.25356,0.24805 -0.61185,0.47405 l 1.31189,2.33716 -2.48047,0.48507 -0.84887,-2.34818 -0.68351,0.022 -0.0992,2.29306 h -2.37022 q 0.0276,-1.25677 0.0496,-2.50252 0.0276,-1.24575 0.0606,-2.50252 0.011,-0.6339 0.0221,-1.25677 0.011,-0.62287 0.0441,-1.25677 0.38585,-0.14332 0.76067,-0.23702 0.37483,-0.0937 0.74966,-0.14332 0.38034,-0.0551 0.76619,-0.0717 0.39136,-0.0221 0.79926,-0.0221 0.62839,0 1.21267,0.17639 0.58981,0.17088 1.0418,0.51814 0.452,0.34727 0.72209,0.86541 0.27561,0.51815 0.27561,1.20717 z m -2.46944,0.17639 q 0,-0.23152 -0.0661,-0.42444 -0.0606,-0.19293 -0.18741,-0.33073 -0.12127,-0.14332 -0.30868,-0.22049 -0.18191,-0.0827 -0.42995,-0.0827 -0.11025,0 -0.21498,0.0165 -0.10473,0.011 -0.20395,0.0386 l -0.0882,2.05053 h 0.13229 q 0.23702,0 0.47956,-0.0606 0.24805,-0.0606 0.44097,-0.18741 0.19844,-0.12678 0.31971,-0.32522 0.12678,-0.19844 0.12678,-0.47404 z m 9.31003,-0.17639 q 0,0.42994 -0.0772,0.78272 -0.0717,0.34727 -0.23151,0.63941 -0.15985,0.29215 -0.41341,0.54019 -0.25356,0.24805 -0.61185,0.47405 l 1.31189,2.33716 -2.48047,0.48507 -0.84887,-2.34818 -0.68351,0.022 -0.0992,2.29306 h -2.37022 q 0.0276,-1.25677 0.0496,-2.50252 0.0276,-1.24575 0.0606,-2.50252 0.011,-0.6339 0.0221,-1.25677 0.011,-0.62287 0.0441,-1.25677 0.38586,-0.14332 0.76068,-0.23702 0.37483,-0.0937 0.74966,-0.14332 0.38033,-0.0551 0.76619,-0.0717 0.39136,-0.0221 0.79926,-0.0221 0.62838,0 1.21267,0.17639 0.5898,0.17088 1.0418,0.51814 0.452,0.34727 0.72209,0.86541 0.27561,0.51815 0.27561,1.20717 z m -2.46944,0.17639 q 0,-0.23152 -0.0661,-0.42444 -0.0606,-0.19293 -0.18741,-0.33073 -0.12127,-0.14332 -0.30868,-0.22049 -0.18191,-0.0827 -0.42995,-0.0827 -0.11025,0 -0.21498,0.0165 -0.10473,0.011 -0.20395,0.0386 l -0.0882,2.05053 h 0.13229 q 0.23702,0 0.47956,-0.0606 0.24805,-0.0606 0.44097,-0.18741 0.19844,-0.12678 0.31971,-0.32522 0.12678,-0.19844 0.12678,-0.47404 z m 9.80061,4.66328 -2.73403,0.35278 -0.33073,-1.24575 h -1.25677 l -0.27561,1.24575 -2.8112,-0.27561 2.19384,-7.34219 3.06476,-0.15434 z m -3.2632,-2.57969 -0.41892,-1.91823 -0.4079,1.91823 z"
id="text16"
aria-label="SIERRA" />
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 28 KiB

190
files/dhcp/dhcpd.conf Normal file
View File

@@ -0,0 +1,190 @@
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#
# option definitions common to all supported networks...
option domain-name "intra.tjas";
option domain-name-servers 192.168.2.10;
default-lease-time 600;
max-lease-time 7200;
# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
#log-facility local7;
# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.
#subnet 10.152.187.0 netmask 255.255.255.0 {
#}
# This is a very basic subnet declaration.
#subnet 10.254.239.0 netmask 255.255.255.224 {
# range 10.254.239.10 10.254.239.20;
# option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
#}
# This declaration allows BOOTP clients to get dynamic addresses,
# which we don't really recommend.
#subnet 10.254.239.32 netmask 255.255.255.224 {
# range dynamic-bootp 10.254.239.40 10.254.239.60;
# option broadcast-address 10.254.239.31;
# option routers rtr-239-32-1.example.org;
#}
# A slightly different configuration for an internal subnet.
#subnet 10.5.5.0 netmask 255.255.255.224 {
# range 10.5.5.26 10.5.5.30;
# option domain-name-servers ns1.internal.example.org;
# option domain-name "internal.example.org";
# option routers 10.5.5.1;
# option broadcast-address 10.5.5.31;
# default-lease-time 600;
# max-lease-time 7200;
#}
# Hosts which require special configuration options can be listed in
# host statements. If no address is specified, the address will be
# allocated dynamically (if possible), but the host-specific information
# will still come from the host declaration.
#host passacaglia {
# hardware ethernet 0:0:c0:5d:bd:95;
# filename "vmunix.passacaglia";
# server-name "toccata.example.com";
#}
# Fixed IP addresses can also be specified for hosts. These addresses
# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP. Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
#host fantasia {
# hardware ethernet 08:00:07:26:c0:a5;
# fixed-address fantasia.example.com;
#}
# You can declare a class of clients and then do address allocation
# based on that. The example below shows a case where all clients
# in a certain class get addresses on the 10.17.224/24 subnet, and all
# other clients get addresses on the 10.0.29/24 subnet.
#class "foo" {
# match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
#}
#shared-network 224-29 {
# subnet 10.17.224.0 netmask 255.255.255.0 {
# option routers rtr-224.example.org;
# }
# subnet 10.0.29.0 netmask 255.255.255.0 {
# option routers rtr-29.example.org;
# }
# pool {
# allow members of "foo";
# range 10.17.224.10 10.17.224.250;
# }
# pool {
# deny members of "foo";
# range 10.0.29.10 10.0.29.230;
# }
#}
subnet 192.168.1.0 netmask 255.255.255.240 {
range 192.168.1.2 192.168.1.14;
option routers 192.168.1.1;
option broadcast-address 192.168.1.15;
host r1.net.tjas {
hardware ethernet 00:1d:46:dc:80:09;
fixed-address 192.168.1.1;
}
host s1.net.tjas {
hardware ethernet 9c:8e:99:9b:c3:80;
fixed-address 192.168.1.2;
}
}
subnet 192.168.2.0 netmask 255.255.255.224 {
range 192.168.2.2 192.168.2.30;
option routers 192.168.2.1;
option broadcast-address 192.168.2.31;
host r1.net.tjas {
hardware ethernet 00:1d:46:dc:80:09;
fixed-address 192.168.2.1;
}
host s2.net.tjas {
hardware ethernet 00:24:a8:f1:c7:40;
fixed-address 192.168.2.2;
}
host olympus.intra.tjas {
hardware ethernet 90:1b:0e:5b:18:fa;
fixed-address 192.168.2.10;
}
}
subnet 192.168.3.0 netmask 255.255.255.224 {
range 192.168.3.2 192.168.3.30;
option routers 192.168.3.1;
option broadcast-address 192.168.3.31;
host r1.net.tjas {
hardware ethernet 00:1d:46:dc:80:09;
fixed-address 192.168.3.1;
}
host s3.net.tjas {
hardware ethernet 00:1f:fe:ab:9e:c0;
fixed-address 192.168.3.2;
}
}
subnet 192.168.69.0 netmask 255.255.255.192 {
range 192.168.69.2 192.168.69.62;
option broadcast-address 192.168.69.63;
host r1.net.tjas {
hardware ethernet 00:1d:46:dc:80:09;
fixed-address 192.168.69.1;
}
host s1.net.tjas {
hardware ethernet 9c:8e.99:9b:c3:80;
fixed-address 192.168.3.11;
}
host s2.net.tjas {
hardware ethernet 00:24:a8:f1:c7:40;
fixed-address 192.168.3.12;
}
host s3.net.tjas {
hardware ethernet 00:1f:fe:ab:9e:c0;
fixed-address 192.168.3.13;
}
host olympus.intra.tjas {
hardware ethernet 90:1b:0e:5b:18:fa;
fixed-address 192.168.69.20;
}
}

View File

@@ -1,12 +0,0 @@
setLocal('0.0.0.0:53')
addLocal('[::]:53')
setACL({'0.0.0.0/0', '::/0'})
setECSOverride(true)
setECSSourcePrefixV4(32)
setECSSourcePrefixV6(128)
newServer({address='127.0.0.1:531', useClientSubnet=true, pool='authorative'})
newServer({ address='127.0.0.1:532', useClientSubnet=true, pool='recursor' })
addAction('tjas', PoolAction('authorative'))
addAction(AllRule(), PoolAction('recursor'))
setSecurityPollSuffix("")
setServFailWhenNoServer(true)

View File

@@ -1,25 +0,0 @@
.-') _ ('-. .-')
( OO) ) ( OO ).-. ( OO ).
/ '._ ,--. / . --. /(_)---\_)
|'--...__) .-')| ,| | \-. \ / _ |
'--. .--'( OO |(_|.-'-' | |\ :` `.
| | | `-'| | \| |_.' | '..`''.)
| | ,--. | | | .-. |.-._) \
| | | '-' / | | | |\ /
`--' `-----' `--' `--' `-----'
TIETOJÄRJESTELMÄASENTAJIEN INTRA
{{ hostname | upper }}
{{ location | upper }}
Made by
Jääkäri Warén
https://christerwaren.fi

View File

@@ -1,20 +1,91 @@
// This is a basic configuration for the Kea DHCPv4 server. Subnet declarations
// are mostly commented out and no interfaces are listed. Therefore, the servers
// will not listen or respond to any queries.
// The basic configuration must be extended to specify interfaces on which
// the servers should listen. There are a number of example options defined.
// These probably don't make any sense in your network. Make sure you at least
// update the following, before running this example in your network:
// - change the network interface names
// - change the subnets to match your actual network
// - change the option values to match your network
//
// This is just a very basic configuration. Kea comes with large suite (over 30)
// of configuration examples and extensive Kea User's Guide. Please refer to
// those materials to get better understanding of what this software is able to
// do. Comments in this configuration file sometimes refer to sections for more
// details. These are section numbers in Kea User's Guide. The version matching
// your software should come with your Kea package, but it is also available
// in ISC's Knowledgebase (https://kea.readthedocs.io; the direct link for
// the stable version is https://kea.readthedocs.io/).
//
// This configuration file contains only DHCPv4 server's configuration.
// If configurations for other Kea services are also included in this file they
// are ignored by the DHCPv4 server.
{
// DHCPv4 configuration starts here. This section will be read by DHCPv4 server
// and will be ignored by other components.
"Dhcp4": {
// Add names of your network interfaces to listen on.
"interfaces-config": {
"interfaces": [ "{{ ansible_facts.interfaces | select('search', '^enp') | first }}.20" ]
// See section 8.2.4 for more details. You probably want to add just
// interface name (e.g. "eth0" or specific IPv4 address on that
// interface name (e.g. "eth0/192.0.2.1").
"interfaces": [ ]
// Kea DHCPv4 server by default listens using raw sockets. This ensures
// all packets, including those sent by directly connected clients
// that don't have IPv4 address yet, are received. However, if your
// traffic is always relayed, it is often better to use regular
// UDP sockets. If you want to do that, uncomment this line:
// "dhcp-socket-type": "udp"
},
// Kea supports control channel, which is a way to receive management
// commands while the server is running. This is a Unix domain socket that
// receives commands formatted in JSON, e.g. config-set (which sets new
// configuration), config-reload (which tells Kea to reload its
// configuration from file), statistic-get (to retrieve statistics) and many
// more. For detailed description, see Sections 8.8, 16 and 15.
"control-socket": {
"socket-type": "unix",
"socket-name": "/run/kea/kea4-ctrl-socket"
},
// Use Memfile lease database backend to store leases in a CSV file.
// Depending on how Kea was compiled, it may also support SQL databases
// (MySQL and/or PostgreSQL). Those database backends require more
// parameters, like name, host and possibly user and password.
// There are dedicated examples for each backend. See Section 7.2.2 "Lease
// Storage" for details.
"lease-database": {
"type": "mysql",
"name": "{{ config.mariadb.users['kea'].database }}",
"user": "{{ config.mariadb.users['kea'].username }}",
"password": "{{ config.mariadb.users['kea'].password }}",
"host": "127.0.0.1",
"port": 3306
// Memfile is the simplest and easiest backend to use. It's an in-memory
// C++ database that stores its state in CSV file.
"type": "memfile",
"lfc-interval": 3600
},
// Kea allows storing host reservations in a database. If your network is
// small or you have few reservations, it's probably easier to keep them
// in the configuration file. If your network is large, it's usually better
// to use database for it. To enable it, uncomment the following:
// "hosts-database": {
// "type": "mysql",
// "name": "kea",
// "user": "kea",
// "password": "kea",
// "host": "localhost",
// "port": 3306
// },
// See Section 7.2.3 "Hosts storage" for details.
// Setup reclamation of the expired leases and leases affinity.
// Expired leases will be reclaimed every 10 seconds. Every 25
// seconds reclaimed leases, which have expired more than 3600
// seconds ago, will be removed. The limits for leases reclamation
// are 100 leases or 250 ms for a single cycle. A warning message
// will be logged if there are still expired leases in the
// database after 5 consecutive reclamation cycles.
"expired-leases-processing": {
"reclaim-timer-wait-time": 10,
"flush-reclaimed-timer-wait-time": 25,
@@ -23,208 +94,366 @@
"max-reclaim-time": 250,
"unwarned-reclaim-cycles": 5
},
// Global timers specified here apply to all subnets, unless there are
// subnet specific values defined in particular subnets.
"renew-timer": 900,
"rebind-timer": 1800,
"valid-lifetime": 3600,
"subnet4": [
{
"id": 1,
"subnet": "192.168.1.0/27",
"pools": [
{
"pool": "192.168.1.1 - 192.168.1.30"
}
],
// Many additional parameters can be specified here:
// - option definitions (if you want to define vendor options, your own
// custom options or perhaps handle standard options
// that Kea does not support out of the box yet)
// - client classes
// - hooks
// - ddns information (how the DHCPv4 component can reach a DDNS daemon)
//
// Some of them have examples below, but there are other parameters.
// Consult Kea User's Guide to find out about them.
// These are global options. They are going to be sent when a client
// requests them, unless overwritten with values in more specific scopes.
// The scope hierarchy is:
// - global (most generic, can be overwritten by class, subnet or host)
// - class (can be overwritten by subnet or host)
// - subnet (can be overwritten by host)
// - host (most specific, overwrites any other scopes)
//
// Not all of those options make sense. Please configure only those that
// are actually useful in your network.
//
// For a complete list of options currently supported by Kea, see
// Section 7.2.8 "Standard DHCPv4 Options". Kea also supports
// vendor options (see Section 7.2.10) and allows users to define their
// own custom options (see Section 7.2.9).
"option-data": [
{
"name": "routers",
"data": "192.168.1.1"
},
// When specifying options, you typically need to specify
// one of (name or code) and data. The full option specification
// covers name, code, space, csv-format and data.
// space defaults to "dhcp4" which is usually correct, unless you
// use encapsulate options. csv-format defaults to "true", so
// this is also correct, unless you want to specify the whole
// option value as long hex string. For example, to specify
// domain-name-servers you could do this:
// {
// "name": "domain-name-servers",
// "code": 6,
// "csv-format": "true",
// "space": "dhcp4",
// "data": "192.0.2.1, 192.0.2.2"
// }
// but it's a lot of writing, so it's easier to do this instead:
{
"name": "domain-name-servers",
"data": "1.1.1.1"
"data": "192.0.2.1, 192.0.2.2"
},
// Typically people prefer to refer to options by their names, so they
// don't need to remember the code names. However, some people like
// to use numerical values. For example, option "domain-name" uses
// option code 15, so you can reference to it either by
// "name": "domain-name" or "code": 15.
{
"code": 15,
"data": "example.org"
},
// Domain search is also a popular option. It tells the client to
// attempt to resolve names within those specified domains. For
// example, name "foo" would be attempted to be resolved as
// foo.mydomain.example.com and if it fails, then as foo.example.com
{
"name": "domain-search",
"data": "puolustusvoimat.fi"
"data": "mydomain.example.com, example.com"
},
// String options that have a comma in their values need to have
// it escaped (i.e. each comma is preceded by two backslashes).
// That's because commas are reserved for separating fields in
// compound options. At the same time, we need to be conformant
// with JSON spec, that does not allow "\,". Therefore the
// slightly uncommon double backslashes notation is needed.
// Legal JSON escapes are \ followed by "\/bfnrt character
// or \u followed by 4 hexadecimal numbers (currently Kea
// supports only \u0000 to \u00ff code points).
// CSV processing translates '\\' into '\' and '\,' into ','
// only so for instance '\x' is translated into '\x'. But
// as it works on a JSON string value each of these '\'
// characters must be doubled on JSON input.
{
"name": "boot-file-name",
"data": "EST5EDT4\\,M3.2.0/02:00\\,M11.1.0/02:00"
},
// Options that take integer values can either be specified in
// dec or hex format. Hex format could be either plain (e.g. abcd)
// or prefixed with 0x (e.g. 0xabcd).
{
"name": "default-ip-ttl",
"data": "0xf0"
}
// Note that Kea provides some of the options on its own. In particular,
// it sends IP Address lease type (code 51, based on valid-lifetime
// parameter, Subnet mask (code 1, based on subnet definition), Renewal
// time (code 58, based on renew-timer parameter), Rebind time (code 59,
// based on rebind-timer parameter).
],
"user-context": {
"name": "Tinu",
"purpose": "Internet"
},
"reservations": [
// Other global parameters that can be defined here are option definitions
// (this is useful if you want to use vendor options, your own custom
// options or perhaps handle options that Kea does not handle out of the box
// yet).
// You can also define classes. If classes are defined, incoming packets
// may be assigned to specific classes. A client class can represent any
// group of devices that share some common characteristic, e.g. Windows
// devices, iphones, broken printers that require special options, etc.
// Based on the class information, you can then allow or reject clients
// to use certain subnets, add special options for them or change values
// of some fixed fields.
"client-classes": [
{
"hw-address": "00:1d:46:dc:80:09",
"ip-address": "192.168.1.1",
"hostname": "r1.net.tjas"
},
{
"hw-address": "9c:8e:99:9b:c3:80",
"ip-address": "192.168.1.2",
"hostname": "s1.net.tjas"
}
]
},
{
"id": 2,
"subnet": "192.168.2.0/27",
"interface": "{{ ansible_facts.interfaces | select('search', '^enp') | first }}.20",
"pools": [
{
"pool": "192.168.2.1 - 192.168.2.30"
}
],
"option-data": [
{
"name": "routers",
"data": "192.168.2.1"
},
{
"name": "domain-name-servers",
"data": "192.168.2.10, 1.1.1.1"
},
{
"name": "domain-name",
"data": "juva.tjas"
},
{
"name": "domain-search",
"data": "juva.tjas, tjas"
}
],
"user-context": {
"name": "Juva",
"purpose": "Intra"
},
"reservations": [
{
"hw-address": "00:1d:46:dc:80:09",
"ip-address": "192.168.2.1",
"hostname": "r1.net.tjas"
},
{
"hw-address": "00:24:a8:f1:c7:40",
"ip-address": "192.168.2.2",
"hostname": "s2.net.tjas"
},
{
"hw-address": "90:1b:0e:5b:18:fb",
"ip-address": "192.168.2.10",
"hostname": "olympus.juva.tjas"
}
]
},
{
"id": 3,
"subnet": "192.168.3.0/27",
"pools": [
{
"pool": "192.168.3.1 - 192.168.3.30"
}
],
"option-data": [
{
"name": "routers",
"data": "192.168.3.1"
},
{
"name": "domain-name-servers",
"data": "192.168.2.10"
},
{
"name": "domain-name",
"data": "aito.tjas"
},
{
"name": "domain-search",
"data": "aito.tjas, tjas"
}
],
"user-context": {
"name": "Aito",
"purpose": "Toimisto"
},
"reservations": [
{
"hw-address": "00:1d:46:dc:80:09",
"ip-address": "192.168.3.1",
"hostname": "r1.net.tjas"
},
{
"hw-address": "00:1f:fe:ab:9e:c0",
"ip-address": "192.168.3.2",
"hostname": "s3.net.tjas"
}
]
},
{
"id": 69,
"subnet": "192.168.69.0/26",
"interface": "{{ ansible_facts.interfaces | select('search', '^enp') | first }}.69",
"pools": [
{
"pool": "192.168.69.1 - 192.168.69.62"
}
],
"option-data": [
{
"name": "domain-name-servers",
"data": "192.168.69.20"
},
{
"name": "domain-name",
"data": "sive.tjas"
},
{
"name": "domain-search",
"data": "sive.tjas"
}
],
"user-context": {
"name": "Sive",
"purpose": "Hallinta"
},
"reservations": [
{
"hw-address": "00:1d:46:dc:80:09",
"ip-address": "192.168.69.1",
"hostname": "r1.net.tjas"
},
{
"hw-address": "9c:8e:99:9b:c3:80",
"ip-address": "192.168.69.11",
"hostname": "s1.net.tjas"
},
{
"hw-address": "00:24:a8:f1:c7:40",
"ip-address": "192.168.69.12",
"hostname": "s2.net.tjas"
},
{
"hw-address": "00:1f:fe:ab:9e:c0",
"ip-address": "192.168.69.13",
"hostname": "s3.net.tjas"
},
{
"hw-address": "90:1b:0e:5b:18:fc",
"ip-address": "192.168.69.20",
"hostname": "olympus.juva.tjas"
}
]
// This specifies a name of this class. It's useful if you need to
// reference this class.
"name": "voip",
// This is a test. It is an expression that is being evaluated on
// each incoming packet. It is supposed to evaluate to either
// true or false. If it's true, the packet is added to specified
// class. See Section 12 for a list of available expressions. There
// are several dozens. Section 8.2.14 for more details for DHCPv4
// classification and Section 9.2.19 for DHCPv6.
"test": "substring(option[60].hex,0,6) == 'Aastra'",
// If a client belongs to this class, you can define extra behavior.
// For example, certain fields in DHCPv4 packet will be set to
// certain values.
"next-server": "192.0.2.254",
"server-hostname": "hal9000",
"boot-file-name": "/dev/null"
// You can also define option values here if you want devices from
// this class to receive special options.
}
],
// Another thing possible here are hooks. Kea supports a powerful mechanism
// that allows loading external libraries that can extract information and
// even influence how the server processes packets. Those libraries include
// additional forensic logging capabilities, ability to reserve hosts in
// more flexible ways, and even add extra commands. For a list of available
// hook libraries, see https://gitlab.isc.org/isc-projects/kea/wikis/Hooks-available.
// "hooks-libraries": [
// {
// // Forensic Logging library generates forensic type of audit trail
// // of all devices serviced by Kea, including their identifiers
// // (like MAC address), their location in the network, times
// // when they were active etc.
// "library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_legal_log.so",
// "parameters": {
// "path": "/var/lib/kea",
// "base-name": "kea-forensic4"
// }
// },
// {
// // Flexible identifier (flex-id). Kea software provides a way to
// // handle host reservations that include addresses, prefixes,
// // options, client classes and other features. The reservation can
// // be based on hardware address, DUID, circuit-id or client-id in
// // DHCPv4 and using hardware address or DUID in DHCPv6. However,
// // there are sometimes scenario where the reservation is more
// // complex, e.g. uses other options that mentioned above, uses part
// // of specific options or perhaps even a combination of several
// // options and fields to uniquely identify a client. Those scenarios
// // are addressed by the Flexible Identifiers hook application.
// "library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_flex_id.so",
// "parameters": {
// "identifier-expression": "relay4[2].hex"
// }
// }
// ],
// Below an example of a simple IPv4 subnet declaration. Uncomment to enable
// it. This is a list, denoted with [ ], of structures, each denoted with
// { }. Each structure describes a single subnet and may have several
// parameters. One of those parameters is "pools" that is also a list of
// structures.
"subnet4": [
{
// This defines the whole subnet. Kea will use this information to
// determine where the clients are connected. This is the whole
// subnet in your network. This is mandatory parameter for each
// subnet.
"subnet": "192.0.2.0/24",
// Pools define the actual part of your subnet that is governed
// by Kea. Technically this is optional parameter, but it's
// almost always needed for DHCP to do its job. If you omit it,
// clients won't be able to get addresses, unless there are
// host reservations defined for them.
"pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ],
// These are options that are subnet specific. In most cases,
// you need to define at least routers option, as without this
// option your clients will not be able to reach their default
// gateway and will not have Internet connectivity.
"option-data": [
{
// For each IPv4 subnet you most likely need to specify at
// least one router.
"name": "routers",
"data": "192.0.2.1"
}
],
// Kea offers host reservations mechanism. Kea supports reservations
// by several different types of identifiers: hw-address
// (hardware/MAC address of the client), duid (DUID inserted by the
// client), client-id (client identifier inserted by the client) and
// circuit-id (circuit identifier inserted by the relay agent).
//
// Kea also support flexible identifier (flex-id), which lets you
// specify an expression that is evaluated for each incoming packet.
// Resulting value is then used for as an identifier.
//
// Note that reservations are subnet-specific in Kea. This is
// different than ISC DHCP. Keep that in mind when migrating
// your configurations.
"reservations": [
// This is a reservation for a specific hardware/MAC address.
// It's a rather simple reservation: just an address and nothing
// else.
{
"hw-address": "1a:1b:1c:1d:1e:1f",
"ip-address": "192.0.2.201"
},
// This is a reservation for a specific client-id. It also shows
// the this client will get a reserved hostname. A hostname can
// be defined for any identifier type, not just client-id.
{
"client-id": "01:11:22:33:44:55:66",
"ip-address": "192.0.2.202",
"hostname": "special-snowflake"
},
// The third reservation is based on DUID. This reservation defines
// a special option values for this particular client. If the
// domain-name-servers option would have been defined on a global,
// subnet or class level, the host specific values take preference.
{
"duid": "01:02:03:04:05",
"ip-address": "192.0.2.203",
"option-data": [ {
"name": "domain-name-servers",
"data": "10.1.1.202, 10.1.1.203"
} ]
},
// The fourth reservation is based on circuit-id. This is an option
// inserted by the relay agent that forwards the packet from client
// to the server. In this example the host is also assigned vendor
// specific options.
//
// When using reservations, it is useful to configure
// reservations-global, reservations-in-subnet,
// reservations-out-of-pool (subnet specific parameters)
// and host-reservation-identifiers (global parameter).
{
"client-id": "01:12:23:34:45:56:67",
"ip-address": "192.0.2.204",
"option-data": [
{
"name": "vivso-suboptions",
"data": "4491"
},
{
"name": "tftp-servers",
"space": "vendor-4491",
"data": "10.1.1.202, 10.1.1.203"
}
]
},
// This reservation is for a client that needs specific DHCPv4
// fields to be set. Three supported fields are next-server,
// server-hostname and boot-file-name
{
"client-id": "01:0a:0b:0c:0d:0e:0f",
"ip-address": "192.0.2.205",
"next-server": "192.0.2.1",
"server-hostname": "hal9000",
"boot-file-name": "/dev/null"
},
// This reservation is using flexible identifier. Instead of
// relying on specific field, sysadmin can define an expression
// similar to what is used for client classification,
// e.g. substring(relay[0].option[17],0,6). Then, based on the
// value of that expression for incoming packet, the reservation
// is matched. Expression can be specified either as hex or
// plain text using single quotes.
//
// Note: flexible identifier requires flex_id hook library to be
// loaded to work.
{
"flex-id": "'s0mEVaLue'",
"ip-address": "192.0.2.206"
}
// You can add more reservations here.
]
// You can add more subnets there.
}
],
// There are many, many more parameters that DHCPv4 server is able to use.
// They were not added here to not overwhelm people with too much
// information at once.
// Logging configuration starts here. Kea uses different loggers to log various
// activities. For details (e.g. names of loggers), see Chapter 18.
"loggers": [
{
// This section affects kea-dhcp4, which is the base logger for DHCPv4
// component. It tells DHCPv4 server to write all log messages (on
// severity INFO or more) to a file.
"name": "kea-dhcp4",
"output_options": [
{
// Specifies the output file. There are several special values
// supported:
// - stdout (prints on standard output)
// - stderr (prints on standard error)
// - syslog (logs to syslog)
// - syslog:name (logs to syslog using specified name)
// Any other value is considered a name of the file
"output": "stdout",
"pattern": "%-5p %m\n"
// Shorter log pattern suitable for use with systemd,
// avoids redundant information
"pattern": "%-5p %m\n",
// This governs whether the log output is flushed to disk after
// every write.
// "flush": false,
// This specifies the maximum size of the file before it is
// rotated.
// "maxsize": 1048576,
// This specifies the maximum number of rotated files to keep.
// "maxver": 8
}
],
// This specifies the severity of log messages to keep. Supported values
// are: FATAL, ERROR, WARN, INFO, DEBUG
"severity": "ERROR",
// If DEBUG level is specified, this value is used. 0 is least verbose,
// 99 is most verbose. Be cautious, Kea can generate lots and lots
// of logs if told to do so.
"debuglevel": 0
}
]

View File

@@ -1,57 +0,0 @@
body {
background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("https://christerwaren.fi/files/ai-generated-9087010-2.jpg") !important;
background-color: #111111;
background-repeat: no-repeat;
background-position: center;
background-size: cover !important;
}
@font-face {
font-family: "Luckiest Guy";
src: url('../fonts/Luckiest Guy.ttf');
}
#kc-header-wrapper {
font-family: "Luckiest Guy", sans-serif;
text-transform: uppercase;
}
div.kc-logo-text.kc-logo-custom {
background-image: url(../img/logo.svg);
background-position: center;
}
@media (max-width: 767px){
#kc-header {
text-align: center;
}
#kc-header-wrapper {
color: inherit;
font-size: 29px;
padding: 62px 10px 20px;
}
div.kc-logo-text {
height: 63px;
width: 300px;
margin: auto;
}
.login-pf body {
background: url("https://christerwaren.fi/files/ai-generated-9087010-2.jpg") no-repeat center center fixed;
}
.login-pf-page {
margin: 20px;
}
.login-pf-page .card-pf {
max-width: 500px;
margin-left: auto;
margin-right: auto;
padding-top: 10px;
border-top: 4px solid;
border-color: var(--pf-global--primary-color--100);
}
}

View File

@@ -1,273 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="695.94501"
height="286.38599"
viewBox="0 0 184.13545 75.772958"
version="1.1"
id="svg1"
sodipodi:docname="logo.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
inkscape:export-filename="logo.png"
inkscape:export-xdpi="96.010002"
inkscape:export-ydpi="96.010002"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="1.44"
inkscape:cx="329.51389"
inkscape:cy="169.44444"
inkscape:window-width="1920"
inkscape:window-height="1008"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<linearGradient
id="linearGradient1"
inkscape:collect="always">
<stop
style="stop-color:#c84dff;stop-opacity:1;"
offset="0"
id="stop1" />
<stop
style="stop-color:#ad00fa;stop-opacity:1;"
offset="0.20007552"
id="stop3" />
<stop
style="stop-color:#c84dff;stop-opacity:1;"
offset="0.36412308"
id="stop4" />
<stop
style="stop-color:#8800c4;stop-opacity:1;"
offset="0.49973571"
id="stop5" />
<stop
style="stop-color:#c84dff;stop-opacity:1;"
offset="0.82178771"
id="stop6" />
<stop
style="stop-color:#58007e;stop-opacity:1;"
offset="1"
id="stop2" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient2"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient3"
gradientUnits="userSpaceOnUse"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient4"
gradientUnits="userSpaceOnUse"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient5"
gradientUnits="userSpaceOnUse"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient6"
gradientUnits="userSpaceOnUse"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g9"
style="display:none"
transform="translate(-8.8234898,-66.083592)">
<g
id="g7">
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="39.283604"
y="115.8997"
id="text1"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;text-anchor:middle;stroke-width:0.264583"
x="39.283604"
y="115.8997"
id="tspan5">T</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="79.859314"
y="115.52763"
id="text1-1"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;text-anchor:middle;stroke-width:0.264583"
x="79.859314"
y="115.52763"
id="tspan5-8">J</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="122.32855"
y="115.8997"
id="text1-28"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;text-anchor:middle;stroke-width:0.264583"
x="122.32855"
y="115.8997"
id="tspan5-9">A</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="161.78362"
y="116.07333"
id="text1-2"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;text-anchor:middle;stroke-width:0.264583"
x="161.78362"
y="116.07333"
id="tspan5-3">S</tspan></text>
</g>
<g
id="g8"
style="stroke:none">
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke:none;stroke-width:0.264583"
x="39.344238"
y="128.46199"
id="text1-3-2"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;text-anchor:middle;stroke:none;stroke-width:0.264583"
x="39.344238"
y="128.46199"
id="tspan5-2-9">TANGO</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke:none;stroke-width:0.264583"
x="79.264"
y="128.3297"
id="text1-3"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;text-anchor:middle;stroke:none;stroke-width:0.264583"
x="79.264"
y="128.3297"
id="tspan5-2">JULIET</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke:none;stroke-width:0.264583"
x="122.30926"
y="128.43994"
id="text1-3-7"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;text-anchor:middle;stroke:none;stroke-width:0.264583"
x="122.30926"
y="128.43994"
id="tspan5-2-8">ALPHA</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke:none;stroke-width:0.264583"
x="161.81256"
y="128.5116"
id="text1-3-6"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;text-anchor:middle;stroke:none;stroke-width:0.264583"
x="161.81256"
y="128.5116"
id="tspan5-2-1">SIERRA</tspan></text>
</g>
</g>
<g
id="g17"
style="display:inline;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
transform="translate(-8.8234921,-66.083609)">
<g
id="g12"
style="fill:url(#linearGradient2);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers">
<path
style="font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient3);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 52.975791,80.428994 -0.248047,10.517187 -7.391797,0.297656 -1.885156,23.514843 -10.467578,0.5457 0.04961,-23.51484 -7.391797,0.396875 0.297656,-11.707812 z"
id="text9"
aria-label="T" />
<path
style="font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient4);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 91.864783,95.088571 q 0,1.463477 0,2.902149 0,1.438672 -0.148829,2.90215 -0.272851,3.10058 -1.339453,5.87871 -1.066601,2.75332 -2.902148,4.83691 -1.810742,2.0836 -4.415234,3.29903 -2.604493,1.21543 -5.97793,1.21543 -1.314648,0 -2.75332,-0.22325 -1.413867,-0.22324 -2.827735,-0.66972 -1.389062,-0.44649 -2.678906,-1.09141 -1.265039,-0.66973 -2.257226,-1.53789 l 1.53789,-10.26914 q 1.463477,1.41387 3.249414,2.30684 1.785938,0.86816 3.894336,0.86816 1.364258,0 2.306836,-0.39687 0.942578,-0.39688 1.562695,-1.09141 0.620118,-0.69453 0.967383,-1.61231 0.37207,-0.94257 0.520899,-1.98437 0.173632,-1.066602 0.198437,-2.182813 0.04961,-1.116211 0.04961,-2.207617 0,-3.943946 -0.396875,-7.838282 -0.396875,-3.91914 -0.694531,-7.838281 l 11.360547,-0.74414 q 0.744141,7.739062 0.74414,15.478124 z"
id="text10"
aria-label="J" />
<path
style="font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient5);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 138.9725,113.76649 -12.30313,1.5875 -1.48828,-5.60586 h -5.65547 l -1.24023,5.60586 -12.65039,-1.24023 9.87226,-33.039844 13.79141,-0.694532 z m -14.68438,-11.60859 -1.88515,-8.632031 -1.83555,8.632031 z"
id="text11"
aria-label="A" />
<path
style="font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient6);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 174.96731,102.87724 q 0,3.39824 -1.19063,5.95313 -1.16582,2.53007 -3.22461,4.21679 -2.03398,1.68672 -4.7873,2.53008 -2.72852,0.84336 -5.87871,0.84336 -1.21543,0 -2.67891,-0.32246 -1.43867,-0.32246 -2.92695,-0.79375 -1.48828,-0.4961 -2.87735,-1.0418 -1.36425,-0.57051 -2.43086,-1.0666 l 1.09141,-10.21953 q 2.1084,1.26504 4.66328,1.93476 2.57969,0.64493 5.06016,0.64493 0.47129,0 1.14101,-0.0248 0.66973,-0.0496 1.26504,-0.22324 0.62012,-0.19844 1.0418,-0.57051 0.42168,-0.37207 0.42168,-1.0666 0,-0.47129 -0.29766,-0.79375 -0.29765,-0.34727 -0.76894,-0.5457 -0.47129,-0.22325 -1.0666,-0.32246 -0.59532,-0.12403 -1.16582,-0.17364 -0.57051,-0.0496 -1.06661,-0.0496 -0.49609,0 -0.79375,0 -2.1332,0 -3.89433,-0.74414 -1.73633,-0.74414 -3.00137,-2.058786 -1.24023,-1.339453 -1.93476,-3.150195 -0.69454,-1.835547 -0.69454,-3.96875 0,-2.926953 1.16582,-5.233789 1.19063,-2.33164 3.1502,-3.943945 1.98437,-1.637109 4.53926,-2.505274 2.55488,-0.868164 5.2834,-0.868164 1.21543,0 2.50527,0.09922 1.28984,0.07441 2.55488,0.297656 1.28985,0.223243 2.50528,0.570508 1.21543,0.347266 2.30683,0.868164 l -0.94258,10.070703 q -1.68672,-0.570508 -3.54707,-0.942578 -1.83554,-0.396875 -3.59668,-0.396875 -0.32246,0 -0.84336,0.02481 -0.49609,0 -1.0666,0.07441 -0.5457,0.04961 -1.11621,0.173633 -0.57051,0.124023 -1.01699,0.347265 -0.44649,0.198438 -0.71934,0.545703 -0.27285,0.347266 -0.24804,0.818555 0.0248,0.545703 0.39687,0.892969 0.39688,0.322461 0.99219,0.520898 0.62012,0.173633 1.33945,0.248047 0.74414,0.07441 1.46348,0.09922 0.71933,0 1.33945,0 0.62012,-0.02481 1.01699,0.02481 1.98438,0.124023 3.57188,0.843359 1.5875,0.719336 2.67891,1.909961 1.11621,1.190625 1.68671,2.852539 0.59532,1.637116 0.59532,3.621486 z"
id="text12"
aria-label="S" />
</g>
<g
id="g16"
style="fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers">
<path
style="font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 28.126996,120.5796 -0.05512,2.33716 -1.642623,0.0661 -0.418924,5.22553 -2.326131,0.12127 0.01103,-5.22553 -1.642624,0.0882 0.06615,-2.60174 z m 6.493322,7.40834 -2.73403,0.35278 -0.33073,-1.24574 h -1.256772 l -0.275608,1.24574 -2.8112,-0.27561 2.193839,-7.34219 3.06476,-0.15434 z m -3.263197,-2.57969 -0.418924,-1.91823 -0.4079,1.91823 z m 10.875488,-4.85069 -0.396876,7.47448 -2.888371,0.26459 -1.543404,-4.00183 -0.242535,4.079 h -2.480471 l 0.198437,-7.81624 2.756079,-0.1323 1.907207,3.96876 0.08819,-3.74827 z m 7.099659,6.77995 q -0.259071,0.32522 -0.63941,0.56775 -0.380339,0.24254 -0.8158,0.40239 -0.43546,0.15985 -0.892969,0.23702 -0.457509,0.0827 -0.870921,0.0827 -0.799263,0 -1.471747,-0.28664 -0.672483,-0.28663 -1.163065,-0.78824 -0.48507,-0.50711 -0.760678,-1.19062 -0.275608,-0.68351 -0.275608,-1.47175 0,-0.60082 0.137804,-1.17409 0.137804,-0.57877 0.391363,-1.08589 0.259072,-0.51263 0.628386,-0.93707 0.369315,-0.42995 0.837849,-0.73863 0.468533,-0.30868 1.025261,-0.47956 0.556728,-0.17087 1.190626,-0.17087 0.237023,0 0.507119,0.022 0.270096,0.0165 0.534679,0.0661 0.270096,0.0441 0.523655,0.12678 0.25356,0.0827 0.463022,0.20395 l -0.154341,2.10564 q -0.308681,-0.11575 -0.63941,-0.15434 -0.325218,-0.0441 -0.639411,-0.0441 -0.440972,0 -0.826823,0.1378 -0.380339,0.13229 -0.666972,0.38585 -0.28112,0.25356 -0.446484,0.61736 -0.165365,0.36381 -0.165365,0.82132 0,0.28663 0.07717,0.55672 0.07717,0.26459 0.231511,0.47405 0.159852,0.20395 0.391363,0.33073 0.237023,0.12678 0.545704,0.12678 0.209462,0 0.429948,-0.0551 0.225998,-0.0551 0.385851,-0.18742 l 0.02205,-0.42995 -1.322918,-0.022 0.06615,-1.65365 q 0.821311,-0.0276 1.642623,-0.0441 0.821311,-0.0221 1.653647,-0.0551 z m 7.231952,-2.7671 q 0,0.5016 -0.115755,0.97014 -0.115755,0.46302 -0.336241,0.87092 -0.214975,0.4079 -0.529168,0.74965 -0.308681,0.33624 -0.700044,0.57878 -0.385851,0.24253 -0.84336,0.38034 -0.457509,0.13229 -0.97014,0.13229 -0.496094,0 -0.948091,-0.12678 -0.446485,-0.12678 -0.837848,-0.35278 -0.391363,-0.23151 -0.711069,-0.55122 -0.314193,-0.32521 -0.540191,-0.71658 -0.220487,-0.39687 -0.347266,-0.84887 -0.121268,-0.452 -0.121268,-0.94258 0,-0.47956 0.115756,-0.93706 0.115755,-0.46303 0.330729,-0.87093 0.220487,-0.4079 0.529167,-0.74965 0.308681,-0.34175 0.68902,-0.5898 0.385851,-0.24805 0.832336,-0.38585 0.446485,-0.1378 0.942579,-0.1378 0.799263,0 1.45521,0.24804 0.661459,0.24805 1.12448,0.71107 0.468534,0.45751 0.722093,1.11346 0.259071,0.65043 0.259071,1.45521 z m -2.447398,0.14331 q 0,-0.23702 -0.07166,-0.45751 -0.06615,-0.22599 -0.198438,-0.39687 -0.132291,-0.17639 -0.330729,-0.28112 -0.192926,-0.11025 -0.446485,-0.11025 -0.259071,0 -0.463021,0.0937 -0.20395,0.0937 -0.352778,0.25907 -0.143316,0.15986 -0.220487,0.38034 -0.07717,0.21498 -0.07717,0.45751 0,0.23151 0.06615,0.46302 0.06615,0.23151 0.198438,0.41893 0.132291,0.18741 0.325217,0.30317 0.198438,0.11575 0.457509,0.11575 0.259072,0 0.463021,-0.0992 0.209462,-0.10473 0.352779,-0.27561 0.143316,-0.17639 0.220486,-0.40238 0.07717,-0.226 0.07717,-0.46854 z"
id="text13"
aria-label="TANGO" />
<path
style="font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 68.416072,123.78768 q 0,0.32522 0,0.64492 0,0.31971 -0.03307,0.64492 -0.06063,0.68902 -0.297656,1.30638 -0.237023,0.61185 -0.644923,1.07488 -0.402387,0.46302 -0.981164,0.73311 -0.578777,0.2701 -1.32843,0.2701 -0.292145,0 -0.61185,-0.0496 -0.314193,-0.0496 -0.628386,-0.14883 -0.308681,-0.0992 -0.595313,-0.24253 -0.28112,-0.14883 -0.501606,-0.34176 l 0.341754,-2.28203 q 0.325217,0.31419 0.722092,0.51263 0.396876,0.19292 0.865409,0.19292 0.303169,0 0.512631,-0.0882 0.209462,-0.0882 0.347266,-0.24253 0.137804,-0.15435 0.214974,-0.3583 0.08268,-0.20946 0.115755,-0.44097 0.03858,-0.23702 0.0441,-0.48507 0.01102,-0.24804 0.01102,-0.49058 0,-0.87643 -0.08819,-1.74184 -0.08819,-0.87092 -0.15434,-1.74184 l 2.524568,-0.16537 q 0.165365,1.71979 0.165365,3.43959 z m 7.083124,-1.5875 q 0,0.4079 -0.03858,0.89848 -0.03858,0.49058 -0.12678,1.01424 -0.08819,0.52365 -0.23151,1.06384 -0.137804,0.53468 -0.347266,1.03078 -0.209462,0.49609 -0.490583,0.93155 -0.275607,0.42995 -0.63941,0.75517 -0.35829,0.3197 -0.804775,0.5016 -0.446485,0.18742 -0.992189,0.18742 -0.63941,0 -1.113456,-0.20947 -0.468533,-0.20395 -0.804775,-0.55121 -0.336241,-0.35278 -0.551216,-0.8158 -0.214974,-0.46853 -0.336241,-0.98668 -0.121268,-0.52365 -0.170877,-1.06384 -0.0441,-0.54571 -0.0441,-1.04731 0,-0.77171 0.07717,-1.5379 0.07717,-0.7717 0.220486,-1.53789 l 2.57969,0.0992 q -0.148828,0.86541 -0.259071,1.74184 -0.104731,0.87092 -0.104731,1.75287 0,0.0937 0.0055,0.28112 0.01102,0.1819 0.03307,0.41341 0.02205,0.226 0.06063,0.46853 0.0441,0.23703 0.115755,0.43546 0.07166,0.19844 0.170877,0.32522 0.104731,0.12678 0.242535,0.12678 0.159853,0 0.286632,-0.14883 0.12678,-0.15434 0.220486,-0.4079 0.09922,-0.25356 0.170877,-0.58429 0.07166,-0.33072 0.121268,-0.68902 0.04961,-0.35829 0.07717,-0.71658 0.03307,-0.35829 0.04961,-0.66697 0.02205,-0.30868 0.02756,-0.5457 0.0055,-0.23702 0.0055,-0.35278 0,-0.42995 -0.01654,-0.85438 -0.01102,-0.42995 -0.03859,-0.85439 h 2.57969 q 0.06615,0.76068 0.06615,1.54341 z m 5.28616,2.98759 -0.23151,2.44739 -4.641238,0.36381 q 0.03307,-1.92375 0.07166,-3.82544 0.0441,-1.9017 0.104731,-3.82544 h 2.866323 q -0.12678,1.20716 -0.242535,2.41433 -0.115756,1.20165 -0.165365,2.42535 0.259071,0.011 0.512631,0.011 0.253559,0 0.51263,0 0.308681,0 0.606338,-0.006 0.297656,-0.006 0.606337,-0.006 z m 3.235636,-4.61919 -0.606337,7.50756 -2.326131,0.12126 v -7.47448 z m 5.600354,-0.18742 q -0.03307,0.51815 -0.06063,1.02527 -0.02756,0.50711 -0.07166,1.02526 l -2.337155,0.12126 -0.05512,0.69454 H 88.7394 l -0.121267,1.70877 -1.653648,0.0551 -0.05512,0.80477 h 1.367015 0.97014 q -0.03307,0.60634 -0.07166,1.20717 -0.03307,0.59531 -0.06063,1.19613 l -4.751481,0.11025 0.17639,-7.94854 z m 6.013764,0.0662 -0.05512,2.33716 -1.642623,0.0661 -0.418924,5.22553 -2.326131,0.12126 0.01102,-5.22552 -1.642623,0.0882 0.06615,-2.60174 z"
id="text14"
aria-label="JULIET" />
<path
style="font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 113.02678,127.9659 -2.73403,0.35277 -0.33073,-1.24574 h -1.25677 l -0.27561,1.24574 -2.8112,-0.2756 2.19384,-7.3422 3.06476,-0.15434 z m -3.26319,-2.57969 -0.41893,-1.91824 -0.4079,1.91824 z m 8.22414,-0.0882 -0.23152,2.4474 -4.64123,0.3638 q 0.0331,-1.92374 0.0717,-3.82544 0.0441,-1.90169 0.10473,-3.82543 h 2.86632 q -0.12678,1.20716 -0.24254,2.41432 -0.11575,1.20165 -0.16536,2.42535 0.25907,0.011 0.51263,0.011 0.25356,0 0.51263,0 0.30868,0 0.60634,-0.006 0.29765,-0.006 0.60634,-0.006 z m 6.68073,-2.16076 q 0,0.53467 -0.15985,0.94809 -0.15985,0.41341 -0.44097,0.72209 -0.27561,0.30868 -0.65044,0.52365 -0.37483,0.21498 -0.80477,0.35278 -0.42444,0.13229 -0.88195,0.19844 -0.45751,0.0606 -0.89848,0.0661 v 2.56866 h -2.56867 q 0,-1.26228 0.006,-2.51354 0.006,-1.25126 0.0165,-2.52457 0.011,-0.67248 0.006,-1.34497 -0.006,-0.67248 0.0276,-1.35599 0.70556,-0.20946 1.41112,-0.31419 0.70555,-0.10473 1.45521,-0.10473 0.42443,0 0.84887,0.0717 0.42444,0.0661 0.81029,0.21497 0.39136,0.14883 0.72209,0.37483 0.33624,0.22048 0.57878,0.52916 0.24253,0.30868 0.38033,0.70556 0.14332,0.39136 0.14332,0.88195 z m -2.4474,0.18741 q 0,-0.35829 -0.22048,-0.55673 -0.21498,-0.20395 -0.56224,-0.20395 -0.11576,0 -0.24254,0.022 -0.12127,0.0165 -0.23151,0.0441 l -0.0662,1.60955 q 0.0772,0.011 0.14883,0.011 0.0717,0 0.14883,0 0.19844,0 0.38034,-0.0661 0.18741,-0.0662 0.33073,-0.18742 0.14332,-0.12678 0.226,-0.29214 0.0882,-0.17088 0.0882,-0.38034 z m 9.2935,5.11528 -2.75608,0.13229 -0.022,-2.54661 h -1.26779 l -0.0772,2.41432 h -2.46945 l 0.20946,-7.75009 2.62379,0.12126 -0.16536,3.95773 h 1.22369 l 0.011,-4.25538 2.51354,0.0661 z m 7.47449,-0.47404 -2.73403,0.35277 -0.33073,-1.24574 h -1.25677 l -0.27561,1.24574 -2.8112,-0.2756 2.19384,-7.3422 3.06476,-0.15434 z m -3.2632,-2.57969 -0.41892,-1.91824 -0.4079,1.91824 z"
id="text15"
aria-label="ALPHA" />
<path
style="font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 149.98623,125.57913 q 0,0.75516 -0.26459,1.32292 -0.25907,0.56224 -0.71658,0.93706 -0.452,0.37483 -1.06385,0.56224 -0.60633,0.18742 -1.30638,0.18742 -0.27009,0 -0.59531,-0.0717 -0.31971,-0.0717 -0.65043,-0.17639 -0.33073,-0.11024 -0.63942,-0.23151 -0.30316,-0.12678 -0.54019,-0.23702 l 0.24254,-2.27101 q 0.46853,0.28112 1.03628,0.42995 0.57327,0.14331 1.12448,0.14331 0.10474,0 0.25356,-0.006 0.14883,-0.011 0.28112,-0.0496 0.13781,-0.0441 0.23151,-0.12678 0.0937,-0.0827 0.0937,-0.23702 0,-0.10473 -0.0661,-0.17639 -0.0661,-0.0772 -0.17088,-0.12127 -0.10473,-0.0496 -0.23702,-0.0717 -0.1323,-0.0276 -0.25908,-0.0386 -0.12678,-0.011 -0.23702,-0.011 -0.11024,0 -0.17639,0 -0.47404,0 -0.86541,-0.16536 -0.38585,-0.16537 -0.66697,-0.45751 -0.27561,-0.29766 -0.42995,-0.70004 -0.15434,-0.4079 -0.15434,-0.88195 0,-0.65043 0.25907,-1.16307 0.26459,-0.51814 0.70005,-0.87643 0.44097,-0.3638 1.00872,-0.55673 0.56776,-0.19292 1.17409,-0.19292 0.2701,0 0.55673,0.0221 0.28663,0.0165 0.56775,0.0661 0.28664,0.0496 0.55673,0.12678 0.2701,0.0772 0.51263,0.19293 l -0.20946,2.23793 q -0.37483,-0.12678 -0.78824,-0.20946 -0.4079,-0.0882 -0.79926,-0.0882 -0.0717,0 -0.18741,0.006 -0.11025,0 -0.23703,0.0165 -0.12126,0.011 -0.24804,0.0386 -0.12678,0.0276 -0.226,0.0772 -0.0992,0.0441 -0.15986,0.12127 -0.0606,0.0772 -0.0551,0.1819 0.006,0.12127 0.0882,0.19844 0.0882,0.0717 0.22048,0.11575 0.13781,0.0386 0.29766,0.0551 0.16537,0.0165 0.32522,0.022 0.15985,0 0.29765,0 0.13781,-0.006 0.226,0.006 0.44098,0.0276 0.79375,0.18741 0.35278,0.15985 0.59532,0.42444 0.24804,0.26458 0.37482,0.63389 0.1323,0.36381 0.1323,0.80478 z m 3.32383,-4.82865 -0.60634,7.50756 -2.32613,0.12126 v -7.47448 z m 5.60035,-0.18742 q -0.0331,0.51815 -0.0606,1.02527 -0.0276,0.50711 -0.0717,1.02526 l -2.33716,0.12126 -0.0551,0.69454 h 1.64263 l -0.12127,1.70877 -1.65365,0.0551 -0.0551,0.80477 h 1.36701 0.97014 q -0.0331,0.60634 -0.0717,1.20717 -0.0331,0.59531 -0.0606,1.19613 l -4.75148,0.11025 0.17639,-7.94854 z m 6.64766,2.63482 q 0,0.42994 -0.0772,0.78272 -0.0717,0.34727 -0.23151,0.63941 -0.15985,0.29215 -0.41341,0.54019 -0.25356,0.24805 -0.61185,0.47405 l 1.31189,2.33716 -2.48047,0.48507 -0.84887,-2.34818 -0.68351,0.022 -0.0992,2.29306 h -2.37022 q 0.0276,-1.25677 0.0496,-2.50252 0.0276,-1.24575 0.0606,-2.50252 0.011,-0.6339 0.0221,-1.25677 0.011,-0.62287 0.0441,-1.25677 0.38585,-0.14332 0.76067,-0.23702 0.37483,-0.0937 0.74966,-0.14332 0.38034,-0.0551 0.76619,-0.0717 0.39136,-0.0221 0.79926,-0.0221 0.62839,0 1.21267,0.17639 0.58981,0.17088 1.0418,0.51814 0.452,0.34727 0.72209,0.86541 0.27561,0.51815 0.27561,1.20717 z m -2.46944,0.17639 q 0,-0.23152 -0.0661,-0.42444 -0.0606,-0.19293 -0.18741,-0.33073 -0.12127,-0.14332 -0.30868,-0.22049 -0.18191,-0.0827 -0.42995,-0.0827 -0.11025,0 -0.21498,0.0165 -0.10473,0.011 -0.20395,0.0386 l -0.0882,2.05053 h 0.13229 q 0.23702,0 0.47956,-0.0606 0.24805,-0.0606 0.44097,-0.18741 0.19844,-0.12678 0.31971,-0.32522 0.12678,-0.19844 0.12678,-0.47404 z m 9.31003,-0.17639 q 0,0.42994 -0.0772,0.78272 -0.0717,0.34727 -0.23151,0.63941 -0.15985,0.29215 -0.41341,0.54019 -0.25356,0.24805 -0.61185,0.47405 l 1.31189,2.33716 -2.48047,0.48507 -0.84887,-2.34818 -0.68351,0.022 -0.0992,2.29306 h -2.37022 q 0.0276,-1.25677 0.0496,-2.50252 0.0276,-1.24575 0.0606,-2.50252 0.011,-0.6339 0.0221,-1.25677 0.011,-0.62287 0.0441,-1.25677 0.38586,-0.14332 0.76068,-0.23702 0.37483,-0.0937 0.74966,-0.14332 0.38033,-0.0551 0.76619,-0.0717 0.39136,-0.0221 0.79926,-0.0221 0.62838,0 1.21267,0.17639 0.5898,0.17088 1.0418,0.51814 0.452,0.34727 0.72209,0.86541 0.27561,0.51815 0.27561,1.20717 z m -2.46944,0.17639 q 0,-0.23152 -0.0661,-0.42444 -0.0606,-0.19293 -0.18741,-0.33073 -0.12127,-0.14332 -0.30868,-0.22049 -0.18191,-0.0827 -0.42995,-0.0827 -0.11025,0 -0.21498,0.0165 -0.10473,0.011 -0.20395,0.0386 l -0.0882,2.05053 h 0.13229 q 0.23702,0 0.47956,-0.0606 0.24805,-0.0606 0.44097,-0.18741 0.19844,-0.12678 0.31971,-0.32522 0.12678,-0.19844 0.12678,-0.47404 z m 9.80061,4.66328 -2.73403,0.35278 -0.33073,-1.24575 h -1.25677 l -0.27561,1.24575 -2.8112,-0.27561 2.19384,-7.34219 3.06476,-0.15434 z m -3.2632,-2.57969 -0.41892,-1.91823 -0.4079,1.91823 z"
id="text16"
aria-label="SIERRA" />
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -1,2 +0,0 @@
parent=keycloak
styles=css/login.css css/tile.css css/pvjjk-tjas.css

View File

@@ -1,32 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>PVJJK TJAS - SSO</title>
<meta charset="utf-8">
<meta name="robots" content="noindex, nofollow">
<link rel="shortcut icon" href="${resourcesPath}/img/favicon.ico" />
<#if properties.styles?has_content>
<#list properties.styles?split(' ') as style>
<link href="${resourcesPath}/${style}" rel="stylesheet" />
</#list>
</#if>
</head>
<body>
<header>
<h1>TJAS</h1>
<p>Single Sign-On</p>
</header>
<main>
<a href="admin">Administration Console</a>
<hr>
<a href="realms/master/account">Account Management</a>
</main>
<footer>
<p class="copyright">&copy;2025 <a href="https://waren.io">Warén Group</a></p>
</footer>
</body>
</html>

View File

@@ -1,62 +0,0 @@
body {
background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("https://christerwaren.fi/files/ai-generated-9087010-2.jpg") !important;
align-items: center;
justify-content: center;
width: 100vw;
height: 100vh;
text-align: center;
}
*, *:active, *:focus, *:hover, *:visited, *:link {
color: #ffffff;
text-decoration: none;
font-family: "Luckiest Guy", sans-serif;
text-transform: uppercase;
}
@font-face {
font-family: "Luckiest Guy";
src: url('../fonts/Luckiest Guy.ttf');
}
body, main {
display: flex;
flex-direction: column;
}
p, main a {
font-weight: bold;
font-size: 1.5em;
}
h1 {
font-size: 12em;
margin-bottom: 0;
background-image: url(../img/logo.svg);
background-repeat: no-repeat;
background-position: center;
background-size: contain;
color: transparent !important;
}
p {
margin: 0;
}
hr {
width: 100%;
margin: 0;
}
main {
margin-top: 50px;
margin-bottom: 50px;
}
main a {
padding: 10px 20px;
}
main a:hover {
background-color: #ffffff14;
}

View File

@@ -1,273 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="695.94501"
height="286.38599"
viewBox="0 0 184.13545 75.772958"
version="1.1"
id="svg1"
sodipodi:docname="logo.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
inkscape:export-filename="logo.png"
inkscape:export-xdpi="96.010002"
inkscape:export-ydpi="96.010002"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="1.44"
inkscape:cx="329.51389"
inkscape:cy="169.44444"
inkscape:window-width="1920"
inkscape:window-height="1008"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<linearGradient
id="linearGradient1"
inkscape:collect="always">
<stop
style="stop-color:#c84dff;stop-opacity:1;"
offset="0"
id="stop1" />
<stop
style="stop-color:#ad00fa;stop-opacity:1;"
offset="0.20007552"
id="stop3" />
<stop
style="stop-color:#c84dff;stop-opacity:1;"
offset="0.36412308"
id="stop4" />
<stop
style="stop-color:#8800c4;stop-opacity:1;"
offset="0.49973571"
id="stop5" />
<stop
style="stop-color:#c84dff;stop-opacity:1;"
offset="0.82178771"
id="stop6" />
<stop
style="stop-color:#58007e;stop-opacity:1;"
offset="1"
id="stop2" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient2"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient3"
gradientUnits="userSpaceOnUse"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient4"
gradientUnits="userSpaceOnUse"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient5"
gradientUnits="userSpaceOnUse"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient6"
gradientUnits="userSpaceOnUse"
x1="25.938683"
y1="80.4786"
x2="25.641027"
y2="115.3044" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g9"
style="display:none"
transform="translate(-8.8234898,-66.083592)">
<g
id="g7">
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="39.283604"
y="115.8997"
id="text1"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;text-anchor:middle;stroke-width:0.264583"
x="39.283604"
y="115.8997"
id="tspan5">T</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="79.859314"
y="115.52763"
id="text1-1"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;text-anchor:middle;stroke-width:0.264583"
x="79.859314"
y="115.52763"
id="tspan5-8">J</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="122.32855"
y="115.8997"
id="text1-28"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;text-anchor:middle;stroke-width:0.264583"
x="122.32855"
y="115.8997"
id="tspan5-9">A</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="161.78362"
y="116.07333"
id="text1-2"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;text-anchor:middle;stroke-width:0.264583"
x="161.78362"
y="116.07333"
id="tspan5-3">S</tspan></text>
</g>
<g
id="g8"
style="stroke:none">
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke:none;stroke-width:0.264583"
x="39.344238"
y="128.46199"
id="text1-3-2"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;text-anchor:middle;stroke:none;stroke-width:0.264583"
x="39.344238"
y="128.46199"
id="tspan5-2-9">TANGO</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke:none;stroke-width:0.264583"
x="79.264"
y="128.3297"
id="text1-3"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;text-anchor:middle;stroke:none;stroke-width:0.264583"
x="79.264"
y="128.3297"
id="tspan5-2">JULIET</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke:none;stroke-width:0.264583"
x="122.30926"
y="128.43994"
id="text1-3-7"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;text-anchor:middle;stroke:none;stroke-width:0.264583"
x="122.30926"
y="128.43994"
id="tspan5-2-8">ALPHA</tspan></text>
<text
xml:space="preserve"
style="font-size:22.5778px;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:middle;fill:#000000;stroke:none;stroke-width:0.264583"
x="161.81256"
y="128.5116"
id="text1-3-6"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;text-anchor:middle;stroke:none;stroke-width:0.264583"
x="161.81256"
y="128.5116"
id="tspan5-2-1">SIERRA</tspan></text>
</g>
</g>
<g
id="g17"
style="display:inline;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
transform="translate(-8.8234921,-66.083609)">
<g
id="g12"
style="fill:url(#linearGradient2);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers">
<path
style="font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient3);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 52.975791,80.428994 -0.248047,10.517187 -7.391797,0.297656 -1.885156,23.514843 -10.467578,0.5457 0.04961,-23.51484 -7.391797,0.396875 0.297656,-11.707812 z"
id="text9"
aria-label="T" />
<path
style="font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient4);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 91.864783,95.088571 q 0,1.463477 0,2.902149 0,1.438672 -0.148829,2.90215 -0.272851,3.10058 -1.339453,5.87871 -1.066601,2.75332 -2.902148,4.83691 -1.810742,2.0836 -4.415234,3.29903 -2.604493,1.21543 -5.97793,1.21543 -1.314648,0 -2.75332,-0.22325 -1.413867,-0.22324 -2.827735,-0.66972 -1.389062,-0.44649 -2.678906,-1.09141 -1.265039,-0.66973 -2.257226,-1.53789 l 1.53789,-10.26914 q 1.463477,1.41387 3.249414,2.30684 1.785938,0.86816 3.894336,0.86816 1.364258,0 2.306836,-0.39687 0.942578,-0.39688 1.562695,-1.09141 0.620118,-0.69453 0.967383,-1.61231 0.37207,-0.94257 0.520899,-1.98437 0.173632,-1.066602 0.198437,-2.182813 0.04961,-1.116211 0.04961,-2.207617 0,-3.943946 -0.396875,-7.838282 -0.396875,-3.91914 -0.694531,-7.838281 l 11.360547,-0.74414 q 0.744141,7.739062 0.74414,15.478124 z"
id="text10"
aria-label="J" />
<path
style="font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient5);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 138.9725,113.76649 -12.30313,1.5875 -1.48828,-5.60586 h -5.65547 l -1.24023,5.60586 -12.65039,-1.24023 9.87226,-33.039844 13.79141,-0.694532 z m -14.68438,-11.60859 -1.88515,-8.632031 -1.83555,8.632031 z"
id="text11"
aria-label="A" />
<path
style="font-size:50.8px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:url(#linearGradient6);stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 174.96731,102.87724 q 0,3.39824 -1.19063,5.95313 -1.16582,2.53007 -3.22461,4.21679 -2.03398,1.68672 -4.7873,2.53008 -2.72852,0.84336 -5.87871,0.84336 -1.21543,0 -2.67891,-0.32246 -1.43867,-0.32246 -2.92695,-0.79375 -1.48828,-0.4961 -2.87735,-1.0418 -1.36425,-0.57051 -2.43086,-1.0666 l 1.09141,-10.21953 q 2.1084,1.26504 4.66328,1.93476 2.57969,0.64493 5.06016,0.64493 0.47129,0 1.14101,-0.0248 0.66973,-0.0496 1.26504,-0.22324 0.62012,-0.19844 1.0418,-0.57051 0.42168,-0.37207 0.42168,-1.0666 0,-0.47129 -0.29766,-0.79375 -0.29765,-0.34727 -0.76894,-0.5457 -0.47129,-0.22325 -1.0666,-0.32246 -0.59532,-0.12403 -1.16582,-0.17364 -0.57051,-0.0496 -1.06661,-0.0496 -0.49609,0 -0.79375,0 -2.1332,0 -3.89433,-0.74414 -1.73633,-0.74414 -3.00137,-2.058786 -1.24023,-1.339453 -1.93476,-3.150195 -0.69454,-1.835547 -0.69454,-3.96875 0,-2.926953 1.16582,-5.233789 1.19063,-2.33164 3.1502,-3.943945 1.98437,-1.637109 4.53926,-2.505274 2.55488,-0.868164 5.2834,-0.868164 1.21543,0 2.50527,0.09922 1.28984,0.07441 2.55488,0.297656 1.28985,0.223243 2.50528,0.570508 1.21543,0.347266 2.30683,0.868164 l -0.94258,10.070703 q -1.68672,-0.570508 -3.54707,-0.942578 -1.83554,-0.396875 -3.59668,-0.396875 -0.32246,0 -0.84336,0.02481 -0.49609,0 -1.0666,0.07441 -0.5457,0.04961 -1.11621,0.173633 -0.57051,0.124023 -1.01699,0.347265 -0.44649,0.198438 -0.71934,0.545703 -0.27285,0.347266 -0.24804,0.818555 0.0248,0.545703 0.39687,0.892969 0.39688,0.322461 0.99219,0.520898 0.62012,0.173633 1.33945,0.248047 0.74414,0.07441 1.46348,0.09922 0.71933,0 1.33945,0 0.62012,-0.02481 1.01699,0.02481 1.98438,0.124023 3.57188,0.843359 1.5875,0.719336 2.67891,1.909961 1.11621,1.190625 1.68671,2.852539 0.59532,1.637116 0.59532,3.621486 z"
id="text12"
aria-label="S" />
</g>
<g
id="g16"
style="fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers">
<path
style="font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 28.126996,120.5796 -0.05512,2.33716 -1.642623,0.0661 -0.418924,5.22553 -2.326131,0.12127 0.01103,-5.22553 -1.642624,0.0882 0.06615,-2.60174 z m 6.493322,7.40834 -2.73403,0.35278 -0.33073,-1.24574 h -1.256772 l -0.275608,1.24574 -2.8112,-0.27561 2.193839,-7.34219 3.06476,-0.15434 z m -3.263197,-2.57969 -0.418924,-1.91823 -0.4079,1.91823 z m 10.875488,-4.85069 -0.396876,7.47448 -2.888371,0.26459 -1.543404,-4.00183 -0.242535,4.079 h -2.480471 l 0.198437,-7.81624 2.756079,-0.1323 1.907207,3.96876 0.08819,-3.74827 z m 7.099659,6.77995 q -0.259071,0.32522 -0.63941,0.56775 -0.380339,0.24254 -0.8158,0.40239 -0.43546,0.15985 -0.892969,0.23702 -0.457509,0.0827 -0.870921,0.0827 -0.799263,0 -1.471747,-0.28664 -0.672483,-0.28663 -1.163065,-0.78824 -0.48507,-0.50711 -0.760678,-1.19062 -0.275608,-0.68351 -0.275608,-1.47175 0,-0.60082 0.137804,-1.17409 0.137804,-0.57877 0.391363,-1.08589 0.259072,-0.51263 0.628386,-0.93707 0.369315,-0.42995 0.837849,-0.73863 0.468533,-0.30868 1.025261,-0.47956 0.556728,-0.17087 1.190626,-0.17087 0.237023,0 0.507119,0.022 0.270096,0.0165 0.534679,0.0661 0.270096,0.0441 0.523655,0.12678 0.25356,0.0827 0.463022,0.20395 l -0.154341,2.10564 q -0.308681,-0.11575 -0.63941,-0.15434 -0.325218,-0.0441 -0.639411,-0.0441 -0.440972,0 -0.826823,0.1378 -0.380339,0.13229 -0.666972,0.38585 -0.28112,0.25356 -0.446484,0.61736 -0.165365,0.36381 -0.165365,0.82132 0,0.28663 0.07717,0.55672 0.07717,0.26459 0.231511,0.47405 0.159852,0.20395 0.391363,0.33073 0.237023,0.12678 0.545704,0.12678 0.209462,0 0.429948,-0.0551 0.225998,-0.0551 0.385851,-0.18742 l 0.02205,-0.42995 -1.322918,-0.022 0.06615,-1.65365 q 0.821311,-0.0276 1.642623,-0.0441 0.821311,-0.0221 1.653647,-0.0551 z m 7.231952,-2.7671 q 0,0.5016 -0.115755,0.97014 -0.115755,0.46302 -0.336241,0.87092 -0.214975,0.4079 -0.529168,0.74965 -0.308681,0.33624 -0.700044,0.57878 -0.385851,0.24253 -0.84336,0.38034 -0.457509,0.13229 -0.97014,0.13229 -0.496094,0 -0.948091,-0.12678 -0.446485,-0.12678 -0.837848,-0.35278 -0.391363,-0.23151 -0.711069,-0.55122 -0.314193,-0.32521 -0.540191,-0.71658 -0.220487,-0.39687 -0.347266,-0.84887 -0.121268,-0.452 -0.121268,-0.94258 0,-0.47956 0.115756,-0.93706 0.115755,-0.46303 0.330729,-0.87093 0.220487,-0.4079 0.529167,-0.74965 0.308681,-0.34175 0.68902,-0.5898 0.385851,-0.24805 0.832336,-0.38585 0.446485,-0.1378 0.942579,-0.1378 0.799263,0 1.45521,0.24804 0.661459,0.24805 1.12448,0.71107 0.468534,0.45751 0.722093,1.11346 0.259071,0.65043 0.259071,1.45521 z m -2.447398,0.14331 q 0,-0.23702 -0.07166,-0.45751 -0.06615,-0.22599 -0.198438,-0.39687 -0.132291,-0.17639 -0.330729,-0.28112 -0.192926,-0.11025 -0.446485,-0.11025 -0.259071,0 -0.463021,0.0937 -0.20395,0.0937 -0.352778,0.25907 -0.143316,0.15986 -0.220487,0.38034 -0.07717,0.21498 -0.07717,0.45751 0,0.23151 0.06615,0.46302 0.06615,0.23151 0.198438,0.41893 0.132291,0.18741 0.325217,0.30317 0.198438,0.11575 0.457509,0.11575 0.259072,0 0.463021,-0.0992 0.209462,-0.10473 0.352779,-0.27561 0.143316,-0.17639 0.220486,-0.40238 0.07717,-0.226 0.07717,-0.46854 z"
id="text13"
aria-label="TANGO" />
<path
style="font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 68.416072,123.78768 q 0,0.32522 0,0.64492 0,0.31971 -0.03307,0.64492 -0.06063,0.68902 -0.297656,1.30638 -0.237023,0.61185 -0.644923,1.07488 -0.402387,0.46302 -0.981164,0.73311 -0.578777,0.2701 -1.32843,0.2701 -0.292145,0 -0.61185,-0.0496 -0.314193,-0.0496 -0.628386,-0.14883 -0.308681,-0.0992 -0.595313,-0.24253 -0.28112,-0.14883 -0.501606,-0.34176 l 0.341754,-2.28203 q 0.325217,0.31419 0.722092,0.51263 0.396876,0.19292 0.865409,0.19292 0.303169,0 0.512631,-0.0882 0.209462,-0.0882 0.347266,-0.24253 0.137804,-0.15435 0.214974,-0.3583 0.08268,-0.20946 0.115755,-0.44097 0.03858,-0.23702 0.0441,-0.48507 0.01102,-0.24804 0.01102,-0.49058 0,-0.87643 -0.08819,-1.74184 -0.08819,-0.87092 -0.15434,-1.74184 l 2.524568,-0.16537 q 0.165365,1.71979 0.165365,3.43959 z m 7.083124,-1.5875 q 0,0.4079 -0.03858,0.89848 -0.03858,0.49058 -0.12678,1.01424 -0.08819,0.52365 -0.23151,1.06384 -0.137804,0.53468 -0.347266,1.03078 -0.209462,0.49609 -0.490583,0.93155 -0.275607,0.42995 -0.63941,0.75517 -0.35829,0.3197 -0.804775,0.5016 -0.446485,0.18742 -0.992189,0.18742 -0.63941,0 -1.113456,-0.20947 -0.468533,-0.20395 -0.804775,-0.55121 -0.336241,-0.35278 -0.551216,-0.8158 -0.214974,-0.46853 -0.336241,-0.98668 -0.121268,-0.52365 -0.170877,-1.06384 -0.0441,-0.54571 -0.0441,-1.04731 0,-0.77171 0.07717,-1.5379 0.07717,-0.7717 0.220486,-1.53789 l 2.57969,0.0992 q -0.148828,0.86541 -0.259071,1.74184 -0.104731,0.87092 -0.104731,1.75287 0,0.0937 0.0055,0.28112 0.01102,0.1819 0.03307,0.41341 0.02205,0.226 0.06063,0.46853 0.0441,0.23703 0.115755,0.43546 0.07166,0.19844 0.170877,0.32522 0.104731,0.12678 0.242535,0.12678 0.159853,0 0.286632,-0.14883 0.12678,-0.15434 0.220486,-0.4079 0.09922,-0.25356 0.170877,-0.58429 0.07166,-0.33072 0.121268,-0.68902 0.04961,-0.35829 0.07717,-0.71658 0.03307,-0.35829 0.04961,-0.66697 0.02205,-0.30868 0.02756,-0.5457 0.0055,-0.23702 0.0055,-0.35278 0,-0.42995 -0.01654,-0.85438 -0.01102,-0.42995 -0.03859,-0.85439 h 2.57969 q 0.06615,0.76068 0.06615,1.54341 z m 5.28616,2.98759 -0.23151,2.44739 -4.641238,0.36381 q 0.03307,-1.92375 0.07166,-3.82544 0.0441,-1.9017 0.104731,-3.82544 h 2.866323 q -0.12678,1.20716 -0.242535,2.41433 -0.115756,1.20165 -0.165365,2.42535 0.259071,0.011 0.512631,0.011 0.253559,0 0.51263,0 0.308681,0 0.606338,-0.006 0.297656,-0.006 0.606337,-0.006 z m 3.235636,-4.61919 -0.606337,7.50756 -2.326131,0.12126 v -7.47448 z m 5.600354,-0.18742 q -0.03307,0.51815 -0.06063,1.02527 -0.02756,0.50711 -0.07166,1.02526 l -2.337155,0.12126 -0.05512,0.69454 H 88.7394 l -0.121267,1.70877 -1.653648,0.0551 -0.05512,0.80477 h 1.367015 0.97014 q -0.03307,0.60634 -0.07166,1.20717 -0.03307,0.59531 -0.06063,1.19613 l -4.751481,0.11025 0.17639,-7.94854 z m 6.013764,0.0662 -0.05512,2.33716 -1.642623,0.0661 -0.418924,5.22553 -2.326131,0.12126 0.01102,-5.22552 -1.642623,0.0882 0.06615,-2.60174 z"
id="text14"
aria-label="JULIET" />
<path
style="font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 113.02678,127.9659 -2.73403,0.35277 -0.33073,-1.24574 h -1.25677 l -0.27561,1.24574 -2.8112,-0.2756 2.19384,-7.3422 3.06476,-0.15434 z m -3.26319,-2.57969 -0.41893,-1.91824 -0.4079,1.91824 z m 8.22414,-0.0882 -0.23152,2.4474 -4.64123,0.3638 q 0.0331,-1.92374 0.0717,-3.82544 0.0441,-1.90169 0.10473,-3.82543 h 2.86632 q -0.12678,1.20716 -0.24254,2.41432 -0.11575,1.20165 -0.16536,2.42535 0.25907,0.011 0.51263,0.011 0.25356,0 0.51263,0 0.30868,0 0.60634,-0.006 0.29765,-0.006 0.60634,-0.006 z m 6.68073,-2.16076 q 0,0.53467 -0.15985,0.94809 -0.15985,0.41341 -0.44097,0.72209 -0.27561,0.30868 -0.65044,0.52365 -0.37483,0.21498 -0.80477,0.35278 -0.42444,0.13229 -0.88195,0.19844 -0.45751,0.0606 -0.89848,0.0661 v 2.56866 h -2.56867 q 0,-1.26228 0.006,-2.51354 0.006,-1.25126 0.0165,-2.52457 0.011,-0.67248 0.006,-1.34497 -0.006,-0.67248 0.0276,-1.35599 0.70556,-0.20946 1.41112,-0.31419 0.70555,-0.10473 1.45521,-0.10473 0.42443,0 0.84887,0.0717 0.42444,0.0661 0.81029,0.21497 0.39136,0.14883 0.72209,0.37483 0.33624,0.22048 0.57878,0.52916 0.24253,0.30868 0.38033,0.70556 0.14332,0.39136 0.14332,0.88195 z m -2.4474,0.18741 q 0,-0.35829 -0.22048,-0.55673 -0.21498,-0.20395 -0.56224,-0.20395 -0.11576,0 -0.24254,0.022 -0.12127,0.0165 -0.23151,0.0441 l -0.0662,1.60955 q 0.0772,0.011 0.14883,0.011 0.0717,0 0.14883,0 0.19844,0 0.38034,-0.0661 0.18741,-0.0662 0.33073,-0.18742 0.14332,-0.12678 0.226,-0.29214 0.0882,-0.17088 0.0882,-0.38034 z m 9.2935,5.11528 -2.75608,0.13229 -0.022,-2.54661 h -1.26779 l -0.0772,2.41432 h -2.46945 l 0.20946,-7.75009 2.62379,0.12126 -0.16536,3.95773 h 1.22369 l 0.011,-4.25538 2.51354,0.0661 z m 7.47449,-0.47404 -2.73403,0.35277 -0.33073,-1.24574 h -1.25677 l -0.27561,1.24574 -2.8112,-0.2756 2.19384,-7.3422 3.06476,-0.15434 z m -3.2632,-2.57969 -0.41892,-1.91824 -0.4079,1.91824 z"
id="text15"
aria-label="ALPHA" />
<path
style="font-size:11.2889px;font-family:'Luckiest Guy';-inkscape-font-specification:'Luckiest Guy';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f9f9f9;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 149.98623,125.57913 q 0,0.75516 -0.26459,1.32292 -0.25907,0.56224 -0.71658,0.93706 -0.452,0.37483 -1.06385,0.56224 -0.60633,0.18742 -1.30638,0.18742 -0.27009,0 -0.59531,-0.0717 -0.31971,-0.0717 -0.65043,-0.17639 -0.33073,-0.11024 -0.63942,-0.23151 -0.30316,-0.12678 -0.54019,-0.23702 l 0.24254,-2.27101 q 0.46853,0.28112 1.03628,0.42995 0.57327,0.14331 1.12448,0.14331 0.10474,0 0.25356,-0.006 0.14883,-0.011 0.28112,-0.0496 0.13781,-0.0441 0.23151,-0.12678 0.0937,-0.0827 0.0937,-0.23702 0,-0.10473 -0.0661,-0.17639 -0.0661,-0.0772 -0.17088,-0.12127 -0.10473,-0.0496 -0.23702,-0.0717 -0.1323,-0.0276 -0.25908,-0.0386 -0.12678,-0.011 -0.23702,-0.011 -0.11024,0 -0.17639,0 -0.47404,0 -0.86541,-0.16536 -0.38585,-0.16537 -0.66697,-0.45751 -0.27561,-0.29766 -0.42995,-0.70004 -0.15434,-0.4079 -0.15434,-0.88195 0,-0.65043 0.25907,-1.16307 0.26459,-0.51814 0.70005,-0.87643 0.44097,-0.3638 1.00872,-0.55673 0.56776,-0.19292 1.17409,-0.19292 0.2701,0 0.55673,0.0221 0.28663,0.0165 0.56775,0.0661 0.28664,0.0496 0.55673,0.12678 0.2701,0.0772 0.51263,0.19293 l -0.20946,2.23793 q -0.37483,-0.12678 -0.78824,-0.20946 -0.4079,-0.0882 -0.79926,-0.0882 -0.0717,0 -0.18741,0.006 -0.11025,0 -0.23703,0.0165 -0.12126,0.011 -0.24804,0.0386 -0.12678,0.0276 -0.226,0.0772 -0.0992,0.0441 -0.15986,0.12127 -0.0606,0.0772 -0.0551,0.1819 0.006,0.12127 0.0882,0.19844 0.0882,0.0717 0.22048,0.11575 0.13781,0.0386 0.29766,0.0551 0.16537,0.0165 0.32522,0.022 0.15985,0 0.29765,0 0.13781,-0.006 0.226,0.006 0.44098,0.0276 0.79375,0.18741 0.35278,0.15985 0.59532,0.42444 0.24804,0.26458 0.37482,0.63389 0.1323,0.36381 0.1323,0.80478 z m 3.32383,-4.82865 -0.60634,7.50756 -2.32613,0.12126 v -7.47448 z m 5.60035,-0.18742 q -0.0331,0.51815 -0.0606,1.02527 -0.0276,0.50711 -0.0717,1.02526 l -2.33716,0.12126 -0.0551,0.69454 h 1.64263 l -0.12127,1.70877 -1.65365,0.0551 -0.0551,0.80477 h 1.36701 0.97014 q -0.0331,0.60634 -0.0717,1.20717 -0.0331,0.59531 -0.0606,1.19613 l -4.75148,0.11025 0.17639,-7.94854 z m 6.64766,2.63482 q 0,0.42994 -0.0772,0.78272 -0.0717,0.34727 -0.23151,0.63941 -0.15985,0.29215 -0.41341,0.54019 -0.25356,0.24805 -0.61185,0.47405 l 1.31189,2.33716 -2.48047,0.48507 -0.84887,-2.34818 -0.68351,0.022 -0.0992,2.29306 h -2.37022 q 0.0276,-1.25677 0.0496,-2.50252 0.0276,-1.24575 0.0606,-2.50252 0.011,-0.6339 0.0221,-1.25677 0.011,-0.62287 0.0441,-1.25677 0.38585,-0.14332 0.76067,-0.23702 0.37483,-0.0937 0.74966,-0.14332 0.38034,-0.0551 0.76619,-0.0717 0.39136,-0.0221 0.79926,-0.0221 0.62839,0 1.21267,0.17639 0.58981,0.17088 1.0418,0.51814 0.452,0.34727 0.72209,0.86541 0.27561,0.51815 0.27561,1.20717 z m -2.46944,0.17639 q 0,-0.23152 -0.0661,-0.42444 -0.0606,-0.19293 -0.18741,-0.33073 -0.12127,-0.14332 -0.30868,-0.22049 -0.18191,-0.0827 -0.42995,-0.0827 -0.11025,0 -0.21498,0.0165 -0.10473,0.011 -0.20395,0.0386 l -0.0882,2.05053 h 0.13229 q 0.23702,0 0.47956,-0.0606 0.24805,-0.0606 0.44097,-0.18741 0.19844,-0.12678 0.31971,-0.32522 0.12678,-0.19844 0.12678,-0.47404 z m 9.31003,-0.17639 q 0,0.42994 -0.0772,0.78272 -0.0717,0.34727 -0.23151,0.63941 -0.15985,0.29215 -0.41341,0.54019 -0.25356,0.24805 -0.61185,0.47405 l 1.31189,2.33716 -2.48047,0.48507 -0.84887,-2.34818 -0.68351,0.022 -0.0992,2.29306 h -2.37022 q 0.0276,-1.25677 0.0496,-2.50252 0.0276,-1.24575 0.0606,-2.50252 0.011,-0.6339 0.0221,-1.25677 0.011,-0.62287 0.0441,-1.25677 0.38586,-0.14332 0.76068,-0.23702 0.37483,-0.0937 0.74966,-0.14332 0.38033,-0.0551 0.76619,-0.0717 0.39136,-0.0221 0.79926,-0.0221 0.62838,0 1.21267,0.17639 0.5898,0.17088 1.0418,0.51814 0.452,0.34727 0.72209,0.86541 0.27561,0.51815 0.27561,1.20717 z m -2.46944,0.17639 q 0,-0.23152 -0.0661,-0.42444 -0.0606,-0.19293 -0.18741,-0.33073 -0.12127,-0.14332 -0.30868,-0.22049 -0.18191,-0.0827 -0.42995,-0.0827 -0.11025,0 -0.21498,0.0165 -0.10473,0.011 -0.20395,0.0386 l -0.0882,2.05053 h 0.13229 q 0.23702,0 0.47956,-0.0606 0.24805,-0.0606 0.44097,-0.18741 0.19844,-0.12678 0.31971,-0.32522 0.12678,-0.19844 0.12678,-0.47404 z m 9.80061,4.66328 -2.73403,0.35278 -0.33073,-1.24575 h -1.25677 l -0.27561,1.24575 -2.8112,-0.27561 2.19384,-7.34219 3.06476,-0.15434 z m -3.2632,-2.57969 -0.41892,-1.91823 -0.4079,1.91823 z"
id="text16"
aria-label="SIERRA" />
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -1,3 +0,0 @@
parent=keycloak
styles=css/pvjjk-tjas.css
redirectToAdmin=false

View File

@@ -1,29 +0,0 @@
_____ _ _ _ _
|_ _|_ _ _ __ __ _ ___ | |_ _| (_) ___| |_
| |/ _` | '_ \ / _` |/ _ \ _ | | | | | | |/ _ \ __|
| | (_| | | | | (_| | (_) | | |_| | |_| | | | __/ |_
|_|\__,_|_| |_|\__, |\___/ \___/ \__,_|_|_|\___|\__|
_ _ |___/ ____ _
/ \ | |_ __ | |__ __ _ / ___|(_) ___ _ __ _ __ __ _
/ _ \ | | '_ \| '_ \ / _` | \___ \| |/ _ \ '__| '__/ _` |
/ ___ \| | |_) | | | | (_| | ___) | | __/ | | | | (_| |
/_/ \_\_| .__/|_| |_|\__,_| |____/|_|\___|_| |_| \__,_|
|_|
TIETOJÄRJESTELMÄASENTAJIEN INTRA
{{ hostname | upper }}
{{ location | upper }}
Palvelimen hallinta on automatisoitu. Manuaaliset muutokset saatetaan
ylikirjoittaa automatisoidusti.
https://github.com/cwchristerw/tjas-intra

18
files/network/interfaces Normal file
View File

@@ -0,0 +1,18 @@
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug enp0s25
iface enp0s25 inet dhcp
auto enp0s25.20
iface enp0s25.20 inet dhcp
auto enp0s25.69
iface enp0s25.69 inet dhcp

View File

@@ -1,23 +0,0 @@
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug {{ ansible_facts.interfaces | select('search', '^enp') | first }}
iface {{ ansible_facts.interfaces | select('search', '^enp') | first }} inet dhcp
auto {{ ansible_facts.interfaces | select('search', '^enp') | first }}.20
iface {{ ansible_facts.interfaces | select('search', '^enp') | first }}.20 inet static
address 192.168.2.10/27
gateway 192.168.2.1
hwaddress 90:1b:0e:5b:18:fb
auto {{ ansible_facts.interfaces | select('search', '^enp') | first }}.69
iface {{ ansible_facts.interfaces | select('search', '^enp') | first }}.69 inet static
address 192.168.69.20/26
hwaddress 90:1b:0e:5b:18:fc

View File

@@ -1 +0,0 @@
Listen 8090

View File

@@ -1,29 +0,0 @@
<VirtualHost *:8090>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>

View File

@@ -19,42 +19,52 @@ server {
root /usr/share/nginx/html;
index index.html index.htm;
return 301 https://$host$request_uri;
#return 301 https://$host$request_uri;
}
if ($request_method !~ ^(GET|HEAD|POST)$ )
{
return 405;
}
}
server {
# server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
server_name _;
# server_name _;
http2 on;
# http2 on;
ssl_certificate /etc/nginx/certs/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ecdh_curve X25519:prime256v1:secp384r1;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 180m;
# ssl_certificate /etc/nginx/certs/pvjjk-1vos-tjas/fullchain.pem;
# ssl_certificate_key /etc/nginx/certs/pvjjk-1vos-tjas/privkey.pem;
# ssl_protocols TLSv1.2 TLSv1.3;
# ssl_ecdh_curve X25519:prime256v1:secp384r1;
# ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
# ssl_prefer_server_ciphers off;
# ssl_session_cache shared:SSL:20m;
# ssl_session_timeout 180m;
ssl_trusted_certificate /etc/nginx/certs/chain.pem;
# ssl_trusted_certificate /etc/nginx/certs/pvjjk-1vos-tjas/chain.pem;
expires off;
etag off;
if_modified_since off;
# expires off;
# etag off;
# if_modified_since off;
gzip on;
gzip_min_length 1000;
gzip_proxied any;
gzip_types *;
gunzip on;
# gzip on;
# gzip_min_length 1000;
# gzip_proxied any;
# gzip_types *;
# gunzip on;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
# location / {
# root /usr/share/nginx/html;
# index index.html index.htm;
# }
# if ($request_method !~ ^(GET|HEAD|POST)$ )
# {
# return 405;
# }
# }

View File

@@ -1,129 +0,0 @@
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name status.tjas;
http2 on;
ssl_certificate /etc/nginx/certs/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ecdh_curve X25519:prime256v1:secp384r1;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 180m;
ssl_trusted_certificate /etc/nginx/certs/chain.pem;
expires off;
etag off;
if_modified_since off;
gzip on;
gzip_min_length 1000;
gzip_proxied any;
gzip_types *;
gunzip on;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_set_header Host $http_host;
proxy_intercept_errors on;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name sso.tjas;
http2 on;
ssl_certificate /etc/nginx/certs/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ecdh_curve X25519:prime256v1:secp384r1;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 180m;
ssl_trusted_certificate /etc/nginx/certs/chain.pem;
expires off;
etag off;
if_modified_since off;
gzip on;
gzip_min_length 1000;
gzip_proxied any;
gzip_types *;
gunzip on;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $http_host;
proxy_intercept_errors on;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name cloud.tjas;
http2 on;
ssl_certificate /etc/nginx/certs/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ecdh_curve X25519:prime256v1:secp384r1;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 180m;
ssl_trusted_certificate /etc/nginx/certs/chain.pem;
expires off;
etag off;
if_modified_since off;
gzip on;
gzip_min_length 1000;
gzip_proxied any;
gzip_types *;
gunzip on;
location / {
proxy_pass http://127.0.0.1:8090;
proxy_set_header Host $http_host;
proxy_intercept_errors on;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
}

View File

@@ -1,28 +1,14 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>{{ hostname }}</title>
<!-- Meta: Charset -->
<title>{{ ansible_facts.fqdn }}</title>
<meta charset="UTF-8">
<!-- Meta: Viewport -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<!-- Meta: Robots -->
<meta name="robots" content="noindex,noodp,noarchive">
<meta name="google" content="notranslate">
<!-- Link: Preconnect & DNS Prefetch & Preload -->
<link rel="preconnect" href="//cdn.waren.io">
<link rel="dns-prefetch" href="//cdn.waren.io">
<link rel="preload" as="style" href="https://cdn.waren.io/frameworks/font-awesome/7.1.0/css/all.min.css" crossorigin="anonymous">
<link rel="preload" as="font" type="font/woff2" href="https://cdn.waren.io/frameworks/font-awesome/7.1.0/webfonts/fa-solid-900.woff2" crossorigin="anonymous">
<meta name="robots" content="noindex">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body {
background-color: #333333;
background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("https://christerwaren.fi/files/ai-generated-9087010-2.jpg") !important;
width: 100vw;
height: 100vh;
margin: 0;
@@ -30,7 +16,6 @@
align-items: center;
justify-content: center;
text-align: center;
flex-direction: column;
}
*, *:active, *:focus, *:hover, *:visited, *:link {
@@ -38,54 +23,37 @@
font-family: sans-serif;
}
img {
width: 50%;
}
ul {
font-size: 1.5rem;
list-style-type: none;
padding-left: 0;
}
p {
margin-bottom: 0px;
margin-top: 0px;
}
a {
font-weight: bold;
text-decoration: none;
.org {
font-size: xx-large;
}
footer {
color: #555555 !important;
font-size: small;
font-weight: bold;
.link {
margin-top: 10px;
}
.server {
margin-top: 50px;
}
</style>
<!-- Link: CSS -->
<link rel="stylesheet" href="https://cdn.waren.io/frameworks/font-awesome/7.1.0/css/all.min.css" crossorigin="anonymous" media="screen">
.server * {
color: #555555;
}
</style>
</head>
<body>
<header>
<h1 style="display:none;">TJAS - Tango Juliet Alpha Sierra</h1>
<img src="data:image/svg+xml;base64,{{ lookup('ansible.builtin.file', './assets/images/logo.svg') | ansible.builtin.b64encode }}" alt="TJAS - Tango Juliet Alpha Sierra">
</header>
<nav>
<ul>
<li><a href="https://cloud.tjas"><i class="fa-solid fa-cloud"></i> Cloud</a></li>
<li><a href="https://sso.tjas"><i class="fa-solid fa-user-lock"></i> SSO</a></li>
<li><a href="https://status.tjas"><i class="fa-solid fa-signal"></i> Status</a></li>
</ul>
</nav>
<footer>
<div>
<p class="org">PVJJK 1.VOS TJAS</p>
<p class="link"><a href="https://intra.tjas">Visit website</a></p>
<div class="server">
<p class="name">{{ hostname | upper }}</p>
<p class="location">{{ location | upper }}</p>
<p class="name">{{ ansible_facts.fqdn }}</p>
</div>
</footer>
</div>
</body>
</html>

View File

@@ -1,92 +0,0 @@
CREATE TABLE domains (
id INT AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
master VARCHAR(128) DEFAULT NULL,
last_check INT DEFAULT NULL,
type VARCHAR(8) NOT NULL,
notified_serial INT UNSIGNED DEFAULT NULL,
account VARCHAR(40) CHARACTER SET 'utf8' DEFAULT NULL,
options VARCHAR(64000) DEFAULT NULL,
catalog VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (id)
) Engine=InnoDB CHARACTER SET 'latin1';
CREATE UNIQUE INDEX name_index ON domains(name);
CREATE INDEX catalog_idx ON domains(catalog);
CREATE TABLE records (
id BIGINT AUTO_INCREMENT,
domain_id INT DEFAULT NULL,
name VARCHAR(255) DEFAULT NULL,
type VARCHAR(10) DEFAULT NULL,
content VARCHAR(64000) DEFAULT NULL,
ttl INT DEFAULT NULL,
prio INT DEFAULT NULL,
disabled TINYINT(1) DEFAULT 0,
ordername VARCHAR(255) BINARY DEFAULT NULL,
auth TINYINT(1) DEFAULT 1,
PRIMARY KEY (id)
) Engine=InnoDB CHARACTER SET 'latin1';
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
CREATE INDEX ordername ON records (ordername);
CREATE TABLE supermasters (
ip VARCHAR(64) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) CHARACTER SET 'utf8' NOT NULL,
PRIMARY KEY (ip, nameserver)
) Engine=InnoDB CHARACTER SET 'latin1';
CREATE TABLE comments (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
name VARCHAR(255) NOT NULL,
type VARCHAR(10) NOT NULL,
modified_at INT NOT NULL,
account VARCHAR(40) CHARACTER SET 'utf8' DEFAULT NULL,
comment TEXT CHARACTER SET 'utf8' NOT NULL,
PRIMARY KEY (id)
) Engine=InnoDB CHARACTER SET 'latin1';
CREATE INDEX comments_name_type_idx ON comments (name, type);
CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
CREATE TABLE domainmetadata (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
kind VARCHAR(32),
content TEXT,
PRIMARY KEY (id)
) Engine=InnoDB CHARACTER SET 'latin1';
CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);
CREATE TABLE cryptokeys (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
flags INT NOT NULL,
active BOOL,
published BOOL DEFAULT 1,
content TEXT,
PRIMARY KEY(id)
) Engine=InnoDB CHARACTER SET 'latin1';
CREATE INDEX domainidindex ON cryptokeys(domain_id);
CREATE TABLE tsigkeys (
id INT AUTO_INCREMENT,
name VARCHAR(255),
algorithm VARCHAR(50),
secret VARCHAR(255),
PRIMARY KEY (id)
) Engine=InnoDB CHARACTER SET 'latin1';
CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);

View File

@@ -1,9 +0,0 @@
incoming:
listen:
- 127.0.0.1:532
recursor:
forward_zones:
- zone: tjas
recurse: false
forwarders:
- 127.0.0.1:531

View File

@@ -1,6 +1,6 @@
local-address=0.0.0.0,::
local-port=531
default-soa-content=olympus.juva.tjas no-reply.intra.tjas 0 10800 3600 604800 3600
local-port=53
default-soa-content=s1.intra.tjas no-reply.intra.tjas 0 10800 3600 604800 3600
launch=gmysql
gmysql-host=127.0.0.1
gmysql-port=3306

View File

@@ -1,2 +0,0 @@
nameserver 127.0.0.1
nameserver 1.1.1.1

View File

@@ -1 +1,2 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClWZxHhmgV2LD3mrbLU2VxPXGMx02WaB5MU9t8XJsqAmsIKwUZSqHTrlR20dXPGlZhe5Rx4vf+ZKx0kuNKJMvswEkvpP0la9WSsawWHxhOTrqDr0yZMV1/CncdARw1vse3zJCQVbOflbKYsKgpdJHbMzk5SfSZijSscrgxRTa8qX/ndnmlGrgm4MxezgFBEJrzC4vCTZLK5LPkAva+2A6fwElgR7V1Dkg5p5l0/nvKbBje+ugaiTw7RPy42oC/hHrsvsnTQ4KheD1phRJFCSEnj6l7gxVetVBznZ/K697MrK4aNUFLDV29uiPALj+1fWAYTIO3WPNU/QkH7OEP8JO3 argo.aito.tjas
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClWZxHhmgV2LD3mrbLU2VxPXGMx02WaB5MU9t8XJsqAmsIKwUZSqHTrlR20dXPGlZhe5Rx4vf+ZKx0kuNKJMvswEkvpP0la9WSsawWHxhOTrqDr0yZMV1/CncdARw1vse3zJCQVbOflbKYsKgpdJHbMzk5SfSZijSscrgxRTa8qX/ndnmlGrgm4MxezgFBEJrzC4vCTZLK5LPkAva+2A6fwElgR7V1Dkg5p5l0/nvKbBje+ugaiTw7RPy42oC/hHrsvsnTQ4KheD1phRJFCSEnj6l7gxVetVBznZ/K697MrK4aNUFLDV29uiPALj+1fWAYTIO3WPNU/QkH7OEP8JO3 l1.office.tjas
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPW5phGhwAG8dmT+sR0uF1gRc0X9xXZiiFxvKUEsPk1N cwchristerw

File diff suppressed because one or more lines are too long

View File

@@ -6,17 +6,11 @@
# use this section when you may connect via different interfaces.
Peers: [
{% if config.yggdrasil.peers is defined %}
#TRUSTED PEERS
{% for peer in config.yggdrasil.peers %}
{% if peer.name is defined and peer.address is defined and peer.address is defined %}
#{{ peer.name }}
"{{ peer.address }}"{% if not loop.last %},{% endif %}
{% endif %}
{% endfor %}
{% endif %}
#TRUSTED PEERS - Waren Group
#aurora.devices.waren.io
#201:361f:bbfb:7210:c5b8:3f74:a285:adb9
"tls://[2a01:4f9:2a:60c::2]:18836",
"tls://95.216.5.243:18836",
]
# List of connection strings for static peers in URI format, arranged

82
init.sh
View File

@@ -4,35 +4,25 @@ if [ ! "$BASH_VERSION" ] ; then
exit 1
fi
underline=`tput smul`
nounderline=`tput rmul`
bold=$(tput bold)
normal=$(tput sgr0)
ti-header(){
echo ${bold}$1${normal}
echo $(tput bold)$1$(tput sgr0)
}
echo "${bold}"
echo "
.-') _ ('-. .-')
( OO) ) ( OO ).-. ( OO ).
/ '._ ,--. / . --. /(_)---\_)
|'--...__) .-')| ,| | \-. \ / _ |
'--. .--'( OO |(_|.-'-' | |\ :\` \`.
| | | \`-'| | \| |_.' | '..\`''.)
| | ,--. | | | .-. |.-._) \\
| | | '-' / | | | |\ /
\`--' \`-----' \`--' \`--' \`-----'
==============================
PVJJK 1.VOS TJAS - Infra
Init Script
------------------------------
"
echo "
TIETOJÄRJESTELMÄASENTAJIEN INTRA
INIT SCRIPT
"
echo -n "${normal}"
stop () {
echo "
==============================
"
exit 1
}
@@ -41,36 +31,36 @@ ti-header "Haetaan pakettien tiedot..."
apt update
echo -e "\n\n"
ti-header "Asennetaan Ansiblen järjestelmäpaketti riippuvuudet..."
ti-header "Asennetaan PVJJK 1.VOS TJAS Infran riippuvuudet APT-paketinhallinnalla..."
apt-get install -y python3-pip python3-venv jq git curl lsb-release
echo -e "\n\n"
ti-header "Luodaan Ansiblelle virtuaalinen ympäristö..."
python3 -m venv /opt/ansible
echo -e "\n\n"
ti-header "Asennetaan Ansiblen Python-kirjasto riippuvuudet..."
/opt/ansible/bin/pip3 install cryptography dnspython hvac jmespath netaddr pexpect
echo -e "\n\n"
ti-header "Asennetaan Ansible..."
/opt/ansible/bin/pip3 install ansible
echo -e "\n\n"
ti-header "Asennetaan Ansible kokoelmat..."
/opt/ansible/bin/ansible-galaxy collection install ansible.posix containers.podman --upgrade
echo -e "\n\n"
mkdir -p $HOME/.ssh/keys &> /dev/null
if [[ ! -f $HOME/.ssh/keys/infra ]]
mkdir -p /root/.ssh/keys/pvjjk-1vos-tjas &> /dev/null
if [[ ! -f /root/.ssh/keys/pvjjk-1vos-tjas/infra ]]
then
ti-header "Generoidaan SSH-avain Infra-repon käyttöön..."
ssh-keygen -f $HOME/.ssh/keys/infra -t ed25519 -N '' -C $(hostname --fqdn)
ssh-keygen -f /root/.ssh/keys/pvjjk-1vos-tjas/infra -t ed25519 -N '' -C $(hostname --fqdn)
echo -e "\n\n"
fi
ti-header "Luodaan Ansiblelle virtuaalinen ympäristö..."
python3 -m venv /root/.venv/ansible
echo -e "\n\n"
ti-header "Asennetaan Ansiblen riippuvuudet..."
/root/.venv/ansible/bin/pip3 install cryptography dnspython hvac jmespath netaddr pexpect
echo -e "\n\n"
ti-header "Asennetaan Ansible..."
/root/.venv/ansible/bin/pip3 install ansible
echo -e "\n\n"
ti-header "Asennetaan Ansible kokoelmat..."
/root/.venv/ansible/bin/ansible-galaxy collection install ansible.posix containers.podman --upgrade
echo -e "\n\n"
ti-header "Lisää SSH-avain Infra-repon käyttöön..."
cat $HOME/.ssh/keys/infra.pub
cat /root/.ssh/keys/pvjjk-1vos-tjas/infra.pub
echo -n "Onko avain lisätty Github-repoon? [K/E]"
while [[ -z $SSHKEY_QUESTION || ! -z $SSHKEY_QUESTION && $SSHKEY_QUESTION != "K" ]]
@@ -79,8 +69,8 @@ do
done
echo -e "\n\n"
mkdir -p $HOME/.ansible/vault &> /dev/null
if [[ ! -f $HOME/.ansible/vault/infra ]]
mkdir -p /root/.ansible/vault &> /dev/null
if [[ ! -f /root/.ansible/vault/pvjjk-1vos-tjas ]]
then
ti-header "Syötä Ansible Vaultin salasana..."
echo -n "Salasana: "
@@ -90,14 +80,14 @@ then
if [[ ! -z $VAULT_PASSWORD ]]
then
echo "$VAULT_PASSWORD" > $HOME/.ansible/vault/infra
echo "$VAULT_PASSWORD" > /root/.ansible/vault/pvjjk-1vos-tjas
fi
done
echo -e "\n\n"
fi
ti-header "Suoritetaan Infran asennus..."
/opt/ansible/bin/ansible-pull -U ssh://git@github.com/cwchristerw/tjas-infra -d $HOME/.ansible/pull/infra --accept-host-key --private-key $HOME/.ssh/keys/infra --vault-password-file $HOME/.ansible/vault/infra tasks.yml -t installer
/root/.venv/ansible/bin/ansible-pull -U ssh://git@github.com/cwchristerw/tjas-infra -d /root/.ansible/pull/pvjjk-1vos-tjas/infra --accept-host-key --private-key /root/.ssh/keys/pvjjk-1vos-tjas/infra --vault-password-file /root/.ansible/vault/pvjjk-1vos-tjas tasks.yml -t installer
echo -e "\n\n"
echo "

View File

@@ -1,6 +0,0 @@
$ANSIBLE_VAULT;1.2;AES256;infra
33386430326363383437666438386537326335363734643930613236613831626230643064356334
3135626438653437383961306332336232656231313435390a346433363530366262653830363231
65313965383261326366633238613662316663333735616136316332326534376331316364633633
6531653864313533350a306437396165373635313063306636663761303762623633346536666437
3961

View File

@@ -1,151 +0,0 @@
$ANSIBLE_VAULT;1.2;AES256;infra
66646230653763333733613633343366663932356161303735316330396335626533613935623464
3731306166663664633633343864666464376466353638620a313738393261326239383363366264
66386264666265653937646439646531643431613665393830343939333339376636633265376261
6563393338386236390a346233613363373337313335373139323433356161353231346336306632
38393932323338343461373834626163356565353765366437636137376136356230366335616438
38346437306161303331366537356630623566666566393364383161306663663837653430326232
35313064313531316263333034316266383561666539313936363539646435646463346233616565
34613962623633356232343838653435656365656563373637653131653336646139343862613831
33623061656439383833346334396461643661626366326263386238396330646563333535643432
35353335653463306237633961363431333734333638613462306365616635646130623239373732
30323832313562356131663539343239643633323666363461356434373634633938313639626261
34346561363962386666366565373435303130326534353039613831666366393863333439303331
66363132326230626632306635363937656236626262646333623534323037356233333136643664
30316363623835356334633230303961393230626161316661396166386638653836323330333933
31323039643039353062636437646262663662633430636563613461313962343163663239366233
62643665333363326239633064323033386136303831336230663831343633356535383330316262
64353661396563373036653165383462626432653636316337373337373364636530323339313266
61363238613966646464303934393161623463356132386562663066363564343363653734636565
35616137376363373031346461633931336164323638663137303230373233366132613739386238
36616134376263663561306461653637363835353930636165613439373265386462623736656161
30333066383930633139616333613965636162316634613739633463616163653132623033666563
61656466636130323937393334653464666636613631656239656263636339306563396162366637
32613036323631643038653561383733663561363162656435626461356532323331636332316665
63393637306661663231623061323138356166323534663630663239653034316538623763633435
64633162623831636263613939643939356634306636616263323139333430663038336335663232
37636537393835333737393365303530646666386133393732626235346133653138313432663734
37386634633763356130343732363134393430656133373939623834646362343431663964373262
33326361393433663266643636663935313066326561643765353061623832626166323337313835
61303235626639346162373566343639643030333436323064376365343733623866646465636233
33343930376534623663346136643739353963326163336538336530313061333432383664396432
31393936643762353965653962666330323062633166346462646335316534656634383762323265
66346436393836633064646139346433373436613533333133333736396531646564363135346436
65613430353133313663386166386163643835373730353531343135396339346162336562623032
64613033616466626437353036653530633037653332313962623466303436353039616133393261
31633537343430316365366161386237353930633861626161303461626636373037336331356139
61326532646230383535613538323735356639643834393837646638313965356262356532313562
35333534613033653633303731353231363931346335363561346131353964633531326364303663
30633336306334666535633030306334656130336161633637636163383066383330336664326561
36383963656430303739303463366639643466636132323433323439383037323565636262346363
39623637306233353836636639323639333832303563303364653763656235663963326466623630
32373363313164663130666138333361343838316130623835623631373533386437663034376562
32383533333832653361363333356266376666613661653632373562326561313837666263613464
66646432633564313639656666306337313135666538396166396266633137383264313664613063
34326563613335626564656336383434613133626232333733393233306365333039393138663235
61396564343830386636643366393332636338366562333061626334636335626364633938613932
33333139356537373966306565376366343765663434343936633930653033353564633165393065
35646434643566333035303730373761616130653530636137353333323139663363636135343666
34386662303136336239646263313366393762393664303030623934663861326237346536376239
61643530636138626631626664343033363734366466386530666435336632363534616363333561
62373936356637313334623064393865343264363932663839653936643365633161623764386562
65363737653737333738646262336365386534653636336434636639366139616163386333393463
32613566353564376334653735343034663630376364393532313233363837386639303666343136
65623561316335303166643630383363633438373634653731633764346166323061333237363237
35356564353339323636373435393661303633333338343063663335333163666430613137343565
39373537636137383931376639666236343039353362623861633639313931323862376463626239
39643239653030383737633132386436356631626263396166393834663936616563366661633666
38363633616461623133636438333833363562653863323363373136313566393738333961396131
61626564306537383434333931633839323663346565623765636636336266336366323137303232
66323537353631636262373930386538623964393731653265383462666664356330663238346334
30613539316163383165363732643665316462326534316138363963363563373631326633653766
63343137393136663166373035333130366361666364373732316161383065646238326233383665
38323133313863656431376238303830653935353762386537353539333534373337323230616131
61323739393663643562363066373663393135663238353765633264666537626639343939616463
63636339396366313835636466666536346465643536366434653534396465626261656263333361
65326435383165343964623363646536356366336335663262386362393432653063363736623861
65353036316630646163323439383438303638626562376134633363643830656561333163303466
39363561306263396562646464623030623431393764393933393663343361633162353136626534
35613465313063323531653365373361633866636161616366386230396232653863336663313064
36633233656638643035316539366364613336303138643461653133323662666337323933643838
30306335616132313634646332346565383638663062643439653461303062373439313631663738
36353538643430663463396365636136383731646363633065623532396333326166643436373839
63613735646230633635353130613130303362306661376361343632373661616364323037303435
37636632313733343236323535663136633434653164373962303865373565616131316434646164
33303865393864633439623366616335666439393261353634613532306331323261356662623031
34333939626633623963383939373464303763316532393037363338393839653238663635656165
32303132653235303762326532343436643763636232386162663834333635663761396532643165
38326262653565626363366463663233396464356166393661366432383037663034346366653038
34656633373933386661343030646362323032343736616461656166626432313633626239346132
32366661643761376639393438303665633266653233303433346461313538343333393962613632
39666231386535393366333965646363336636376565383732373133386462623763386666343938
37363962346238386161356238626538646533333739633938643065313435396336323534616137
30363665343832326136633662623966346235383739666431393161383238313933656464396264
33343731363734386530663731623864663139343730343063613038323564343461366438366165
32343330656436373033393538613334373462303434336562373263653838383138343564393639
66306538616333616138326666373965616563323739663363303036626439633761316538663132
62636633383936663436636637633863633561646339396463643031653338383465333336386166
64303435353661383663303466633732373236656134623965623237623737626363656232346336
36376663316630386265316135653334623564623939663138383266396537313532663839393366
31623033346564623633343166646330386536333937626630343338396235663166623164386335
63666437363439333866306131343831616434613033636431646263323039663761663830656431
33633537643130373662386439656564386136383539386564646438353130363130313836316631
31363365316138393734373666313631393331636136386364303131386231623838333863313337
30343832336561336234616537646630633937646530666664623531366664343866643765326265
34653764646237636563306134613762333235313362396662346261623035313331313435663536
63643031353230653462333064383636383464393438396365633964656334376638366164343437
34373766636665346361363064663962363161393464656566393630373831386235613837396138
63656336623466643663656264353666363038353661653732393537653731646362393439653962
36356663613638636139636530376363333132656135333531323735366338633730663366366335
37653063626537373066653733326638336234393136323036313763666134333661636230393139
34623038656435393466363836623566663732623135306437396435336636633166313337633761
38346534643339616265333463373264383139323565353933623666353535353862633463373962
36356432623431346235653231383664623466306635663939646362366663313362316561343239
32663766356161353163666136663061653866656562383931336337316663396534616261336466
31396130336638663232663031326461303939376463636633393830393566343630303934363365
36313631643066393536346261336133303135333032333837303735303231306631336135303462
66623962393936366665623330373133663630633730353336373165393138616565303432663066
39633134643137326165353861336265316435663534616638663733353037633239643635363434
63376538663163333336313433643133616262663036363164636334303336333563623339316237
66643036366337303066356131643964663861626266333764663763313133373463343465633238
39313930386662373638383831303264333537343064303365396166653135303235323861666638
33343036303733666536633534663166343437656664303439373330643062663263343032653939
64346365633934663536646562366133643665373636356137623161326433356336663836323436
65636432366531373063383138386235373761393661613737346237303937303433353036393533
34613233623964643961623335613934343665323062613963616435663833346465623061353161
39643064303332643536656166313139623933653466353063356134653538366161636661663733
38303536326333316366333339306538336334356365656661363861623130346337323063303138
36376634386534313432326435633732303562326366636135653234333366643730353763313931
30323365613436343733616330623734316262663165336537306635653966663764626463643764
31393635323332363265666237363365326434353764306162303937613231386262613665333838
33646133373663626161356566633333326165313461623131343539396430373463366539366634
31643238666438306434383934363065643031613861393830663532643361613363353230356666
65326666386264613135613664623834656234376431346665313235393463356536366132356239
36613562376265346234623434643635333761376335363161353934333137616230383630323363
36643433656139316364633566616161363036343537643037343632306331343864656239343536
34343839326638663365383362656262366361313830653735336633623232616233633733656465
65633333343261356563356434393361303162666335336335363361663362353466393233636638
31316162303631306465383865353262336633393637613534313238623436623165643439353865
36633364383839626134326661663037313336613835646232323236393838386438613134383432
64663166616438623663633438343663646161633137353438393839366466663862623739613536
66383232373434666263333136346434303637303164306563393739313038343031376630316138
34303636363837353031363134633563366633373636363830663530623862656365336238623232
37613063656531666631303566393461656266303839656266646563373135383930393231333065
32396339636533306335633965633264633634613233336165623062363965643135363133376430
30653063653736326164613833313036343236343838313036313035333361356132373439623865
61616662383139663466353264373835313934623765623237323030613036346161646461613732
36376236383463356565353830323335623238376533336636383539336539643134663234323930
63373431326138396566313034613536643737633465663632623136376138663937383961653536
38396339393434626436383530366130323864373131343038636337373437343263353561646132
35613866366639666361396530303266383233646638333232366261653837643766363939383437
38363732333166616331386562383933633964386433613136353034656231306237633238323261
64383037333837323037646464343063326361333061613634663739363634653137363362636531
33633033393665306464373238376535386435313831613861373130343661336638376237306366
32343438366666646239343133333562333037626363316163626438663534633366383961626431
61336534396163343062316330626431626433313563393638343365306639383861343437353132
64376433333764656662323265343861643266366130623365353032373861363238643662616666
32376534313364376461393132306633383266326534633034653331396466343537373931316235
33646563356661393639663934333465343361303361393166356664306264353063313635343465
30626435333565636637353539306264393166343936363066373861396134653435626262353139
63363831363837633962303264393461333736363639313031323564333335343838393039313461
3234353366373830613739383537393336353061306534336566

View File

@@ -1,18 +0,0 @@
$ANSIBLE_VAULT;1.2;AES256;infra
39633132376130303332653737373230626537373837343436343262663632626635633634653232
3032316237633864646435336637353135383637653565640a323432326439303363643533636361
35343364663632663366306465353138663036313131633366613463643337633233323436363836
3564313436633339320a346637343865303138306562613965373762316331623933633434616538
36393165643062303336323639326535613936363131383566633061323564393337366331366539
38333037653139336361313931353861396361616364333230343663366361346634613765346233
30326465353139643133626364306263383033336463333639393338613936343862636339663231
63616361363861386164373135313265343338313038333962656535383139313830373939303730
35373936613161366163316132336132356238313735663834356366373233633938386136656630
38383361316565306164376264363239666663363134613336656366613863636335376431656239
34336235653166373265633438386138336238373761366163326664616537643639663434363036
34643335663835383336316664323963386464643061636461643732333534356161633234313361
37396161333065333636336133616131333735366535663864646633643231396337356462353835
30383831356236616564663739653031303638363937313965663365663464313138396231623134
30353735363463623132323965333730303030393631633638386561396630316439653466626339
61363165656561663236343463613066336235666631343365303663333535616337666637323166
3965

View File

@@ -0,0 +1,41 @@
$ANSIBLE_VAULT;1.2;AES256;pvjjk-1vos-tjas
64373537356265383835646633393666313433353930616236393663366439636536616464383132
6236316531333431663830663665613830363061666439320a373539613430323231643335373266
35653439666564373238303933636165393731303662323931663966623035323761396531346132
6164333533613038350a643431343134353965383932336262356431613965363431616130386639
31663335336535613863636336356531623836323130383030343838393934616332303631366433
63643462633265613761376361393538656137333066353532353830313839326230656235663639
65373735363039616535623561306462353837386238623362356661303133623264623335336538
39393864356434306161396361346134663331343534616262653737663163346166393837653632
31613539383933303936626665356538633862343233343534396462316264363637333730633434
39653838386537386434643531356662626663656134313434316665353565653538636133313436
32653632323366333365356561656335303834643264626561636232333235326662613963363631
61656239626438393266356133636562633265333735373061303336393539393139373065393163
39303533386330646336303232323261373832356461326463383962393562636638356534353639
62306132303536386364323932393265633737363334343033393731376230323830323632376164
62616535623065636361646235383932383366636339663938333162393563376266653930306135
38336636613764363065323662666166333934326465643636663833396436303538316431356437
38316338653131623566356463313262343334316330333166613938623965326663636437363865
38366565316631653334363764626264326665316239353066633161303933666336623038663665
35306434326537663836333930623765363165643261323336376435393561353033363432353535
65623034313466343065336135346162353739663934623635323830326139386463653831393466
64636633393239306538306663653836363866333335613536653434373762383330373464353330
38326132616232323137336539626164306232643131636538326630653136326532353739336163
66383733306431343039323437313533313966643138313862386563613431316264363834303565
37313161616637306130363432616139666635303361396361383230666236376435353965386430
66316666336162303239383263333134353765353639623030613932643761333030626265616366
63303763663361633062316233313265663865623730343866366164326139653239303135376134
36643933363937646534643335393130313766346263646230613963343835306135396138643436
33643638313833623566393464623131386532666661343264393039666233396666333035383265
34656461633932656237653936643331653831336666643461336162643337323166373461346333
61653066333532333566323366653833346238373664623830393237353661613435656162646234
38316137346463653731613938316665663963353531393132646430646161656366616565663034
37303530373532656339323737353061303732343930646639373231323032383863323161393761
65313061666664363730313562353931323034396535343636303137636134623639356663623432
65383964376434343237653933383834613366353362633830646664316436653836323030616563
64343435383436353332626534366538646637353166656135353038383564393739356664333530
37353764643964313037663936656335323532643963316430343038303366326163323432343862
33376264356634653533653561353164376632393465623638376535623562643464633930323466
36653932656237366532313834323566343232623935333166636462656664656239616636623036
64313366373165666133386232643334643562633634353938373064316461633435383066646437
63363466613135633130

View File

@@ -0,0 +1,6 @@
---
pvjjk_1vos_tjas:
hosts:
olympus.intra.tjas:
vars:
ansible_python_interpreter: /usr/bin/python3

View File

@@ -1,30 +0,0 @@
#!/bin/bash
underline=`tput smul`
nounderline=`tput rmul`
bold=$(tput bold)
normal=$(tput sgr0)
echo "${bold}"
echo "
.-') _ ('-. .-')
( OO) ) ( OO ).-. ( OO ).
/ '._ ,--. / . --. /(_)---\_)
|'--...__) .-')| ,| | \-. \ / _ |
'--. .--'( OO |(_|.-'-' | |\ :\` \`.
| | | \`-'| | \| |_.' | '..\`''.)
| | ,--. | | | .-. |.-._) \\
| | | '-' / | | | |\ /
\`--' \`-----' \`--' \`--' \`-----'
"
echo "
TIETOJÄRJESTELMÄASENTAJIEN INFRA
MAINTAINER SCRIPT
"
echo -n "${normal}"
echo "${bold}PowerDNS Authorative - MySQL Schema${normal}"
echo "Downloading..."
curl https://raw.githubusercontent.com/PowerDNS/pdns/refs/heads/master/modules/gmysqlbackend/schema.mysql.sql -o "$PWD/files/powerdns-authorative/schema.mysql.sql" -s
echo -e "\n\n\n"

View File

@@ -5,36 +5,23 @@ nounderline=`tput rmul`
bold=$(tput bold)
normal=$(tput sgr0)
echo "${bold}"
echo "
.-') _ ('-. .-')
( OO) ) ( OO ).-. ( OO ).
/ '._ ,--. / . --. /(_)---\_)
|'--...__) .-')| ,| | \-. \ / _ |
'--. .--'( OO |(_|.-'-' | |\ :\` \`.
| | | \`-'| | \| |_.' | '..\`''.)
| | ,--. | | | .-. |.-._) \\
| | | '-' / | | | |\ /
\`--' \`-----' \`--' \`--' \`-----'
"
echo "
TIETOJÄRJESTELMÄASENTAJIEN INFRA
PROTECT SCRIPT
"
echo -n "${normal}"
echo "${bold}PVJJK 1.VOS TJAS / Infra / Protect${normal}"
action=$1
encrypt() {
execute "ansible-vault encrypt --vault-id infra@vault/infra"
echo "${underline}Encrypting...${nounderline}"
execute "ansible-vault encrypt --vault-id pvjjk-1vos-tjas@vault/pvjjk-1vos-tjas"
}
decrypt() {
execute "ansible-vault decrypt --vault-id infra@vault/infra"
echo "${underline}Decrypting...${nounderline}"
execute "ansible-vault decrypt --vault-id pvjjk-1vos-tjas@vault/pvjjk-1vos-tjas"
}
list() {
echo "${underline}Listing...${nounderline}"
i=0
for file in inventories/hosts.yml inventories/host_vars/*;
for file in inventories/*/group_vars/* inventories/*/host_vars/*;
do
i=$((i + 1))
echo $i")"$file
@@ -42,8 +29,7 @@ list() {
}
execute() {
i=0
for file in inventories/hosts.yml inventories/host_vars/*;
for file in inventories/*/group_vars/* inventories/*/host_vars/*;
do
i=$((i + 1))
echo $i")"$file
@@ -54,23 +40,18 @@ for file in inventories/hosts.yml inventories/host_vars/*;
case $action in
encrypt)
echo "${underline}Encrypting...${nounderline}"
encrypt
;;
decrypt)
echo "${underline}Decrypting...${nounderline}"
decrypt
;;
list)
echo "${underline}Listing...${nounderline}"
list
;;
help)
echo "encrypt, decrypt, list"
;;
*)
echo "${underline}HELP${nounderline}"
echo "encrypt - Encrypt Files"
echo "decrypt - Decrypt Files"
echo "list - List Files"
echo "..."
;;
esac
echo -e "\n\n\n"

View File

@@ -8,24 +8,24 @@
tasks:
- name: "Installer"
import_tasks: tasks/installer.yml
when:
- inventory_hostname == "olympus.juva.tjas"
vars:
ansible_python_interpreter: "{{ ansible_facts.user_dir }}/.venv/ansible/bin/python3"
tags:
- installer
- never
- name: "Maintenance"
import_tasks: tasks/maintenance.yml
when:
- inventory_hostname == "olympus.juva.tjas"
vars:
ansible_python_interpreter: "{{ ansible_facts.user_dir }}/.venv/ansible/bin/python3"
tags:
- maintenance
- never
- name: "Deployer"
import_tasks: tasks/deployer.yml
when:
- inventory_hostname == "olympus.juva.tjas"
vars:
ansible_python_interpreter: "{{ ansible_facts.user_dir }}/.venv/ansible/bin/python3"
tags:
- deployer
- never

File diff suppressed because it is too large Load Diff

View File

@@ -1,35 +1,35 @@
---
- name: "Installer : Python 3 : Install"
- name: "Init : Python 3 : Install"
ansible.builtin.raw: apt install -y python3 python3-pip python3-setuptools python3-venv python3-dev
register: task
changed_when:
- "task.stdout.find('0 upgraded, 0 newly installed, 0 to remove') == -1"
- name: "Installer: Python 3 : Libraries - APT"
- name: "Init: Python 3 : Libraries - APT"
ansible.builtin.raw: apt install -y python3-apt
register: task
changed_when:
- "task.stdout.find('0 upgraded, 0 newly installed, 0 to remove') == -1"
- name: "Installer : Python 3 : Configure - Virtual Environment : Test"
ansible.builtin.raw: "/opt/ansible/bin/pip3"
- name: "Init : Python 3 : Configure - Virtual Environment : Test"
ansible.builtin.raw: "/root/.venv/ansible/bin/pip3"
register: task632
changed_when: false
failed_when: false
- name: "Installer : Python 3 : Configure - Virtual Environment : Delete"
- name: "Init : Python 3 : Configure - Virtual Environment : Delete"
ansible.builtin.file:
path: "/opt/ansible"
path: "/root/.venv/ansible"
state: absent
when:
- "task632.stdout.find(\"ModuleNotFoundError: No module named 'pip'\") != -1"
- name: "Installer : Python 3 : Configure - Virtual Environment : Create"
- name: "Init : Python 3 : Configure - Virtual Environment : Create"
ansible.builtin.pip:
name: pip
state: latest
extra_args: --upgrade
virtualenv: /opt/ansible
virtualenv: /root/.venv/ansible
virtualenv_command: "python3 -m venv"
- name: "Installer : Tools : Install"
@@ -50,92 +50,33 @@
- pkg-config
- etckeeper
- picocom
- vlan
loop: "{{ packages }}"
loop_control:
label: "{{ package }}"
loop_var: "package"
- name: "Installer : Issue : Configure - Copy File"
- name: "Installer : Network : Configure"
ansible.builtin.template:
src: './files/issue'
dest: '/etc/{{ file }}'
vars:
files:
- "issue"
- "issue.net"
loop: "{{ files }}"
loop_control:
label: "{{ file }}"
loop_var: "file"
tags:
- issue
- name: "Installer : Motd : Configure - Copy File"
ansible.builtin.template:
src: './files/motd'
dest: '/etc/motd'
tags:
- motd
- name: "Installer : Resolv.conf : Configure - Copy File"
ansible.builtin.template:
src: './files/resolv.conf'
dest: '/etc/resolv.conf'
tags:
- resolv
- name: "Installer : Networking : Configure - Copy Configuration"
ansible.builtin.template:
src: './files/networking/interfaces'
src: './files/network/interfaces'
dest: '/etc/network/interfaces'
tags:
- networking
- network
- name: "Installer : Networking : Start - Restart Service"
ansible.builtin.systemd_service:
name: networking
state: restarted
tags:
- networking
- network
- name: "Installer : FirewallD : Dependencies - Packages"
ansible.builtin.apt:
name: "{{ package }}"
state: latest
vars:
ansible_python_interpreter: /usr/bin/python3
packages:
name:
- python3-firewall
- iptables
loop: "{{ packages }}"
loop_control:
label: "{{ package }}"
loop_var: "package"
tags:
- firewalld
- firewall
state: latest
- name: "Installer : FirewallD : Install"
ansible.builtin.apt:
name: firewalld
name: "firewalld"
state: latest
vars:
ansible_python_interpreter: /usr/bin/python3
tags:
- firewalld
- firewall
- name: "Installer : FirewallD : Start"
ansible.builtin.systemd_service:
name: firewalld
state: started
enabled: true
tags:
- firewalld
- firewall
- name: "Installer : FirewallD : Rules"
ansible.posix.firewalld:
@@ -145,62 +86,23 @@
immediate: true
offline: true
vars:
ansible_python_interpreter: /usr/bin/python3
services:
- http
- https
- ssh
- dhcp
- dns
loop: "{{ services }}"
loop_control:
label: "{{ service }}"
loop_var: "service"
tags:
- firewalld
- firewall
- name: "Installer : Ansible : Dependencies - Packages (APT / Debian & Ubuntu & Linux Mint)"
ansible.builtin.apt:
name: "{{ packages }}"
state: latest
vars:
ansible_python_interpreter: /usr/bin/python3
packages:
- sshpass
- lsb-release
loop: "{{ packages }}"
loop_control:
label: "{{ package }}"
loop_var: "package"
- name: "Installer : Ansible : Dependencies - Python Libraries"
ansible.builtin.pip:
name: "{{ library }}"
state: latest
extra_args: --upgrade
virtualenv: /opt/ansible
virtualenv_command: "python3 -m venv"
vars:
libraries:
- cryptography
- dnspython
- hvac
- jmespath
- netaddr
- pexpect
- xmltodict
loop: "{{ libraries }}"
loop_control:
label: "{{ library }}"
loop_var: "library"
- name: "Installer - Ansible - Python Library"
ansible.builtin.pip:
name: ansible
state: latest
extra_args: --upgrade
virtualenv: /opt/ansible
virtualenv: /root/.venv/ansible
virtualenv_command: "python3 -m venv"
tags:
- ansible
@@ -214,7 +116,7 @@
- name: "Installer : Ansible : Create Symbolic Links"
ansible.builtin.file:
src: /opt/ansible/bin/{{ binary }}
src: /root/.venv/ansible/bin/{{ binary }}
dest: /root/bin/{{ binary }}
state: link
vars:
@@ -237,59 +139,59 @@
tags:
- ansible
- name: "Installer : MariaDB : Dependencies - Python Library : pymysql"
- name: "Installer - Ansible - Dependencies / Python Libraries"
ansible.builtin.pip:
name: "{{ library }}"
state: latest
extra_args: --upgrade
virtualenv: /root/.venv/ansible
virtualenv_command: "python3 -m venv"
vars:
libraries:
- cryptography
- dnspython
- hvac
- jmespath
- netaddr
- pexpect
loop: "{{ libraries }}"
loop_control:
label: "{{ library }}"
loop_var: "library"
- name: "Installer : MariaDB : Dependencies / Python Library : pymysql"
ansible.builtin.pip:
name: pymysql
state: latest
extra_args: --upgrade
virtualenv: /opt/ansible
virtualenv: /root/.venv/ansible
virtualenv_command: "python3 -m venv"
tags:
- mariadb
- database
- name: "Installer : MariaDB : Dependencies - Package : mariadb-client"
ansible.builtin.apt:
name: mariadb-client
state: latest
vars:
ansible_python_interpreter: /usr/bin/python3
tags:
- mariadb
- database
- name: "Installer : Podman : Install"
ansible.builtin.apt:
name: "{{ package }}"
state: latest
vars:
ansible_python_interpreter: /usr/bin/python3
packages:
name:
- podman
- podman-compose
- netavark
- buildah
- slirp4netns
loop: "{{ packages }}"
loop_control:
label: "{{ package }}"
loop_var: "package"
tags:
- podman
state: latest
- name: "Installer : Schedule : Maintenance"
ansible.builtin.cron:
name: "Tietojärjestelmäasentajien Infra - Maintenance"
name: "PVJJK 1.VOS TJAS - Infra - Maintenance"
hour: "*/3"
minute: "0"
job: "/opt/ansible/bin/ansible-pull -U ssh://git@github.com/cwchristerw/tjas-infra -d /root/.ansible/pull/infra --accept-host-key --private-key /root/.ssh/keys/infra --vault-password-file /root/.ansible/vault/infra tasks.yml -t maintenance"
job: "/root/.venv/ansible/bin/ansible-pull -U ssh://git@github.com/cwchristerw/tjas-infra -d /root/.ansible/pull/pvjjk-1vos-tjas/infra --accept-host-key --private-key /root/.ssh/keys/pvjjk-1vos-tjas/infra --vault-password-file /root/.ansible/vault/pvjjk-1vos-tjas tasks.yml -t maintenance"
tags:
- cron
- name: "Installer : Schedule : Deployer"
ansible.builtin.cron:
name: "Tietojärjestelmäasentajien Infra - Deployer"
name: "PVJJK 1.VOS TJAS - Infra - Deployer"
minute: "*/5"
job: "/opt/ansible/bin/ansible-pull -U ssh://git@github.com/cwchristerw/tjas-infra -d /root/.ansible/pull/infra --accept-host-key --private-key /root/.ssh/keys/infra --vault-password-file /root/.ansible/vault/infra tasks.yml -t deployer"
job: "/root/.venv/ansible/bin/ansible-pull -U ssh://git@github.com/cwchristerw/tjas-infra -d /root/.ansible/pull/pvjjk-1vos-tjas/infra --accept-host-key --private-key /root/.ssh/keys/pvjjk-1vos-tjas/infra --vault-password-file /root/.ansible/vault/pvjjk-1vos-tjas tasks.yml -t deployer"
tags:
- cron

View File

@@ -4,7 +4,7 @@
name: "{{ library }}"
state: latest
extra_args: --upgrade
virtualenv: /opt/ansible
virtualenv: /root/.venv/ansible
virtualenv_command: "python3 -m venv"
vars:
libraries:
@@ -24,7 +24,7 @@
name: ansible
state: latest
extra_args: --upgrade
virtualenv: /opt/ansible
virtualenv: /root/.venv/ansible
virtualenv_command: "python3 -m venv"
- name: "Maintenance : MariaDB : Dependencies / Python Library : pymysql"
@@ -32,7 +32,7 @@
name: pymysql
state: latest
extra_args: --upgrade
virtualenv: /opt/ansible
virtualenv: /root/.venv/ansible
virtualenv_command: "python3 -m venv"
- name: "Maintenance : Podman : Prune"

View File

@@ -1,133 +0,0 @@
---
- name: "Migrater - Copy Secrets"
ansible.builtin.copy:
src: "{{ file.src }}"
dest: "{{ file.dest }}"
vars:
files:
- src: /root/.ssh/keys/{{ location | lower | replace('.', '') | replace(' ', '-') }}/infra
dest: /root/.ssh/keys/infra
- src: /root/.ansible/vault/{{ location | lower | replace('.', '') | replace(' ', '-') }}/infra
dest: /root/.ansible/vault/infra
loop: "{{ files }}"
loop_control:
label: "{{ file }}"
loop_var: "file"
when:
- file.src is ansible.builtin.file
- name: "Migrater : Python 3 : Configure - Virtual Environment : Test"
ansible.builtin.raw: "/opt/ansible/bin/pip3"
register: task632
changed_when: false
failed_when: false
- name: "Migrater : Python 3 : Configure - Virtual Environment : Delete"
ansible.builtin.file:
path: "/opt/ansible"
state: absent
when:
- "task632.stdout.find(\"ModuleNotFoundError: No module named 'pip'\") != -1"
- name: "Migrater : Python 3 : Configure - Virtual Environment : Create"
ansible.builtin.pip:
name: pip
state: latest
extra_args: --upgrade
virtualenv: /opt/ansible
virtualenv_command: "python3 -m venv"
- name: "Migrater : Ansible : Dependencies - Packages"
ansible.builtin.apt:
name: "{{ package }}"
state: latest
vars:
ansible_python_interpreter: /usr/bin/python3
packages:
- sshpass
- lsb-release
loop: "{{ packages }}"
loop_control:
label: "{{ package }}"
loop_var: "package"
- name: "Migrater : Ansible : Dependencies - Python Libraries"
ansible.builtin.pip:
name: "{{ library }}"
state: latest
extra_args: --upgrade
virtualenv: /opt/ansible
virtualenv_command: "python3 -m venv"
vars:
libraries:
- cryptography
- dnspython
- hvac
- jmespath
- netaddr
- pexpect
- xmltodict
loop: "{{ libraries }}"
loop_control:
label: "{{ library }}"
loop_var: "library"
- name: "Migrater - Ansible - Python Library"
ansible.builtin.pip:
name: ansible
state: latest
extra_args: --upgrade
virtualenv: /opt/ansible
virtualenv_command: "python3 -m venv"
tags:
- ansible
- name: "Migrater : Ansible : Create Symbolic Links"
ansible.builtin.file:
src: /opt/ansible/bin/{{ binary }}
dest: /bin/{{ binary }}
state: link
vars:
binaries:
- ansible
- ansible-community
- ansible-config
- ansible-console
- ansible-doc
- ansible-galaxy
- ansible-inventory
- ansible-playbook
- ansible-pull
- ansible-test
- ansible-vault
loop: "{{ binaries }}"
loop_control:
label: "{{ binary }}"
loop_var: "binary"
tags:
- ansible
- name: "Migrater - Schedule : Maintenance"
ansible.builtin.cron:
name: "Tietojärjestelmäasentajien Infra - Maintenance"
hour: "*/3"
minute: "0"
job: "/opt/ansible/bin/ansible-pull -U ssh://git@github.com/cwchristerw/tjas-infra -d /root/.ansible/pull/infra --accept-host-key --private-key /root/.ssh/keys/infra --vault-password-file /root/.ansible/vault/infra tasks.yml -t maintenance"
- name: "Migrater - Schedule : Maintenance"
ansible.builtin.cron:
name: "Tietojärjestelmäasentajien Infra - Maintenance"
minute: "*/5"
job: "/opt/ansible/bin/ansible-pull -U ssh://git@github.com/cwchristerw/tjas-infra -d /root/.ansible/pull/infra --accept-host-key --private-key /root/.ssh/keys/infra --vault-password-file /root/.ansible/vault/infra tasks.yml -t deployer"
- name: "Migrater - Schedule : Deployer"
ansible.builtin.cron:
name: "{{ location | upper }} - Infra - Deployer"
state: absent
- name: "Migrater - Schedule : Maintenance"
ansible.builtin.cron:
name: "{{ location | upper }} - Infra - Maintenance"
state: absent
tags:
- cron