wip: ansible pull
Some checks failed
/ Ansible Lint (push) Failing after 51s
/ Ansible Lint (pull_request) Failing after 46s

This commit is contained in:
June 2025-07-23 15:27:38 +02:00
commit f107737a39
Signed by: june
SSH key fingerprint: SHA256:o9EAq4Y9N9K0pBQeBTqhSDrND5E7oB+60ZNx0U1yPe0
12 changed files with 330 additions and 156 deletions

View file

@ -11,6 +11,7 @@ keys:
- &admin_gpg_c6ristian B71138A6A8964A3C3B8899857B4F70C356765BAB - &admin_gpg_c6ristian B71138A6A8964A3C3B8899857B4F70C356765BAB
- &admin_gpg_lilly D2E9C0807BF681F5E164DAFC5EE1B61CD90954CD - &admin_gpg_lilly D2E9C0807BF681F5E164DAFC5EE1B61CD90954CD
- &admin_gpg_langoor 878FEA3CB6A6F6E7CD80ECBE28506E3585F9F533 - &admin_gpg_langoor 878FEA3CB6A6F6E7CD80ECBE28506E3585F9F533
- &host_netbox_ansible_pull_age_key age1ss82zwqkj438re78355p886r89csqrrfmkfp8lrrf8v23nza492qza4ey3
creation_rules: creation_rules:
- path_regex: inventories/chaosknoten/host_vars/cloud.* - path_regex: inventories/chaosknoten/host_vars/cloud.*
key_groups: key_groups:
@ -117,6 +118,8 @@ creation_rules:
- *admin_gpg_c6ristian - *admin_gpg_c6ristian
- *admin_gpg_lilly - *admin_gpg_lilly
- *admin_gpg_langoor - *admin_gpg_langoor
age:
- *host_netbox_ansible_pull_age_key
- path_regex: inventories/chaosknoten/host_vars/tickets.* - path_regex: inventories/chaosknoten/host_vars/tickets.*
key_groups: key_groups:
- pgp: - pgp:

View file

@ -1,222 +1,233 @@
netbox__db_password: ENC[AES256_GCM,data:4k0wmOe1c5AE298Juw5HMm5dttTKB1WsVxha4MwaIILpyIbJO0CfmzjYflfBTFPPGgVeuYdCobzchzqkP+8eAQ==,iv:25Cj2BLGJK9tMDr42AqV1IzJc5zG2dk1YH5vC0b1T3M=,tag:knyB+nALZwME8y7CAQ4BCg==,type:str] netbox__db_password: ENC[AES256_GCM,data:4k0wmOe1c5AE298Juw5HMm5dttTKB1WsVxha4MwaIILpyIbJO0CfmzjYflfBTFPPGgVeuYdCobzchzqkP+8eAQ==,iv:25Cj2BLGJK9tMDr42AqV1IzJc5zG2dk1YH5vC0b1T3M=,tag:knyB+nALZwME8y7CAQ4BCg==,type:str]
secret__netbox_secret_key: ENC[AES256_GCM,data:zPzoFK5Sx7gJ31/Apwex9ffFU/GY+HxIfwrItCW68MM4kVvS33e+LY4cI0vbPYEUF10=,iv:SjpKxyxSAVo+p9vvE/YAQFCzAEudcZ1lwnJ6scxeQD4=,tag:oA+lBep610IfelGwdTohvw==,type:str] secret__netbox_secret_key: ENC[AES256_GCM,data:zPzoFK5Sx7gJ31/Apwex9ffFU/GY+HxIfwrItCW68MM4kVvS33e+LY4cI0vbPYEUF10=,iv:SjpKxyxSAVo+p9vvE/YAQFCzAEudcZ1lwnJ6scxeQD4=,tag:oA+lBep610IfelGwdTohvw==,type:str]
secret__netbox_social_auth_keycloak_secret: ENC[AES256_GCM,data:HP753hmQ7ssbYSQRH0zcRC0vRN5bKptvMXo9jjzcuk4=,iv:GQUoojXLAJxqdB92kKLhavDaka0Rkkg2uocBLshdvTk=,tag:LVnL/JHMsAd5UmmpnUv7og==,type:str] secret__netbox_social_auth_keycloak_secret: ENC[AES256_GCM,data:HP753hmQ7ssbYSQRH0zcRC0vRN5bKptvMXo9jjzcuk4=,iv:GQUoojXLAJxqdB92kKLhavDaka0Rkkg2uocBLshdvTk=,tag:LVnL/JHMsAd5UmmpnUv7og==,type:str]
ansible_pull__age_private_key: ENC[AES256_GCM,data:KgD61z3hYRPSoCXmJgOMmHFqXtqoKHRPUT/+ayEImPsbpk+6B1hVscQbmsKJFWNsyQlCAV2MqYlIrP68pP9ckfURIaN8g5n9X+Y=,iv:eTjmF0e4/5NSnORZVtZKTaL4r1RBg1ZbHZueOrnMVlY=,tag:v1ndJchirNLPvg8mWA1otA==,type:str]
sops: sops:
lastmodified: "2025-05-04T13:54:30Z" age:
mac: ENC[AES256_GCM,data:/+JlBnsQuJrx3+CXlH/0dtst8PdBw7cTnUpBavcQRXFjd5PsZ54kUCosFu7Y2ngL9xh6WOWKSJCKpHFb8TCrBhslJz+8SQiH97py9m59diMwG5m/RF3I3YHBIoonSZvl8ocDTbz5myycS41fad3CMs5XtGt/vEcceSFhgqjZs9A=,iv:yL8aRIn22zmTIQ53/e71t6o2z7q1fyvmgqvpz4va39M=,tag:DH1oCBbdOgK2NdanzMSn9w==,type:str] - recipient: age1ss82zwqkj438re78355p886r89csqrrfmkfp8lrrf8v23nza492qza4ey3
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrY3VsVTVSdC83SXNuMEhp
Z051c2RrT29mbGhGZmtxUnFmMWY0UUt4MmpJCnhwWjlQcnJHUDI5QWhPYUFKMzhW
eUpteTdUdTNvczFPNXRnQzlkNFh3bUUKLS0tIFN2bndWTGRKZ3ZSYisyU1hBbk1K
RU1La1Z2Q0lPYW5qYnl3OEVhaXZ1cFEKGMbMxcGda3uTGO6DjhnY57d6ulnfsKxt
PFVehZXh+/FD+u0RDnWMBcdjI1Qi7e6+q/dZX7xCn9dGloDynycbJg==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-07-21T18:08:40Z"
mac: ENC[AES256_GCM,data:SvTSvRYd7ljYpQb72yRkQ+fDrDWRMQzFwTrI4RuLglBCzKNxu1g2JFAVFUSNRybWASCYhg0FqtHoC31HRHbs24g43fRFrXrvBB3sCwQ503y7A78/UfX55Bz3VBqYVJfh9w/Fm23Tak0ki1CQoAl53lz88eUHjCJjeyKtY81/PnI=,iv:y4C3RMWPsnTTgkscvfqVEzcgAg6L0QaKinzcBFLOfSg=,tag:kIcvmJXSNhpQDUHy+ZpPyQ==,type:str]
pgp: pgp:
- created_at: "2025-07-20T18:28:09Z" - created_at: "2025-07-21T18:15:42Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMAxK/JaB2/SdtARAAgv0wpzF+jFkc/5dlF9m33aXqRacTsTJutFkSv+NcCHwL hQIMAxK/JaB2/SdtAQ//c7qCMOidrBOwgXR02ajbMhzNdo5T+QnhLPh44y/YTICp
nbOjXr817ujXarA+NNFeu58FQEW9+fxA1T1O2azbgtOz0xXdlDfkSkS8kCm4B335 JGoTowZ+hPyK5gwaTPRkduRzK074uxcjSedUfcKAPvnmmYkl4oMo/7BjXRNAgUNX
cAu8B8UwDwMOpiRgmHrsnFmvDct1sOZ/tgnd6AB1bgSyKijNGtdIfAimbOM0pEo4 leqmHnE/9+gR8EgVcYbfbsk5EPg9shhq9IYrt32PCL0D+17O5KCi78wMykmU9ZX3
pNWkwh6WdsbjpSFohfuh5c3yc2unCKLV42QDyPbGYmE/MP88DW/bgBNmhept1vGM +DpZUHsZQHUUKKwCtBy4HgaFMIRTUIRFDYyfdVyKyDYvPypKzXw9ljZT4DPo257o
k72Ih1lCaRcqZLEDaL042ttSqk3MCK8tbAzq5682MAyIJGq0H+OU4uysPgsxy7GS 3pRLRltzxrehRgvVgajdd8NCmy17KLxdgI/TV0EWuQkRV/C6kzyvts4GYnFScyT5
OGDmyDHOD557msVZ+ftHpQKDsHMdN//DDo66uUR4VCS2IqILVAo4mFAbmbzF+yZ0 B54X7ApFoHitjWcNl28kYg0zcwd8Grk5ucWqDdMaelG5of4nIqzphcVmsm/4we9Q
Bt79T2Cgd+c2GdhiZ7pADtuVmLGE24mw5FXxCQxb/fbouXidH+2neVIjPCqzJE7b Br0vbI1coNYzOoC+5SEzdnmqeouPR6IQ+uwza0m5srCTEoKsTwDlPKwU8oFqCJBY
yJoaYMIo3gWIdIM7fhlFnWrh4KGMh8z/eaVW3oG2uPCtO5OBpts1VCmvcmBBE4JT Hi6pjEbLFBwnkn2hIO+B9YEJUENjLw04DAKfmiTXr8H0/DvVdQBeQtSpRTUdijSK
kTz/1w/v3kz0rwze9JTKXHyg2wK1chn5V20T+5SwP6MAL25zxZa/tlPHEIH3lte/ x1GXJm2+lgWzLtcYB2W7QphktO78hQ8lUx3lEP4j1VM9aTAhCfSrdsx+4EmrRSTm
x0LHEU/5WXcQLYpYxNF7yy0mrwRlMs0SLRxC2l1Txk/O7xFffnFL0I5vBluxLU3y q2AjSYXI+xzAldSnYyXP6Oy4IWUaJ9vf0x3PqfCrn78rJghQC3PEPpeg5YoQz5VL
FMB5EtIUamapM3FuOC+hzf9rCE4I+fQJ/8aBQD2hjzOQNamg7CTXTNWldbzKL/DS 6NvULUpSlC0huFgSxHyYoGOfM1fNAAAXPUg0BqaORTLcOMdXA+BC8scd7CPfcyLS
XAHo8+Rd9b1dvjzZfxfRp/bF5Av2bfTO65lb9G6YiBHLD7+AFbo2Pn7NWh9X6J7I XAFG8sQUz1KWp/0rB5cOfSM8Cg5zqY1c4lG46NK3sPOaun3RXRoyq2BjB4izlMKM
qpYAK9Wfs0sFNm/UIhmSkFJIXmlhMbrsp14ebfH305OSoe+dvkHfLD50frdG tZ3fixqUoAr3yYSo6WEeKnFwT14wog4al124tn9QHhUHq2Nm1w0u76qssDgL
=3PUx =Oiyj
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: EF643F59E008414882232C78FFA8331EEB7D6B70 fp: EF643F59E008414882232C78FFA8331EEB7D6B70
- created_at: "2025-07-20T18:28:09Z" - created_at: "2025-07-21T18:15:42Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA6EyPtWBEI+2ARAAkHsW/Uz7zqX2bvbgP1SlNiQGJ979f/wAHA0q154N22r9 hQIMA6EyPtWBEI+2AQ/7BpnVJCzGYCmtfzG115O6575g44wna0k/UmNp9T25HCsr
02H3RB9zlyLQhEYlBKC8X1O7N8l4ZTod5GNGeWeqiEUacTve084u+rkrLz9HaNxt Ka59WhuqqUMbRNo+ZcxhOl2fiABeBjPT0GR4lU/Z0L3+fDE91ayPN7cWSThVf8fH
Tfdpq0fqGofEvThOUB9I2B7yWahg1g+D5xee1PLhB03dhMwlWgfj2hD2+7oshlTi jU7u6A4ljRQCzh1zVCbLrYw/KvpIZm0+pIsPhtf48yKvvJA1VJ8iGSrsnkz91ABc
USJsY7mR4GImWYVqcm9/nANpoQzEYJ24K0h6dw8NBDvgLPQAB8h6Td7DjXJw8NX4 13JN9BQ2I0jELTBYNbXJ/rxmH26ypyZ7u2tER6Xh+cFCoNILWdnkPkTnFvLI2c45
21gfToS8E62gUV+K66MYwCZWuc/FxS2DZz4pewm2R52ReP7yl/nmpqlYb0iCfiTC /6dbAUsrSQNeQiPhjsYBi3MwNbjjOIk0qbqzEuC0Ow4WpbvW/1JVB/wDipLpudqP
RmxhFbV6+E73sPzKjK8BJDMB6k4uPHFu5Hkh86o3XjwkpAaX84EzjVKi3VIGTLG3 TSmvAe6CgbbkPTabFHOMWQRHgR87YJMwiiA4iJuSsYzvF6hGkRT1C7sF+riMc2Vy
biyeWwh6efCjUhXptaGTIFZscdGiEDJGtTn0Z0J8iDXotb6pZms2Cde+oXpg2CBX zaK0v1YpXkR0yrI+XqEHl4+K5mh8GOhR2gT2QA6U3hvgFwXwaTpzJBbYT9JzJFML
i6uiKiz/KtBaRNYbrb8rcDQ3IHcO8WWSvAp6dYrbOmY/bYu6q2dc4hhTVs4JFVzr yz0FUDxGTpPBBL4ltC1vfexXEAe+z/9AZTTvMPYUHNLR9n3oNWXmhuAioiSPfeCX
5I8m5jRQdzyhaoB88S23VKS1jaOUwYhN1THKPAmcR840kAA217Jq/GwUoBx/G1t5 ketaB4kX+gcYW8+5VnqDL44rtPooRZtIWP/e0GIhApcHZjQLEfowGiZjUeEGaXR0
DJQmStvo5f+nYBB6N/PVNzUWLU6gblFYiYnDIFy8hFHYmkmmWjU5J6qfITyzTULa RDqyUSd6eYnoZ5n3ew03DtG/1wlzaKfDCszRa22oZxP2p9XVW7oYiRGobKwwU6qS
f079U9SJiqdE/t5UELAPbvIz/Hl0nGemJfit3XhZV3IelaFCxSJUR4DmE+rXTV3S wQzahX1rL2NTKzjYzORSXRIzH/ZANGlgQAn82kFRbQRehUiq8OxnA7ZPWa02fFPS
XAE1zXyTvV6b9bYkjY6UvUMETH3NbR3yYjn2CMnnHiPykF6rK7jXQ7Z6AP+drna+ XAGk5eFschzQhXfgBNN0FoTl54/guA+xi1bOZ77erVMP4XhEEQMJd5LH/uieDhGy
q9B0cmmMmGx1LcwO60wBOdbDyWsw/6aCt7SaMwX7CXw8kzQ7ZNRQDPrXtLPM FfSJJAr7ArayJaOH9ULhD05om76Q9ufR/zfa2pu/bBNknhXxa/qNpxREGdx8
=3SiJ =GL38
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: F155144FC925A1BEA1F8A2C59A2A4CD59BFDC5EC fp: F155144FC925A1BEA1F8A2C59A2A4CD59BFDC5EC
- created_at: "2025-07-20T18:28:09Z" - created_at: "2025-07-21T18:15:42Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMAz5uSgHG2iMJARAAyfykThjQAYOrOMy+nHwMHNXhmQRhHwtLIb+WEekWkRP+ hQIMAz5uSgHG2iMJARAA6hFD9VSOsX7LMTz5Iv3fEF9m6d9J9DvFGdVhzKjrl13P
+t88NlZ0fgtQtKVZbme8V2a0TCFXK7DFmC/6ZYtawfSR6LsJCsybQ5iEXEiLnaMd RS3NdRUReyExTgJv1UztRSOWAFpYjt7EY5cDv9KejbQcuVUmknCV0rLiKkgKcn0T
mddYwQocrHC8/P+MPPvG4Wu7WzPc1yl95k/GR/M/o/Jef5nsmlfsO4fEJbB1tVTc Q3L761zy8BXfCSk1O8wSSgQyOgOe2jGdqP94sr8vF5/BHZpZjYAUvoTUCe/to/VJ
rGjFZidiFIsJ12Nt0DavJi5iV+wXcrFkAEdDWSCbmp+93IVK2kEeSnSEJ2I0JOHz wXBwZOXsxeL6ipbgvUhDv/V2lr/SXxEEkAmmrsm2JzsjFi0kyj0XF81bxafnYNsX
8EuroP9wGFSaq2pcVhEHs8LBm8fjUizMZGOVTjZPVWLH9Jc55Qwm+APKBMHkoAEW TI85/Ejs4+WFhubr9UAJ5R2/tnPCXJq8fgZTemRpl+6OH0DnpuMUB3CsA13m2CnI
KaX63+uj/IgqDKTo556JyYhK4ZzexPwduelsWfOYOY+r2coW0bV5haFEq4pvHMJH ftGvdy4j4ihVFN6M2sbUbeUFY2u92X7E9PLUSKQVn5TX0j1FM9Nzm2//V6yE+y5/
7A6m10lM2XcUzEC1j9r0BxPJuLtS5sYhub9gWsgxHsCbgArKcvkEfpC3ZRJyOmvo GBYKL1zk2m0EFPLvc7LqboMu1RAej8dZ5VvhJBKG1oaN3c7bLUpFUuQm1uPTJrYB
1EbB1Stvh4vr++ASmHlLl314qpLSt1YEYtBhGKg5XUPnGM86fOYOtH+pX9fOM5dk I/2T2B+iyZp1+KCOpqLQKZCTY4yr5RbMlGqwvOcpzEP5xMCNPkIoFGKm9KyPMpFk
xC4CXKLRmOfRcR+rllGoliyUrrXMTugf5r/UEeYOrSsKd40JsVPVC123Uoo8Y2j9 /O2WwaC/ewRAmSBiEVM38SOOS1Gm5Z7BXlmaZrD3GT1jBmTPqjrX9u89Q1EmJrEq
FO7xGVQ3WBy4rDrqjRXoV1nakdKOvGD8iS0hSGs8yk569YtKA34RLAcwpji3U+sm 2Go61OwGtmi2PcMSZ4ah99mBnP9aVei0br4OkZxa/wGfKPzlSqB4cLI8oAEnJk40
wIE4X/Z6Vyrsht/PvsbIcptexG2rxq7dze7eZd1T5C/pdcwh+rQG0ujJ/GB7klnS JRU3BxlsunE5RCEOlNS08Id+/osjFI4VFDRZqDnw1NPaDbCvo5a2NkpEc+fTGzvS
XAHpuT2TgiN3oGIKMZh2cqfJ/rEBd61pvWMJQYW6ve2JhxSNL/Zo25GxsDoCzoqO XAHAT+2ZErI1QeQV3jM/zbk5U7jxRpx1HCOQN9fnGPS01WpAgY3dlpy1US5T4LbH
ruhYleZuFEYyuVIJQ1ePwt6AeQ4yy2PaNmZAJgW5scbSn0LKMoX3T8oRtgxN qNeuH5drHt4NaSvipAzKOoC+zZfciYgfsSVNOXDlztnjP0O/NqL35BzJ3FMV
=tPWV =omHk
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 18DFCE01456DAB52EA38A6584EDC64F35FA1D6A5 fp: 18DFCE01456DAB52EA38A6584EDC64F35FA1D6A5
- created_at: "2025-07-20T18:28:09Z" - created_at: "2025-07-21T18:15:42Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMAw5vwmoEJHQ1AQ/+IFSE4p67ld1nl5V8FYCHwDoZBAFKBz89KNv6nMmKZiVE hQIMAw5vwmoEJHQ1AQ/+K42NmCDc6ZHlF+EBvXvbueEUrXIcrNA68XIeLr3YXPOW
sa41YCWky0d8Tv3QXiYyL0jZuyQpN3DSXNrtQLHbjHya/mvHT16Oi51/A5ZvW8Sk rzWMhSGVxT6tQOueM6bsMROMLfhJr4daRAmyHmAGP9j3pcQXJJYQpmzGuU/Pz7uZ
dABW7DHokET8cmtUpnhpx2hKGG2SbbkkGmZCBKOveVn5wq5VUPDqJjOF0P4wZWh6 nWoD9u9fkk4NyvTvDCM9ZHrg7/R2yEQrhCkGnqwu/Of6DL90DvTgQ/3QFcwTnbDp
IkEQFfequPcCsM8MAtM3ocC5Lkkjwb91p0e0A35gE92kms7iPE7ecX2DJIiaATIs FcyHsAufvtovjEWv4XCYujjo0fEMvmWmPoVgfsoFMXReNBD6f43jw5iEN31oAcfQ
ABRmcgwOJeuYV7nhvpFbq5FSBUXvjuVN9IGfIG3Dl+IcCYg5xF2eJWnK/sOiqNmc sULeplAxBk/gFQj3IivSGKvIG/U6CIxNWfgQZcxMISxlKByX6u3aYbM+3xtCXAH4
uFoPkaoueTYEZkgwg9ItAvHN853WPzt7ppsduEvd3kwnsCrtj+veylr1upTjxQJK oG1hu0db/L5H0Espys+dK0cWs/hRy9QUOgOVF88oFtYUkW/5DbfFSIxFcJpTdFGv
Rx2+a70NJz9+eaVm4hLMBDl9Ov6cEril+vZU/N0x3tSQ/vZgAJ+ofK803k6717Mn NgQF7w3aZpRL8ZSHc4zbqqwB35bV5dfFV/28ygYxBK7qZzTlBxh2XUvXA/VhxWM5
TkSLjLkP6BNoKI7DLMLfxiCy0IssDsiX1po2wPSn2sDa+4rYt8U9dhfI8wYzUF5Z Yqp9IIrb8TLRogYhxGD0ha5o5S5nWFIlprjclSFgkCZWO707jfFxVSRZ0l4a8R27
T8IGE7ZdVvGR0FfxbPdFgxeNJSPv7atIWemnqEAMQ5fVFQ3JsBS8xHoqoLcLJHh0 Tf9lmCKVs92keLOFe7lZ2bsAOCjupOjbztc81pmom0Ql9/BUCiZJVjn3eUs9q3cM
Q8A+HPU3oSiU2ZjGlAM9yKWdUjz/DWeo0HodqaNBonJqCaxids0P0oHSGbTB6xY2 Zj5sS2+etLOPjzWlO24MMnP3cVpSVdkp+biN8l01Gzb5Q4BXVdSQo1frvh7f0PRi
pYYXnD9knobCUr/etjv1eMvU3lIi8bz8Xmdn4KKmWr2SQKmxUU+9Mf1BWWq45PjS yeuXlNdUbGV+xyaz/gk6DTgIs5HNhOKawEO32M6vZoUlLiJ85Sl6SUPvdSamZ33S
XAFK4pHgiE3+YLK4ygIrjBFls6g3BPQA6rUZAiFzsr2D0g16rejdhosacoJcKcGd XAHkr/lYlp+ZdbIvJuMH8dOPQxWwM1GzGRMKZLy0yCs7TrM/AkzdU/26BsZByT3X
rpYHLCfu1CfgSlz3Qx3Ass5TD+xwHdsfT9SPpRQZSoxxpcxmDUcYpqdwGeO7 L5V4hzFxWiIWjUg6T6B7ID3W8rCqusGYql2Le3sNIC/6VxrHqZRPVc1FGzXP
=Fnjp =JsQQ
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 87AB00D45D37C9E9167B5A5A333448678B60E505 fp: 87AB00D45D37C9E9167B5A5A333448678B60E505
- created_at: "2025-07-20T18:28:09Z" - created_at: "2025-07-21T18:15:42Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DerEtaFuTeewSAQdAHaWsbzMdKQlM4f16MMkD06MaR9hPsvalNE1/K4d8Mygw hF4DerEtaFuTeewSAQdAQEgSJ3Q/NpXw+IJGJRAvR39zMTlXbN0qt3ghoKOTnkcw
j5vWYfwadl8XuI/GRoyZG8hnddb0Vg545yVcHk/+0+W/SfWFzwhhvDUX8H6Qr8n8 a+PCLvg3ud8vbFe52dN4vVFYqrCZcLKWJ1ehoYgH9LqA+Wh6t7YAYKr2QkHXm5ye
0lwB89rZt3ztUxEN+C/0UAlhFZVb1OWZ+xpDC2u53j3f/zxAtCUKjJA/cqlL9sLG 0lwBF+AqFoT509SjXRZSv20bM1PBbc81pJU88CaOzfrxUqNfo6pxr4W1AvgmVYFK
u037d6B3Wn0XZsmC+jK67BFZiMWs4ZD5oM03rXMLqTVMuDzjV0LO5rUFDgiq6Q== Qz3GypWGkz3zspmML+VtFAbi/aLm+UMhL7JIxYg71kidPCnF4HOS1S6sYyLEVw==
=CzYe =c0K9
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 057870A2C72CD82566A3EC983695F4FCBCAE4912 fp: 057870A2C72CD82566A3EC983695F4FCBCAE4912
- created_at: "2025-07-20T18:28:09Z" - created_at: "2025-07-21T18:15:42Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMAxjNhCKPP69fAQ/+PmNa3+9KdW8QK3Qp0xFsA5JCwFJ+ePnZqSy++0o39Cxf hQIMAxjNhCKPP69fAQ/+L7rNz2P8t00W4dy880oUR0j1Bu9UEzk1DzQCw2VTRMeU
htNykQUd1aNmHjlBTmfomzoGe4L8mIRULbVRDB39d8bqHI2EIUibFK2MPQrSvF9x InpbyXkTzsBeKlnX6sPUKu9asEO8EuaKnMzTg780HQTgeavJn7I/BgrdOce0hYWC
WLk3BLCKjBf0jja6y9DsgNHMIKOVKJKZ8+MSNiEwPr5yy3t+wRXIE7bTfRCSj2vO Gt5W7s73un3/2RXSjeugR7xaWDc8FOjiH3oLMmHNBVL22kGZ2KenfQ98M3LJdMoV
mQ8MtN6XHH1klcg2MzQ2VBgt0/TgKNYRnF18d0bTzNTPg0XMosd9vT3HIdYNVtRG ROas97fjFYvhRG5DU9qGafv3SJs2lx6SU5Rhmg+RHsJPeYFh2OyZRqyIn9VdBt+E
Bs88WxoLQX4ki9B00R1diWneW3TNkD+SG+3QdbQYbkwfKVE7+/ZY1zbmAf9bUfM1 X5g96AlTS3KrvUrafvHXur7tR3GGioqC7Wr28zHyTJlf1o7BwxvYUdk7s9z7wPUv
FAyUeUH2ZfiqDnGTTSQEyLjWXsPx8OmaeWHdvY+Nay1tQxfyvdFldjmkhnhUYhot yznieBrqu3WvdteX2qUBtOlFFtbDWVpWDgRkdA+1ZYAJonVpKuTpH8KBZrG+sCOp
epu4o0vih7y8dPAPvD2v3eflXo4I0R8kANKDkVZmB/ugayeR27Uv6+Rb6XQ27aKc OOJc1nneWk12Gay1dX33pKWC2CSqsznekzkAnQYTcrQtx/9EsA4G30trZcZMKwfn
qrYMEzWsNJ14Cz/mM2eqyPBaI5mxhttxlFuPRho+wz1XISqsmJz14VojT18dtY5q JluHD+r9zdRGNWEXP6zyT8Gu+qa+1XrUftfut8Gva9RIPQlfCJuqyT3ZJkRW42W0
3gv2dvzap9+xbs2+d8VnNvjWzocJYXy18ZLoZomNIuuKl6s0OdNEQxiC1/riWMIO NbsSDhMKSXEKyBvQhnyFZfw/mN36H5lraiX0N3v3MWC+jPjL4PLwvHg8UEAYVyeO
QjkbPt3037rtM5ZczhzgFLm1r45/nFx+T7nm42fEVLYnEP4Ln8bgvsasKHOoAocs bLyJfyAr/b2RZ+oWmrmvkV8KG9PIWHOzIgheeswKa3EuwrvkHlzCpDkSTvm74GxE
QWxUFMQ1VAyMs/IftTnxMZQe6eJmqHthH+3q/wYhIqsPy3r8gnkuqjqwoCb/XTrS J8unBed5rkKpvYdPtwb2Nez2bVd1UGbl4PpPNz6p/wyCVF/NjAZGz96+TsJ6/LjS
XAEQB91o4HxiecHP6Ks7QGI3+Z1CbEF3GWBrhCVtI0j+s+r0qsSa+6zeyaSK2Z2f XAHw/zBQr1QYDCZNOCPyf6HwZBCKYGI/uFjvMesFj3M7qAUOr0YPmw7xn20ic8v+
uRQijSuYw09UTsQHY3dsxZm1KNebkXXzVqrY1Wt9Qtf2Yr2seZiCPygvPVLB C1hvgE+3OdO8ugXdte5ckT8Wfn7bMweOVW6AZ2UMGxzWBPPq06/LvXZ/XMMx
=aDv7 =sFro
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: F38C9D4228FC6F674E322D9C3326D914EB9B8F55 fp: F38C9D4228FC6F674E322D9C3326D914EB9B8F55
- created_at: "2025-07-20T18:28:09Z" - created_at: "2025-07-21T18:15:42Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA1Hthzn+T1OoAQ//bEgJM9+WRz3K5KwV9I7fpiAb+BoXfNWh/mnwUGLv8FRP hQIMA1Hthzn+T1OoAQ/+LMO10efzBKOBSoqYM80n4JwV15nY19yRPo8MeJdo4RVU
aq72bbw1vXqBhI4jkna42eJVUm2AThL/q0QOJvGKDtud0MjJyS1tZj44kfwwC90E txY3YGH25l0hfH5Uba4vU8mltIfF6+ZfxfKRXKgqG3OKSl+C9s/eLFpVgmOXyGER
QrybaasPvZ0WOLmSQO9DW8oyoqDqM8ue8smN9HJTOfHl15QV1oXWYjH0j2l1D/AC R5BT53cOfboES5v0oWhwtp9Bya5d7TtD0SaShR6h0CKT/AAybF8IJ4QrioM03dxZ
2iqLW7KOzo+zFr3s7HxXnCgv9/BwqmafW742aKM8amRb885b4CAzFKvhrYlvQ43T 00JyT7ikmgSQCq1IrTQOvXNR4nFCZwu5npThsantJePmKdtGFvGmwZ7XIOkmS+mM
Tntgp63veu+IIW1YiqrdLld+hJpPaVHHDuCRANuQ3r8hQlzjOMC0ZeAW0uXnRuIc XEM7IQv0q7xCyw+N7YlH9E+rXeDyB3tCZS68228p4JvvNaN2zOTHpGRCbQ2Xrd8B
3fOk+uQxV/POIauSQskUXSHztD8CacVjUyySi0+ZFTtJo39ulykalVy01UCNuWVE 36qtai0osZjsyPbOqnXSSAOVATsLtlmqxn12qBXPbmcet8Mn1Xr89ezRYg8EqPwA
O1cJW6I5ItpBsUqb6KZyMVVgQa5Iv4JkrTEaOsPXC/O8wb+JxiAz06rb8j0rn+Yx K1aEjVcAKuojmTdLx+UNofJxq86QHvNV9DdbFddttgRyRcqSQj3/4oCmdBRPxR13
z623wZNi+QwvFPc1c62DXFZN9sxFY1xcildSpjh/h491FAUE+QKYEPIMf7ChyqRw eL5NSP2uj2qeun5+7AToxdGGOD7CL5EsClmKVA6qxdaO/DEcVcwypyaCZxqX69c6
uVc9A1f+tJFI9M+gzWYI0A0+Wbl5V4wMdJKzzSyZJAK4+AyJjfpwHRU33vvOk/MO d+mPNZqgyoxBT+oif6JPr+ywZVeKN5VDyncxre1zGSx/pXTTz01LzdUDZ5ww9W7y
Cz5VdrCs0WQ/x34KauuM//AranbqjG7QLGVZT0pkknSyG57NF+T9KI8aZ/i3E1La sN9LVoDncxA3ijte8JW8+JLw5/Yoc14bf3qIo2FH/Fk8o49sUIzYljP4fqwlPbWn
9LEnMf50WLf0kBX7OrGryFs4RrFNWsTfSt37X1EZCmWubGTiINc96JsMQIa00bjS H/dCrzjT4m66jN01MT/B6Y+Yen+PHW71aCLQZDVdFuDfuVX6bPAea01b9/hca+XS
XAEOFQq9PM2w/X8RyLnaE0s4m0gau9baCQxonUwq37S+XbjKreupgY1SldcyVMsU XAFQGaqLizvr6jWZfewixnL8MI90GI08fw31a3zKFgDGUginOX61+24FTR+jxYMg
RUWiwJwVMNI3UGdQ4LBoJYstTEhH2HLQFZecw0dlZfrLtGgWJAPYvRWAx8uw L61u0oB2FGCNXO6UQjGRTSckrw4Z7X8h292iso3A4lVc9ExhE1brCeFLgW3A
=iOrq =Nujv
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 5DA93D5C9D7320E1BD3522C79C78172B3551C9FD fp: 5DA93D5C9D7320E1BD3522C79C78172B3551C9FD
- created_at: "2025-07-20T18:28:09Z" - created_at: "2025-07-21T18:15:42Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA46L6MuPqfJqARAAjJP/zQeLJ1qXKrz4ck4x+8z1TJx91XQU1aXLWLZjLcAw hQIMA46L6MuPqfJqAQ//UAy0uZUyPPGm/GoAKew4uDa/xYAWpAx+rxQQiRZBmSZY
4v2G4ikG75WLfJcHaHNS56bhYKhPt4/xzmse16O8xuztz8xLVKsYuChna1J96IiU MnGQUsgiMIBsQt2gdyutzlggSZzjc5WRcaghlYzXZaKIRDakp92ajgL49snaYEnX
pk0GbfWK5N/BVgPlntFE29gwXc2XhBSucHVwe9XseuIAlu99+OSf18TVXC41tKmQ LX6qFmoMgRSbxmQPlrEfcj2yJ2bbC+GF2MZNtMMQISvsgA94KMyZ+UEZSI/ooZGF
ZuvxgLMy5gLlt8fLLmsrgU7JM6QQXD/zfdziI9acrDw4CYKgE0Yt16+/JGCO4LI+ +PbEnfibu0kgTFdmz841E0AkT8xEab/ERa/AYxE+l3Iz/+WPUNd6U4n3RXonzcaE
2yeoV/GvFTS431lsVmTxhC59DVNCVXW36o6EKQxXjcLFhuzNxCSI+hUZYJr476XS WvpvDXKqA7o3erZvULX2u1XJlZbbZM13HLwXDBCODOqG8JtDh6UvX8ZiUADtb4up
wgdHQWoKrTL8B6l4nJ4/2zR6ltFM3JZi62aNW88DvW/SmJsHXt1b1tATie4kVpLo 4QlO6ETaWtWgzx+OrF70URFEzJ8biqczC/cAuaXHZzfoLZZ+smcFwBUaRQQbdIwr
S1ns85v0A4NmXmDyxiORVbGT087AvdtoJw3TbLNNYiWdE1FakNW9KVcjVeqly9XA pR1GGosJrY7kwNrKPgKF+jucAtVo1k7PrYSHTN+FB4pDR2qLcm3PFU1BBfpViJDo
Kjr72wdyRE1vyjsuDtUnM9Apuo9V2PWtfqrsNqYxgK9WJPFEzVlvhD1CkXXXsdfh cWlivN3sS0/8/dQvf49WBOqWfdz8I9MuX6H+dAQu4X51yjUU0nVIDD9dxvDFdk/O
ncVIywwU0CYG9xOAR7DTO/pPKa+faZStU3bRlE89D+9+iUkLXqJnjx4ZPUeIMg4v KUMLJDgyfzS4bsNPBjAJs/49JsQeiTDbldM1MNDgICPGp8AbOrwudvS/l9iueoOo
oByjEAX0jOqJLsUR10tSmJ7hrmdWoKSJTVEdx6pc45jyt6CZD5EOl7qMlteCVZAg mPdQTtFwxzM21t2M+pTvkuBpB8lNfUspmfvotWdYXCKG5rWCUD+kaRHoKpg8L9us
gkkZ71uQLde5CRFrEPIJ3UdF8xDvnjJ8HgoaLCv9AewMlWiMNrGWV31rFqp7CRnS 1762pnE5Bu0ofzvBbpxNcUOO0HGMkE9Sv/Gk2E6khpfXo6m5sLXzfL7PwfjuzP7S
XAGsOtTt6y6VT5C1rKamG4IKK998ycirXQPlwC1svxP44sRS/LE9OI820jEiGUxT XAFfCp4gp0Ms3hLz+vlkwNGfMlSY11OrqANN1uwXb7FARdNBhqitd9BSufdtce9c
SYeFvLISOje6f8Qf34hP9X5MmyxQd0lqMiOt8lkGj2GDqFzKsrKeu1cpylby S1Kw9zApbVOSr2MtoNR4MKMplrJpIWE0lKYDhfCpr/wR1xXO6OraAqGgoNko
=Fivv =uqNL
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 8996B62CBD159DCADD3B6DC08BB33A8ABCF7BC4A fp: 8996B62CBD159DCADD3B6DC08BB33A8ABCF7BC4A
- created_at: "2025-07-20T18:28:09Z" - created_at: "2025-07-21T18:15:42Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA4EEKdYEzV0pAQ//WS8zjYnuGKpQ63BdGAEU55mAlGu8etvOLlj3JGL/EAjX hQIMA4EEKdYEzV0pAQ/+J3y2ilg+0a++IuFyeAS+1S4akdbOSE5K8pwcSulmrT8K
CKadwY1gIPjN/AZzDN8twadasFE/o02Cz1hLAPQIS4IYgh2L5pZZVm6D/5v0rQgJ hnZ2Y/U+IF4pjhZYbFeCiVh8BzH6VwXLqFQrpsQhq2fNs0U7M6KuZxFEcMhrRH7O
Da74NBoFKXLD7D7P/+abLTFSrTG7u3rRL8AAOsXHiMpyxn1AgvNPS/lHrdTWi/7Y ULs7ZtoVg3qQ1F6uM5YS3cW1bzHZdRZ0mYNUi46LQWwFVNisjtMKrjJBN9fr4aeR
RfvjaMqjynZs6tsOZrQjUjz1mdwZ0Pl0g4soJ/4KBN5riz+U5wubKb8g1qxEaWZ+ Cei1+bkPUMCQ/7ChQwf9MHO5pUzwXA5ttsChXPMU+HzzbcCuVZjHT6rptrPsSLPR
CiyGcF6rHfL1/7rugg+Z7QhRlW09wAqkQzpeB9h3rIqczqsPZVuw2gtBhSnjAGa2 QsR/fDOTweUiRk6+Lj5/OAjwgGRaO/yLgdS9fGrezwssVvDm08ZxFMPCBEn7Yrob
i2q8HWFwegJYMemSxtqyO4kdtMp8J/KOXQ235ge96kMfid0muFeqD4QehSqaSta4 Jwe2uMdkGOE/e6SJyfh/glg+uie42g/HYo+PaBwuLot/3E/q7TbaAAHKEIlRfZSo
gJsPiQslhlRyBUraTAzWo+1Pgx6oBpU2Z4GD3xAsKyQ6m+wVg+7OsZJYXuMt3Y6n LRsSs/FaX+2HGnNgHHNxHhvEh+FDvp/EdMcZG9vF5mIM/XYFCbUJEdwWMfgyFq6N
DkMfbjJOvGUlN1XiZM5GT3YqRFFXpmn1NZ4RMBHv61vDuq6z9EWm/+6i/tR/ugxM hOxMK7KCcnqbMJPPdypSjyOnyBD7asyhqBwavxnqJrQ+6gH8XvVtOgc6Kt04QlP9
Y+qiBYohMEIwdEpzlVZVQElCt9atKPk4YLnpele/midAKVwtBnQ+IpNEjKEtXSYe CgrWuqrEq8Ulx8w9KkKP9VGg9z6FbWdF4TYQwQ6KfVC5EMSrVHM+N2Y6DDpoXHuS
QYDRVu+OkYSiMxvnJ1ZmL4lKJVHhHtQ6Pi4xkK0eTPUaWvCI6T+t4Dj9r/OJTbLW HZKtJH3qITxsofPhdssjxlvGtJRU+t1Bsa/wponQC4hJpKQ2QpNRWxrI7Oewy8jT
APOXEQ54CnDmGqG83op1wdMuwmw8edEBowogILlUyaP8mB3cK9KJt7B/31ntlc3S ku78htjN7HFD9IrF/Dg+3kxLDIdi7/+Z8mE0eMg4RvfBBJJSJHADV+BqH/9vZ+jS
XAFQHLwHWB3PjCYiegJYQUbXIAfL/cdTwwBfmX8uMDerJ81IQSzu5hVDhIL9pE7l XAETzKYL69TUOxK4xohMkICkjVms0z/LyMgWjAuY70MC5EaNSXKNVqDGYTtsWLYS
UVWxGbGzfUdTE2U45M082DrjTmBkV3RdE0Y3JaBqPJ0oVQh6p1aM4d2aqyhk 4ZGh3YNZCC1uK+lwos+s4OhtGLEs4pRWubz8wH66MlrAKfrI4hgQv0V4bO29
=nWD2 =o5Ja
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 9DFA033E3DAEBAD7FDD71B056C7AAA54BE05F7BA fp: 9DFA033E3DAEBAD7FDD71B056C7AAA54BE05F7BA
- created_at: "2025-07-20T18:28:09Z" - created_at: "2025-07-21T18:15:42Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DQrf1tCqiJxoSAQdAr+L6oXEIIepvoeDrCt4z9snnaxL/Pmp6dpCAkxaXXmIw hF4DQrf1tCqiJxoSAQdAcZJvd8VKNf+utHb2ndF8WC713BKaMip39sdKr5MII1sw
5J6eEv5G83So6+XXJXvOaoneKu5qevc0fSbEBAhJfKBUYk/ygb5seBcGycBWQhDL U5z2I11J3lvM7hJ0ZIWdjLeZyok69Kk7kSRxbWxn26YfMtxlrR/zNkr6glj9TKoI
0lwB+3jIywPou71D15VbcMJQuWshrGPkpEf8/7aaL3kiZAQbxtuajECD6/0zk9E5 0lwB+c7VagQFT9bcMDab/+1Vh3P4gGAF/nzw/aP9K6W1gbW7Ji5ZS6RQN8kfeJxJ
/owG/AWfR/W8bHJ2S/CFHb+m+aLHWI0emOg/OMGKjLG4JrarB3tbdsPcdH+8jQ== 14qesoUtJ02a69xVGxmuMK7FgMbEpNHvAUkTKIVEjb7t3MQv7nCHa4bCVyYspw==
=K0rr =Wjzk
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: B71138A6A8964A3C3B8899857B4F70C356765BAB fp: B71138A6A8964A3C3B8899857B4F70C356765BAB
- created_at: "2025-07-20T18:28:09Z" - created_at: "2025-07-21T18:15:42Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DzAGzViGx4qcSAQdAkzDgkAALby9UfWjtDDCJEgMH/tcIAHWeRqOx7CyojjMw hF4DzAGzViGx4qcSAQdALleBKgLCOu4Y6BGE6Z8URBAHPwl4AUdOLxBne4zgtwUw
0XdXIl6Q6x82GOnYKtJuFkvpGc+fSoREGiAVCOzaXi9J3vKUV410nSQEpyXuiC4c JWcx6dlmEa1CVsV7U8jtxGbqI6oxDeqdBRRnSkG/VgHunx83p4d0XIIzt0UZCOdl
0lYBDC0rwF3mDKX7Pd7LZCH5ImaJiUB26Q6M2k6bfVhSyTygADlqcrvev6buc7sC 0lYBR0PWpdHc/73Iuqjb6tNl4f/uMEmPWMY2gsauF+FMPjQoenPLPi3uvqbVrqVu
1cfZdBGkTLJeqADe5p3+wJvHiUvK/VhlwV+hXt8PBkywDpSyLgaGWg== Y6FGIg7Y3fTjE0oW0dZ1XXurDgpZNw1W/R1k5lPi+ChYAbjWChcQkg==
=x/XZ =LGE9
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: D2E9C0807BF681F5E164DAFC5EE1B61CD90954CD fp: D2E9C0807BF681F5E164DAFC5EE1B61CD90954CD
- created_at: "2025-07-20T18:28:09Z" - created_at: "2025-07-21T18:15:42Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA2pVdGTIrZI+ARAAuQj5yvmmxjrUXFquA58u8LqIIn9lS8fW04vvO7s66Kt3 hQIMA2pVdGTIrZI+ARAAspXdhAYalua5flBfBxEXq6zlXxQolT1+91bWRoW7mA4d
RhwiM1K+uTpPD0IeYO4t7xUpfQwxLKGybVBvOnjisWyTWZYWRPvpqpR8mrt/od0R RV0GyJuGmlBr84fwys5qoyYMZZfkSioW+IluK/Z2+07flygwlHntpRBQeXVMhT05
3GcB/hval/O2HtL/CwtOwMu4RcfNKVMozLpZjWYZ5N61UgHgnSPxqAbizh2MDPJ9 uZMQsmyT1Q73XWsYAb0BKXkrMz/xUvhnHbyytE6SkBADC18xmcX3O2o7dbVFRFpz
UCM3PesL54kwBDxGUgoCOD+EnIlUOIFFrys6GLWHLqQhNsNgOeXtYQAiFhMuCzqC 1Yz//wdt5ErF3ms1fdmLZa2heLFudBrNxvaexgHnnk/gtJ9nH6kTb/c5hn6G53Xx
PVeKqOJrRD5q/mgRnOnMhXC6E5xgOOHB1war4rDaEF6rx0YujgiMt/c4NTqFPM36 ez1Vy72+qi0lFJswId7jgSGyf6bXlHHsEeAp9/H1LsUqoscnk5hmnrOCLzVNSPmK
aMF1Kw/XawEQthhXdCcxYtQefcAs1lFhAhAo93tGcqnwQc6MrfIgKJV8pdE8FBAk V/qjMAxGuN8lQVf7MCJ4zbGLFZe2kTaFLBaRqIz8YSAdIuGTrM54Tu8193K73se6
xGhzQlwjQsilJ/YoXvNDm6Iy0UH1WVVcVRSKE+ogC9dw1JyG3tu4kfp7GioQvhkD fBuhL5gQELKWLRpUNe96HF/NeEnswCprNwyr9Yu58/EjKDyMo8AYhKo6Ia7QTofQ
tGEg/9hNMcWXa7Gbyr3kCpmTHuaJGaC8R4dy0rzL/SXDMfWm3zbFZVZoZieOuzeX 67vtSOpHVQqbYYV+CRVhpQqxYu7XiC2bjtBoMmMz7vXUAFnUe+EScPrFLlAsaDD6
gl1F6bUnc4gUnlOa2XPYYrIVWfQMdAJYbj6ywvl0lMLxeOtStcYVD1EdRhiGEWrJ 9S01IEZcqe8D98X6e6W+0D0jTgd7JkvRZGOD1PWm+S1hyCgZ3AkTiiv70forhsGv
9YoEjDAMg99WHfEvNSe+90CnBPY/UNig97lcdGZzmKAYIMh5OutJsS5t+Lx318Yn YPEqNyOvetiWFYxbgylzxeact5kyUfK4ckYfeNYK66NS/QwOfgfBvafHhLSSDmct
C8dDvk7QbDyG0lgaZHAAeY1SPbVW4eUdRxZIOrGPsiRUpzYxlExLVdy8vtXfFHnS H4hm2ct1R8bMbMIM23oIkeuxudRi2J9Uf2/+/hT2kn3zeGYYVGBfqEnUfBoaZafS
XAEc6y4UA3fhOYN7i6MZNVye186v9gZZyGjeZX1nLJN130A1TwMOg/tIeuFBmxpO XAFGyI1xu0sgZNP6M3muvk1/NqxVxfRB9uVh1bfDcCDM+rlolFhdWPN4S1MmfiEV
0C4SX0xckcZQuWCR51Xjeu4hDCeMVQJuMJaypjhVoyQPiw4yaWWbELuSC5/F 9E2Pi1mF2M0ii5rM1kXnzEKPMgXcvhakNhn/J1MxDTlDzWIkMuWY2WQNTT57
=ERpn =WSNg
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 878FEA3CB6A6F6E7CD80ECBE28506E3585F9F533 fp: 878FEA3CB6A6F6E7CD80ECBE28506E3585F9F533
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.9.4 version: 3.10.2

View file

@ -1,3 +1,10 @@
ansible_pull__repo_url: https://git.hamburg.ccc.de/CCCHH/ansible-infra.git
ansible_pull__inventory: inventories/chaosknoten
ansible_pull__playbook: playbooks/maintenance.yaml
ansible_pull__timer_on_calendar: "*-*-* 04:00:00 Europe/Berlin"
ansible_pull__timer_randomized_delay_sec: 30min
ansible_pull__checkout: ansible_pull
netbox__version: "v4.1.7" netbox__version: "v4.1.7"
netbox__config: "{{ lookup('ansible.builtin.template', 'resources/chaosknoten/netbox/netbox/configuration.py.j2') }}" netbox__config: "{{ lookup('ansible.builtin.template', 'resources/chaosknoten/netbox/netbox/configuration.py.j2') }}"
netbox__custom_pipeline_oidc_group_and_role_mapping: true netbox__custom_pipeline_oidc_group_and_role_mapping: true

View file

@ -180,3 +180,6 @@ alloy_hosts:
hosts: hosts:
grafana: grafana:
ntfy: ntfy:
ansible_pull_hosts:
hosts:
netbox:

View file

@ -78,5 +78,10 @@
ansible.builtin.include_role: ansible.builtin.include_role:
name: grafana.grafana.alloy name: grafana.grafana.alloy
- name: Ensure ansible_pull deployment on ansible_pull_hosts
hosts: ansible_pull_hosts
roles:
- ansible_pull
- name: Run ensure_eh22_styleguide_dir Playbook - name: Run ensure_eh22_styleguide_dir Playbook
ansible.builtin.import_playbook: ensure_eh22_styleguide_dir.yaml ansible.builtin.import_playbook: ensure_eh22_styleguide_dir.yaml

View file

@ -0,0 +1,23 @@
# `ansible_pull` role
A role for setting up automatic `ansible_pull` runs.
## Supported Distributions
Should work on Debian-based distributions.
## Required Arguments
- `ansible_pull__age_private_key`: The age private key to use to decrypt SOPS secrets with.
- `ansible_pull__repo_url`: The URL of the repo to run the playbook from.
- `ansible_pull__inventory`: The inventory to use.
- `ansible_pull__playbook`: The playbook to run.
- `ansible_pull__timer_on_calendar`: When to run the playbook. This is the argument to a systemd timers OnCalendar. See the systemd.time man page for reference.
## Optional Arguments
- `ansible_pull__user`: The user to run `ansible_pull` as. Defaults to `ansible_user`.
- `ansible_pull__checkout`: The branch/tag/commit to check out to run the playbook from. Defaults to `main`.
- `ansible_pull__timer_randomized_delay_sec`: The timer will be randomly delayed by a value between 0 and this. Useful to not have all timers fire at the same time, even if `ansible_pull__timer_on_calendar` is the same. Time value in seconds. Defaults to 0.
## Links & Resources

View file

@ -0,0 +1,3 @@
ansible_pull__user: "{{ ansible_user }}"
ansible_pull__checkout: "main"
ansible_pull__timer_randomized_delay_sec: "0"

View file

@ -0,0 +1,4 @@
- name: systemd daemon reload
ansible.builtin.systemd_service:
daemon_reload: true
become: true

View file

@ -0,0 +1,27 @@
argument_specs:
main:
options:
ansible_pull__age_private_key:
type: str
required: true
ansible_pull__repo_url:
type: str
required: true
ansible_pull__inventory:
type: str
required: true
ansible_pull__playbook:
type: str
required: true
ansible_pull__timer_on_calendar:
type: str
required: true
ansible_pull__user:
type: str
required: false
ansible_pull__checkout:
type: str
required: false
ansible_pull__timer_randomized_delay_sec:
type: str
required: false

View file

@ -0,0 +1,63 @@
- name: ensure dependencies are installed
ansible.builtin.apt:
name: virtualenv
state: present
become: true
# https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-and-upgrading-ansible-with-pip
# https://www.redhat.com/en/blog/python-venv-ansible
- name: ensure Ansible installation exists
ansible.builtin.pip:
name:
- ansible
- jmespath
state: present
virtualenv: /usr/local/lib/ansible_pull_venv
become: true
- name: ensure secrets directory exists
ansible.builtin.file:
path: /etc/ansible_pull_secrets
state: directory
mode: "0750"
owner: root
group: "{{ ansible_pull__user }}"
become: true
- name: ensure age private key is deployed
ansible.builtin.copy:
content: "{{ ansible_pull__age_private_key }}"
dest: /etc/ansible_pull_secrets/age_private_key
mode: "0640"
owner: root
group: "{{ ansible_pull__user }}"
become: true
- name: ensure systemd service exists
ansible.builtin.template:
src: ansible-pull.service.j2
dest: /etc/systemd/system/ansible-pull.service
owner: root
group: root
mode: "0644"
become: true
notify:
- systemd daemon reload
- name: ensure systemd timer exists
ansible.builtin.template:
src: ansible-pull.timer.j2
dest: /etc/systemd/system/ansible-pull.timer
owner: root
group: root
mode: "0644"
become: true
notify:
- systemd daemon reload
- name: ensure systemd timer is started and enabled
ansible.builtin.systemd_service:
name: ansible-pull.timer
state: started
enabled: true
become: true

View file

@ -0,0 +1,16 @@
[Unit]
Description=ansible-pull for configuration and maintenance
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
Environment="SOPS_AGE_KEY_FILE=/etc/ansible_pull_secrets/age_private_key"
ExecStart=/usr/local/lib/ansible_pull_venv/bin/ansible-pull \
--directory /home/chaos/ansible_pull_checkout \
--clean \
--url "{{ ansible_pull__repo_url }}" \
--checkout "{{ ansible_pull__checkout }}" \
--inventory "{{ ansible_pull__inventory }}" \
"{{ ansible_pull__playbook }}"
User={{ ansible_pull__user }}

View file

@ -0,0 +1,9 @@
[Unit]
Description=ansible-pull for configuration and maintenance on a timer
[Timer]
OnCalendar={{ ansible_pull__timer_on_calendar }}
RandomizedDelaySec={{ ansible_pull__timer_randomized_delay_sec }}
[Install]
WantedBy=timers.target