From 608f05e8c6484ad351bd28476200ea2e137e4e14 Mon Sep 17 00:00:00 2001 From: June Date: Sat, 14 Jun 2025 20:54:42 +0200 Subject: [PATCH] wip: ansible pull --- .sops.yaml | 3 + .../chaosknoten/host_vars/netbox.sops.yaml | 342 +++++++++--------- roles/ansible_pull/README.md | 17 + roles/ansible_pull/defaults/main.yaml | 1 + roles/ansible_pull/meta/argument_specs.yaml | 9 + roles/ansible_pull/tasks/main.yaml | 34 ++ 6 files changed, 239 insertions(+), 167 deletions(-) create mode 100644 roles/ansible_pull/README.md create mode 100644 roles/ansible_pull/defaults/main.yaml create mode 100644 roles/ansible_pull/meta/argument_specs.yaml create mode 100644 roles/ansible_pull/tasks/main.yaml diff --git a/.sops.yaml b/.sops.yaml index d77d8fd..20dbe44 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -11,6 +11,7 @@ keys: - &admin_gpg_c6ristian B71138A6A8964A3C3B8899857B4F70C356765BAB - &admin_gpg_lilly D2E9C0807BF681F5E164DAFC5EE1B61CD90954CD - &admin_gpg_langoor 878FEA3CB6A6F6E7CD80ECBE28506E3585F9F533 + - &host_netbox_ansible_pull_age_key age1ss82zwqkj438re78355p886r89csqrrfmkfp8lrrf8v23nza492qza4ey3 creation_rules: - path_regex: inventories/chaosknoten/host_vars/cloud.* key_groups: @@ -117,6 +118,8 @@ creation_rules: - *admin_gpg_c6ristian - *admin_gpg_lilly - *admin_gpg_langoor + age: + - *host_netbox_ansible_pull_age_key - path_regex: inventories/chaosknoten/host_vars/tickets.* key_groups: - pgp: diff --git a/inventories/chaosknoten/host_vars/netbox.sops.yaml b/inventories/chaosknoten/host_vars/netbox.sops.yaml index 05e5395..d3c5693 100644 --- a/inventories/chaosknoten/host_vars/netbox.sops.yaml +++ b/inventories/chaosknoten/host_vars/netbox.sops.yaml @@ -1,237 +1,245 @@ 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_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:YBBIMoRiYfBEnZOnu9gWJgKjzixJwNqM4KfymvdniI1pBoaAZnQH2mkYgKgvbYVo3llxOF2G6n17buaG0xD1TSEqWcYF92R5ZYY=,iv:3DImVFWQtVeeW9ZwftOURQu3m86DR6Y71aBOw66Zx8o=,tag:Gf/CAHDi+5eAYazRFLHQbA==,type:str] sops: kms: [] gcp_kms: [] azure_kv: [] hc_vault: [] - age: [] - lastmodified: "2025-05-04T13:54:30Z" - mac: ENC[AES256_GCM,data:/+JlBnsQuJrx3+CXlH/0dtst8PdBw7cTnUpBavcQRXFjd5PsZ54kUCosFu7Y2ngL9xh6WOWKSJCKpHFb8TCrBhslJz+8SQiH97py9m59diMwG5m/RF3I3YHBIoonSZvl8ocDTbz5myycS41fad3CMs5XtGt/vEcceSFhgqjZs9A=,iv:yL8aRIn22zmTIQ53/e71t6o2z7q1fyvmgqvpz4va39M=,tag:DH1oCBbdOgK2NdanzMSn9w==,type:str] + age: + - recipient: age1ss82zwqkj438re78355p886r89csqrrfmkfp8lrrf8v23nza492qza4ey3 + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2S2x0ZjhVT3NWRUlhcFBj + ZlhCNHZ2OEw0M05ZZlR4REI5Nko4QTVwc0gwClJqdXk2YjA2QWlsUXBmclVFUVFu + dmFpMFVXTkFuTDl0NUNJWmJpSUJyR28KLS0tIE1EWTBhZlVvK3ZyUjROR3E0cFZN + dUNXaHYvaWkxaG5mODhZRTRlQzNUbXcK4wCD9p7rz+lH+e4PLSGtHOUfJ4cAV4mP + YnJsQmU9gprlviesweVG6l0A9uat/VRoIx1aeFLGX9qVZdSP8zMOSg== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2025-06-14T17:44:05Z" + mac: ENC[AES256_GCM,data:L7+GHLqn1OgAqr7wTuhhwWS9vuDGNGjuo0yxY5BB4XSoDeja7aNe18KA8K9LC5/o8WtiRcr15uQUEtKT8dGrmZSmXRAJ+FC34B1E6OtjNzzuibLHFccq6SL3kxnnPQwgtvNLne+caSGOSYLIZOUej8VnbRTTvwTtPjUjH0fAjUQ=,iv:tCX6HEuXISrSo3IK3fdrPFAgCgXquBToKV4/kiK6MNE=,tag:DsKn+niR70XxnenBF8YfgA==,type:str] pgp: - - created_at: "2025-05-04T13:51:50Z" + - created_at: "2025-06-14T18:54:13Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMAxK/JaB2/SdtAQ//bpe59yKZIbuu3vrmQQb8fE1KMD4sGbPL9SVZbZY9VXMg - ANWwUHDmf1m6IWiC03czF4oecnc2qGjaQSQqGER3m/zYk14KqofrYIVxS+uJvxGS - tMMCwSCtOdbOzKGCY9gxS/QwBoSYc1OO6iF7i/n9A0Ql2mXG7naGu68kw20WnKke - RMWSRzgF4TIveGYmQizKnAENLV8P2vOQsXvdwqpfWVTRBT/K48t3SuAVfsQYIc2g - TvUhlA124o+0t6lBjEfDQihWiN7YiGumDtZZX8XUili1xcdsl4OWrOqDRRzxzirC - ESJeCw9B3CRM2JfqCrDEYuLSJPpHJSzzyqor9T6BfeisC+xm0dhFIO90gGDUm8U3 - 415350GAUy34Qk9WNPpelxZXx/fh2JB9iW+rYLOy1iQgE1i9EsYdEZXbhpbGjZ+l - 7W0qTm9kNFboy27NmT9EKPntWkJTQRRbeAqi5oHABUy5dZlUmW71vL2P1ent6XzA - 8tOI6VhfMtZ1TwAb0Xg/14qlBtOdWTdvH4lVw+YihTMtPfnoLa1zQ5apgW6oKUxo - QAhkcQHpu5HZsjiglQP9F6MylS9ggw7Na2GfR+3FIe5dUjHQvGHqkaBA4nrPkx3i - okWBFWLR4RVSSpwtIAvURxi6fcgRuonyoVKZzZ6m9WHTioHIB4Vvl0R/fU78hZnU - ZgEJAhBo1PHJr9dSYqgCI8qeq4sITZmFLieBhZaKoM5lPqb2AvLcC8M1AlFiK69d - Vr0AeQiWaYwxtMEBuQnJtO0OHv0XlgtA30EYP2cJVpzxFppxn+6LWq4uMGJNrk/Q - /31kOXsdng== - =899N + hQIMAxK/JaB2/SdtARAAkrh+5OTCiXBtXfW4NOHYNIb19W/uri1ukWcT0P4JIADm + YUBWggNnLWnq23/LEXNpuS+dc4ll9Oc/L55jL4iA7OG4YefjlAurWgdTXSK0xecP + Loh3mxFO66SozE22/K7BuXwe8uZuU8Mn5s8H4OJTu/raDFXloOvr1bj8IyOgutNY + oKAxd++RhHx10FH17LgbNJ+03REGujJmv/TxtGonup5hhFQqjca0lSSxic+y+6IP + 5RF8D+xh+W6SlmYkSpL8sr1X1x/Rm0olxgTk0fjiXWtVMql7gwp/7KcxanWYq1pL + Q+le9RA0ZWJleyTC9J5vg8529YvK//OVNGm8D1yaFfuUL04U7AgNcJFzqOjpwIr5 + PkX4rjTfEFIR47tbsKWJZdQ/wJvsd+J8p1mvqvCvSvIJ5La9IKRgNPMOJJv36+1R + mG4KFBWMTJYGN4gbgIn+uu1dBS9Q0qDXtX2WtcxVol7mhB+wL5TaM4uZNRQ9OKeI + XiANIBhButonCRA/FF2VTIIADpRWpxVs9PIlCxU68wMWoHHYK20rGWjV/g1UUW2e + +ev3KbK+beW2Td9nSvEncvHQK0Cfh/ysKh5bCYIML8GR6VZM22aJ8X0xJjLLdsoS + 47E/TH6OE0VQyKXy0lYybbfZSsW/DTn+jqF4nldPtWEP2kRUzulb+bWw8q+14FzS + XAHIetZMyzCc2q+f/Kavw8Ke0I2ROAazrxHtOYdHbLTqICzB4HHEiGODWOYonACp + Hp0ovoHVWwcDGdbCiSrdKhYxaAJRV1Co5hUxvB42alGs6ePlWOyEC6zGnhDd + =Imri -----END PGP MESSAGE----- fp: EF643F59E008414882232C78FFA8331EEB7D6B70 - - created_at: "2025-05-04T13:51:50Z" + - created_at: "2025-06-14T18:54:13Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMA6EyPtWBEI+2ARAAs55/kGd5sN9inu1n61yHG+ivPn5rsDhRV+chHlAjBnQM - EWdql7OlhDxMs2+wRLpQYR/d3LlGxpyocBYGptAmIXD7mas8T9BI6KynZ3cMCMWN - 9YNg1gkPNnmpbFUWHkv2l3xowXWfeKp83Nsod3F7FChwv4P3dIagbbW15OK6mCe/ - XJb2n8AZF7REZeGYr0j6ZNMYdfxhvJ3WJAiLn40lfuLbQAOQ6tgB/MZyQdae+OJz - rE2eJhWb2G37h+H/N0vMuXLMpbqi4cw2WQz6078+eV7Z1CX1qZuRlcryKenJeoFQ - LZ5J+r7uy8RtHOre7kzDtRF21hey2VMQCjOngamgUl7hZCb1MDiazaW3OItVBPp7 - wAiSBpoliyRNdnaAXjZa/Pt+wdy8ytJv2RouGQm0NoC3a7HcN1pYhxJJZH6hrNhJ - PIijyBEoREYO/9DUhKpHNxcD7FNw9eRB8HB/F/d3xTQw2vtgcG6sj6AxWaVyyZJo - 6OerhlKk6T4QFEPdjhpHXhYHH6gw5wKtoCmlX4E4zm5xx4Uerdn3VG65nSDOWlSQ - PPziZHn4zTG1jbx5FXwDGKtGskk82mMKF3+rJxWfmnnHA+O6wg327g8rWl5+F4sk - o+uEaMp/ix7Aw1lDzrx2io6MsMHpE9pCc05MZht4UGNHlhMW8G8UgRtCF9yurLTS - XAFwOkdtDAxpFCh5WRraCc/loHYXFzbOBdZgZYMfbpHyOYnVFiOkMcoBUTIdrVdz - duZFgkk/tq7iws3FzCHppSL97LhdQQYfqr8J9lMUhIm2TKilful/O1yqJ60r - =Zzwx + hQIMA6EyPtWBEI+2AQ//dWaagrzxwN1a+Xi8rKrFxmtqCQBKXTa8uq+iok3uolNT + jctA9OmeF07pQGr/EHj+Z7psjNQCD0x5bD5JQmHhwfYq41Cur7j22QVC5t/n8WBN + s9nEFxZLc8r6NTWrT6VkdI+nudMCmIeRz/hcWOTc4HL5Xw6FSSSv/SHQy29P5V8t + /nKEe2Qpcz09R0g5080yE+zMR1pcwz2ITq2s5n8JaalmhdKvKFemTK3mbaX53hnd + 5zcIOsmlfSE98lD1kydBCqAPhwhxn/BWs1P/92/WuC5/Tn4H5e4slOg3JX2z4Bbz + EwewhKNw2DExO3F9bxcAP5Maq3rnttdp5yA9r4BUtwiD8M7CFFku9AV0C6VVa2qy + WbIzHC1zb1SlMKrMFVgHBLLuv30D0noL513IkEfoyzQQWMAo61yKqvGvqdnL5oln + xxSc34pcqd5i7GDeDw/S+TOJ28cTw4oQFoaqB69MLMOWR+gcHJkbGAQpg2MU+xuF + jDQZ2JCbw3YvCNc1i4QYE12dnGM6InCaMGPCQ6fImOdZh3KCElfR8ZZza66lvM1V + g7uuVid2L4YYdfZzI6fmw3jWBr+ht/hW7NEmsyg79rHX4QUPaPr7soLjPcVNoDw/ + 71s+4Ei2S6zVu5BKPf4EaKBB+8YRGQvfDSKyDUD05u2LbADfqi2ZSd9qZX7cxAbS + XAEfG1LDgHwVUADvr4ikt9FrddtZmHR/H1+5pVC72XtNoKOhEiVkBgwel97VUT8Z + tizpTPmSHN3XZBKmRwMbEN1lMK7Q/tO6KJLCVqJ2EOe1wpEgNlMQTBZb7EDh + =eYcI -----END PGP MESSAGE----- fp: F155144FC925A1BEA1F8A2C59A2A4CD59BFDC5EC - - created_at: "2025-05-04T13:51:50Z" + - created_at: "2025-06-14T18:54:13Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMAz5uSgHG2iMJAQ/+KRJ2tL+RTjzTThefMzFUwD2hPyEO5Z5QmaUqrO3cd0Pb - mnVs+Rf7RMX86kgXKQSTU/Wz/BXPgrDQhQvcVfVmaKU6veeMTLd+jZBTa/XMLiVm - azxjW3ZlKqGrRGAd9NxJfvgYIkNuBaXcAwkVNZ8P3byjAYM7VOfela8IBfnO4mH/ - 0rIo+1kG+nzAYqWH4yh03TCwntzkt+lVQj+JEXa/yygfczG4+HWpKmpjS1pnGY8r - zVa0tyrJ5w6KxuOW7bc73AOze7g9KPS8HmRrhFya1pb1BuQnsxUcXZXD8+9jK+7s - R9NIELFzZj0PY+T5cfLX3EJrIYfMOzug5XF11MfmpzCafXd5OgBmfm/xAPbYTK/W - YPOEdgVu3Z8f2APtRwJrmqg4f0HLnHypaIodOkMquDLhMaP1WxhGcHmXZ4r5/CYt - qU2IcKcw09txzdeCqazj2npEvR5BX5B2xS+MEuicR/R0zzPCX+Brf4fuwMoBPkQG - lRoaj9nhY88UuFb352TxXKck31eI8kPeX6HNZnfRwSIn1JwdmKihWR+IEcsJg4EX - fNlggDjPP9M8u/UIUyOWtQhfuCBqnM45M4n+4yVY+1RmhlfyaXtK3wvWtRLAR2/6 - PvaHtV4a6gybjHjwVkhoRZfUFVzHgGeEYq58uLCzgTG5QHqiETrfWtlbC7qYgsDS - XAHpOOMNxbpxoO6EjPwHEhZvQ1lQa/Tjse00pOpnosP8isgeHz9ut6ljmDPyUpIK - 415qhkIxX1wUIBXfmtOl27Y6GQg/1tIKzE0x1UhTG7X9l/nPnjSPIwFDLC9r - =c/cC + hQIMAz5uSgHG2iMJAQ//RTzs0eGjGo5S5/XsLevaD19UprUASuB4JBcuzIWztSng + ALeGpoDOqiAJkG44qNQKLcyDFrCqosntVLjRLlOhkuzTgB8dnzhI/levPCfZOIX1 + NhR/iYlkXhMBIulAXAhO2A+RKYAJ0pwe0jLR7cddufsAzhPlaCV0E9uLkE5m2y8c + qyxIOFNj5btjCuoAyqH1tAlPLMbspMJE9TSMMI+zYKEz4n7ENfiOoinBuTUMQzN3 + lKcNcf/V8f8yGeUVMcB4Ve2C5AUphhKSdJAYzvdORHqk/cnNBY0Tc+7lJAZHkiiS + t4CACCTKgi8xAnfBNX9/QW6mTU5g9dirKGRo3ikC0D0ds3AKxFEols8lnjJ/Rkdz + gkn6js1QrytxfyT9nQTBsfTEa8F9FMAB4ztdpUQ31p2qMBnryhSeAE0CZ07w9cmE + WUbGfkuXcspHFXXN8EUh2HAtT7aP/QzgJ9PITqN7ZTh9m5OdYSzFmpyzVyWysCbA + 3FHZEld56i2k62pCWG5hXjCj7ID69Nnk/+Yo3hf5ClM5o6oEExyhZDbzHyLDr5oT + /aX3F0zyRprmoNTddSsfNqJzVYV88Hy5rfBZBOjHTa51r7bH0z+G6ECga34iC7pP + +BHo4ZqLa4JuQ9PmR+vP9RpWuO63zRxKInC1K2EZKbBcNrEcs21Pqi6OtKDGzz3S + XAHsF5LhGnt0Jp5sqe4AxZ8Pv9XH0iW1N5ehBjYlbkWEFDRAXSIX/t+A+rWL7sHy + JdgePlviA6o09/QMKqzp1gM/egL5WCV3KpEPi38eu/iwhrffDNaFHFHERp50 + =ozg5 -----END PGP MESSAGE----- fp: 18DFCE01456DAB52EA38A6584EDC64F35FA1D6A5 - - created_at: "2025-05-04T13:51:50Z" + - created_at: "2025-06-14T18:54:13Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMAw5vwmoEJHQ1AQ/+ObNalgUdCT3UOdYADVxNPjI7H7pCBk4QfP/Ui4/uocxi - FbTleBj0wOJRhiTKUD73kdkD52WgpurVh5L/Zx6esnt3RMK7KO8BJ2fqPhC49QLD - iohIPybxF8+aX6ZMCmmCbImqH6vNU+Q1eQzd95UM+1w5hepieJhAgO6IHqIAWU9w - BdVQv0K5DrEuk4HApwaegxPr4NTu2UEI+2hBORHsOfmdIQap6ls57O1Ia1invUTp - Qm+19HfkTafccbso688b11zFZ9NAsOcm19B5a4m9bySLdvgnVC0CTCNOAwVG0Y6q - O8SxdxZt6KHaIFHK/5g/tlWxuQ4zDm/5TFE0+T3Ith3Pf2ITkqKLZFcTjM97yCNP - 3vdlVzmQjChx3QoA8nxZVCFoL+7kgSPvGxTIUmNlwrFgUD6+yZXfkzBiQ2ME4Qar - 0Fy+LIOfWblTWjHmYPmar9QWn1T9LTL66LZt9/z8R03qjebTqrf8/ScyhQXBb3gZ - hSLAZHOtvSYyMZwyfib0rDUFiSnRtQVZZ9eSq2UY9Pi/sXwSfbmbNA0AjchR8kmx - 2Q8WAjyGTDk7ESyawEgmxc0HxIeL0u2KguPmTp8wLO8dNEvi1EDwoup3fqCuA11J - p0wWTgL4chjFzJ49FpQ7Q2a7MHK/NaMI0U8nWuI44Rlc45iJhp13wMM1i5uj/dHS - XAF1Xqyf7KQYvni6eUm7kUUC4XnG1peMhBe3TiHRw4TqqOxnGIiT7/yx0eaJTMQv - CyR8H04cWr5rf0QApm3u/k/QxxiZ0I4uydgLAtDw8pgUMzVjZS98axdxM9Zh - =p2PY + hQIMAw5vwmoEJHQ1AQ//RMSusGM9m2PHzy1wV+tH6BZlH03fYQqlThVQyLy6MnI6 + MKBnz7Pv6yu6Flgv52Ytr5/XdglAW55WppO/O+DQGEMj9R5zctGDttmd2tu1Y96i + 8TvomsTFE0o2yYgqsWoTeIXJzJ9QkY/DrkYiZHSC3nTMakyuGb4uah+i7c8UN6TP + P9+f1xGUgH7AYa19fUdAMHHUQQZXHdukkkMCii66Qnk+XkWQtctVrztinRTNqgd0 + nWEACYlyT4q76VueIQN/o+U1KIdGTptiAEAFIz8rUyYTOHgrSHkhn+hlneIZzMJQ + 0CeEDG7t2WvQY6RJw/0uhJR8Kiz88Bq8Y/9EiLkFN5IbG2wmjUcpumrO+PRSiE7D + Z1HcLrMRmaFoSblLxzbyf3t23uBdoVIDSukE572tsuhImsT7nDIwu3B4lZiuaxJC + ON24YMnsmcSBXo5tr2D4mVkp79IMoT0QZfunF6A6tCgOHQlKUdI0f2F+AU2QefmU + 67mGkiUj+BRRBfSJykB4Pw07v41MMmPeLz03/K5y9sT3tbjjhRykHC1MJqzXNX84 + KBC4AzLZnXXre6T/ws0vRhEet4CjthuYY4zMdXmsjwkYaIEUdVXHkqcO3jx5Klre + AQGSoCQhCHVSx6Cjul3Et939RKCXuzAdlnbO7qDZKfYuiS564dEzgiZNEJmIlcbS + XAGQNkiiB/BNtTWIMVnLjFHL/XutM86ppqYrl0SbX1Xdwn94z3Z2I+fp3xdVqmTZ + zaQYLWqCiglUbYRxeWE3R4ewg1zcnd8NpZEfCf1mywCSqEpsciwxuY1WEbM4 + =9lcv -----END PGP MESSAGE----- fp: 87AB00D45D37C9E9167B5A5A333448678B60E505 - - created_at: "2025-05-04T13:51:50Z" + - created_at: "2025-06-14T18:54:13Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMA4HMJd/cQYrVAQ//S4UuEzAJ1f4c/qGGNph73wRpXk/j8Az2tqIDhE85MFho - 5GZB8IYaF1Hvt1N23WzEysvZjsrF1pWG0Y8aX5YFP1TxNx/JVaBndleYE4CzQV/W - 577HIaGL6Z8VePGQ7TQQ0b2wvH9E6ZepSyynLWLYtXeUSbmpzhOf31eRgGKL+1gz - oQPHpj4INOTKOvXjwxZswkP6mpFTaZ+TkvXNjKQQnhbrXHr3q/QN0guQ/wGb1nqD - 29zVBbKHviY/WosLLr72bhymNMJVy2/+l0SnBN1UJbUm/hEIfct6GBvGcgu7waD5 - uF5fRQOjmRXAlM9/uFk/D7hgl+0cSapKqugyVkMRJVdjGRxYDq5O42AlI9260jTB - yd++YbiPV8xNwXhrqfEntKNXsQvINLbgOLiKAC7aSjD3lyNLxbt765wP/xdArsKH - nYsBiPvdiKLS814thY6MZlsI3TIwZzeVNouXsK5BXWhcE79be3lhlTesu36/uH6X - CAy3Gjy2ARX98WDp5AHsaDk4Fx9+b3DETpBLmYsmiPy0jiccMR2Wr0lrsYSQVamh - cpfyS+iKiHvbmXAzTTNg1IGrEtMyAH0lS99TJrvvB6qw/N4snr8v+avhGU+RJlTX - PhA6dC9HGdnfv/EbiIU/Nk0kmPIXiwl76v3MaqbxG82Tz8kVAV9+bBWUoRVJFc7S - XAHOetFJslv5kJzbmkUyjzGMyPMhXKjzEFVUmIEe5eJzsC+olavMYmGbXhZO+XJG - vRBn6oN+VZdcynLTTfiJjaT/zu12D3CqkIrtioMnF1rxLY/ngoDyC4C+K2hy - =RIa3 + hQIMA4HMJd/cQYrVARAAgIYvNmWUroOUGMulXG4Av4yxhT0LeAQpxC3Ba+wviZNn + UDnTmXZEy2BZANJU8UkR0yo+EQGaQBwv0fp+R8K1x6M7LiWyF7i/TSkxCVGJFGOO + NOoOBPDRdrNvBoaSPhESg4UPisuu7h62eUQkGVkI3lOUQ38osXMpTrhbA2oSHvRk + 6TKZMXYIEKp+8sNjPArvnHe6GRu2LFhPwp0BajCMd5/hNUOIBb8i7fEfpoUEs416 + lU/5SWM+TlChdFHNuPoVuANX2/wxAPMy3NFhMlChTEd+BtCOlsmB/Q8qSCL9jCdl + mVM1qGPrRdZH05ROcvyPxegWgBWhNAD4fO43K1Dt/HVjTiQjhRxPYlH+Nd86LZH+ + BPcPL+vNRpL5D04CyI47QANfVKOsQhoDtD3/GCuPgVDbG456eO2BfRi+IXDqGcDq + qJvoGtxv54DA8KlRhXMzTvcK1fOjJ1bStWOq7uIit38+dgKTRGddEe4OFpMMFX8M + 6pJl3MEuxWawotLXn9J7ntO32ZhM0QG6HAYdISjBSr3eTTE3CBjG1RWN1dYoG45N + ThrUUdR0SH85Ywp16PcWy07WizGogukn1HsU/KAVBHJQEuYQrb3oWhUiK4ivTVkO + 41Vril83EOcptEIe2ore7sCdoY9rnNa3F0ue7Dqw6uXW5Luu3mfN/a2c2Yqvd2zS + XAG2Rc2blR6Bro55K/kAXoUoMKZwDhcNCistNJVTAejHLCyl9vBnCNUMxo2WflV9 + MjzdhER4azHpRa6Zbd1jXwxw1mm6TA/eUi554p48R26YBZNDsbUIA1jgTlr2 + =mGKx -----END PGP MESSAGE----- fp: 91213ABAA73B0B73D3C02B5B4E5F372D17BBE67C - - created_at: "2025-05-04T13:51:50Z" + - created_at: "2025-06-14T18:54:13Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMAxjNhCKPP69fARAAmz/ImAmuv9pkG7/KGKQ9rlults7nf1g2a2+96p5D03i6 - DKN+Bqc4CqxCkK9RQOXLEcUAw+CfZZZQBk6YTpIIkMeR1+Sb4dLQZIdo76is6CHc - HSYYMeTq2nPJJrO7v8LWS0udqERi1gIQr99FtjS9V6XiDH2sqnB38t+TlXpI6m3+ - X2epCI2OrGHOtnP1yGRHs1nOd5whHPZ6Y8JXm2WVokjudDx9dC8pgP2qd8ZS/K7F - 3GnEo0MZZYo9VpdrGiElnpQvLS32hk1Z13hF/XdbOohTM7Gz1d4VtrUMuzjC+hHI - QSmjh4IKKhLnN0gOnAvmDOmzHoWfUbgTyNsvJyTmedXXPqR3vsDhHChMaO1BjBsE - Q64b/Tx/W4CzUDEOKJkHG5bH3HAVo3P7150JE8YToD2toua2Pj+j5o76EHCOmWMV - KbtG7bUef0r45yHgUzOiVUyAI+oBIdG6RvgVqfDPDUkEZxFgBFeRdCG+4HqHyTxP - +mI9zwabdXjx+4MwcOF+frJoP7TmxK6mBzW2ron9Mz9HwgTHUepS5ei+fgWIkYzW - wCMpGIXfrX35P17OkfqhkuiEib1t+Ec/xPHR9n+Rpr1p9c3EewIdqBr516EVYENs - M0ryuQ+MaT2q563y+sb2ocGNruY9GbsZigTJtqdovnZtoMs50xTifvGp7Dkjw0zS - XAGafKX8TtXlxOqcP9sI5bMpLQjfhbTFS72fgTxfQEErO3LKxV8Z/InGxRXl9HmA - T9bHsArbS4EpYByG0u0ZI9iZbK1Yp1njhUYoFTfB95FXL05bY5HTArELxqqq - =fGbe + hQIMAxjNhCKPP69fAQ/8CKNt8g7lH579aBv6o3Uq1bCgh0m74t1kV2hBtlpi9ptS + emNEx2h/5yKZ45VpUotMgMjFH2GlmOpwLq1nEnhyBEc5aFrkov2qhYAT2831fQmE + Rt+xv3797cx5Day5zUnWqGWKN6VkjzMaDrAf1LsKXT5vaCCLOHJ8m3emiaE3wwOV + Mpydtmb21S4ymvVJtpyY9ILM+azYGUTBHBFejMYAN1fL1sEaxukQF3M6iICp/I7b + o8XmNiLaQJwKpq0UxLlbwu4vou/Rg1q1gC7WkeU9uKc+KHKCj+7uKmuUIen0AlW5 + SBeflJ3LPFvydKDoYQ4U5HMaykWMWwSWcYgponiHczKIooToRmLjtRpmCMj443jW + 0tZVzFP3zD4AA4bGC9pz8UUEZAcchcu+7K/TzScONLlSEl4HoHLGSgvptw73HK// + 12mCwhMeGm3BixxiQTSdZ6cffkRzQ4zCg67garCJQxMIAz74mkYfK1KUKNU632mU + gh2Pl1Yapj4g+JRGuP1m5oD/mKi2R9p3aKjRh4dxG+Tw0ZkBJ9a+uaFBBwIFcJsK + +apKmjj+pp+O/WaASWmr7iU1TIo98pA5HLaLOb72QTo23hFBaw+nva0yXo95ykvQ + xfvI04yehdDInOme4+jNSKxOK8yKtXKa/9jCqm/3S0/Gsji7CDIi2RiSxSLercfS + XAHZ7qymaeY4FKkGPpJ/38wWYHz06sA/Hbisb3994iehqiBLgVq7oaE97srDxJxm + 7/MC0trxoDf1i3WcjIhiu1joi1hjk7tuejg+wYNfRXYmqRgFTSYO2c03EulW + =51+6 -----END PGP MESSAGE----- fp: F38C9D4228FC6F674E322D9C3326D914EB9B8F55 - - created_at: "2025-05-04T13:51:50Z" + - created_at: "2025-06-14T18:54:13Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMA1Hthzn+T1OoAQ//bE4PcCxl8ZxiaJv6YcFNyq+3QDtCF4fkexVznowNDu97 - SfLAEoNVjztvjdk199N1zbBWxNZVecV+2im4LHP46Z338m80eXLkSbp6Ig3QPXCA - IsfQ5hp/mXrDVSKa5j39zSk1TXM+nH1eUadSPNSvau74XMbXDW2SHhSdeoOxfo8q - Bts3fZ//QqSvEEhY90tcnI9ptvh5FtHh7F1m/0DQOnL2A0WIp7HxoXb2AvCIOyM5 - 3iJwAWqlHI8Z1SsSB9+s3T6XwkLMFh457+w5mSWoGkeTo9mYEMPQpQmtZ5z08tnf - Xouyvg/TzCWfnI/4h8EJqYxm3qZdDtSd+cdYChnkv1xzhL0goEBWjzrqtSXOUoJ/ - 6lvEjwaArrIDEJ5NcfDFTm1+9SwzDtn7OfL7ee3hctA3cUVWKj1jASB/ouGg6Uvb - 7dUkKu0rVuC4m9AhlDGSiaN1WaE2XHyxjtbVRbMg4Umrh2CYRX7ndeErnXuhFzfE - fLZyb/n8Pad4OF1KLnORZliRp79gXdyrBt8tWF+Xc9OD5Ca269Hgk7llh1DQCYPt - GlmkM75AOvYAumoRXi3eMCyT0HRHWtvOy1ljNB7H+DkWsR1dZbG+0H1q/xVVxvZf - uVc6R1oZMrMInrEeyf5+2gbILkU0Ms+TtXQgCv73qdioNuhTafi8acbyiyJJfXLS - XAHyl8IJ8fagy8iccVQUg6tPderxLaoA/NeH+lsxgbbZIxAPom8e79XRm7I40E7q - pCXFUuskc5kK3JaWzMc4PAPzlLs2895qBdLXyYJ/FRAzulhkKLypStFrZOp7 - =SwE9 + hQIMA1Hthzn+T1OoAQ/5AS54nGqZ3kYQs+MGJlgXYt0W0sRwbuFpCzz5jVKTYuQs + hHsvBG/u+5/bk4VOSdXOJ6h+fKKQ4Gj5i3vqKrcfF0J4uFtin4kuQgY/A0dHhvON + 6Uihilgx25Hi493Agn3tunbYOuDFjHrBXVDjHc4qdEgzoOtKPW+qBdlV5SqrbXdX + SIBghRCFmjxOlQe7lpGjuhGfEmbr4cr4V7HTTq8roZQxUgbBDX4LwVfGOluKmApI + 2rw0WzTgQS14Lw3DHdqEa5YAExIj14XgWYagBCQOWkWFd8UvloguA0gb+5cIB3zG + mVN+ePhlSDxd8ZvmvjSJp84bTnfMlX7eZEQrM+dd0OuzDDSN9qMikDwCotXW4JpM + Mg5VAIxyR+4tXcVI4ZmO6aczxiRCemBbFsGSjKaiqPtbykoMHHcInT/pOQxeH3b6 + qUT324+RnIx9snukX7USZfdq3Kr1+TrvokWYDdav8m3+LsQqBWykRbTKu2HJ1hrP + swZER9a6P3DJgWoTld7Bm+agWG5w1uXsgTxZAGrRY1YglA7QyXFXk3xE+BddUt0s + Tn7vSzYhg09IlzCAg6GoYIeZ94s5Ej/m7/cv8HpiR6R0xwKkrVzaaLpRWVUNFhNB + RWHYCY2s/X41eb4oXt/XPtTrbviJeJZ5hvOLIUuky13acq4Jih3pSdncayIygPPS + XAFM5lg/iPwyFHEW4d0rAHHsrsoBwDrndVRvs9CNMeIawshAXFKYTpZvQavyXeXw + C48JNkpo9avkpwO/5WjUJWwNU5TQHK3dHF3h/ZDat2WtObFDnP1B9wzCVThm + =LQEe -----END PGP MESSAGE----- fp: 5DA93D5C9D7320E1BD3522C79C78172B3551C9FD - - created_at: "2025-05-04T13:51:50Z" + - created_at: "2025-06-14T18:54:13Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMA46L6MuPqfJqARAAsXgEGDcmiICJUisG40O4A6ePGtxFjIRmZtdYcl0ku093 - 8bF6zJvPOwRyQqDMeD7Qlt3/HZXjMQZC6qnpWG6KY7KUkjLoUOHIQdG/+ofz7WJe - Pn/M9pp9v0/Ra2sLbtpxOIObbK+tdLSR3L3hWjBs+KMoSX2IPeW5LOtBID7CEQEZ - ay4Y/WnbY3jUSxQ3dqDGl1TTylyvAnmIup3vkVHmU7ZgbS4x9NLGVhbus0EYZl2w - C40S/mFLqixu9lt8GNcu/EdsNgihrAuUkFQATz6vPZs/lSiVGdl9EM75DrWuOFcc - kXBvvKvi0e9IAGKb3IT6h05wLTMj2pu0489HybYyoaj6Jg/4L/3i3HZRpdALOqzA - h73Akzzaqm7pRMgCyxxCo8RBuxQ84wSnkK2Oi4S5MpFoUnLLqm4CpEI2FDkpNGKQ - zQNEQIzAHWxz7rbhjYCXtv9x5KWACflBw5/ILuFIu4wxdyDlDGMnI0raNIhtyyfV - rROHwgWZtKS/WJXpTer1V6O86eHgY2AsSsSaadrWC0e0PXNZEP+VbhxtR3eftK10 - 7a/2xVwA4lF+vYZeD6v9rVqn97hZd8DBKL7mj4N6EYEE8KtFCdt5/2FWZ3USXbQQ - JG+eaCtVW2IZn1ZEl3HxEV5crlGFq07RVfbDU+nH+98Hfn2qP8iuPDNFLdSQa6jS - XAFFDdFRXehEYgT6itTnkppNQKpPApFNbN62kiIHOvlc+gemUCLsR+XeL6f3P5QP - qzR9B4/dwH0IyquEkwqHOeGaZQgGnyqqzaBQuAEoDGlapYa3ThBdFgvOjl3A - =xw+2 + hQIMA46L6MuPqfJqARAApwdtFGY2U228dw/VMIW+urv2sCuciye+nYPhGU0nraOJ + L8MrxDYztE4rfVQFFKXxjnEXl1UYVlt2WKAcdmns7eT3bKP0YyFs9s2fQ8g6FzqK + 541vxFsH1dlx3kul4NTrbcQknwXLICRh83sxTslebfrM0+ByQel55YYh9uy0KMCi + 8dN+Gz1iCNr5WS2CMwOADie+SiZWkwuV415K17V7BJW4F0UcTTdqNyVIIkpPGK4o + bPPUP/SzufFf+rT5+A0pRcSN/GM5FkCXvl5D4VjsBLG1ocTJCQF+u2TZy7h8SNdq + Q5dPfcZa1amuHfo4EGdm/qyOHL+hBsRlALP/ZgrLFIEh02z7sGQDvu24WiFDIhWS + tNxt7Rtux1J40oWeTbp0BEpMe3dvU4hinUm+/Z0lD8bl4dn5t4n42LCRNMm+EH8Q + WxlOzfj8y1/jT+lLdDKFrBuH7YZPQcwSXRQPAD86kqImFLY7wesS0MLhZWPu5iws + Pv8Wgxybsk101aJOwGQztFxyJtT0FZYLqHyFIpLEOFN1Y+9a2aKKT9XjjW+RQcLf + VRcMy3Wkf7fJ0wGJTHpMsuyrZ7+bsfGl4nPmXVoBi6At8kICZtndhWVOIcqKqWfI + DceVKnweTa3XruiZ8Dw2UWTNJknKcYQ/nWZcrxiw89WMxvIYMYAqv0BjuySOKjDS + XAFRauSIUAPzrcb31ogAKCWyzmY8/00vldab1H+7m3TIkQPxbJpaEhKWcGui1kD+ + 3MQj8ykuUmoFCR+DeDEku8wwqCWZlJnpky7k5CPBU9UCPCxSnF4TFCAfbgAX + =4Wki -----END PGP MESSAGE----- fp: 8996B62CBD159DCADD3B6DC08BB33A8ABCF7BC4A - - created_at: "2025-05-04T13:51:50Z" + - created_at: "2025-06-14T18:54:13Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMA4EEKdYEzV0pARAAn7PuDmwZ6ii0LyFxAcsoN10eL2XoMrRr+zYsmhRfFOEO - vFGigdkMNg83r05MbPYOVdbIWZmWec0LVtXspHvKlXFB9XxErBYK5Mu4NMZTxIEg - Zf3vlXtR+A7fPg1SxrgXOjA2deAkGIUHVv/aQLAtTfJVgYtsAY4IvklEFNPLgFp+ - DhjgkVVWsE/V/KHLMP3dUc35+ikrQD73kkIXMKvi4Ez3cGtXQQ3tONkdvCmfV/Y4 - eXVSZPyf32XYjAl1isjx4YRgUK1C7S/MTxhhS3AFlaXtDcisRWbQzRnZZzkEo4t5 - +/xUIl42hGdi2qRTrvnyhM0u4XXNm+lqk65CTLY7UcfYJLzAdaQbnSQcG4krDCi0 - 8hnLmh7iflkrV0/MS44nOZDiU3I/9L6F9gy9fx+MfNZv0bDNHU0BL5NfWhTwiVIl - dE4Z2akYheoFvoAWpJNA3TKa5OV5Z7Zr7/N3o8KZL6QUXKv9tgDuzL+dqZE/fo+V - agi087xYmK51+enWcsmYW7t8UoKe2/5VsMJyGJDmuOBn/iRiHq7gVhLuyvnQtjKo - MeCv6bntSarPX9FfPrGnPNqgWd0ONFpFSHau69LEAmVSxhrJPEqNzVvelS2mQKx2 - jJVqNSGc2rg5DCV4zzwf09Dlw2XAwnBFk5uRIfvYEv5XHmm7VQSfbIlyJRmeBKvS - XAEtrHwm24dfrh6m7DJkRPjjeNCS1FPSO3d9/rVgm/+f+7l8r9ntATNiQiHOg3Dp - Pq0XKumNIAvA1tfPTSqnP8ELcnGHbmnQ9r3oa1pA7t79kZbifV3TjINdIRc6 - =q772 + hQIMA4EEKdYEzV0pARAAl2uWX2ngBl2oCZXcyIASKrclLQtXU2rV4SiXXSdOiLvq + FuOXs3rnxPSF+b5p1A99mCfZsH/Z/IZJY6QlBtzUAtz2kEepAibT1qwKeYEiRolh + q41LuTQBHQuc4XStm6bh/tG+ByBEabkjzU86XwtBWUhzHfUyb4ZrifeTmX0/Kpax + KwcXZ7xcjM+UHyJM6m9GV2ZhfS545C0z9u1Awn7g+5dObiwXQM7ZqPaRX4D7S+2s + 3oL1lfWpz9ktwgLJA/J/r2+qWhPV8g/RBzLs4HpyPwoCknwtbsYvQmfJE3jxbKHb + +7Q8TfcSALJTUQ1JFUWa92w8FTaP1kbLtkB5j46BXkzDvmWFw8759t68G5vhkcx2 + t9nxCMaDKkKjE4BpuPx48K9MnTCiv/tkdsfwbta+N03kdsHBWC38tpGaqvuNoWaY + ro9o+6nonSJxPAYS4cLVt6iddPF72QhiMfK4gvpPD/PZNIDblZ7evevwWZt1Razw + 7UOt0oEwzkK5ofMy4p0QCWCK3dHuffuuFtwAAA/ALcKIPnydm514uX/jIrNKUA4D + ZPH/NJbLP25a12ObN82PjXXrL7Ipa+3WS00ESD6rFwOmlYbw+d9WIV+A8aMbhBKi + OxE8pRaIBdtz1w+Lm65II/P+HpVrjOZYWIVw9PQRr9UvzcSe6lGTh5nl0KKFiqvS + XAE/eXSQ7giGgmWFCuo0ws9wmjb6c8WwRd8jUU2guRXRGVkWcRi3UCl/jXhe1KKM + HCHwCMud30J5/jgio6Z/xefANdtXKJTAHdJBqqT8iUiwDH8T+IdRtg85/wFc + =9vVr -----END PGP MESSAGE----- fp: 9DFA033E3DAEBAD7FDD71B056C7AAA54BE05F7BA - - created_at: "2025-05-04T13:51:50Z" + - created_at: "2025-06-14T18:54:13Z" enc: |- -----BEGIN PGP MESSAGE----- - hF4DQrf1tCqiJxoSAQdAjb0VgOjbJnMpyOvRyy7ne6A22RmC73MY8VtNodSZxGgw - rZt89++1gokfH9gCT+0vHRT5nLa3VyEmNY6KDH68wrGF7Lo9vfFjSCziLJoRypLR - 0lwBoDbGqpDquVgZ49CoWEzms716kVf636RuDCm/mclqBVYqT9ueBc/1FfPgednM - tu08vimske+zsgxf1EWIisc36CBB5shd/W3vvcjG9+KcgNb6aA9P/vybcWxzGQ== - =wdPS + hF4DQrf1tCqiJxoSAQdAvfcTUjRPFvD/2tdPN7wacNDKMyXbORErSIBrH4KNLA4w + fm5u2jAXzIaPV3VbgFmNaV8YszDRUXTGXUvOyM6oA/RCK+dMFShBm7nGJRappvn1 + 0lwB3bAonJrinIlJGpu7uOU3V5RSJRMee+NjzsyyGEXWRzPwcRmZljO0CXgEAdxC + yRPU9gSZ68L/fZrm7XGjMlg0idhlUSoQfA9NwnOJvk924zQcpYkNcOLsCFlPMw== + =+Glw -----END PGP MESSAGE----- fp: B71138A6A8964A3C3B8899857B4F70C356765BAB - - created_at: "2025-05-04T13:51:50Z" + - created_at: "2025-06-14T18:54:13Z" enc: |- -----BEGIN PGP MESSAGE----- - hF4DzAGzViGx4qcSAQdAmlJByvoMsSxY6qHJKC7NfMUdf8I1zPFZ0eX4kAC812Mw - b2+S+R58j/XPFInJP9UHdSJsOhDVAhqQ/R7QBzf2iFRhL4M507pTJfK8FUbvhJQ9 - 0lYB8ixT4IVILQR8FG3pCy7lMFhslLmHy6cBFcp1UomVJFmtlM1mJU9Og6jUBLhE - xmxtytF6/716ofjH8gOUvh/3TUe8mDOegy6SEcEm4fyqzJbH4QQJ2g== - =ZOn5 + hF4DzAGzViGx4qcSAQdA6B2LqIo/WdCClwwmseyKE/BKVjs6cs9kHZvdbRpn5Agw + KNIiEwusRQ0YlSSyzgOeFamCnsYGeX5nikoYuFtqJGKR4PhAp3SBBSXDsIBNnYxX + 0lYBzWqnjX0CgUyQxImGRWHZo9FTVzg49GiyFvWjwpZUKgQY29rGIqlk5/MQDdOb + SY7eVlrK3r+MDRPRExxsfa4cuKhClQMlPa7Fd2RuMUR77HOe8eLq6Q== + =s3pU -----END PGP MESSAGE----- fp: D2E9C0807BF681F5E164DAFC5EE1B61CD90954CD - - created_at: "2025-05-04T13:51:50Z" + - created_at: "2025-06-14T18:54:13Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMA2pVdGTIrZI+ARAA3WKKOl7qNGQemym8vuu+ZqanNRcreICN+OxTVGU/j3rj - K0gtoqUlzy+QQ/KRmPYhfL2Oome5ld6LdN//OJ2MjuRwLhtLBXhJlrle2OvHbAm4 - q5Io2Cc23X3x0nmuM9iT4e7oWjTbfwRDLseXG4vQuUZCJUCLLpJ3naOO4q9qz31u - tuG+llD6NcYwyFnE0d7vqy252TPOuK+C7DQ069VQnKF6ZBLciSRMeSZeAX8LFPKC - spkZGkIBEziZE+HxOI/XZy2K+nRGvkEpHNLcpHYo3cSKpuVBwRs5njJx1sJrkODq - OYhRFbcluRp4ugDVw/MLY/mDVCfvFQ01jTsJbOW2FweAPFvDuxATfgO7c9UgSL/U - fp3ff0rHBMatZb+4zlMyXxwYHeSr2DiLMCax/n9hm5Bsfb72TkkfQcy14viVeK+p - 79BjZS3nwGCZvBiKE/J7yxX1/QGe5EUEtMosA+dDa2g3jehiEJGSkDeoaKfyaUwR - I8BAl9qgIeHUcQOU+HI6AqoQvxztR5a7WYbf+qFoo+K7oxFAiMQrjTssjWxmVmzN - IrxYIQnYTIIjmy9u2nGAk97vn0RGE66g2X3BzFwV8JnNPBlomza9gD6Yg0K5MlXd - cvpse5bOA7Es6JV1Iqqayms+u2bDiz9AjcW80bYLun8eVRK3i/YqArUBQ3tQ8B3U - ZgEJAhD9cUaAxKVPkLABVS5134/Pa5hb5WyypqHu7Zj8iYWVziLhRdBprjLuP/al - Ld/os4MBUB/JLhIQz6SyqYECBPNhXyStBt9OIsP4KeUT52YqKmE/UzWv8TSrcJHS - 9Kytv+IMsQ== - =HnMS + hQIMA2pVdGTIrZI+AQ/8D7BOI79d/IlNMpEdMkoJfrvYrVMCDHFepuhdT9ZMJk1W + ZlpYJopc4D5QHC18HD4DkyaIwEbTd/+Tos93omLsoJf0387xJl8li2kiK7IZVmzU + Jt7zrAg11KEwF9FNvEisx68RJJHdkNNm269eJ2vpc2QxrhdLmAY7lPn5qiZMadLS + Yvd/N6ewl0RilhjcVbTYaAi19x3cKLLEcBcIIZfnQawS42tNu/2VDbQ/z58329j1 + UK4/kFCiREC/LCbUrejDIC5KDfUg3BHl40iTwcpmgy9ENdA3dsSoMF/U8hHhpPo6 + tTZk290HPkeQqrtXHxIt6YYj48eMKHjr3Q1xpqATTOAiNGqpXgZoij3SQPZYfQWq + MhnmNgOgrf4NOjhlJYSOI1tzLeL7wJVwHY3WEH4F5mkWK52ebOCL2uk16Zx2doge + hL4fKNp0EMY4el6m2pQ2d17sy5LeqGp9thuWBPirvjtL/IawBUZeGMWP6QhDhvG2 + O+xCmKoG+4tsqN5kNoUCuH061uEejTFPlwmuXw69l8/oFz9ww/4vF+OhRlGpPtIj + MAzkRewQDcBVMW1CkmGFpFWW16/LaDSdPB8GfAyxEsYL8jussNj795TubEzr9Vhp + qZXkCWktYbE69B9W+IfgA2YIiyYZlapuJu4SbBj5fcthQuyKBWgwocFdE/0xa8nS + XAHgymi7rg+uMDn2Iwl6NUxDcOyNlJoytZ8udptzkegrnw0O/wLoaVzzRpK65wY0 + cjqvVzZCr4aC2tgfQxkR7Z3gbbH62IUv80awgncQZzTLZgTFI9TCmyIICBw9 + =vHTP -----END PGP MESSAGE----- fp: 878FEA3CB6A6F6E7CD80ECBE28506E3585F9F533 unencrypted_suffix: _unencrypted diff --git a/roles/ansible_pull/README.md b/roles/ansible_pull/README.md new file mode 100644 index 0000000..8e3cb45 --- /dev/null +++ b/roles/ansible_pull/README.md @@ -0,0 +1,17 @@ +# `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. + +## Optional Arguments + +- `ansible_pull__user`: The user to run `ansible_pull` as. Defaults to `ansible_user`. + +## Links & Resources diff --git a/roles/ansible_pull/defaults/main.yaml b/roles/ansible_pull/defaults/main.yaml new file mode 100644 index 0000000..37d84ab --- /dev/null +++ b/roles/ansible_pull/defaults/main.yaml @@ -0,0 +1 @@ +ansible_pull__user: "{{ ansible_user }}" diff --git a/roles/ansible_pull/meta/argument_specs.yaml b/roles/ansible_pull/meta/argument_specs.yaml new file mode 100644 index 0000000..a57d10e --- /dev/null +++ b/roles/ansible_pull/meta/argument_specs.yaml @@ -0,0 +1,9 @@ +argument_specs: + main: + options: + ansible_pull__age_private_key: + type: str + required: true + ansible_pull__user: + type: str + required: false diff --git a/roles/ansible_pull/tasks/main.yaml b/roles/ansible_pull/tasks/main.yaml new file mode 100644 index 0000000..f0d26d7 --- /dev/null +++ b/roles/ansible_pull/tasks/main.yaml @@ -0,0 +1,34 @@ +- 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