build: update dependencies

This commit is contained in:
Nathaniel Landau
2024-03-15 21:25:01 -04:00
parent b40521919a
commit 9a47eb1f06
14 changed files with 418 additions and 322 deletions

View File

@@ -12,21 +12,21 @@ exclude_paths:
- vault.yml - vault.yml
- .venv/ - .venv/
- ansible_collections/ - ansible_collections/
skip_list: skip_list:
- name[template] - yaml[indentation]
- ignore-errors # - name[template]
- meta-incorrect # - ignore-errors
- meta-no-info # - meta-incorrect
- package-latest # - meta-no-info
- role-name # - package-latest
- unnamed-task # - role-name
- var-naming # - unnamed-task
- latest[git] # - var-naming
# - latest[git]
warn_list: # warn_list:
- experimental # - experimental
- risky-file-permissions # - risky-file-permissions
- command-instead-of-module # - command-instead-of-module
- no-changed-when # - no-changed-when
- command-instead-of-shell # - command-instead-of-shell

View File

@@ -1,7 +1,7 @@
--- ---
repos: repos:
- repo: "https://github.com/commitizen-tools/commitizen" - repo: "https://github.com/commitizen-tools/commitizen"
rev: v3.18.3 rev: v3.18.4
hooks: hooks:
- id: "commitizen" - id: "commitizen"
@@ -48,6 +48,16 @@ repos:
hooks: hooks:
- id: typos - id: typos
- repo: "https://github.com/ansible/ansible-lint"
rev: v24.2.1
hooks:
- id: ansible-lint
additional_dependencies:
- ansible
args:
- --config-file
- .ansible-lint.yml
- repo: local - repo: local
hooks: hooks:
- id: vault-pre-commit - id: vault-pre-commit
@@ -64,13 +74,6 @@ repos:
pass_filenames: true pass_filenames: true
types: [text] types: [text]
- id: ansible-lint
name: running ansible-lint
language: system
files: \.(yaml|yml)$
pass_filenames: false
entry: ansible-lint --force-color --config-file .ansible-lint.yml
- id: "lint-shellscript-templates" - id: "lint-shellscript-templates"
name: lint shellscript templates name: lint shellscript templates
language: system language: system

View File

@@ -1,7 +1,4 @@
{ {
"yaml.schemas": {
"https://raw.githubusercontent.com/ansible-community/schemas/main/f/ansible.json#/$defs/playbook": "file:///Users/natelandau/repos/ansible-homelab-config/main.yml"
},
"files.associations": { "files.associations": {
"**/tasks/*.yml": "ansible", "**/tasks/*.yml": "ansible",
"**/handlers/*.yml": "ansible", "**/handlers/*.yml": "ansible",

View File

@@ -1,3 +1,4 @@
# yamllint disable rule:indentation
--- ---
# ---------------------------------- SOFTWARE VERSIONS # ---------------------------------- SOFTWARE VERSIONS
authelia_version: 4.37.5 authelia_version: 4.37.5
@@ -37,12 +38,27 @@ rpi_usb_drive_mount_point: /mnt/usbDrive
rpi_localfs_service_storage: "{{ rpi_usb_drive_mount_point }}/docker" rpi_localfs_service_storage: "{{ rpi_usb_drive_mount_point }}/docker"
rpi_nfs_mount_point: /mnt rpi_nfs_mount_point: /mnt
rpi_nfs_mounts_list: rpi_nfs_mounts_list:
- { local: "{{ rpi_nfs_mount_point }}/pi-cluster", src: "10.0.30.6:/volume1/pi-cluster" } - {
- { local: "{{ rpi_nfs_mount_point }}/syncthing", src: "10.0.30.6:/volume1/syncthing" } local: "{{ rpi_nfs_mount_point }}/pi-cluster",
- { local: "{{ rpi_nfs_mount_point }}/media", src: "10.0.30.6:/volume1/media" } src: "10.0.30.6:/volume1/pi-cluster",
- { local: "{{ rpi_nfs_mount_point }}/nate", src: "10.0.30.6:/volume1/nate" } }
- {
local: "{{ rpi_nfs_mount_point }}/syncthing",
src: "10.0.30.6:/volume1/syncthing",
}
- {
local: "{{ rpi_nfs_mount_point }}/media",
src: "10.0.30.6:/volume1/media",
}
- {
local: "{{ rpi_nfs_mount_point }}/nate",
src: "10.0.30.6:/volume1/nate",
}
rpi_nfs_mounts_remove: rpi_nfs_mounts_remove:
- { local: "{{ rpi_nfs_mount_point }}/downloads", src: "10.0.30.6:/volume1/downloads" } - {
local: "{{ rpi_nfs_mount_point }}/downloads",
src: "10.0.30.6:/volume1/downloads",
}
# mac_autofs_type is one of 'smb,nfs,afp' # mac_autofs_type is one of 'smb,nfs,afp'
mac_autofs_type: smb mac_autofs_type: smb
@@ -50,18 +66,36 @@ mac_localfs_service_storage: "/Users/{{ ansible_user }}/Library/docker"
mac_storage_mount_point: /System/Volumes/Data/mnt mac_storage_mount_point: /System/Volumes/Data/mnt
mac_keep_alive_file: "{{ mac_storage_mount_point }}/pi-cluster/keepalive.txt" mac_keep_alive_file: "{{ mac_storage_mount_point }}/pi-cluster/keepalive.txt"
mac_nfs_mounts_list: mac_nfs_mounts_list:
- { local: "{{ mac_storage_mount_point }}/pi-cluster", src: "10.0.0.6:/volume1/pi-cluster" } - {
- { local: "{{ mac_storage_mount_point }}/syncthing", src: "10.0.0.6:/volume1/syncthing" } local: "{{ mac_storage_mount_point }}/pi-cluster",
- { local: "{{ mac_storage_mount_point }}/media", src: "10.0.0.6:/volume1/media" } src: "10.0.0.6:/volume1/pi-cluster",
- { local: "{{ mac_storage_mount_point }}/nate", src: "10.0.0.6:/volume1/nate" } }
- {
local: "{{ mac_storage_mount_point }}/syncthing",
src: "10.0.0.6:/volume1/syncthing",
}
- {
local: "{{ mac_storage_mount_point }}/media",
src: "10.0.0.6:/volume1/media",
}
- {
local: "{{ mac_storage_mount_point }}/nate",
src: "10.0.0.6:/volume1/nate",
}
# Add mounts to remove from auto_nfs to the dict below if needed # Add mounts to remove from auto_nfs to the dict below if needed
mac_nfs_mounts_remove: mac_nfs_mounts_remove:
# - { local: "{{ mac_storage_mount_point }}/pi-cluster", src: "10.0.0.6:/volume1/pi-cluster" } # - { local: "{{ mac_storage_mount_point }}/pi-cluster", src: "10.0.0.6:/volume1/pi-cluster" }
mac_afp_or_smb_mounts_list: mac_afp_or_smb_mounts_list:
- { local: "{{ mac_storage_mount_point }}/pi-cluster", src: "10.0.0.6:/pi-cluster" } - {
- { local: "{{ mac_storage_mount_point }}/syncthing", src: "10.0.0.6:/syncthing" } local: "{{ mac_storage_mount_point }}/pi-cluster",
src: "10.0.0.6:/pi-cluster",
}
- {
local: "{{ mac_storage_mount_point }}/syncthing",
src: "10.0.0.6:/syncthing",
}
- { local: "{{ mac_storage_mount_point }}/media", src: "10.0.0.6:/media" } - { local: "{{ mac_storage_mount_point }}/media", src: "10.0.0.6:/media" }
- { local: "{{ mac_storage_mount_point }}/nate", src: "10.0.0.6:/nate" } - { local: "{{ mac_storage_mount_point }}/nate", src: "10.0.0.6:/nate" }
@@ -112,6 +146,7 @@ apt_packages_list:
- python3-pip - python3-pip
- rsync - rsync
- shellcheck - shellcheck
- tailscale
- unzip - unzip
- wget - wget
- yamllint - yamllint

View File

@@ -106,7 +106,7 @@ all:
ansible_user: "{{ my_username }}" ansible_user: "{{ my_username }}"
ansible_become_pass: "{{ mac_become_pass }}" ansible_become_pass: "{{ mac_become_pass }}"
ansible_ssh_private_key_file: "{{ ssh_key_location }}/macMini" ansible_ssh_private_key_file: "{{ ssh_key_location }}/macMini"
ansible_python_interpreter: "/usr/local/bin/python3" ansible_python_interpreter: "/Users/natelandau/.pyenv/shims/python"
ansible_port: 22 ansible_port: 22
mac_intel: true mac_intel: true
is_nomad_client: true is_nomad_client: true

View File

@@ -76,4 +76,5 @@
when: is_tdarr_server or is_tdarr_node when: is_tdarr_server or is_tdarr_node
handlers: handlers:
- ansible.builtin.import_tasks: handlers/main.yml - name: "Run handlers"
ansible.builtin.import_tasks: handlers/main.yml

71
poetry.lock generated
View File

@@ -119,33 +119,33 @@ tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "p
[[package]] [[package]]
name = "black" name = "black"
version = "24.2.0" version = "24.3.0"
description = "The uncompromising code formatter." description = "The uncompromising code formatter."
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "black-24.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6981eae48b3b33399c8757036c7f5d48a535b962a7c2310d19361edeef64ce29"}, {file = "black-24.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7d5e026f8da0322b5662fa7a8e752b3fa2dac1c1cbc213c3d7ff9bdd0ab12395"},
{file = "black-24.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d533d5e3259720fdbc1b37444491b024003e012c5173f7d06825a77508085430"}, {file = "black-24.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f50ea1132e2189d8dff0115ab75b65590a3e97de1e143795adb4ce317934995"},
{file = "black-24.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61a0391772490ddfb8a693c067df1ef5227257e72b0e4108482b8d41b5aee13f"}, {file = "black-24.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2af80566f43c85f5797365077fb64a393861a3730bd110971ab7a0c94e873e7"},
{file = "black-24.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:992e451b04667116680cb88f63449267c13e1ad134f30087dec8527242e9862a"}, {file = "black-24.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:4be5bb28e090456adfc1255e03967fb67ca846a03be7aadf6249096100ee32d0"},
{file = "black-24.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:163baf4ef40e6897a2a9b83890e59141cc8c2a98f2dda5080dc15c00ee1e62cd"}, {file = "black-24.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4f1373a7808a8f135b774039f61d59e4be7eb56b2513d3d2f02a8b9365b8a8a9"},
{file = "black-24.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e37c99f89929af50ffaf912454b3e3b47fd64109659026b678c091a4cd450fb2"}, {file = "black-24.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:aadf7a02d947936ee418777e0247ea114f78aff0d0959461057cae8a04f20597"},
{file = "black-24.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9de21bafcba9683853f6c96c2d515e364aee631b178eaa5145fc1c61a3cc92"}, {file = "black-24.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c02e4ea2ae09d16314d30912a58ada9a5c4fdfedf9512d23326128ac08ac3d"},
{file = "black-24.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:9db528bccb9e8e20c08e716b3b09c6bdd64da0dd129b11e160bf082d4642ac23"}, {file = "black-24.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:bf21b7b230718a5f08bd32d5e4f1db7fc8788345c8aea1d155fc17852b3410f5"},
{file = "black-24.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d84f29eb3ee44859052073b7636533ec995bd0f64e2fb43aeceefc70090e752b"}, {file = "black-24.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:2818cf72dfd5d289e48f37ccfa08b460bf469e67fb7c4abb07edc2e9f16fb63f"},
{file = "black-24.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e08fb9a15c914b81dd734ddd7fb10513016e5ce7e6704bdd5e1251ceee51ac9"}, {file = "black-24.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4acf672def7eb1725f41f38bf6bf425c8237248bb0804faa3965c036f7672d11"},
{file = "black-24.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:810d445ae6069ce64030c78ff6127cd9cd178a9ac3361435708b907d8a04c693"}, {file = "black-24.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7ed6668cbbfcd231fa0dc1b137d3e40c04c7f786e626b405c62bcd5db5857e4"},
{file = "black-24.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:ba15742a13de85e9b8f3239c8f807723991fbfae24bad92d34a2b12e81904982"}, {file = "black-24.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:56f52cfbd3dabe2798d76dbdd299faa046a901041faf2cf33288bc4e6dae57b5"},
{file = "black-24.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7e53a8c630f71db01b28cd9602a1ada68c937cbf2c333e6ed041390d6968faf4"}, {file = "black-24.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:79dcf34b33e38ed1b17434693763301d7ccbd1c5860674a8f871bd15139e7837"},
{file = "black-24.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:93601c2deb321b4bad8f95df408e3fb3943d85012dddb6121336b8e24a0d1218"}, {file = "black-24.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e19cb1c6365fd6dc38a6eae2dcb691d7d83935c10215aef8e6c38edee3f77abd"},
{file = "black-24.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0057f800de6acc4407fe75bb147b0c2b5cbb7c3ed110d3e5999cd01184d53b0"}, {file = "black-24.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65b76c275e4c1c5ce6e9870911384bff5ca31ab63d19c76811cb1fb162678213"},
{file = "black-24.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:faf2ee02e6612577ba0181f4347bcbcf591eb122f7841ae5ba233d12c39dcb4d"}, {file = "black-24.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:b5991d523eee14756f3c8d5df5231550ae8993e2286b8014e2fdea7156ed0959"},
{file = "black-24.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:057c3dc602eaa6fdc451069bd027a1b2635028b575a6c3acfd63193ced20d9c8"}, {file = "black-24.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c45f8dff244b3c431b36e3224b6be4a127c6aca780853574c00faf99258041eb"},
{file = "black-24.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:08654d0797e65f2423f850fc8e16a0ce50925f9337fb4a4a176a7aa4026e63f8"}, {file = "black-24.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6905238a754ceb7788a73f02b45637d820b2f5478b20fec82ea865e4f5d4d9f7"},
{file = "black-24.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca610d29415ee1a30a3f30fab7a8f4144e9d34c89a235d81292a1edb2b55f540"}, {file = "black-24.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7de8d330763c66663661a1ffd432274a2f92f07feeddd89ffd085b5744f85e7"},
{file = "black-24.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:4dd76e9468d5536abd40ffbc7a247f83b2324f0c050556d9c371c2b9a9a95e31"}, {file = "black-24.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:7bb041dca0d784697af4646d3b62ba4a6b028276ae878e53f6b4f74ddd6db99f"},
{file = "black-24.2.0-py3-none-any.whl", hash = "sha256:e8a6ae970537e67830776488bca52000eaa37fa63b9988e8c487458d9cd5ace6"}, {file = "black-24.3.0-py3-none-any.whl", hash = "sha256:41622020d7120e01d377f74249e677039d20e6344ff5851de8a10f11f513bf93"},
{file = "black-24.2.0.tar.gz", hash = "sha256:bce4f25c27c3435e4dace4815bcb2008b87e167e3bf4ee47ccdc5ce906eb4894"}, {file = "black-24.3.0.tar.gz", hash = "sha256:a0c9c4a0771afc6919578cec71ce82a3e31e054904e7197deacbc9382671c41f"},
] ]
[package.dependencies] [package.dependencies]
@@ -370,13 +370,13 @@ files = [
[[package]] [[package]]
name = "commitizen" name = "commitizen"
version = "3.18.3" version = "3.18.4"
description = "Python commitizen client tool" description = "Python commitizen client tool"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "commitizen-3.18.3-py3-none-any.whl", hash = "sha256:864abe3a68328ba16cac5bc2bc9f8225b973bd14957d12716641c5da8dc36d18"}, {file = "commitizen-3.18.4-py3-none-any.whl", hash = "sha256:42c9b2c5fd3d6b83ebf850424227a8935d3e49f9fa636c58c072a370713b176a"},
{file = "commitizen-3.18.3.tar.gz", hash = "sha256:980eb09abfb27d0d16960a6ca9e40c78b8608205987d8b012e3c09347bc4d35d"}, {file = "commitizen-3.18.4.tar.gz", hash = "sha256:57b3051d4170e23a5317f348d1bc61b98e57ac01b04f66e0f9a25fef75e6f679"},
] ]
[package.dependencies] [package.dependencies]
@@ -534,6 +534,17 @@ MarkupSafe = ">=2.0"
[package.extras] [package.extras]
i18n = ["Babel (>=2.7)"] i18n = ["Babel (>=2.7)"]
[[package]]
name = "jmespath"
version = "1.0.1"
description = "JSON Matching Expressions"
optional = false
python-versions = ">=3.7"
files = [
{file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"},
{file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"},
]
[[package]] [[package]]
name = "jsonschema" name = "jsonschema"
version = "4.21.1" version = "4.21.1"
@@ -1256,13 +1267,13 @@ dev = ["doc8", "flake8", "flake8-import-order", "rstcheck[sphinx]", "sphinx"]
[[package]] [[package]]
name = "zipp" name = "zipp"
version = "3.18.0" version = "3.18.1"
description = "Backport of pathlib-compatible object wrapper for zip files" description = "Backport of pathlib-compatible object wrapper for zip files"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "zipp-3.18.0-py3-none-any.whl", hash = "sha256:c1bb803ed69d2cce2373152797064f7e79bc43f0a3748eb494096a867e0ebf79"}, {file = "zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b"},
{file = "zipp-3.18.0.tar.gz", hash = "sha256:df8d042b02765029a09b157efd8e820451045890acc30f8e37dd2f94a060221f"}, {file = "zipp-3.18.1.tar.gz", hash = "sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715"},
] ]
[package.extras] [package.extras]
@@ -1272,4 +1283,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p
[metadata] [metadata]
lock-version = "2.0" lock-version = "2.0"
python-versions = "^3.11" python-versions = "^3.11"
content-hash = "f8189968e273434ef9165ac70889da4dbac38013096d4a07851c51e296559f74" content-hash = "0d5829006d85eb49187b0458dd627a89018beb7892b1c34b088b4c25d64a7a55"

View File

@@ -10,6 +10,7 @@
ansible = "^9.3.0" ansible = "^9.3.0"
ansible-lint = { version = "^24.2.1", markers = "platform_system != 'Windows'" } ansible-lint = { version = "^24.2.1", markers = "platform_system != 'Windows'" }
commitizen = "^3.18.3" commitizen = "^3.18.3"
jmespath = "^1.0.1"
poethepoet = "^0.25.0" poethepoet = "^0.25.0"
pre-commit = "^3.6.2" pre-commit = "^3.6.2"
python = "^3.11" python = "^3.11"
@@ -20,15 +21,12 @@
build-backend = "poetry.core.masonry.api" build-backend = "poetry.core.masonry.api"
requires = ["poetry-core"] requires = ["poetry-core"]
[tool.black]
line-length = 100
[tool.commitizen] [tool.commitizen]
bump_message = "bump(release): v$current_version → v$new_version" bump_message = "bump(release): v$current_version → v$new_version"
tag_format = "v$version" tag_format = "v$version"
update_changelog_on_bump = true update_changelog_on_bump = true
version = "0.2.0" version = "0.2.0"
version_files = ["pyproject.toml:version"] version_provider = "poetry"
[tool.poe.tasks] [tool.poe.tasks]
pb = """ pb = """

View File

@@ -1,3 +1,4 @@
# yamllint disable rule:indentation
--- ---
# TASK DESCRIPTION: # TASK DESCRIPTION:
# Downloads, installs, and configures Hashicorp Consul. # Downloads, installs, and configures Hashicorp Consul.
@@ -117,7 +118,7 @@
- name: "Create Consul /opt storage and copy certificates" - name: "Create Consul /opt storage and copy certificates"
block: block:
- name: "Create {{ consul_opt_dir }} directories" - name: "Create {{ consul_opt_dir }} directories" # noqa: name[template]
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: "{{ item }}" path: "{{ item }}"
@@ -130,16 +131,25 @@
- "{{ consul_opt_dir }}/plugins" - "{{ consul_opt_dir }}/plugins"
- "{{ consul_opt_dir }}/certs" - "{{ consul_opt_dir }}/certs"
- name: Copy certs to servers - name: Copy certs to servers # noqa
become: true become: true
ansible.builtin.copy: ansible.builtin.copy:
src: "{{ item.src }}" src: "{{ item.src }}"
dest: "{{ item.dest }}" dest: "{{ item.dest }}"
mode: 0755 mode: 0755
loop: loop:
- { src: "certs/consul/consul-agent-ca.pem", dest: "{{ consul_opt_dir }}/certs/consul-agent-ca.pem" } - {
- { src: "certs/consul/{{ datacenter_name }}-server-consul-0.pem", dest: "{{ consul_opt_dir }}/certs/{{ datacenter_name }}-server-consul-0.pem" } src: "certs/consul/consul-agent-ca.pem",
- { src: "certs/consul/{{ datacenter_name }}-server-consul-0-key.pem", dest: "{{ consul_opt_dir }}/certs/{{ datacenter_name }}-server-consul-0-key.pem" } dest: "{{ consul_opt_dir }}/certs/consul-agent-ca.pem",
}
- {
src: "certs/consul/{{ datacenter_name }}-server-consul-0.pem",
dest: "{{ consul_opt_dir }}/certs/{{ datacenter_name }}-server-consul-0.pem",
}
- {
src: "certs/consul/{{ datacenter_name }}-server-consul-0-key.pem",
dest: "{{ consul_opt_dir }}/certs/{{ datacenter_name }}-server-consul-0-key.pem",
}
when: when:
- is_consul_server - is_consul_server
@@ -163,7 +173,7 @@
when: when:
- ansible_os_family == 'Debian' - ansible_os_family == 'Debian'
- name: "Set owner of files to {{ ansible_user_uid }}:{{ ansible_user_gid }}" - name: "Set owner of files to {{ ansible_user_uid }}:{{ ansible_user_gid }}" # noqa: name[template]
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: "{{ consul_opt_dir }}" path: "{{ consul_opt_dir }}"
@@ -199,7 +209,7 @@
when: when:
- ansible_os_family == 'Debian' - ansible_os_family == 'Debian'
- name: "Set owner of files to {{ ansible_user_uid }}:{{ ansible_user_gid }}" - name: "Set owner of files to {{ ansible_user_uid }}:{{ ansible_user_gid }}" # noqa: name[template]
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: "{{ interpolated_consul_configuration_dir }}" path: "{{ interpolated_consul_configuration_dir }}"
@@ -209,7 +219,7 @@
when: when:
- mac_intel or mac_arm or inventory_hostname == 'synology' - mac_intel or mac_arm or inventory_hostname == 'synology'
- name: "Set owner of root consul dir to {{ ansible_user_uid }}:{{ ansible_user_gid }} (synology)" - name: "Set owner of root consul dir to {{ ansible_user_uid }}:{{ ansible_user_gid }} (synology)" # noqa: name[template]
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: /volume1/docker/consul/ path: /volume1/docker/consul/
@@ -328,7 +338,7 @@
- ansible_os_family == 'Debian' - ansible_os_family == 'Debian'
- "'nostart' not in ansible_run_tags" - "'nostart' not in ansible_run_tags"
- name: Make sure Consul service is really running - name: Make sure Consul service is really running # noqa: command-instead-of-module
ansible.builtin.command: ansible.builtin.command:
cmd: systemctl is-active consul cmd: systemctl is-active consul
register: is_consul_really_running register: is_consul_really_running

View File

@@ -4,7 +4,7 @@
# #
# NOTE: This task exists due to the arillso.logrotate failing completely on macOS # NOTE: This task exists due to the arillso.logrotate failing completely on macOS
- name: Add service_backups.log to logrotate - name: Add service_backups.log to logrotate # noqa: ignore-errors
become: true become: true
vars: vars:
logrotate_applications: logrotate_applications:

View File

@@ -1,3 +1,4 @@
# yamllint disable rule:indentation
--- ---
# TASK DESCRIPTION: # TASK DESCRIPTION:
# Downloads, installs, and configures Hashicorp Nomad. # Downloads, installs, and configures Hashicorp Nomad.
@@ -83,7 +84,7 @@
- name: "Create Nomad /opt storage" - name: "Create Nomad /opt storage"
block: block:
- name: "Create {{ nomad_opt_dir_location }} directories" - name: "Create {{ nomad_opt_dir_location }} directories" # noqa: name[template]
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: "{{ item }}" path: "{{ item }}"
@@ -102,9 +103,18 @@
dest: "{{ item.dest }}" dest: "{{ item.dest }}"
mode: 0755 mode: 0755
loop: loop:
- { src: certs/nomad/nomad-ca.pem, dest: "{{ nomad_opt_dir_location }}/certs/nomad-ca.pem" } - {
- { src: certs/nomad/server.pem, dest: "{{ nomad_opt_dir_location }}/certs/server.pem" } src: certs/nomad/nomad-ca.pem,
- { src: certs/nomad/server-key.pem, dest: "{{ nomad_opt_dir_location }}/certs/server-key.pem" } dest: "{{ nomad_opt_dir_location }}/certs/nomad-ca.pem",
}
- {
src: certs/nomad/server.pem,
dest: "{{ nomad_opt_dir_location }}/certs/server.pem",
}
- {
src: certs/nomad/server-key.pem,
dest: "{{ nomad_opt_dir_location }}/certs/server-key.pem",
}
notify: "restart nomad" notify: "restart nomad"
when: is_nomad_server when: is_nomad_server
@@ -115,9 +125,18 @@
dest: "{{ item.dest }}" dest: "{{ item.dest }}"
mode: 0755 mode: 0755
loop: loop:
- { src: certs/nomad/nomad-ca.pem, dest: "{{ nomad_opt_dir_location }}/certs/nomad-ca.pem" } - {
- { src: certs/nomad/client.pem, dest: "{{ nomad_opt_dir_location }}/certs/client.pem" } src: certs/nomad/nomad-ca.pem,
- { src: certs/nomad/client-key.pem, dest: "{{ nomad_opt_dir_location }}/certs/client-key.pem" } dest: "{{ nomad_opt_dir_location }}/certs/nomad-ca.pem",
}
- {
src: certs/nomad/client.pem,
dest: "{{ nomad_opt_dir_location }}/certs/client.pem",
}
- {
src: certs/nomad/client-key.pem,
dest: "{{ nomad_opt_dir_location }}/certs/client-key.pem",
}
notify: "restart nomad" notify: "restart nomad"
when: is_nomad_client when: is_nomad_client
@@ -130,7 +149,7 @@
recurse: true recurse: true
when: ansible_os_family == 'Debian' when: ansible_os_family == 'Debian'
- name: "Set owner of files to {{ ansible_user_uid }}:{{ ansible_user_gid }} (MacOSX)" - name: "Set owner of files to {{ ansible_user_uid }}:{{ ansible_user_gid }} (MacOSX)" # noqa: name[template]
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: "{{ nomad_opt_dir_location }}" path: "{{ nomad_opt_dir_location }}"

View File

@@ -54,7 +54,7 @@
ansible.builtin.debug: ansible.builtin.debug:
msg: "{{ homebrew_output.unchanged_pkgs }}" msg: "{{ homebrew_output.unchanged_pkgs }}"
- name: Install homebrew casks - name: Install homebrew casks # noqa: ignore-errors
community.general.homebrew_cask: community.general.homebrew_cask:
name: "{{ item }}" name: "{{ item }}"
state: present state: present

View File

@@ -1,3 +1,4 @@
# yamllint disable rule:indentation
--- ---
# TASK DESCRIPTION: # TASK DESCRIPTION:
# Downloads, installs, and configures Telegraf # Downloads, installs, and configures Telegraf
@@ -206,7 +207,7 @@
- name: "Configure Telegraf" - name: "Configure Telegraf"
block: block:
- name: "Ensure {{ telegraph_config_location }} exists" - name: "Ensure {{ telegraph_config_location }} exists" # noqa: name[template]
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: "{{ item }}" path: "{{ item }}"
@@ -223,10 +224,22 @@
dest: "{{ item.dest }}" dest: "{{ item.dest }}"
mode: "644" mode: "644"
loop: loop:
- { src: "telegraf/base_config.conf.j2", dest: "{{ telegraph_config_location }}/telegraf.conf" } - {
- { src: "telegraf/custom_metrics.conf.j2", dest: "{{ telegraph_config_location }}/telegraf.d/custom_metrics.conf" } src: "telegraf/base_config.conf.j2",
- { src: "telegraf/nomad.conf.j2", dest: "{{ telegraph_config_location }}/telegraf.d/nomad.conf" } dest: "{{ telegraph_config_location }}/telegraf.conf",
- { src: "telegraf/docker.conf.j2", dest: "{{ telegraph_config_location }}/telegraf.d/docker.conf" } }
- {
src: "telegraf/custom_metrics.conf.j2",
dest: "{{ telegraph_config_location }}/telegraf.d/custom_metrics.conf",
}
- {
src: "telegraf/nomad.conf.j2",
dest: "{{ telegraph_config_location }}/telegraf.d/nomad.conf",
}
- {
src: "telegraf/docker.conf.j2",
dest: "{{ telegraph_config_location }}/telegraf.d/docker.conf",
}
notify: restart_telegraf notify: restart_telegraf
- name: Template leader configs (ie, configs that should be placed on a single server) - name: Template leader configs (ie, configs that should be placed on a single server)
@@ -236,9 +249,18 @@
dest: "{{ item.dest }}" dest: "{{ item.dest }}"
mode: "644" mode: "644"
loop: loop:
- { src: "telegraf/leader.conf.j2", dest: "{{ telegraph_config_location }}/telegraf.d/leader.conf" } - {
- { src: "telegraf/speedtest.conf.j2", dest: "{{ telegraph_config_location }}/telegraf.d/speedtest.conf" } src: "telegraf/leader.conf.j2",
- { src: "telegraf/pingHosts.conf.j2", dest: "{{ telegraph_config_location }}/telegraf.d/pingHosts.conf" } dest: "{{ telegraph_config_location }}/telegraf.d/leader.conf",
}
- {
src: "telegraf/speedtest.conf.j2",
dest: "{{ telegraph_config_location }}/telegraf.d/speedtest.conf",
}
- {
src: "telegraf/pingHosts.conf.j2",
dest: "{{ telegraph_config_location }}/telegraf.d/pingHosts.conf",
}
when: when:
- is_cluster_leader - is_cluster_leader
notify: restart_telegraf notify: restart_telegraf

442
vault.yml
View File

@@ -1,222 +1,222 @@
$ANSIBLE_VAULT;1.1;AES256 $ANSIBLE_VAULT;1.1;AES256
36356537616566633539396237663362346661303632303536643732653865366636366434333734 39376437663661656434636637396539303863633934376535353938656434386533323063626439
6563353731343533373639383363326631373565383937660a396565316361633838326139616563 3665306133383637383739626233663565383562393534640a396436386366303730653366363530
66313333386462643064653236653532663565316366353861636461326465656632386263313164 39383533663836613934303665613031636535646233316364313766303964666266646134343833
3835653363386539640a663430326461633736373263323936636663393037636635623433313862 3365623733383236630a616635383739636635663964323361663439336235336536626433333438
35643737393836643233323539383432303531373038323064613064656462363630653863643434 63356539353363663930363639396666386236653337313366313362326132346563663663633165
34316331626364326663356431396133643464323738613538333933393564323639346532356235 36396635616138313539653966373462363666316462313765623665303439383233353733656237
62636338646530393464313737386361313834613262663436666262313537333662383465626130 38643466393336333031326438316662386137613936626563393461613236613738306537666166
63316339313362333138356565343039623235353736383536356534643135343832313136306362 34313964346132623131623561363331323764373336613238313764653739623437656136333133
30313130616335663235636561346363383135653030663264343862643164363636623764656636 37663238653665313430653031393239636562376533346335363263373836613331333131623164
35316366663462323162376337306361333538353335326636313030356263643865383163633765 36323535633831656136633661326362646366623037386233656238616163623564653137303834
35306364613637633162663736333862653838623539373534623832653732363035633134616635 39643965363039643537303031643032333836316534336439346665316436306465663062323338
65613530663734613165336330623535356237306334656332666630616630363766656234316365 35393132346334653539343430373934323233623432386665633532366335333031356263376266
33353665393666376164306361303164643566653064623236373733623835396437633739373734 36386231613533383265346130383238316666663230643532383938663562386639326330646462
62623965663935656561353463613136396233663961383833346163366232363535346630663363 38633930343332353664363463303438643232633862646535626131633633396266353337396231
61373039366537376133336331303730646266313564356134613435366138376532366437396263 65353132653034653661316630663462633565363966326137373835316366313734646230376365
62643332366166316161393538353233383439616462636436326265353264383136356363376330 33666536333134323532363935326234393031393261393935656131366364616165643662333137
38343261346237336631653436313663393630313833383337393366636462633263653962613764 33316562663566353338346538313933313562613532383733326433653262366135353830336361
36353133633166313434373238393835326135646266663539613062363031313533656437633966 65343437346234343032323763353030663731336236623635633437393332323164666539313965
65623139656631373965663461303835633039316266636132333636646633353034313162653238 37366563383463613032333437366133343361643131353963346531313037643862363762383735
32306564653930636163313338353064333732623565383930356563303630363661666364636134 65383765386462653263343335633065623836613736663532313433396433376139633333653663
35343566613064656361393162303363666236653233643064663631616333356563643965323436 37336565656463356166636330306333636561366335366638383861316633623661396565633462
31386631383636646435633639613162346230366236316465313339316130353939346430623734 32623530326334383065346466643766383531353962666135313466633532643664356430386133
31316565656661623531396166333435323132373166646136383035666564653938383466366637 64653737326430623666313666643334313866616630313162666436373031363630613065393938
61353262306538363530356632656635323761303039363633356637333363303666343164666138 34626562346333346362643461346163396565393064356663356132663731353364363565316466
66613339373831373239313038653130356631333461323838306238663336323266353430326131 64343938613864646438326630323463323435393730643631626237303466346538376566333235
37316564633836343364666434663131326337613832323965656266393031653532333465666165 35393939626463376633306566336564663765313333616539376237323735656335646635366662
39636464656165663263366364303433313038333635656437666238636237383132616338333435 65363761616439656162363834623035346230383434653662366235343334636630383331623637
65633337303634656331623766656466306632393432623066323536303333393531666163373035 63633666646262646134303930363431343964373963393035343932393739633664373362343563
31343237653839623335636333323866376535393462623939316166396532633237623965376565 30643766643935643731613737646134303133646632313630353530376635616439666566636634
31366365386135646536313932626630393862643435656438383434356366363234383961303464 64336161336535323362616637306231376534336437633364393962666662336564643030373030
65646130663335373864613465623363336330333061663537383966666235386638393939653766 37356136336235313737316232613036366632663266306131366634386462336535303636353663
39303837613965373339383861383730613963616334346535326532303630323931336236313430 34313538373965636366356435613664313934663264666533316231623331336533396634333761
39646433613530383733353965666535373262636233356537386363613032383636663664313532 66363562623235626235346232306664636239386131353966366134393932653465636137646333
64383333333535633630636661633436626661346636363437643731353039336234343431633931 37376534313361666534383433613331663131626461373931343338643433616561336566626361
35393136376466656135343833356635306337363537386564633666663932376666633632303564 62623661323338353265356361366537653164316465316631653263636165636166366466326230
61373433303366346532666662383236393362613635346334653338393530353361386536643533 37363632653031616563323737616438666166363936386531313537653239656163353731366662
65356234303561653933326664623230323264316334303930653438666432306661386137346164 66616438303538366338326533653630636338323435636263616263306636616632616533623130
64633638626463393238393036613533383264343662316264646232346561653032353766333730 32316139356430656262343133653932356231386364393734393964343537306561383138316536
63373966313863383961306464333931316336333933343330663238363166343834636137633931 64663132393239306665353636643561336334393938643239336637303766393533323436386665
33303066646234386465616163313063383832346661303631663333373464336139623936313639 61373036623566613931366365663961396432346535633837323531323934373939383832636637
33363563616162653636616333363561653035333566346239613561303563303062613336623239 64653131333432666366393431303036353165643362383934623730323965306163303333323236
66316430663839323739356333366661656230326462663761313266363163396234313165353135 63626130373234366531386465636336663065633339386337366361316235333563653534313064
62373334336664653361623239623364363461613163636635613561386438613466616664313432 38393437383438323762616330393535326333366364666330646135636339363232333336326162
38303530636639633134333637633161356538666262353532393735646535336639633762613930 39633964373439346237363734316633376234383933666137616533313034333932353330623333
33646665363230336236623638623664666334373833393866376136346265656536316433623934 37373963363234326634663634333766616232626262663764326164333464663066636339646463
39313932636330663766346534363830356338323837383961316430616334313665383436636636 37633937666532613762313330323365323033613039316463363633316164363663653865653363
33353130636330376264373963323036393836326138346133343431363532343933613261316363 64343536333634663864333035623238316536386131613762616161636361326632353234313236
66353765346332313664636635343538376634363064366636393133623262373132376462366466 61353831666664316361613065323038326439636262363762653066396434353137373439303662
35323038363734336434613535623136323861346439636365333039386161333433363434643738 35333437616432326334333536666633616334313530316262623634386531313066666662633633
33346166616532306532343938653732326164313365323533326231666338343331363430623730 33343635666433316437386661633361336466306161653262323734623961363736643532623132
64373363313065343565316366396262386336346636643538326232373363393831343738316538 39323364656339386561333463323866356438663965393661353638333530663934346563393565
62613262353032613039373162313566343932633430386536626332653464633437663232366663 33383862633632613366313738383337636366666565353464623131316630316237653335376239
35353663316266383435653565666631366636313464623039656664303637336566373439323437 66623436663366653530323864366264666362306461613939393463353437636535656539653131
32373265386665666165333131313065383037303361636466646439323630623739626463656662 63623433346431393165346235396565373038633430366138316163613238386231363736626630
63663962343362343136656463653531653834393939613434313337623465363662636434376463 65336533663233386331663534636236393531643139386434373032666234343736336264396630
66626232303566333566333832326666333534303064393131613739343434393838316238653739 32353131356461343938633164306338366338303736353665613137316664653337313135363031
36616263316637623865376464313635653161636438653437326463633135626130336336666537 61306636613833336538663764616138633532396164666461636362336533383330343434326237
39333938666162633933386663616566626338616661383965623639623537386264316538333130 32663833313066396263636634316566383966326334396465396633363961616365383434653137
31343135363839653864303966626639316533316533633863383963363231343062376637613830 33373163363362643765313033646537386533396230333232343163333432323631386662363765
66366633656233326166663036323538353064373738626530313534313737333563663535363565 66643232323239303766643033326362373162333237383863336365336530386563663264626365
63303265346438323438633331336534383530336466666238353235653766343934313836303435 38383337646138643762623937643333383834633735356434613561626433633035386236376135
37663830646532386665343833343038633639396563613861666463326263396365613564643935 36656234666363356433356565666161303664623236303961623332353431646565613733393031
65383263336365386335393261653039656562613430653335383762343463666339323561303233 38643661376636393335643839326133653464343637393661623464336230343761353738616438
63303434353339636461613065613839656262613866346237663961666639366361333132626632 31306335396538643366643734633164393037616363623435623330396432323231313665393864
62636365663563373665323365316430353933383738613464656136613932316332346330326537 64336662386639326637373866386234343638366630366434356537666437643364613466613331
66396362386133306666356362343936336133356265633439393263306236366339353537613434 63363338333962356261346664643635373964633339373935356339666661343532386534366264
30636432656366366630626533343666653935326530343766323931373632643065666561653033 30323538656539353433613765356232386366633065366235316434626438396630363862653433
34393935316466663666326535663734383435393036376464386361613962363130336561303239 63323537616630666339653732623838666132613333386231333934393065663930653436336133
36363430373538326661633163656162393631636161326537636337343037363462356438306234 35633432363738623366376537303065306330613664626535333361383431663331623836353361
62623635353730653535333961356339313439393366626134366461653431353366633234373232 64393937316639383934383963313738313539316334356232316265623830346337343933336465
37656631333731353639646138623232366664663764613662643030316665623437393562346131 66316338343762646165643030633865343561323434636239306131373238303931633261396332
38646661383737643735633234323663343430396562303635386534393438326332653133653766 30306139343634613130646434303766356639353334663165643435666635373638623130353734
39633434666465393661323564316265316262663339353538613264383332306533323462366533 63336432653134653462633032383232343839333734653966653038343935303932386535623863
31343036313630653437323031626461396166363164643839326266663531643636653865363735 61383638383835353836626138393534353239356462396235656662613138356530316532633137
38653161643862313033653634373638316261663661386336353662396262643931366131306663 36383832623364363435363535343131373238613534393462636638663130373265326362303435
32383735326239653663386462643964646535386664303635303530323738613861306336353765 38666261633263363262333338333765343164316566363366666563643030353338656535613437
36373432303366373332636637396162353439303063646630636338343636363435643263303431 30616436656239343438313133386564383566623930353866323336643131306166393632353830
30386138356233646634376464663865633934643839303537323863373239313638336361396334 61646534356433376534376436383366323836663766376661343961626238316338633039623539
33306666386430633037316439306334336538363763353436393636653130633634653837633034 35346637633963346464616361613862333662663239376635346437346436393736346130343534
66313430316566343439616632623036306664623362643232616532323666663566373137626238 32313736613936383339323738316335633039626563303136373363316365336565633062373065
62613462383737626466363661343361636236336535643464383566306362626465373234636530 62313632336138626665373365303463623264623034623538336461333962343432353435396162
32646235646338316137393863613265336262643265623039623435613538383863343065356533 66396264326661323865393638343166373336653561373437313266636536623534333165323537
33643136643564363466386532353666303833366364366339336466623561643466623262373765 32396331353964316231306466653237393430313736393932323365363239353264616565326466
37333463376635383232623230316235373439313861393032633262383437313034313439623965 34643866323736303730356433326463306536383662316566653738613636363061623261313239
65303032623963643862373365633661343361343438356566623538633934346637353530343733 62663961343636366631613732343363366165383335613635616433316539383035623762336363
64393333363965323432623663303961633162623731633135343336626464333663326631353532 37373764343038393136373139613565363838343435333730346430396535333533643534363532
31653566343134656662386666313439323363336164313564643436396239663964363831656133 63376332303162633533666439303065366162653838393333313738643662303135353665373338
66656366393137376330313532306233383933306634373664333930663166633262393364386666 35326436393233623961383263636134393038373435666131616332323462653337303162346363
63626161343138643235303865326530393262363031376638386439303962346235663035393937 37633735376432663236633234383166306132633037303731373735356663626539333362613132
39373264396333346663376164623336386335643632653431663736303366346161656635353036 64313838626136356663323936356337623561633364303438353038666539363738616537653364
62363864386537643939343838633833323730653936623831343134616563623437366238303462 34646535306462666164626566323739623333306132396534343938313766663836643534396335
39393633653434363361663833636235613934386338386138306332303337353636336333346466 33306330356337653663666337313039376464633132383933323732313235393338346239303664
62356561616631383538633734376139663565613936346265613462363735353161323366363734 66666561396331653636646530616534616132363834386436623634366339623538383065363836
31653436313134326664346639336461616630316135323539336430326631366633346631643963 33313131303533616335366339333239313031346365353461326430643666666534613637616564
64376164373736313865356364633436643432626535366339376339663430613337303832353333 66623264303263663261653034383661306261366263303233336231386265393164393231363263
31636634326139633236373630333036643636653134353433303239373235303331633633313530 63396334303431623833313864353263663538623165656230316232646464383335363732333833
32353765396237396334313065356339393538663035346661613463323465383132366363313763 35383030396138313635613966336639623330626662383835333336646632313338353239313262
34363931373239353962646163313231633665363939303766633939393334396366363038333334 36663431373464363734376136393362653536636436386139643438643362386631663161356636
36383361393465643831613035356565333332616135383033653931323366343839646131303165 37653337306435633365333039663832353331653030393161353338656532323130353230383862
35613634356533343939313963346138626239623362316662383537323333373631663831383864 37636633666361373430663139646466643530313336616139663539313838346233326634366138
35353064376262366335303963636236313136393834663434316462326333363236326336313561 61656161383838356662393366643537633438623066306134636332373735363536653031643064
66376364383132323235303038373036373137363036333035383265306334336665643932613037 66363033336533393739366235346264656432383065633364333838303766643938396362393935
37343930396261303236303839393537616339373135316233633964623465626630353634633533 30353363343839333536393866366561393261623863383964373366626666323363323664333962
33653963353135336130636632356336633365373336336433316661323231396362326536346535 32663064366133386263306262656564613563653066313732366134383166313362383832393561
65313364666164366265613433663939616631343762656661393565653933356431613962633534 66316563643733633062326530366263323339353039326664643935346235316632386337396266
39353632656232653265303631626631353634613136363232386165633865383835343365376263 66363836666639313066333736653535393435653631316132323637316234303032366664366537
62643465313130646266343366363837373439383831333066306666366533313137373030396331 30373739363136393037613039623761343261346633343066633462616535313037316535376639
38613638323636336436386332333963643036326430363862623065313837333263336430343333 33653232373237613933616531393130356466363761316531353234663334343630363736383465
37373262623762326631616665653361363162313437313962393736323162636461326639333632 37623063323065363130303661633939663436646435313834636437653938396264646137343561
39383833646234336639653061353632633461613937363136633133333164383939643630336636 31373937346337396338393666666264636632343961343461646134653338373164313238313030
34646531333238616365613832636665346532343830623737336662633762643138343565663331 38326231343838623730633334356162303934393538333035356139613939353833326637633933
31313534653937653365303765653031333261363365383339663039653165643966666266396531 34626363616239363661346665333232646230316534666436333335363038303033356232326231
36343539323664616564343566643737363862613438303966333932346230393165653934386332 33333034373833353530376435303135313230313361326137363737643733363961616265343764
30333430343934336661646663343062383938396366343333353531383930373636646364326232 30303730623536303731633561333162373036316263376461666265363133363836613666353732
61353862396532373231303163353639356564626539653064636264373533343935366162343131 39343637333538303830633064313432646239336539346136323537356663373464303862653232
31313438303537653138303731616335386535353761646161636231396263646338353831623665 61653235303638376161326531626339616164353636306162353739316666333537633836636562
30333837363837666433396133633166396636613139323461663833643837343162656164326637 64626432656438376238633763356565356365623739616663303639646431393465376439643538
31383166313261333730336239376633323563616164343662636561623337316536313438623931 38326436313563396536383162316365383065653866663138663265373131333437626664366638
32396230623637366566663635613361346262386361343566643731386237373337383538383730 32633033366138663263653639376534633933323633326332636335303262373931656539356230
37346635323933656437393665323265666366643937643438316163656239383139623566613937 31643061636139373362343735396337313534316230646435333036636238393131353635393061
64376334636465626132356537366337393434643330663432393733393532633537356332376139 37313031633566396336353664626431376238336363323164393562613335613361623932393635
62323836663633623365393262393764636433303465663166656163643834393932656666316237 39613633626437383932323063353238366466663365396134663431303334333866323134646137
33633537623535353735373265373734613565396432613337646134363238363339636135313262 61336233356437323362346661373566633363353431323138316262343865636239376165353031
36636164636563373437366431393664646630656636333831313665363637666232616237326365 33613432633239626336323964646461643233313633636239333430346463323334373863303736
63656133353635336430626339643437636261363837306364636436393661323330646338353934 61343566383135653736663761643461343866373930616165613166336230616639316332663764
61336239343730316264356265616262386434653431356463336130613265633066363838666465 35323438633339383736383539383836613436313036393262316362663038336134366263376365
66643238666331373333333034623866616539663630616538623366383432666231323239653262 30616231633536643138383235393362306435333536363538353936626532366439366534646535
65636535323530323439363034666135343138373938643964343032653963663464643863626161 37653563623839633133396430376464326336663233396234386264386331366366356632313366
31323561393064303634616333306333663033646464353161666465376631336633653334363837 65363332363661623739623563303064626230363966643137616337383366343236663638326130
34393664386262313061613439336237636434636261666231313063636431343334303732373335 61316637336430643539656266396435623362633465366132653036353435386635653034376266
66373561643663376535363634343637336565396434376432303164376162316539363532666363 30313466366538373832393363313661653936303035363136343739336239356461356433393964
64333262353537616466393238383362303366633563316336633739393735336437623431613230 32393239343238366262616662373235633763383532613961653164303234663231313038393237
63333965316236623235633464316635363835666632666439383836643036653561313064306136 66353836623437653164373165393834366162623138653363316231306131383438653265663866
31643034383361393038346564373732333933626638306534613766386139643239353734653466 35643433636230363232303837323939366131613933366137373861303538633830303631313765
62633461343831646363383565326166333339646562343539383731366239316531616434616335 38313838313538643437613965353430386231376263643938343365333433313864313039336466
37643136663937313962326139643539336331663830313235366137386664373666623436646430 65323531616439333363373433663464373366653834643861373566373631316339643330393232
35656232666461366238333164633430636639393065316531336166623133353762663962306461 63373962353737303232653562303834323766353932323130303565383934306366636666626666
34646339633963376162353331353739643730353637663933643866346166623866616562393230 36376136333962643663333730336161613466306261636531353935336631373635663662356139
65313962653432393866623163366465333436356464353934653436303237373039363162383363 64383635333864333638316433303463616534376661333433313664623536303532613532363733
36623838666136323564623033323165613862656164613831653333623835653131626137633066 63356535336239333262323432643932636164623833656237623831373062663261363330393664
62306332383630636437656136346130653036656235336335636234343065386161363664393735 62646337343536356434336463386337373963363832306338316139636430363530346636353765
38333865653133666430643330353963313131613261366362373237616337396166326232303536 35303963636132313264666133633837356563386537646464636563303734653062393331333561
61346435643861353739393362343565646462303430623966393763656536613162633836626536 65346134386136353433326234616635393632383934363862636130346532303561336632636437
33613465633231616561656264383337646461646661366564623535656161643366353135333830 65616230373063323063326663613131663162326530326466306331353237303462396639663934
63383739313736333231383365383562323665343061663363396432393266323738343139616530 35333035353831383664336133636363363930353866383237363666393365323837306562393838
65323465303234323035383334616532346664343765353465386465323264313530616334613161 32343431643062393532396339383539353863643466653235363963336136313836393663623132
30666639313737323337366165656539383932663035396565636331363536613665353166666237 62376634333630353532653436643333636330303334366565316538313138396566663834353334
64303162626463663538376533316237353530396637333336326163343364306630326338373532 35613830326430393433333539373938323435623061323833653736663938306366636335333964
63333432336636616233633137306535623439643963323632623837343538376362636530323861 35303862326561613038643765643066636665663734336434616430356666393861666661303430
36303462326133623239613661393333386465323431346465616237366332316639636134343036 30636437663738633463303561353566393035613134313664633037373261646337663736613562
35343466333030383436643231313239636365666435643864653230643163383938663862643130 37393934653437343736386438633234653764653736636265623563666362333431633765326331
39353661366531306639613133396433353462653835613237636338326131346439376633616131 62396135613637666237303164323661303461613739316538663633626639353932366363626331
36386633623030353832376263643461643234353561323662353636623863373961353564326539 38383033643965616232333138613761613933323934356530623763363162613464653736333639
39616561386336636563373264636361626233616365356636383236616634646238316233383634 35666339393866373431623663383130356532656263643332373064363864346639326635353132
64353735623832626435616361333763303837616430613837393439626134383431393232393436 38666534346133623232636635383335376438343434633633303531636163303736333738656364
63313164646639633763313066666163316432343266336265626263306432346332383732643733 38373864313066376361626163333162323138663936386232383034366437393737353833386664
34376461613737356538373566306162376136326363643933353833373837666465383436636565 33303935666264633465366363333932396139643964323066336565623334393239393132343236
63306338373430323466613734326265383435306666336664313362353436646636333034333764 33366536653864656233663461396432386437363239323064333234313937373033323962336231
37343538316462653736323831323064623061366564373066666531633234653462316538363236 61313331636334313365306133646339643731303732356136633130386261656263616435623866
31373262353662303932633762326165633264366163383939353936353934316233386237666561 30353031373939303236313235643963623338643531386265656230336434373365303432386262
32333230333635353037313930613566326632613934363934393437396266373531636336393036 37356631376661326266343266613862333737303630316637363333623632633832653534346232
65376432303833346339623263366631333532356362366665343731613137323738613261396566 30623535393934303332653537316133396639366331323865366333663638653730366431666463
32383438313636323731313532616531396239326339393233626361383438653462613833633234 34366632626665353731616637393132353531613232356538613764376361616536313430633965
61616432393930333233313664653539353230353362323338376336396336343537376533366431 37643836363366656666653366383233623231333364333661656632336137383732363435353933
61356430363032613066376333306137326433343232333938633230316463336238373333363833 36353038653835643632316563383930376462363238386361303939343730316537313662626164
34633065353237326266626139386230336161663864333231656136666439343864386465393937 34613065306332333433653766396365396332353839383562326361373939356662396361613362
34366364393136363662396666333737613138313534376131316233336364313761613637646365 63623030353463396131336361653730646537303066653636633239333634386663366637346465
66333630386437363265313434333530383432346566396437666132313331656335366231393263 61626633633436316233646432323534666333396238363366313433656134646566333862623833
34313537343034663765633666616630386434383766333239633538386339663438393632646564 61393263376638353634333338653763363639383136306165393736663865616337643864333432
39333434326439363635376565363065346464393961353732666461326631333236313763366230 35366563643637363465303930333062396165643366366464373636373463326663333162613361
35326134616431343066353939633834616461343333363364633837613361353936336363373264 33323032626433333664333161623031316430383939613533313534393833303935343865333262
35356639393265653561343062396339326165383261333630326435646631303538616562326334 66396366383233356436663762316231656535626237633739613765356238386339333331363031
65383165356166333239373237313464323334303936336131343730626164313962343063623962 32616238313137376635623631303232616330303037373433376333313763626262643636636638
63643237326534623035613138346130376237393238353038643335316533366531613234333737 36353738373036343535616337663634393764633062306435396263343032323032353130326137
32363739303031653435323530623565663531653938336165316364383736336265306363633637 38613134306438626331636633346361336161633831353761623236326638663462653039643961
65323535376264383733613163373733363131386639623866323737643363633438613937663639 64653938613361336463663532366431316138356236633637313133333961316266326132653730
63303461363466643961666537333538316133656530623066643538393463303163626433636330 65333266666566373962363962356132383531656130356465383363356166303764643863303531
33356166343063623431383233396262626134666135316130313933396563623763343536623439 33363137356237616361316565336536376236353637633435633433356161316361313330643834
62663232316436646339323764373138313432326132643937353032353361326364663364386234 34626664323065666166613530373664623635643566613333353565616439383365383962633230
62313864613737626563366333646336336439656532343630373061313863623032636334663835 65316437373430623561346333363463613531356333356234663338633338316161633039323964
62663131663533356636343064356462383762323764646539303261646665613131663534353836 62376534373636376166383166393139613331323937306138396232653762653765386231616637
65383835396537323563303738313131363337626233343539366664623830336363666263653862 33376338346532363366383438353266326366626434336430616566653438313334383337613939
61653937643335616335663566643263353262316664316432663134613161623462373735313763 64366136323631653766616232386438656635333964343439633666613834613361393262653462
66393966343064643438343965393066383665656365316432343132376265366538643331643239 39383336356233343436313036643435303639343435356365333765653464656238336338323034
37363261616364636432393735643932323334373165643032323663366662393164393238643461 30363039623866346539323739393664623564373230353533383631663137313533366538373537
31353330623863656134643736376561323332303938366264376464623862613438373439373834 32346134663533353063323639383735323365336133373334343233303961663631333864373134
65623532653434656139663865346635643639653431303631653761646139333739383332333063 62306432643663646663353065643565626538343538333431616364376535616261656431626263
36333861383631313038356535643737353266313961386666303134663766366330326537656463 39643136623964336630353231346637613437333437616265353630616533383761356430343633
37366564306336363762373933343836663164383334623139616530313766353138636331306138 37303737336335633661363663326561323433613431653264653635653766353030373437653333
31303636313065646639343432363464313537366636653165356639663763616133663139613135 32393935613831636333313735613066306166643734303731363038343532363638386130343837
61363831313831306137386432363532653638613830396133613433326633343832366236313862 39376537336437393263363662313831353633343130626365616431383663633235306238396439
32383235313866636562393330376566653935623738333234616634396161396133653362393333 35396461303136323733346638306430643030646262623661643764336264666161373263356535
35663733306139386234316439623164383964376635653234333863343639356233356136613763 38336234326631303838313538343061653037366366316236383333623563323264643462326531
33313532656264393738306564363037363333386563663131343136666337373665343836626562 35373061653734663766663063613466333836333566343562616666646566313163636266663961
65373933653466393236326230666263333866313037393564383137646632666631386435353163 37623035383632353735306661313530353334656563323866616462626565313035663739343663
66303335393234613166656634346634656537396566653264313230336464623535356537326464 66646332653939666163636432396332316563356534336463326466316133333731636534383734
66666238353132393536636337373265343732613864393432396163343762316364663232343865 36613936393064376361343437303365643534653961616634656261323335336335373932343535
64613430333266646336386662386332613736333166356532353930336465343833366361336432 36373263666665393164393563316166363938333462643736626235303231316562393334373736
38343365303864353865626135393966653465333430336561663537626433623532646635626362 65353961313065636332353432333539636431353833333337346636356661633565646339393865
34306165323437623063643433646264376565333633303132313863386234643065643861326237 33666230383462363136336665396463393862363637316634616262386363303062356663343265
39316332313163333137313461313332396462663333313061643934363834653861333966663737 39666466303337643637343665356330373938653066346139653365346263623437363539313334
65393266343931653235343635386438633862386438326665326532633564343139323334623337 65313834366239326161323535336339303764353736623365663336353763383061396630656631
37346232636162643163636661633964633062323833306266303838623961363837363935303435 36623961633166353261393536663234623335323063343764363864656139623633393932616665
61386665616430343832616436616163353835653037376138393139373865373336613263653730 32356138613135616163613532316231366137326131346366313638386335393664383061326631
61656438646665393731386430366564393537356431333737353734656135336266323435656232 30653933323434303931653465376132313831326235343563663932333233633033613962633532
62303031323463656666633130623565373431336362373863373630303331643035616166643166 39343065653934383565376262663262633637313864346363643631353564306337626335306135
31313563336333316162656437333161343637353838633336393566396565623531633639313166 38356430626566366634313538336563393262396434303463363561646165313330646561333366
35646636613262303966326663316666386235323861303530346637623363663230343464666362 37333931316432346561623535313735313331373664393931383166663133373263383766343539
31633565313235623864636463636334306437663830366336313439636136326664636432326361 66323338366637343133633735373465313266626465323237656563343137363763643634333536
31383262303338353730336335376564373562663865333031396634643832386437323338386266 37353635643835656461316438653961346131643535643461383632613436653634666439643739
39343130626432663764383164663333356664653361353665653735306530626163336264356632 62323234633230326433383164386532326339623838336130393264666561323063396137653534
35353730363834323363303665636532643432346464306562663835616661376666663464326233 65643036316131313330353265633564383164363365303838376535623639383239323433656165
38633436326538393236613164323765613861386538653035396131366561336166303161303133 61363933333737306331393166316666316561663262613261646533666365623531663130326564
30323663643136636261393639363738303032663733313739316662356338663734633535356666 64656134316438363431366434303836383666316435373762343739663136643337343531393166
63393932373563633162626664613264303131383838663766313832306337643063653830643338 35356663346564316436663031636262323764376231663238613233353231666564313333666331
33343833626137656663626239613232343931336535383134613130643738336130646533336564 34616565636261343963646435313536326364303130336137323234393432343437386137363630
61326261333762336131356230656233353739653863653632343161306462616463656534663863 33386632353730333563626163656366646133376465383430616637653065373962306532616330
66323233613265353166343264343262336336636331323236656561393334636630616539393530 36323466373339386139316466373163383363376262643264323332343064656464363134656563
65653963633034373635373564626565636137363961333031313038363362393762373236373932 61316462333462303139653361303765613062633265616335313032306165633033666432616138
62656339306466663065336165633163303038633230393731363561313533626364613964363833 38356635646431306462393061643363323335386666616666353063646164623338363265623166
66623430626264633331656266353431386463383833366132333231633838613332 35663532613666613765313861353832336233653564653734656339383935623538