diff --git a/.ansible-lint.yml b/.ansible-lint.yml index bfc1236..df6a2d5 100644 --- a/.ansible-lint.yml +++ b/.ansible-lint.yml @@ -12,21 +12,21 @@ exclude_paths: - vault.yml - .venv/ - ansible_collections/ - skip_list: - - name[template] - - ignore-errors - - meta-incorrect - - meta-no-info - - package-latest - - role-name - - unnamed-task - - var-naming - - latest[git] + - yaml[indentation] +# - name[template] +# - ignore-errors +# - meta-incorrect +# - meta-no-info +# - package-latest +# - role-name +# - unnamed-task +# - var-naming +# - latest[git] -warn_list: - - experimental - - risky-file-permissions - - command-instead-of-module - - no-changed-when - - command-instead-of-shell +# warn_list: +# - experimental +# - risky-file-permissions +# - command-instead-of-module +# - no-changed-when +# - command-instead-of-shell diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8becfd0..b79731c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,7 @@ --- repos: - repo: "https://github.com/commitizen-tools/commitizen" - rev: v3.18.3 + rev: v3.18.4 hooks: - id: "commitizen" @@ -48,6 +48,16 @@ repos: hooks: - 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 hooks: - id: vault-pre-commit @@ -64,13 +74,6 @@ repos: pass_filenames: true 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" name: lint shellscript templates language: system diff --git a/.vscode/settings.json b/.vscode/settings.json index 042633d..1799f1b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -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": { "**/tasks/*.yml": "ansible", "**/handlers/*.yml": "ansible", diff --git a/default_variables.yml b/default_variables.yml index d4bfe31..b95329d 100644 --- a/default_variables.yml +++ b/default_variables.yml @@ -1,3 +1,4 @@ +# yamllint disable rule:indentation --- # ---------------------------------- SOFTWARE VERSIONS 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_nfs_mount_point: /mnt 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 }}/media", src: "10.0.30.6:/volume1/media" } - - { local: "{{ rpi_nfs_mount_point }}/nate", src: "10.0.30.6:/volume1/nate" } + - { + 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 }}/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: - - { 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: smb @@ -50,18 +66,36 @@ mac_localfs_service_storage: "/Users/{{ ansible_user }}/Library/docker" mac_storage_mount_point: /System/Volumes/Data/mnt mac_keep_alive_file: "{{ mac_storage_mount_point }}/pi-cluster/keepalive.txt" 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 }}/media", src: "10.0.0.6:/volume1/media" } - - { local: "{{ mac_storage_mount_point }}/nate", src: "10.0.0.6:/volume1/nate" } + - { + 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 }}/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 mac_nfs_mounts_remove: # - { local: "{{ mac_storage_mount_point }}/pi-cluster", src: "10.0.0.6:/volume1/pi-cluster" } 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 }}/nate", src: "10.0.0.6:/nate" } @@ -112,6 +146,7 @@ apt_packages_list: - python3-pip - rsync - shellcheck + - tailscale - unzip - wget - yamllint diff --git a/inventory.yml b/inventory.yml index 3157f6d..b412a7b 100644 --- a/inventory.yml +++ b/inventory.yml @@ -106,7 +106,7 @@ all: ansible_user: "{{ my_username }}" ansible_become_pass: "{{ mac_become_pass }}" 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 mac_intel: true is_nomad_client: true diff --git a/main.yml b/main.yml index 44a7c5f..225d85d 100644 --- a/main.yml +++ b/main.yml @@ -76,4 +76,5 @@ when: is_tdarr_server or is_tdarr_node handlers: - - ansible.builtin.import_tasks: handlers/main.yml + - name: "Run handlers" + ansible.builtin.import_tasks: handlers/main.yml diff --git a/poetry.lock b/poetry.lock index ef133e0..70378c2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -119,33 +119,33 @@ tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "p [[package]] name = "black" -version = "24.2.0" +version = "24.3.0" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-24.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6981eae48b3b33399c8757036c7f5d48a535b962a7c2310d19361edeef64ce29"}, - {file = "black-24.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d533d5e3259720fdbc1b37444491b024003e012c5173f7d06825a77508085430"}, - {file = "black-24.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61a0391772490ddfb8a693c067df1ef5227257e72b0e4108482b8d41b5aee13f"}, - {file = "black-24.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:992e451b04667116680cb88f63449267c13e1ad134f30087dec8527242e9862a"}, - {file = "black-24.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:163baf4ef40e6897a2a9b83890e59141cc8c2a98f2dda5080dc15c00ee1e62cd"}, - {file = "black-24.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e37c99f89929af50ffaf912454b3e3b47fd64109659026b678c091a4cd450fb2"}, - {file = "black-24.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9de21bafcba9683853f6c96c2d515e364aee631b178eaa5145fc1c61a3cc92"}, - {file = "black-24.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:9db528bccb9e8e20c08e716b3b09c6bdd64da0dd129b11e160bf082d4642ac23"}, - {file = "black-24.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d84f29eb3ee44859052073b7636533ec995bd0f64e2fb43aeceefc70090e752b"}, - {file = "black-24.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e08fb9a15c914b81dd734ddd7fb10513016e5ce7e6704bdd5e1251ceee51ac9"}, - {file = "black-24.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:810d445ae6069ce64030c78ff6127cd9cd178a9ac3361435708b907d8a04c693"}, - {file = "black-24.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:ba15742a13de85e9b8f3239c8f807723991fbfae24bad92d34a2b12e81904982"}, - {file = "black-24.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7e53a8c630f71db01b28cd9602a1ada68c937cbf2c333e6ed041390d6968faf4"}, - {file = "black-24.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:93601c2deb321b4bad8f95df408e3fb3943d85012dddb6121336b8e24a0d1218"}, - {file = "black-24.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0057f800de6acc4407fe75bb147b0c2b5cbb7c3ed110d3e5999cd01184d53b0"}, - {file = "black-24.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:faf2ee02e6612577ba0181f4347bcbcf591eb122f7841ae5ba233d12c39dcb4d"}, - {file = "black-24.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:057c3dc602eaa6fdc451069bd027a1b2635028b575a6c3acfd63193ced20d9c8"}, - {file = "black-24.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:08654d0797e65f2423f850fc8e16a0ce50925f9337fb4a4a176a7aa4026e63f8"}, - {file = "black-24.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca610d29415ee1a30a3f30fab7a8f4144e9d34c89a235d81292a1edb2b55f540"}, - {file = "black-24.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:4dd76e9468d5536abd40ffbc7a247f83b2324f0c050556d9c371c2b9a9a95e31"}, - {file = "black-24.2.0-py3-none-any.whl", hash = "sha256:e8a6ae970537e67830776488bca52000eaa37fa63b9988e8c487458d9cd5ace6"}, - {file = "black-24.2.0.tar.gz", hash = "sha256:bce4f25c27c3435e4dace4815bcb2008b87e167e3bf4ee47ccdc5ce906eb4894"}, + {file = "black-24.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7d5e026f8da0322b5662fa7a8e752b3fa2dac1c1cbc213c3d7ff9bdd0ab12395"}, + {file = "black-24.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f50ea1132e2189d8dff0115ab75b65590a3e97de1e143795adb4ce317934995"}, + {file = "black-24.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2af80566f43c85f5797365077fb64a393861a3730bd110971ab7a0c94e873e7"}, + {file = "black-24.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:4be5bb28e090456adfc1255e03967fb67ca846a03be7aadf6249096100ee32d0"}, + {file = "black-24.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4f1373a7808a8f135b774039f61d59e4be7eb56b2513d3d2f02a8b9365b8a8a9"}, + {file = "black-24.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:aadf7a02d947936ee418777e0247ea114f78aff0d0959461057cae8a04f20597"}, + {file = "black-24.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c02e4ea2ae09d16314d30912a58ada9a5c4fdfedf9512d23326128ac08ac3d"}, + {file = "black-24.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:bf21b7b230718a5f08bd32d5e4f1db7fc8788345c8aea1d155fc17852b3410f5"}, + {file = "black-24.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:2818cf72dfd5d289e48f37ccfa08b460bf469e67fb7c4abb07edc2e9f16fb63f"}, + {file = "black-24.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4acf672def7eb1725f41f38bf6bf425c8237248bb0804faa3965c036f7672d11"}, + {file = "black-24.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7ed6668cbbfcd231fa0dc1b137d3e40c04c7f786e626b405c62bcd5db5857e4"}, + {file = "black-24.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:56f52cfbd3dabe2798d76dbdd299faa046a901041faf2cf33288bc4e6dae57b5"}, + {file = "black-24.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:79dcf34b33e38ed1b17434693763301d7ccbd1c5860674a8f871bd15139e7837"}, + {file = "black-24.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e19cb1c6365fd6dc38a6eae2dcb691d7d83935c10215aef8e6c38edee3f77abd"}, + {file = "black-24.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65b76c275e4c1c5ce6e9870911384bff5ca31ab63d19c76811cb1fb162678213"}, + {file = "black-24.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:b5991d523eee14756f3c8d5df5231550ae8993e2286b8014e2fdea7156ed0959"}, + {file = "black-24.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c45f8dff244b3c431b36e3224b6be4a127c6aca780853574c00faf99258041eb"}, + {file = "black-24.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6905238a754ceb7788a73f02b45637d820b2f5478b20fec82ea865e4f5d4d9f7"}, + {file = "black-24.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7de8d330763c66663661a1ffd432274a2f92f07feeddd89ffd085b5744f85e7"}, + {file = "black-24.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:7bb041dca0d784697af4646d3b62ba4a6b028276ae878e53f6b4f74ddd6db99f"}, + {file = "black-24.3.0-py3-none-any.whl", hash = "sha256:41622020d7120e01d377f74249e677039d20e6344ff5851de8a10f11f513bf93"}, + {file = "black-24.3.0.tar.gz", hash = "sha256:a0c9c4a0771afc6919578cec71ce82a3e31e054904e7197deacbc9382671c41f"}, ] [package.dependencies] @@ -370,13 +370,13 @@ files = [ [[package]] name = "commitizen" -version = "3.18.3" +version = "3.18.4" description = "Python commitizen client tool" optional = false python-versions = ">=3.8" files = [ - {file = "commitizen-3.18.3-py3-none-any.whl", hash = "sha256:864abe3a68328ba16cac5bc2bc9f8225b973bd14957d12716641c5da8dc36d18"}, - {file = "commitizen-3.18.3.tar.gz", hash = "sha256:980eb09abfb27d0d16960a6ca9e40c78b8608205987d8b012e3c09347bc4d35d"}, + {file = "commitizen-3.18.4-py3-none-any.whl", hash = "sha256:42c9b2c5fd3d6b83ebf850424227a8935d3e49f9fa636c58c072a370713b176a"}, + {file = "commitizen-3.18.4.tar.gz", hash = "sha256:57b3051d4170e23a5317f348d1bc61b98e57ac01b04f66e0f9a25fef75e6f679"}, ] [package.dependencies] @@ -534,6 +534,17 @@ MarkupSafe = ">=2.0" [package.extras] 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]] name = "jsonschema" version = "4.21.1" @@ -1256,13 +1267,13 @@ dev = ["doc8", "flake8", "flake8-import-order", "rstcheck[sphinx]", "sphinx"] [[package]] name = "zipp" -version = "3.18.0" +version = "3.18.1" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.18.0-py3-none-any.whl", hash = "sha256:c1bb803ed69d2cce2373152797064f7e79bc43f0a3748eb494096a867e0ebf79"}, - {file = "zipp-3.18.0.tar.gz", hash = "sha256:df8d042b02765029a09b157efd8e820451045890acc30f8e37dd2f94a060221f"}, + {file = "zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b"}, + {file = "zipp-3.18.1.tar.gz", hash = "sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715"}, ] [package.extras] @@ -1272,4 +1283,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "f8189968e273434ef9165ac70889da4dbac38013096d4a07851c51e296559f74" +content-hash = "0d5829006d85eb49187b0458dd627a89018beb7892b1c34b088b4c25d64a7a55" diff --git a/pyproject.toml b/pyproject.toml index 3dff532..204d896 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,6 +10,7 @@ ansible = "^9.3.0" ansible-lint = { version = "^24.2.1", markers = "platform_system != 'Windows'" } commitizen = "^3.18.3" + jmespath = "^1.0.1" poethepoet = "^0.25.0" pre-commit = "^3.6.2" python = "^3.11" @@ -20,15 +21,12 @@ build-backend = "poetry.core.masonry.api" requires = ["poetry-core"] -[tool.black] - line-length = 100 - [tool.commitizen] bump_message = "bump(release): v$current_version → v$new_version" tag_format = "v$version" update_changelog_on_bump = true version = "0.2.0" - version_files = ["pyproject.toml:version"] + version_provider = "poetry" [tool.poe.tasks] pb = """ diff --git a/tasks/consul.yml b/tasks/consul.yml index 6cd337b..d43bfc6 100644 --- a/tasks/consul.yml +++ b/tasks/consul.yml @@ -1,3 +1,4 @@ +# yamllint disable rule:indentation --- # TASK DESCRIPTION: # Downloads, installs, and configures Hashicorp Consul. @@ -117,7 +118,7 @@ - name: "Create Consul /opt storage and copy certificates" block: - - name: "Create {{ consul_opt_dir }} directories" + - name: "Create {{ consul_opt_dir }} directories" # noqa: name[template] become: true ansible.builtin.file: path: "{{ item }}" @@ -130,16 +131,25 @@ - "{{ consul_opt_dir }}/plugins" - "{{ consul_opt_dir }}/certs" - - name: Copy certs to servers + - name: Copy certs to servers # noqa become: true ansible.builtin.copy: src: "{{ item.src }}" dest: "{{ item.dest }}" mode: 0755 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/{{ datacenter_name }}-server-consul-0-key.pem", dest: "{{ consul_opt_dir }}/certs/{{ datacenter_name }}-server-consul-0-key.pem" } + - { + 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/{{ datacenter_name }}-server-consul-0-key.pem", + dest: "{{ consul_opt_dir }}/certs/{{ datacenter_name }}-server-consul-0-key.pem", + } when: - is_consul_server @@ -163,7 +173,7 @@ when: - 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 ansible.builtin.file: path: "{{ consul_opt_dir }}" @@ -199,7 +209,7 @@ when: - 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 ansible.builtin.file: path: "{{ interpolated_consul_configuration_dir }}" @@ -209,7 +219,7 @@ when: - 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 ansible.builtin.file: path: /volume1/docker/consul/ @@ -328,7 +338,7 @@ - ansible_os_family == 'Debian' - "'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: cmd: systemctl is-active consul register: is_consul_really_running diff --git a/tasks/logrotate.yml b/tasks/logrotate.yml index ea2664d..cf0534a 100644 --- a/tasks/logrotate.yml +++ b/tasks/logrotate.yml @@ -4,7 +4,7 @@ # # 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 vars: logrotate_applications: diff --git a/tasks/nomad.yml b/tasks/nomad.yml index 9578358..e443d9d 100644 --- a/tasks/nomad.yml +++ b/tasks/nomad.yml @@ -1,3 +1,4 @@ +# yamllint disable rule:indentation --- # TASK DESCRIPTION: # Downloads, installs, and configures Hashicorp Nomad. @@ -83,7 +84,7 @@ - name: "Create Nomad /opt storage" block: - - name: "Create {{ nomad_opt_dir_location }} directories" + - name: "Create {{ nomad_opt_dir_location }} directories" # noqa: name[template] become: true ansible.builtin.file: path: "{{ item }}" @@ -102,9 +103,18 @@ dest: "{{ item.dest }}" mode: 0755 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/server-key.pem, dest: "{{ nomad_opt_dir_location }}/certs/server-key.pem" } + - { + 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/server-key.pem, + dest: "{{ nomad_opt_dir_location }}/certs/server-key.pem", + } notify: "restart nomad" when: is_nomad_server @@ -115,9 +125,18 @@ dest: "{{ item.dest }}" mode: 0755 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/client-key.pem, dest: "{{ nomad_opt_dir_location }}/certs/client-key.pem" } + - { + 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/client-key.pem, + dest: "{{ nomad_opt_dir_location }}/certs/client-key.pem", + } notify: "restart nomad" when: is_nomad_client @@ -130,7 +149,7 @@ recurse: true 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 ansible.builtin.file: path: "{{ nomad_opt_dir_location }}" diff --git a/tasks/packages.yml b/tasks/packages.yml index 67b49a4..1c54c8f 100644 --- a/tasks/packages.yml +++ b/tasks/packages.yml @@ -54,7 +54,7 @@ ansible.builtin.debug: msg: "{{ homebrew_output.unchanged_pkgs }}" - - name: Install homebrew casks + - name: Install homebrew casks # noqa: ignore-errors community.general.homebrew_cask: name: "{{ item }}" state: present diff --git a/tasks/telegraf.yml b/tasks/telegraf.yml index 4509d2d..94f1659 100644 --- a/tasks/telegraf.yml +++ b/tasks/telegraf.yml @@ -1,3 +1,4 @@ +# yamllint disable rule:indentation --- # TASK DESCRIPTION: # Downloads, installs, and configures Telegraf @@ -206,7 +207,7 @@ - name: "Configure Telegraf" block: - - name: "Ensure {{ telegraph_config_location }} exists" + - name: "Ensure {{ telegraph_config_location }} exists" # noqa: name[template] become: true ansible.builtin.file: path: "{{ item }}" @@ -223,10 +224,22 @@ dest: "{{ item.dest }}" mode: "644" 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/nomad.conf.j2", dest: "{{ telegraph_config_location }}/telegraf.d/nomad.conf" } - - { src: "telegraf/docker.conf.j2", dest: "{{ telegraph_config_location }}/telegraf.d/docker.conf" } + - { + 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/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 - name: Template leader configs (ie, configs that should be placed on a single server) @@ -236,9 +249,18 @@ dest: "{{ item.dest }}" mode: "644" 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/pingHosts.conf.j2", dest: "{{ telegraph_config_location }}/telegraf.d/pingHosts.conf" } + - { + 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/pingHosts.conf.j2", + dest: "{{ telegraph_config_location }}/telegraf.d/pingHosts.conf", + } when: - is_cluster_leader notify: restart_telegraf diff --git a/vault.yml b/vault.yml index e552312..23cbd7f 100644 --- a/vault.yml +++ b/vault.yml @@ -1,222 +1,222 @@ $ANSIBLE_VAULT;1.1;AES256 -36356537616566633539396237663362346661303632303536643732653865366636366434333734 -6563353731343533373639383363326631373565383937660a396565316361633838326139616563 -66313333386462643064653236653532663565316366353861636461326465656632386263313164 -3835653363386539640a663430326461633736373263323936636663393037636635623433313862 -35643737393836643233323539383432303531373038323064613064656462363630653863643434 -34316331626364326663356431396133643464323738613538333933393564323639346532356235 -62636338646530393464313737386361313834613262663436666262313537333662383465626130 -63316339313362333138356565343039623235353736383536356534643135343832313136306362 -30313130616335663235636561346363383135653030663264343862643164363636623764656636 -35316366663462323162376337306361333538353335326636313030356263643865383163633765 -35306364613637633162663736333862653838623539373534623832653732363035633134616635 -65613530663734613165336330623535356237306334656332666630616630363766656234316365 -33353665393666376164306361303164643566653064623236373733623835396437633739373734 -62623965663935656561353463613136396233663961383833346163366232363535346630663363 -61373039366537376133336331303730646266313564356134613435366138376532366437396263 -62643332366166316161393538353233383439616462636436326265353264383136356363376330 -38343261346237336631653436313663393630313833383337393366636462633263653962613764 -36353133633166313434373238393835326135646266663539613062363031313533656437633966 -65623139656631373965663461303835633039316266636132333636646633353034313162653238 -32306564653930636163313338353064333732623565383930356563303630363661666364636134 -35343566613064656361393162303363666236653233643064663631616333356563643965323436 -31386631383636646435633639613162346230366236316465313339316130353939346430623734 -31316565656661623531396166333435323132373166646136383035666564653938383466366637 -61353262306538363530356632656635323761303039363633356637333363303666343164666138 -66613339373831373239313038653130356631333461323838306238663336323266353430326131 -37316564633836343364666434663131326337613832323965656266393031653532333465666165 -39636464656165663263366364303433313038333635656437666238636237383132616338333435 -65633337303634656331623766656466306632393432623066323536303333393531666163373035 -31343237653839623335636333323866376535393462623939316166396532633237623965376565 -31366365386135646536313932626630393862643435656438383434356366363234383961303464 -65646130663335373864613465623363336330333061663537383966666235386638393939653766 -39303837613965373339383861383730613963616334346535326532303630323931336236313430 -39646433613530383733353965666535373262636233356537386363613032383636663664313532 -64383333333535633630636661633436626661346636363437643731353039336234343431633931 -35393136376466656135343833356635306337363537386564633666663932376666633632303564 -61373433303366346532666662383236393362613635346334653338393530353361386536643533 -65356234303561653933326664623230323264316334303930653438666432306661386137346164 -64633638626463393238393036613533383264343662316264646232346561653032353766333730 -63373966313863383961306464333931316336333933343330663238363166343834636137633931 -33303066646234386465616163313063383832346661303631663333373464336139623936313639 -33363563616162653636616333363561653035333566346239613561303563303062613336623239 -66316430663839323739356333366661656230326462663761313266363163396234313165353135 -62373334336664653361623239623364363461613163636635613561386438613466616664313432 -38303530636639633134333637633161356538666262353532393735646535336639633762613930 -33646665363230336236623638623664666334373833393866376136346265656536316433623934 -39313932636330663766346534363830356338323837383961316430616334313665383436636636 -33353130636330376264373963323036393836326138346133343431363532343933613261316363 -66353765346332313664636635343538376634363064366636393133623262373132376462366466 -35323038363734336434613535623136323861346439636365333039386161333433363434643738 -33346166616532306532343938653732326164313365323533326231666338343331363430623730 -64373363313065343565316366396262386336346636643538326232373363393831343738316538 -62613262353032613039373162313566343932633430386536626332653464633437663232366663 -35353663316266383435653565666631366636313464623039656664303637336566373439323437 -32373265386665666165333131313065383037303361636466646439323630623739626463656662 -63663962343362343136656463653531653834393939613434313337623465363662636434376463 -66626232303566333566333832326666333534303064393131613739343434393838316238653739 -36616263316637623865376464313635653161636438653437326463633135626130336336666537 -39333938666162633933386663616566626338616661383965623639623537386264316538333130 -31343135363839653864303966626639316533316533633863383963363231343062376637613830 -66366633656233326166663036323538353064373738626530313534313737333563663535363565 -63303265346438323438633331336534383530336466666238353235653766343934313836303435 -37663830646532386665343833343038633639396563613861666463326263396365613564643935 -65383263336365386335393261653039656562613430653335383762343463666339323561303233 -63303434353339636461613065613839656262613866346237663961666639366361333132626632 -62636365663563373665323365316430353933383738613464656136613932316332346330326537 -66396362386133306666356362343936336133356265633439393263306236366339353537613434 -30636432656366366630626533343666653935326530343766323931373632643065666561653033 -34393935316466663666326535663734383435393036376464386361613962363130336561303239 -36363430373538326661633163656162393631636161326537636337343037363462356438306234 -62623635353730653535333961356339313439393366626134366461653431353366633234373232 -37656631333731353639646138623232366664663764613662643030316665623437393562346131 -38646661383737643735633234323663343430396562303635386534393438326332653133653766 -39633434666465393661323564316265316262663339353538613264383332306533323462366533 -31343036313630653437323031626461396166363164643839326266663531643636653865363735 -38653161643862313033653634373638316261663661386336353662396262643931366131306663 -32383735326239653663386462643964646535386664303635303530323738613861306336353765 -36373432303366373332636637396162353439303063646630636338343636363435643263303431 -30386138356233646634376464663865633934643839303537323863373239313638336361396334 -33306666386430633037316439306334336538363763353436393636653130633634653837633034 -66313430316566343439616632623036306664623362643232616532323666663566373137626238 -62613462383737626466363661343361636236336535643464383566306362626465373234636530 -32646235646338316137393863613265336262643265623039623435613538383863343065356533 -33643136643564363466386532353666303833366364366339336466623561643466623262373765 -37333463376635383232623230316235373439313861393032633262383437313034313439623965 -65303032623963643862373365633661343361343438356566623538633934346637353530343733 -64393333363965323432623663303961633162623731633135343336626464333663326631353532 -31653566343134656662386666313439323363336164313564643436396239663964363831656133 -66656366393137376330313532306233383933306634373664333930663166633262393364386666 -63626161343138643235303865326530393262363031376638386439303962346235663035393937 -39373264396333346663376164623336386335643632653431663736303366346161656635353036 -62363864386537643939343838633833323730653936623831343134616563623437366238303462 -39393633653434363361663833636235613934386338386138306332303337353636336333346466 -62356561616631383538633734376139663565613936346265613462363735353161323366363734 -31653436313134326664346639336461616630316135323539336430326631366633346631643963 -64376164373736313865356364633436643432626535366339376339663430613337303832353333 -31636634326139633236373630333036643636653134353433303239373235303331633633313530 -32353765396237396334313065356339393538663035346661613463323465383132366363313763 -34363931373239353962646163313231633665363939303766633939393334396366363038333334 -36383361393465643831613035356565333332616135383033653931323366343839646131303165 -35613634356533343939313963346138626239623362316662383537323333373631663831383864 -35353064376262366335303963636236313136393834663434316462326333363236326336313561 -66376364383132323235303038373036373137363036333035383265306334336665643932613037 -37343930396261303236303839393537616339373135316233633964623465626630353634633533 -33653963353135336130636632356336633365373336336433316661323231396362326536346535 -65313364666164366265613433663939616631343762656661393565653933356431613962633534 -39353632656232653265303631626631353634613136363232386165633865383835343365376263 -62643465313130646266343366363837373439383831333066306666366533313137373030396331 -38613638323636336436386332333963643036326430363862623065313837333263336430343333 -37373262623762326631616665653361363162313437313962393736323162636461326639333632 -39383833646234336639653061353632633461613937363136633133333164383939643630336636 -34646531333238616365613832636665346532343830623737336662633762643138343565663331 -31313534653937653365303765653031333261363365383339663039653165643966666266396531 -36343539323664616564343566643737363862613438303966333932346230393165653934386332 -30333430343934336661646663343062383938396366343333353531383930373636646364326232 -61353862396532373231303163353639356564626539653064636264373533343935366162343131 -31313438303537653138303731616335386535353761646161636231396263646338353831623665 -30333837363837666433396133633166396636613139323461663833643837343162656164326637 -31383166313261333730336239376633323563616164343662636561623337316536313438623931 -32396230623637366566663635613361346262386361343566643731386237373337383538383730 -37346635323933656437393665323265666366643937643438316163656239383139623566613937 -64376334636465626132356537366337393434643330663432393733393532633537356332376139 -62323836663633623365393262393764636433303465663166656163643834393932656666316237 -33633537623535353735373265373734613565396432613337646134363238363339636135313262 -36636164636563373437366431393664646630656636333831313665363637666232616237326365 -63656133353635336430626339643437636261363837306364636436393661323330646338353934 -61336239343730316264356265616262386434653431356463336130613265633066363838666465 -66643238666331373333333034623866616539663630616538623366383432666231323239653262 -65636535323530323439363034666135343138373938643964343032653963663464643863626161 -31323561393064303634616333306333663033646464353161666465376631336633653334363837 -34393664386262313061613439336237636434636261666231313063636431343334303732373335 -66373561643663376535363634343637336565396434376432303164376162316539363532666363 -64333262353537616466393238383362303366633563316336633739393735336437623431613230 -63333965316236623235633464316635363835666632666439383836643036653561313064306136 -31643034383361393038346564373732333933626638306534613766386139643239353734653466 -62633461343831646363383565326166333339646562343539383731366239316531616434616335 -37643136663937313962326139643539336331663830313235366137386664373666623436646430 -35656232666461366238333164633430636639393065316531336166623133353762663962306461 -34646339633963376162353331353739643730353637663933643866346166623866616562393230 -65313962653432393866623163366465333436356464353934653436303237373039363162383363 -36623838666136323564623033323165613862656164613831653333623835653131626137633066 -62306332383630636437656136346130653036656235336335636234343065386161363664393735 -38333865653133666430643330353963313131613261366362373237616337396166326232303536 -61346435643861353739393362343565646462303430623966393763656536613162633836626536 -33613465633231616561656264383337646461646661366564623535656161643366353135333830 -63383739313736333231383365383562323665343061663363396432393266323738343139616530 -65323465303234323035383334616532346664343765353465386465323264313530616334613161 -30666639313737323337366165656539383932663035396565636331363536613665353166666237 -64303162626463663538376533316237353530396637333336326163343364306630326338373532 -63333432336636616233633137306535623439643963323632623837343538376362636530323861 -36303462326133623239613661393333386465323431346465616237366332316639636134343036 -35343466333030383436643231313239636365666435643864653230643163383938663862643130 -39353661366531306639613133396433353462653835613237636338326131346439376633616131 -36386633623030353832376263643461643234353561323662353636623863373961353564326539 -39616561386336636563373264636361626233616365356636383236616634646238316233383634 -64353735623832626435616361333763303837616430613837393439626134383431393232393436 -63313164646639633763313066666163316432343266336265626263306432346332383732643733 -34376461613737356538373566306162376136326363643933353833373837666465383436636565 -63306338373430323466613734326265383435306666336664313362353436646636333034333764 -37343538316462653736323831323064623061366564373066666531633234653462316538363236 -31373262353662303932633762326165633264366163383939353936353934316233386237666561 -32333230333635353037313930613566326632613934363934393437396266373531636336393036 -65376432303833346339623263366631333532356362366665343731613137323738613261396566 -32383438313636323731313532616531396239326339393233626361383438653462613833633234 -61616432393930333233313664653539353230353362323338376336396336343537376533366431 -61356430363032613066376333306137326433343232333938633230316463336238373333363833 -34633065353237326266626139386230336161663864333231656136666439343864386465393937 -34366364393136363662396666333737613138313534376131316233336364313761613637646365 -66333630386437363265313434333530383432346566396437666132313331656335366231393263 -34313537343034663765633666616630386434383766333239633538386339663438393632646564 -39333434326439363635376565363065346464393961353732666461326631333236313763366230 -35326134616431343066353939633834616461343333363364633837613361353936336363373264 -35356639393265653561343062396339326165383261333630326435646631303538616562326334 -65383165356166333239373237313464323334303936336131343730626164313962343063623962 -63643237326534623035613138346130376237393238353038643335316533366531613234333737 -32363739303031653435323530623565663531653938336165316364383736336265306363633637 -65323535376264383733613163373733363131386639623866323737643363633438613937663639 -63303461363466643961666537333538316133656530623066643538393463303163626433636330 -33356166343063623431383233396262626134666135316130313933396563623763343536623439 -62663232316436646339323764373138313432326132643937353032353361326364663364386234 -62313864613737626563366333646336336439656532343630373061313863623032636334663835 -62663131663533356636343064356462383762323764646539303261646665613131663534353836 -65383835396537323563303738313131363337626233343539366664623830336363666263653862 -61653937643335616335663566643263353262316664316432663134613161623462373735313763 -66393966343064643438343965393066383665656365316432343132376265366538643331643239 -37363261616364636432393735643932323334373165643032323663366662393164393238643461 -31353330623863656134643736376561323332303938366264376464623862613438373439373834 -65623532653434656139663865346635643639653431303631653761646139333739383332333063 -36333861383631313038356535643737353266313961386666303134663766366330326537656463 -37366564306336363762373933343836663164383334623139616530313766353138636331306138 -31303636313065646639343432363464313537366636653165356639663763616133663139613135 -61363831313831306137386432363532653638613830396133613433326633343832366236313862 -32383235313866636562393330376566653935623738333234616634396161396133653362393333 -35663733306139386234316439623164383964376635653234333863343639356233356136613763 -33313532656264393738306564363037363333386563663131343136666337373665343836626562 -65373933653466393236326230666263333866313037393564383137646632666631386435353163 -66303335393234613166656634346634656537396566653264313230336464623535356537326464 -66666238353132393536636337373265343732613864393432396163343762316364663232343865 -64613430333266646336386662386332613736333166356532353930336465343833366361336432 -38343365303864353865626135393966653465333430336561663537626433623532646635626362 -34306165323437623063643433646264376565333633303132313863386234643065643861326237 -39316332313163333137313461313332396462663333313061643934363834653861333966663737 -65393266343931653235343635386438633862386438326665326532633564343139323334623337 -37346232636162643163636661633964633062323833306266303838623961363837363935303435 -61386665616430343832616436616163353835653037376138393139373865373336613263653730 -61656438646665393731386430366564393537356431333737353734656135336266323435656232 -62303031323463656666633130623565373431336362373863373630303331643035616166643166 -31313563336333316162656437333161343637353838633336393566396565623531633639313166 -35646636613262303966326663316666386235323861303530346637623363663230343464666362 -31633565313235623864636463636334306437663830366336313439636136326664636432326361 -31383262303338353730336335376564373562663865333031396634643832386437323338386266 -39343130626432663764383164663333356664653361353665653735306530626163336264356632 -35353730363834323363303665636532643432346464306562663835616661376666663464326233 -38633436326538393236613164323765613861386538653035396131366561336166303161303133 -30323663643136636261393639363738303032663733313739316662356338663734633535356666 -63393932373563633162626664613264303131383838663766313832306337643063653830643338 -33343833626137656663626239613232343931336535383134613130643738336130646533336564 -61326261333762336131356230656233353739653863653632343161306462616463656534663863 -66323233613265353166343264343262336336636331323236656561393334636630616539393530 -65653963633034373635373564626565636137363961333031313038363362393762373236373932 -62656339306466663065336165633163303038633230393731363561313533626364613964363833 -66623430626264633331656266353431386463383833366132333231633838613332 +39376437663661656434636637396539303863633934376535353938656434386533323063626439 +3665306133383637383739626233663565383562393534640a396436386366303730653366363530 +39383533663836613934303665613031636535646233316364313766303964666266646134343833 +3365623733383236630a616635383739636635663964323361663439336235336536626433333438 +63356539353363663930363639396666386236653337313366313362326132346563663663633165 +36396635616138313539653966373462363666316462313765623665303439383233353733656237 +38643466393336333031326438316662386137613936626563393461613236613738306537666166 +34313964346132623131623561363331323764373336613238313764653739623437656136333133 +37663238653665313430653031393239636562376533346335363263373836613331333131623164 +36323535633831656136633661326362646366623037386233656238616163623564653137303834 +39643965363039643537303031643032333836316534336439346665316436306465663062323338 +35393132346334653539343430373934323233623432386665633532366335333031356263376266 +36386231613533383265346130383238316666663230643532383938663562386639326330646462 +38633930343332353664363463303438643232633862646535626131633633396266353337396231 +65353132653034653661316630663462633565363966326137373835316366313734646230376365 +33666536333134323532363935326234393031393261393935656131366364616165643662333137 +33316562663566353338346538313933313562613532383733326433653262366135353830336361 +65343437346234343032323763353030663731336236623635633437393332323164666539313965 +37366563383463613032333437366133343361643131353963346531313037643862363762383735 +65383765386462653263343335633065623836613736663532313433396433376139633333653663 +37336565656463356166636330306333636561366335366638383861316633623661396565633462 +32623530326334383065346466643766383531353962666135313466633532643664356430386133 +64653737326430623666313666643334313866616630313162666436373031363630613065393938 +34626562346333346362643461346163396565393064356663356132663731353364363565316466 +64343938613864646438326630323463323435393730643631626237303466346538376566333235 +35393939626463376633306566336564663765313333616539376237323735656335646635366662 +65363761616439656162363834623035346230383434653662366235343334636630383331623637 +63633666646262646134303930363431343964373963393035343932393739633664373362343563 +30643766643935643731613737646134303133646632313630353530376635616439666566636634 +64336161336535323362616637306231376534336437633364393962666662336564643030373030 +37356136336235313737316232613036366632663266306131366634386462336535303636353663 +34313538373965636366356435613664313934663264666533316231623331336533396634333761 +66363562623235626235346232306664636239386131353966366134393932653465636137646333 +37376534313361666534383433613331663131626461373931343338643433616561336566626361 +62623661323338353265356361366537653164316465316631653263636165636166366466326230 +37363632653031616563323737616438666166363936386531313537653239656163353731366662 +66616438303538366338326533653630636338323435636263616263306636616632616533623130 +32316139356430656262343133653932356231386364393734393964343537306561383138316536 +64663132393239306665353636643561336334393938643239336637303766393533323436386665 +61373036623566613931366365663961396432346535633837323531323934373939383832636637 +64653131333432666366393431303036353165643362383934623730323965306163303333323236 +63626130373234366531386465636336663065633339386337366361316235333563653534313064 +38393437383438323762616330393535326333366364666330646135636339363232333336326162 +39633964373439346237363734316633376234383933666137616533313034333932353330623333 +37373963363234326634663634333766616232626262663764326164333464663066636339646463 +37633937666532613762313330323365323033613039316463363633316164363663653865653363 +64343536333634663864333035623238316536386131613762616161636361326632353234313236 +61353831666664316361613065323038326439636262363762653066396434353137373439303662 +35333437616432326334333536666633616334313530316262623634386531313066666662633633 +33343635666433316437386661633361336466306161653262323734623961363736643532623132 +39323364656339386561333463323866356438663965393661353638333530663934346563393565 +33383862633632613366313738383337636366666565353464623131316630316237653335376239 +66623436663366653530323864366264666362306461613939393463353437636535656539653131 +63623433346431393165346235396565373038633430366138316163613238386231363736626630 +65336533663233386331663534636236393531643139386434373032666234343736336264396630 +32353131356461343938633164306338366338303736353665613137316664653337313135363031 +61306636613833336538663764616138633532396164666461636362336533383330343434326237 +32663833313066396263636634316566383966326334396465396633363961616365383434653137 +33373163363362643765313033646537386533396230333232343163333432323631386662363765 +66643232323239303766643033326362373162333237383863336365336530386563663264626365 +38383337646138643762623937643333383834633735356434613561626433633035386236376135 +36656234666363356433356565666161303664623236303961623332353431646565613733393031 +38643661376636393335643839326133653464343637393661623464336230343761353738616438 +31306335396538643366643734633164393037616363623435623330396432323231313665393864 +64336662386639326637373866386234343638366630366434356537666437643364613466613331 +63363338333962356261346664643635373964633339373935356339666661343532386534366264 +30323538656539353433613765356232386366633065366235316434626438396630363862653433 +63323537616630666339653732623838666132613333386231333934393065663930653436336133 +35633432363738623366376537303065306330613664626535333361383431663331623836353361 +64393937316639383934383963313738313539316334356232316265623830346337343933336465 +66316338343762646165643030633865343561323434636239306131373238303931633261396332 +30306139343634613130646434303766356639353334663165643435666635373638623130353734 +63336432653134653462633032383232343839333734653966653038343935303932386535623863 +61383638383835353836626138393534353239356462396235656662613138356530316532633137 +36383832623364363435363535343131373238613534393462636638663130373265326362303435 +38666261633263363262333338333765343164316566363366666563643030353338656535613437 +30616436656239343438313133386564383566623930353866323336643131306166393632353830 +61646534356433376534376436383366323836663766376661343961626238316338633039623539 +35346637633963346464616361613862333662663239376635346437346436393736346130343534 +32313736613936383339323738316335633039626563303136373363316365336565633062373065 +62313632336138626665373365303463623264623034623538336461333962343432353435396162 +66396264326661323865393638343166373336653561373437313266636536623534333165323537 +32396331353964316231306466653237393430313736393932323365363239353264616565326466 +34643866323736303730356433326463306536383662316566653738613636363061623261313239 +62663961343636366631613732343363366165383335613635616433316539383035623762336363 +37373764343038393136373139613565363838343435333730346430396535333533643534363532 +63376332303162633533666439303065366162653838393333313738643662303135353665373338 +35326436393233623961383263636134393038373435666131616332323462653337303162346363 +37633735376432663236633234383166306132633037303731373735356663626539333362613132 +64313838626136356663323936356337623561633364303438353038666539363738616537653364 +34646535306462666164626566323739623333306132396534343938313766663836643534396335 +33306330356337653663666337313039376464633132383933323732313235393338346239303664 +66666561396331653636646530616534616132363834386436623634366339623538383065363836 +33313131303533616335366339333239313031346365353461326430643666666534613637616564 +66623264303263663261653034383661306261366263303233336231386265393164393231363263 +63396334303431623833313864353263663538623165656230316232646464383335363732333833 +35383030396138313635613966336639623330626662383835333336646632313338353239313262 +36663431373464363734376136393362653536636436386139643438643362386631663161356636 +37653337306435633365333039663832353331653030393161353338656532323130353230383862 +37636633666361373430663139646466643530313336616139663539313838346233326634366138 +61656161383838356662393366643537633438623066306134636332373735363536653031643064 +66363033336533393739366235346264656432383065633364333838303766643938396362393935 +30353363343839333536393866366561393261623863383964373366626666323363323664333962 +32663064366133386263306262656564613563653066313732366134383166313362383832393561 +66316563643733633062326530366263323339353039326664643935346235316632386337396266 +66363836666639313066333736653535393435653631316132323637316234303032366664366537 +30373739363136393037613039623761343261346633343066633462616535313037316535376639 +33653232373237613933616531393130356466363761316531353234663334343630363736383465 +37623063323065363130303661633939663436646435313834636437653938396264646137343561 +31373937346337396338393666666264636632343961343461646134653338373164313238313030 +38326231343838623730633334356162303934393538333035356139613939353833326637633933 +34626363616239363661346665333232646230316534666436333335363038303033356232326231 +33333034373833353530376435303135313230313361326137363737643733363961616265343764 +30303730623536303731633561333162373036316263376461666265363133363836613666353732 +39343637333538303830633064313432646239336539346136323537356663373464303862653232 +61653235303638376161326531626339616164353636306162353739316666333537633836636562 +64626432656438376238633763356565356365623739616663303639646431393465376439643538 +38326436313563396536383162316365383065653866663138663265373131333437626664366638 +32633033366138663263653639376534633933323633326332636335303262373931656539356230 +31643061636139373362343735396337313534316230646435333036636238393131353635393061 +37313031633566396336353664626431376238336363323164393562613335613361623932393635 +39613633626437383932323063353238366466663365396134663431303334333866323134646137 +61336233356437323362346661373566633363353431323138316262343865636239376165353031 +33613432633239626336323964646461643233313633636239333430346463323334373863303736 +61343566383135653736663761643461343866373930616165613166336230616639316332663764 +35323438633339383736383539383836613436313036393262316362663038336134366263376365 +30616231633536643138383235393362306435333536363538353936626532366439366534646535 +37653563623839633133396430376464326336663233396234386264386331366366356632313366 +65363332363661623739623563303064626230363966643137616337383366343236663638326130 +61316637336430643539656266396435623362633465366132653036353435386635653034376266 +30313466366538373832393363313661653936303035363136343739336239356461356433393964 +32393239343238366262616662373235633763383532613961653164303234663231313038393237 +66353836623437653164373165393834366162623138653363316231306131383438653265663866 +35643433636230363232303837323939366131613933366137373861303538633830303631313765 +38313838313538643437613965353430386231376263643938343365333433313864313039336466 +65323531616439333363373433663464373366653834643861373566373631316339643330393232 +63373962353737303232653562303834323766353932323130303565383934306366636666626666 +36376136333962643663333730336161613466306261636531353935336631373635663662356139 +64383635333864333638316433303463616534376661333433313664623536303532613532363733 +63356535336239333262323432643932636164623833656237623831373062663261363330393664 +62646337343536356434336463386337373963363832306338316139636430363530346636353765 +35303963636132313264666133633837356563386537646464636563303734653062393331333561 +65346134386136353433326234616635393632383934363862636130346532303561336632636437 +65616230373063323063326663613131663162326530326466306331353237303462396639663934 +35333035353831383664336133636363363930353866383237363666393365323837306562393838 +32343431643062393532396339383539353863643466653235363963336136313836393663623132 +62376634333630353532653436643333636330303334366565316538313138396566663834353334 +35613830326430393433333539373938323435623061323833653736663938306366636335333964 +35303862326561613038643765643066636665663734336434616430356666393861666661303430 +30636437663738633463303561353566393035613134313664633037373261646337663736613562 +37393934653437343736386438633234653764653736636265623563666362333431633765326331 +62396135613637666237303164323661303461613739316538663633626639353932366363626331 +38383033643965616232333138613761613933323934356530623763363162613464653736333639 +35666339393866373431623663383130356532656263643332373064363864346639326635353132 +38666534346133623232636635383335376438343434633633303531636163303736333738656364 +38373864313066376361626163333162323138663936386232383034366437393737353833386664 +33303935666264633465366363333932396139643964323066336565623334393239393132343236 +33366536653864656233663461396432386437363239323064333234313937373033323962336231 +61313331636334313365306133646339643731303732356136633130386261656263616435623866 +30353031373939303236313235643963623338643531386265656230336434373365303432386262 +37356631376661326266343266613862333737303630316637363333623632633832653534346232 +30623535393934303332653537316133396639366331323865366333663638653730366431666463 +34366632626665353731616637393132353531613232356538613764376361616536313430633965 +37643836363366656666653366383233623231333364333661656632336137383732363435353933 +36353038653835643632316563383930376462363238386361303939343730316537313662626164 +34613065306332333433653766396365396332353839383562326361373939356662396361613362 +63623030353463396131336361653730646537303066653636633239333634386663366637346465 +61626633633436316233646432323534666333396238363366313433656134646566333862623833 +61393263376638353634333338653763363639383136306165393736663865616337643864333432 +35366563643637363465303930333062396165643366366464373636373463326663333162613361 +33323032626433333664333161623031316430383939613533313534393833303935343865333262 +66396366383233356436663762316231656535626237633739613765356238386339333331363031 +32616238313137376635623631303232616330303037373433376333313763626262643636636638 +36353738373036343535616337663634393764633062306435396263343032323032353130326137 +38613134306438626331636633346361336161633831353761623236326638663462653039643961 +64653938613361336463663532366431316138356236633637313133333961316266326132653730 +65333266666566373962363962356132383531656130356465383363356166303764643863303531 +33363137356237616361316565336536376236353637633435633433356161316361313330643834 +34626664323065666166613530373664623635643566613333353565616439383365383962633230 +65316437373430623561346333363463613531356333356234663338633338316161633039323964 +62376534373636376166383166393139613331323937306138396232653762653765386231616637 +33376338346532363366383438353266326366626434336430616566653438313334383337613939 +64366136323631653766616232386438656635333964343439633666613834613361393262653462 +39383336356233343436313036643435303639343435356365333765653464656238336338323034 +30363039623866346539323739393664623564373230353533383631663137313533366538373537 +32346134663533353063323639383735323365336133373334343233303961663631333864373134 +62306432643663646663353065643565626538343538333431616364376535616261656431626263 +39643136623964336630353231346637613437333437616265353630616533383761356430343633 +37303737336335633661363663326561323433613431653264653635653766353030373437653333 +32393935613831636333313735613066306166643734303731363038343532363638386130343837 +39376537336437393263363662313831353633343130626365616431383663633235306238396439 +35396461303136323733346638306430643030646262623661643764336264666161373263356535 +38336234326631303838313538343061653037366366316236383333623563323264643462326531 +35373061653734663766663063613466333836333566343562616666646566313163636266663961 +37623035383632353735306661313530353334656563323866616462626565313035663739343663 +66646332653939666163636432396332316563356534336463326466316133333731636534383734 +36613936393064376361343437303365643534653961616634656261323335336335373932343535 +36373263666665393164393563316166363938333462643736626235303231316562393334373736 +65353961313065636332353432333539636431353833333337346636356661633565646339393865 +33666230383462363136336665396463393862363637316634616262386363303062356663343265 +39666466303337643637343665356330373938653066346139653365346263623437363539313334 +65313834366239326161323535336339303764353736623365663336353763383061396630656631 +36623961633166353261393536663234623335323063343764363864656139623633393932616665 +32356138613135616163613532316231366137326131346366313638386335393664383061326631 +30653933323434303931653465376132313831326235343563663932333233633033613962633532 +39343065653934383565376262663262633637313864346363643631353564306337626335306135 +38356430626566366634313538336563393262396434303463363561646165313330646561333366 +37333931316432346561623535313735313331373664393931383166663133373263383766343539 +66323338366637343133633735373465313266626465323237656563343137363763643634333536 +37353635643835656461316438653961346131643535643461383632613436653634666439643739 +62323234633230326433383164386532326339623838336130393264666561323063396137653534 +65643036316131313330353265633564383164363365303838376535623639383239323433656165 +61363933333737306331393166316666316561663262613261646533666365623531663130326564 +64656134316438363431366434303836383666316435373762343739663136643337343531393166 +35356663346564316436663031636262323764376231663238613233353231666564313333666331 +34616565636261343963646435313536326364303130336137323234393432343437386137363630 +33386632353730333563626163656366646133376465383430616637653065373962306532616330 +36323466373339386139316466373163383363376262643264323332343064656464363134656563 +61316462333462303139653361303765613062633265616335313032306165633033666432616138 +38356635646431306462393061643363323335386666616666353063646164623338363265623166 +35663532613666613765313861353832336233653564653734656339383935623538