From e8fdebe99f2a24f31675ac50dc99be2af623fc9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Fri, 14 Jun 2024 10:23:59 +0200 Subject: [PATCH 01/31] [WIP] Rollout nodes (#17) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added a new version of the Makefile (see also https://github.com/osism/cfg-generics/pull/461) - Improved templateing of the SSH configuration for Supermicro BMCs - New backups of the server configurations - Better documentation of the environment-sepecific bootstrap process - Add a simple facility to provide serial terminal access - Adding all users to the dialout group to provide serial terminal access - Changed NTP configuration (the managers and the controllers will be ntp servers in future) - Set initial system dates by http requests to prevent gpg problems - Add tinyproxy as an alternative to squid (because squid breaks apt functionality due to a bug) - Better ansible host inventory generation -- Signed-off-by: Marc Schöchlin Signed-off-by: Marc Schöchlin --- Makefile | 35 +- config-snippets/ssh_config_scs_servers | 21 + .../server/A2SDV-8C-LN8F_st01-ctl-r01-u27.cfg | 52 +- .../server/A2SDV-8C-LN8F_st01-ctl-r01-u27.xml | 10 +- .../server/A2SDV-8C-LN8F_st01-ctl-r01-u28.cfg | 52 +- .../server/A2SDV-8C-LN8F_st01-ctl-r01-u28.xml | 10 +- .../server/A2SDV-8C-LN8F_st01-ctl-r01-u29.cfg | 52 +- .../server/A2SDV-8C-LN8F_st01-ctl-r01-u29.xml | 12 +- .../server/H12SSL-CT_st01-stor-r01-u01.cfg | 164 ++-- .../server/H12SSL-CT_st01-stor-r01-u01.xml | 10 +- .../server/H12SSL-CT_st01-stor-r01-u03.cfg | 12 +- .../server/H12SSL-CT_st01-stor-r01-u03.xml | 6 +- .../server/H12SSL-CT_st01-stor-r01-u05.cfg | 232 +++--- .../server/H12SSL-CT_st01-stor-r01-u05.xml | 10 +- .../server/H12SSL-CT_st01-stor-r01-u07.cfg | 80 +- .../server/H12SSL-CT_st01-stor-r01-u07.xml | 6 +- .../server/H12SSL-NT_st01-comp-r01-u09.cfg | 84 +- .../server/H12SSL-NT_st01-comp-r01-u09.xml | 8 +- .../server/H12SSL-NT_st01-comp-r01-u11.cfg | 8 +- .../server/H12SSL-NT_st01-comp-r01-u11.xml | 8 +- .../server/H12SSL-NT_st01-comp-r01-u13.cfg | 8 +- .../server/H12SSL-NT_st01-comp-r01-u13.xml | 10 +- .../server/H12SSL-NT_st01-comp-r01-u15.cfg | 82 +- .../server/H12SSL-NT_st01-comp-r01-u15.xml | 8 +- .../server/H12SSL-NT_st01-comp-r01-u17.cfg | 82 +- .../server/H12SSL-NT_st01-comp-r01-u17.xml | 8 +- .../server/H12SSL-NT_st01-comp-r01-u19.cfg | 82 +- .../server/H12SSL-NT_st01-comp-r01-u19.xml | 8 +- documentation/System_Deployment.md | 27 +- documentation/System_Usage.md | 34 + documentation/devices/network/FAQ_SONiC.md | 24 +- environments/configuration.yml | 37 +- .../custom/playbook-scs_all_nodes.yml | 6 + environments/custom/playbook-scs_infra.yml | 20 + .../custom/playbook-scs_set_time_initial.yml | 30 + environments/custom/playbook-test.yml | 8 +- environments/custom/playbook-test1.yml | 9 + .../custom/roles/scs-mgr-tinyproxy/README.md | 0 .../custom/roles/scs-mgr-tinyproxy/README.rst | 8 + .../roles/scs-mgr-tinyproxy/defaults/main.yml | 13 + .../roles/scs-mgr-tinyproxy/handlers/main.yml | 7 + .../roles/scs-mgr-tinyproxy/meta/main.yml | 22 + .../tasks/install-Debian-family.yml | 8 + .../tasks/install-RedHat-family.yml | 8 + .../roles/scs-mgr-tinyproxy/tasks/main.yml | 29 + .../scs-mgr-tinyproxy/templates/filter.j2 | 10 + .../templates/tinyproxy.conf.j2 | 342 ++++++++ .../roles/scs-serial-terminals/README.md | 0 .../roles/scs-serial-terminals/README.rst | 78 ++ .../scs-serial-terminals/defaults/main.yml | 13 + .../roles/scs-serial-terminals/meta/main.yml | 22 + .../roles/scs-serial-terminals/tasks/main.yml | 59 ++ .../templates/screenrc_serial.j2 | 51 ++ environments/manager/configuration.yml | 2 +- environments/secrets.yml | 752 +++++++++--------- inventory/10-custom | 17 + inventory/20-roles | 46 ++ inventory/group_vars/all.yml | 14 + inventory/group_vars/control.yml | 8 + inventory/group_vars/manager.yml | 35 + inventory/host_vars/st01-mgmt-r01-u30.yml | 6 + inventory/host_vars/st01-mgmt-r01-u31.yml | 5 + inventory/host_vars/st01-sw100g-r01-u36.yml | 3 +- inventory/host_vars/st01-sw100g-r01-u37.yml | 3 +- inventory/host_vars/st01-sw100g-r01-u41.yml | 3 +- inventory/host_vars/st01-sw10g-r01-u38.yml | 3 +- inventory/host_vars/st01-sw10g-r01-u39.yml | 3 +- inventory/host_vars/st01-sw1g-r01-u32.yml | 3 +- inventory/host_vars/st01-sw1g-r01-u33.yml | 3 +- inventory/host_vars/st01-sw1g-r01-u42.yml | 3 +- inventory/host_vars/st01-sw1g-r01-u47.yml | 3 +- inventory/host_vars/st01-sw25g-r01-u34.yml | 3 +- inventory/host_vars/st01-sw25g-r01-u35.yml | 3 +- inventory/host_vars/st01-sw25g-r01-u40.yml | 3 +- misc/manage/lib/helpers.py | 38 +- misc/manage/lib/server_hardware.py | 3 +- misc/manage/lib/server_operating_system.py | 2 + misc/manage/server_ctl.py | 7 +- misc/manage/switch_ctl.py | 4 +- 79 files changed, 2061 insertions(+), 939 deletions(-) create mode 100644 environments/custom/playbook-scs_all_nodes.yml create mode 100644 environments/custom/playbook-scs_infra.yml create mode 100644 environments/custom/playbook-scs_set_time_initial.yml create mode 100644 environments/custom/playbook-test1.yml create mode 100644 environments/custom/roles/scs-mgr-tinyproxy/README.md create mode 100644 environments/custom/roles/scs-mgr-tinyproxy/README.rst create mode 100644 environments/custom/roles/scs-mgr-tinyproxy/defaults/main.yml create mode 100644 environments/custom/roles/scs-mgr-tinyproxy/handlers/main.yml create mode 100644 environments/custom/roles/scs-mgr-tinyproxy/meta/main.yml create mode 100644 environments/custom/roles/scs-mgr-tinyproxy/tasks/install-Debian-family.yml create mode 100644 environments/custom/roles/scs-mgr-tinyproxy/tasks/install-RedHat-family.yml create mode 100644 environments/custom/roles/scs-mgr-tinyproxy/tasks/main.yml create mode 100644 environments/custom/roles/scs-mgr-tinyproxy/templates/filter.j2 create mode 100644 environments/custom/roles/scs-mgr-tinyproxy/templates/tinyproxy.conf.j2 create mode 100644 environments/custom/roles/scs-serial-terminals/README.md create mode 100644 environments/custom/roles/scs-serial-terminals/README.rst create mode 100644 environments/custom/roles/scs-serial-terminals/defaults/main.yml create mode 100644 environments/custom/roles/scs-serial-terminals/meta/main.yml create mode 100644 environments/custom/roles/scs-serial-terminals/tasks/main.yml create mode 100644 environments/custom/roles/scs-serial-terminals/templates/screenrc_serial.j2 create mode 100644 inventory/group_vars/control.yml create mode 100644 inventory/group_vars/manager.yml diff --git a/Makefile b/Makefile index cddfac3e..4d8762ec 100644 --- a/Makefile +++ b/Makefile @@ -19,18 +19,41 @@ sync: deps @[ "${BRANCH}" ] && sed -i -e "s/version: .*/version: ${BRANCH}/" gilt.yml || exit 0 @${venv} && gilt overlay && gilt overlay + +.PHONY: check_vault_pass +check_vault_pass: + @test -r secrets/vaultpass || ( echo "the file secrets/vaultpass does not exist"; exit 1) + + .PHONY: ansible_vault_rekey -ansible_vault_rekey: deps - pwgen -1 32 > secrets/vaultpass.new - ${venv} && find environments/ inventory/ -name "*.yml" -exec grep -l ANSIBLE_VAULT {} \+|\ +ansible_vault_rekey: deps check_vault_pass + @if ! git diff-index --quiet HEAD --; then \ + echo "Error: Uncommitted changes found in the repository. Stash or drop them before rekeying."; \ + git diff; \ + exit 1; \ + fi + openssl rand -base64 24 | tr -dc 'A-Za-z0-9' | head -c 32 > secrets/vaultpass.new + echo "CREATING A BACKUP" + cp secrets/vaultpass secrets/vaultpass_backup_$(shell date --date="today" "+%Y-%m-%d_%H-%M-%S") + echo "PERFORM REKEYING" + ${venv} && find environments/ inventory/ -name "*.yml" -not -path "*/.venv/*" -exec grep -l ANSIBLE_VAULT {} \+|\ sort -u|\ xargs -n 1 --verbose ansible-vault rekey -v \ --vault-password-file secrets/vaultpass \ --new-vault-password-file secrets/vaultpass.new + echo "MOVE NEW KEY IN PLACE" mv secrets/vaultpass.new secrets/vaultpass .PHONY: ansible_vault_show -ansible_vault_show: deps - ${venv} && find environments/ inventory/ -name "*.yml" -exec grep -l ANSIBLE_VAULT {} \+|\ +ansible_vault_show: deps check_vault_pass + ${venv} && find environments/ inventory/ -name "*.yml" -and -not -path "*/.venv/*" -exec grep -l ANSIBLE_VAULT {} \+|\ sort -u|\ - xargs -n 1 --verbose ansible-vault view --vault-password-file secrets/vaultpass | cat + xargs -n 1 --verbose ansible-vault view --vault-password-file secrets/vaultpass 2>&1 | less + + +.PHONY: ansible_vault_edit +ansible_vault_edit: deps check_vault_pass +ifndef FILE + $(error FILE variable is not set) +endif + ${venv} && ansible-vault edit --vault-password-file secrets/vaultpass ${FILE} diff --git a/config-snippets/ssh_config_scs_servers b/config-snippets/ssh_config_scs_servers index 1981262f..6d4f143b 100644 --- a/config-snippets/ssh_config_scs_servers +++ b/config-snippets/ssh_config_scs_servers @@ -1,5 +1,6 @@ Host scs-bmc-st01-comp-r01-u09 Hostname 10.10.23.25 + HostKeyAlgorithms=+ssh-rsa User ADMIN Host scs-node-st01-comp-r01-u09 @@ -7,6 +8,7 @@ Host scs-node-st01-comp-r01-u09 Host scs-bmc-st01-comp-r01-u11 Hostname 10.10.23.26 + HostKeyAlgorithms=+ssh-rsa User ADMIN Host scs-node-st01-comp-r01-u11 @@ -14,6 +16,7 @@ Host scs-node-st01-comp-r01-u11 Host scs-bmc-st01-comp-r01-u13 Hostname 10.10.23.27 + HostKeyAlgorithms=+ssh-rsa User ADMIN Host scs-node-st01-comp-r01-u13 @@ -21,6 +24,7 @@ Host scs-node-st01-comp-r01-u13 Host scs-bmc-st01-comp-r01-u15 Hostname 10.10.23.28 + HostKeyAlgorithms=+ssh-rsa User ADMIN Host scs-node-st01-comp-r01-u15 @@ -28,6 +32,7 @@ Host scs-node-st01-comp-r01-u15 Host scs-bmc-st01-comp-r01-u17 Hostname 10.10.23.29 + HostKeyAlgorithms=+ssh-rsa User ADMIN Host scs-node-st01-comp-r01-u17 @@ -35,6 +40,7 @@ Host scs-node-st01-comp-r01-u17 Host scs-bmc-st01-comp-r01-u19 Hostname 10.10.23.30 + HostKeyAlgorithms=+ssh-rsa User ADMIN Host scs-node-st01-comp-r01-u19 @@ -42,6 +48,7 @@ Host scs-node-st01-comp-r01-u19 Host scs-bmc-st01-comp-r01-u21 Hostname 10.10.23.15 + HostKeyAlgorithms=+ssh-rsa User root Host scs-node-st01-comp-r01-u21 @@ -49,6 +56,7 @@ Host scs-node-st01-comp-r01-u21 Host scs-bmc-st01-comp-r01-u22 Hostname 10.10.23.16 + HostKeyAlgorithms=+ssh-rsa User root Host scs-node-st01-comp-r01-u22 @@ -56,6 +64,7 @@ Host scs-node-st01-comp-r01-u22 Host scs-bmc-st01-comp-r01-u23 Hostname 10.10.23.17 + HostKeyAlgorithms=+ssh-rsa User root Host scs-node-st01-comp-r01-u23 @@ -63,6 +72,7 @@ Host scs-node-st01-comp-r01-u23 Host scs-bmc-st01-comp-r01-u24 Hostname 10.10.23.18 + HostKeyAlgorithms=+ssh-rsa User root Host scs-node-st01-comp-r01-u24 @@ -70,6 +80,7 @@ Host scs-node-st01-comp-r01-u24 Host scs-bmc-st01-comp-r01-u25 Hostname 10.10.23.19 + HostKeyAlgorithms=+ssh-rsa User root Host scs-node-st01-comp-r01-u25 @@ -77,6 +88,7 @@ Host scs-node-st01-comp-r01-u25 Host scs-bmc-st01-comp-r01-u26 Hostname 10.10.23.20 + HostKeyAlgorithms=+ssh-rsa User root Host scs-node-st01-comp-r01-u26 @@ -84,6 +96,7 @@ Host scs-node-st01-comp-r01-u26 Host scs-bmc-st01-ctl-r01-u27 Hostname 10.10.23.12 + HostKeyAlgorithms=+ssh-rsa User ADMIN Host scs-node-st01-ctl-r01-u27 @@ -91,6 +104,7 @@ Host scs-node-st01-ctl-r01-u27 Host scs-bmc-st01-ctl-r01-u28 Hostname 10.10.23.13 + HostKeyAlgorithms=+ssh-rsa User ADMIN Host scs-node-st01-ctl-r01-u28 @@ -98,6 +112,7 @@ Host scs-node-st01-ctl-r01-u28 Host scs-bmc-st01-ctl-r01-u29 Hostname 10.10.23.14 + HostKeyAlgorithms=+ssh-rsa User ADMIN Host scs-node-st01-ctl-r01-u29 @@ -105,6 +120,7 @@ Host scs-node-st01-ctl-r01-u29 Host scs-bmc-st01-mgmt-r01-u30 Hostname 10.10.23.10 + HostKeyAlgorithms=+ssh-rsa User ADMIN Host scs-node-st01-mgmt-r01-u30 @@ -112,6 +128,7 @@ Host scs-node-st01-mgmt-r01-u30 Host scs-bmc-st01-mgmt-r01-u31 Hostname 10.10.23.11 + HostKeyAlgorithms=+ssh-rsa User ADMIN Host scs-node-st01-mgmt-r01-u31 @@ -119,6 +136,7 @@ Host scs-node-st01-mgmt-r01-u31 Host scs-bmc-st01-stor-r01-u01 Hostname 10.10.23.21 + HostKeyAlgorithms=+ssh-rsa User ADMIN Host scs-node-st01-stor-r01-u01 @@ -126,6 +144,7 @@ Host scs-node-st01-stor-r01-u01 Host scs-bmc-st01-stor-r01-u03 Hostname 10.10.23.22 + HostKeyAlgorithms=+ssh-rsa User ADMIN Host scs-node-st01-stor-r01-u03 @@ -133,6 +152,7 @@ Host scs-node-st01-stor-r01-u03 Host scs-bmc-st01-stor-r01-u05 Hostname 10.10.23.23 + HostKeyAlgorithms=+ssh-rsa User ADMIN Host scs-node-st01-stor-r01-u05 @@ -140,6 +160,7 @@ Host scs-node-st01-stor-r01-u05 Host scs-bmc-st01-stor-r01-u07 Hostname 10.10.23.24 + HostKeyAlgorithms=+ssh-rsa User ADMIN Host scs-node-st01-stor-r01-u07 diff --git a/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u27.cfg b/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u27.cfg index 4a51f078..9fb8d78d 100644 --- a/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u27.cfg +++ b/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u27.cfg @@ -221,15 +221,15 @@ USB CD/DVD special boot instance=00 // *00 (Boot Option #1), 01 (Boot Option USB Key special boot instance=00 // *00 (Boot Option #1), 01 (Boot Option #2), 02 (Boot Option #3), 03 (Boot Option #4), 04 (Boot Option #5), 05 (Boot Option #6), 06 (Boot Option #7), 07 (Boot Option #8), 08 (Boot Option #9), 09 (Boot Option #10), 0A (Boot Option #11), 0B (Boot Option #12), 0C (Boot Option #13), 0D (Boot Option #14), 0E (Boot Option #15), 0F (Boot Option #16) USB Floppy special boot instance=00 // *00 (Boot Option #1), 01 (Boot Option #2), 02 (Boot Option #3), 03 (Boot Option #4), 04 (Boot Option #5), 05 (Boot Option #6), 06 (Boot Option #7), 07 (Boot Option #8), 08 (Boot Option #9), 09 (Boot Option #10), 0A (Boot Option #11), 0B (Boot Option #12), 0C (Boot Option #13), 0D (Boot Option #14), 0E (Boot Option #15), 0F (Boot Option #16) Network special boot instance=00 // *00 (Boot Option #1), 01 (Boot Option #2), 02 (Boot Option #3), 03 (Boot Option #4), 04 (Boot Option #5), 05 (Boot Option #6), 06 (Boot Option #7), 07 (Boot Option #8), 08 (Boot Option #9), 09 (Boot Option #10), 0A (Boot Option #11), 0B (Boot Option #12), 0C (Boot Option #13), 0D (Boot Option #14), 0E (Boot Option #15), 0F (Boot Option #16) -UEFI Boot Option #1=0000 // *0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #2=0007 // 0000 (UEFI Hard Disk), *0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #3=0002 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), *0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #4=0003 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), *0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #5=0004 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), *0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #6=0005 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), *0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #7=0006 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), *0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #8=0001 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), *0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #9=0008 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), *0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #1=0000 // *0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #2=0007 // 0000 (UEFI Hard Disk:ubuntu), *0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #3=0002 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), *0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #4=0003 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), *0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #5=0004 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), *0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #6=0005 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), *0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #7=0006 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), *0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #8=0001 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), *0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #9=0008 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), *0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" Legacy Boot Option #1=0000 // *0000 (Hard Disk), 0001 (CD/DVD), 0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), 0005 (USB Floppy), 0006 (USB Lan), 0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" Legacy Boot Option #2=0001 // 0000 (Hard Disk), *0001 (CD/DVD), 0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), 0005 (USB Floppy), 0006 (USB Lan), 0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" Legacy Boot Option #3=0002 // 0000 (Hard Disk), 0001 (CD/DVD), *0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), 0005 (USB Floppy), 0006 (USB Lan), 0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" @@ -238,20 +238,20 @@ Legacy Boot Option #5=0004 // 0000 (Hard Disk), 0001 (CD/DVD), 0002 Legacy Boot Option #6=0005 // 0000 (Hard Disk), 0001 (CD/DVD), 0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), *0005 (USB Floppy), 0006 (USB Lan), 0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" Legacy Boot Option #7=0006 // 0000 (Hard Disk), 0001 (CD/DVD), 0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), 0005 (USB Floppy), *0006 (USB Lan), 0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" Legacy Boot Option #8=0007 // 0000 (Hard Disk), 0001 (CD/DVD), 0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), 0005 (USB Floppy), 0006 (USB Lan), *0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" -Dual Boot Option #1=0000 // *0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #2=0001 // 0000 (UEFI Hard Disk), *0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #3=0002 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), *0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #4=0003 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), *0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #5=0004 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), *0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #6=0005 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), *0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #7=0006 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), *0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #8=0007 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), *0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #9=0008 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), *0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #10=0009 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), *0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #11=000A // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), *000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #12=000B // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), *000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #13=000C // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), *000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #14=000D // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), *000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #15=000E // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), *000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #16=000F // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), *000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #17=0010 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), *0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #1=0000 // *0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #2=0001 // 0000 (UEFI Hard Disk:ubuntu), *0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #3=0002 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), *0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #4=0003 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), *0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #5=0004 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), *0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #6=0005 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), *0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #7=0006 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), *0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #8=0007 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), *0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #9=0008 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), *0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #10=0009 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), *0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #11=000A // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), *000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #12=000B // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), *000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #13=000C // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), *000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #14=000D // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), *000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #15=000E // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), *000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #16=000F // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), *000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #17=0010 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), *0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" diff --git a/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u27.xml b/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u27.xml index 0311b831..4c201fed 100644 --- a/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u27.xml +++ b/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u27.xml @@ -405,7 +405,7 @@ - 10.10.23.1 + 10.10.23.254 @@ -414,7 +414,7 @@ - \media\ubuntu-autoinstall-osism-4.iso + \media\A2SDV-8C-LN8F.iso @@ -424,7 +424,7 @@ - Oji2aet6 + osism @@ -491,7 +491,7 @@ Disable - N.A + MD5 MD5 @@ -672,7 +672,7 @@ 0 - 0E 00 00 01 00 01 2D 02 2E 00 3C EC EF 5B B5 B9 + 0E 00 00 01 00 01 2D F0 52 CE 3C EC EF 5B B5 B9 diff --git a/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u28.cfg b/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u28.cfg index 4a51f078..290b1d70 100644 --- a/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u28.cfg +++ b/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u28.cfg @@ -221,15 +221,15 @@ USB CD/DVD special boot instance=00 // *00 (Boot Option #1), 01 (Boot Option USB Key special boot instance=00 // *00 (Boot Option #1), 01 (Boot Option #2), 02 (Boot Option #3), 03 (Boot Option #4), 04 (Boot Option #5), 05 (Boot Option #6), 06 (Boot Option #7), 07 (Boot Option #8), 08 (Boot Option #9), 09 (Boot Option #10), 0A (Boot Option #11), 0B (Boot Option #12), 0C (Boot Option #13), 0D (Boot Option #14), 0E (Boot Option #15), 0F (Boot Option #16) USB Floppy special boot instance=00 // *00 (Boot Option #1), 01 (Boot Option #2), 02 (Boot Option #3), 03 (Boot Option #4), 04 (Boot Option #5), 05 (Boot Option #6), 06 (Boot Option #7), 07 (Boot Option #8), 08 (Boot Option #9), 09 (Boot Option #10), 0A (Boot Option #11), 0B (Boot Option #12), 0C (Boot Option #13), 0D (Boot Option #14), 0E (Boot Option #15), 0F (Boot Option #16) Network special boot instance=00 // *00 (Boot Option #1), 01 (Boot Option #2), 02 (Boot Option #3), 03 (Boot Option #4), 04 (Boot Option #5), 05 (Boot Option #6), 06 (Boot Option #7), 07 (Boot Option #8), 08 (Boot Option #9), 09 (Boot Option #10), 0A (Boot Option #11), 0B (Boot Option #12), 0C (Boot Option #13), 0D (Boot Option #14), 0E (Boot Option #15), 0F (Boot Option #16) -UEFI Boot Option #1=0000 // *0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #2=0007 // 0000 (UEFI Hard Disk), *0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #3=0002 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), *0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #4=0003 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), *0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #5=0004 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), *0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #6=0005 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), *0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #7=0006 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), *0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #8=0001 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), *0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #9=0008 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), *0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #1=0000 // *0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #2=0001 // 0000 (UEFI Hard Disk:ubuntu), *0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #3=0002 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), *0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #4=0003 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), *0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #5=0004 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), *0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #6=0005 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), *0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #7=0006 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), *0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #8=0007 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), *0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #9=0008 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), *0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" Legacy Boot Option #1=0000 // *0000 (Hard Disk), 0001 (CD/DVD), 0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), 0005 (USB Floppy), 0006 (USB Lan), 0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" Legacy Boot Option #2=0001 // 0000 (Hard Disk), *0001 (CD/DVD), 0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), 0005 (USB Floppy), 0006 (USB Lan), 0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" Legacy Boot Option #3=0002 // 0000 (Hard Disk), 0001 (CD/DVD), *0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), 0005 (USB Floppy), 0006 (USB Lan), 0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" @@ -238,20 +238,20 @@ Legacy Boot Option #5=0004 // 0000 (Hard Disk), 0001 (CD/DVD), 0002 Legacy Boot Option #6=0005 // 0000 (Hard Disk), 0001 (CD/DVD), 0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), *0005 (USB Floppy), 0006 (USB Lan), 0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" Legacy Boot Option #7=0006 // 0000 (Hard Disk), 0001 (CD/DVD), 0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), 0005 (USB Floppy), *0006 (USB Lan), 0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" Legacy Boot Option #8=0007 // 0000 (Hard Disk), 0001 (CD/DVD), 0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), 0005 (USB Floppy), 0006 (USB Lan), *0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" -Dual Boot Option #1=0000 // *0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #2=0001 // 0000 (UEFI Hard Disk), *0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #3=0002 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), *0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #4=0003 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), *0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #5=0004 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), *0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #6=0005 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), *0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #7=0006 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), *0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #8=0007 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), *0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #9=0008 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), *0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #10=0009 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), *0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #11=000A // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), *000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #12=000B // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), *000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #13=000C // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), *000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #14=000D // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), *000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #15=000E // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), *000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #16=000F // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), *000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #17=0010 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk:UEFI: ASolid USB, Partition 1), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), *0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #1=0000 // *0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #2=0001 // 0000 (UEFI Hard Disk:ubuntu), *0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #3=0002 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), *0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #4=0003 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), *0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #5=0004 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), *0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #6=0005 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), *0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #7=0006 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), *0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #8=0007 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), *0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #9=0008 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), *0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #10=0009 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), *0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #11=000A // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), *000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #12=000B // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), *000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #13=000C // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), *000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #14=000D // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), *000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #15=000E // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), *000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #16=000F // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), *000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #17=0010 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), *0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" diff --git a/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u28.xml b/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u28.xml index dd301b2c..dc07d086 100644 --- a/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u28.xml +++ b/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u28.xml @@ -405,7 +405,7 @@ - 10.10.23.1 + 10.10.23.254 @@ -414,7 +414,7 @@ - \media\ubuntu-autoinstall-osism-4.iso + \media\A2SDV-8C-LN8F.iso @@ -424,7 +424,7 @@ - Oji2aet6 + osism @@ -491,7 +491,7 @@ Disable - N.A + MD5 MD5 @@ -672,7 +672,7 @@ 0 - 0E 00 00 01 00 01 2D 30 4D 92 3C EC EF 5B B5 BF + 0E 00 00 01 00 01 2C 66 FA 98 3C EC EF 5B B5 BF diff --git a/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u29.cfg b/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u29.cfg index 984cb4f7..9fb8d78d 100644 --- a/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u29.cfg +++ b/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u29.cfg @@ -221,15 +221,15 @@ USB CD/DVD special boot instance=00 // *00 (Boot Option #1), 01 (Boot Option USB Key special boot instance=00 // *00 (Boot Option #1), 01 (Boot Option #2), 02 (Boot Option #3), 03 (Boot Option #4), 04 (Boot Option #5), 05 (Boot Option #6), 06 (Boot Option #7), 07 (Boot Option #8), 08 (Boot Option #9), 09 (Boot Option #10), 0A (Boot Option #11), 0B (Boot Option #12), 0C (Boot Option #13), 0D (Boot Option #14), 0E (Boot Option #15), 0F (Boot Option #16) USB Floppy special boot instance=00 // *00 (Boot Option #1), 01 (Boot Option #2), 02 (Boot Option #3), 03 (Boot Option #4), 04 (Boot Option #5), 05 (Boot Option #6), 06 (Boot Option #7), 07 (Boot Option #8), 08 (Boot Option #9), 09 (Boot Option #10), 0A (Boot Option #11), 0B (Boot Option #12), 0C (Boot Option #13), 0D (Boot Option #14), 0E (Boot Option #15), 0F (Boot Option #16) Network special boot instance=00 // *00 (Boot Option #1), 01 (Boot Option #2), 02 (Boot Option #3), 03 (Boot Option #4), 04 (Boot Option #5), 05 (Boot Option #6), 06 (Boot Option #7), 07 (Boot Option #8), 08 (Boot Option #9), 09 (Boot Option #10), 0A (Boot Option #11), 0B (Boot Option #12), 0C (Boot Option #13), 0D (Boot Option #14), 0E (Boot Option #15), 0F (Boot Option #16) -UEFI Boot Option #1=0000 // *0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #2=0007 // 0000 (UEFI Hard Disk), *0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #3=0002 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), *0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #4=0003 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), *0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #5=0004 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), *0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #6=0005 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), *0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #7=0006 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), *0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #8=0001 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), *0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" -UEFI Boot Option #9=0008 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), *0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #1=0000 // *0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #2=0007 // 0000 (UEFI Hard Disk:ubuntu), *0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #3=0002 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), *0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #4=0003 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), *0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #5=0004 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), *0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #6=0005 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), *0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #7=0006 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), *0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #8=0001 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), *0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" +UEFI Boot Option #9=0008 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), *0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Disabled) Boot Mode Select = "UEFI" Legacy Boot Option #1=0000 // *0000 (Hard Disk), 0001 (CD/DVD), 0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), 0005 (USB Floppy), 0006 (USB Lan), 0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" Legacy Boot Option #2=0001 // 0000 (Hard Disk), *0001 (CD/DVD), 0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), 0005 (USB Floppy), 0006 (USB Lan), 0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" Legacy Boot Option #3=0002 // 0000 (Hard Disk), 0001 (CD/DVD), *0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), 0005 (USB Floppy), 0006 (USB Lan), 0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" @@ -238,20 +238,20 @@ Legacy Boot Option #5=0004 // 0000 (Hard Disk), 0001 (CD/DVD), 0002 Legacy Boot Option #6=0005 // 0000 (Hard Disk), 0001 (CD/DVD), 0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), *0005 (USB Floppy), 0006 (USB Lan), 0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" Legacy Boot Option #7=0006 // 0000 (Hard Disk), 0001 (CD/DVD), 0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), 0005 (USB Floppy), *0006 (USB Lan), 0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" Legacy Boot Option #8=0007 // 0000 (Hard Disk), 0001 (CD/DVD), 0002 (USB Hard Disk), 0003 (USB CD/DVD), 0004 (USB Key), 0005 (USB Floppy), 0006 (USB Lan), *0007 (Network), 0008 (Disabled) Boot Mode Select = "LEGACY" -Dual Boot Option #1=0000 // *0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #2=0001 // 0000 (UEFI Hard Disk), *0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #3=0002 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), *0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #4=0003 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), *0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #5=0004 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), *0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #6=0005 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), *0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #7=0006 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), *0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #8=0007 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), *0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #9=0008 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), *0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #10=0009 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), *0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #11=000A // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), *000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #12=000B // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), *000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #13=000C // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), *000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #14=000D // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), *000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #15=000E // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), *000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #16=000F // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), *000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" -Dual Boot Option #17=0010 // 0000 (UEFI Hard Disk), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), *0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #1=0000 // *0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #2=0001 // 0000 (UEFI Hard Disk:ubuntu), *0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #3=0002 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), *0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #4=0003 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), *0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #5=0004 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), *0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #6=0005 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), *0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #7=0006 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), *0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #8=0007 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), *0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #9=0008 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), *0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #10=0009 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), *0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #11=000A // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), *000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #12=000B // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), *000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #13=000C // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), *000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #14=000D // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), *000D (USB Key), 000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #15=000E // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), *000E (USB Floppy), 000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #16=000F // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), *000F (USB Lan), 0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" +Dual Boot Option #17=0010 // 0000 (UEFI Hard Disk:ubuntu), 0001 (UEFI CD/DVD), 0002 (UEFI USB Hard Disk), 0003 (UEFI USB CD/DVD), 0004 (UEFI USB Key), 0005 (UEFI USB Floppy), 0006 (UEFI USB Lan), 0007 (UEFI Network:UEFI: PXE IP4 Intel(R) I350 Gigabit Network Connection), 0008 (UEFI AP:UEFI: Built-in EFI Shell), 0009 (Hard Disk), 000A (CD/DVD), 000B (USB Hard Disk), 000C (USB CD/DVD), 000D (USB Key), 000E (USB Floppy), 000F (USB Lan), *0010 (Network), 0011 (Disabled) Boot Mode Select = "DUAL" diff --git a/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u29.xml b/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u29.xml index 93c24a2d..5eacf3fe 100644 --- a/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u29.xml +++ b/device_configurations/server/A2SDV-8C-LN8F_st01-ctl-r01-u29.xml @@ -400,12 +400,12 @@ - Mounted + Unmounted - 10.10.23.1 + 10.10.23.254 @@ -414,7 +414,7 @@ - \media\ubuntu-autoinstall-osism-4.iso + \media\A2SDV-8C-LN8F.iso @@ -424,7 +424,7 @@ - Oji2aet6 + osism @@ -491,7 +491,7 @@ Disable - N.A + MD5 MD5 @@ -672,7 +672,7 @@ 0 - 0E 00 00 01 00 01 2D 30 1C B1 3C EC EF 5B B5 BB + 0E 00 00 01 00 01 2D F0 53 18 3C EC EF 5B B5 BB diff --git a/device_configurations/server/H12SSL-CT_st01-stor-r01-u01.cfg b/device_configurations/server/H12SSL-CT_st01-stor-r01-u01.cfg index f7625a0e..167dc100 100644 --- a/device_configurations/server/H12SSL-CT_st01-stor-r01-u01.cfg +++ b/device_configurations/server/H12SSL-CT_st01-stor-r01-u01.cfg @@ -1561,7 +1561,7 @@ Auto = Disabled]]> USB Controllers:() 4 XHCIs USB Devices:() - 1 Keyboard, 1 Mouse, 1 Hub + 1 Drive, 1 Keyboard, 1 Mouse, 1 Hub @@ -2422,7 +2422,7 @@ The mode change requires platform reset]]> - + @@ -2435,13 +2435,13 @@ The mode change requires platform reset]]> - + - + @@ -2460,7 +2460,7 @@ The mode change requires platform reset]]> - + @@ -2473,13 +2473,13 @@ The mode change requires platform reset]]> - + - + @@ -2487,7 +2487,7 @@ The mode change requires platform reset]]> - UEFI USB CD/DVD + UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J @@ -2498,7 +2498,7 @@ The mode change requires platform reset]]> - + @@ -2517,7 +2517,7 @@ The mode change requires platform reset]]> - + @@ -2536,7 +2536,7 @@ The mode change requires platform reset]]> - + @@ -2555,7 +2555,7 @@ The mode change requires platform reset]]> - + @@ -2574,7 +2574,7 @@ The mode change requires platform reset]]> - + @@ -2593,7 +2593,7 @@ The mode change requires platform reset]]> - + @@ -2611,7 +2611,7 @@ The mode change requires platform reset]]> - + @@ -2629,7 +2629,7 @@ The mode change requires platform reset]]> - + @@ -2641,20 +2641,20 @@ The mode change requires platform reset]]> - + - + - USB CD/DVD + USB CD/DVD:ATEN Virtual CDROM YS0J @@ -2665,7 +2665,7 @@ The mode change requires platform reset]]> - + @@ -2683,7 +2683,7 @@ The mode change requires platform reset]]> - + @@ -2701,7 +2701,7 @@ The mode change requires platform reset]]> - + @@ -2719,7 +2719,7 @@ The mode change requires platform reset]]> - + @@ -2737,7 +2737,7 @@ The mode change requires platform reset]]> - + @@ -2745,7 +2745,7 @@ The mode change requires platform reset]]> - + @@ -2764,7 +2764,7 @@ The mode change requires platform reset]]> - + @@ -2772,7 +2772,7 @@ The mode change requires platform reset]]> - + @@ -2791,7 +2791,7 @@ The mode change requires platform reset]]> - + @@ -2799,7 +2799,7 @@ The mode change requires platform reset]]> - + @@ -2812,13 +2812,13 @@ The mode change requires platform reset]]> - + - + @@ -2826,7 +2826,7 @@ The mode change requires platform reset]]> - + @@ -2834,7 +2834,7 @@ The mode change requires platform reset]]> - USB CD/DVD + USB CD/DVD:ATEN Virtual CDROM YS0J @@ -2845,7 +2845,7 @@ The mode change requires platform reset]]> - + @@ -2853,7 +2853,7 @@ The mode change requires platform reset]]> - + @@ -2872,7 +2872,7 @@ The mode change requires platform reset]]> - + @@ -2880,7 +2880,7 @@ The mode change requires platform reset]]> - + @@ -2899,7 +2899,7 @@ The mode change requires platform reset]]> - + @@ -2907,7 +2907,7 @@ The mode change requires platform reset]]> - + @@ -2926,7 +2926,7 @@ The mode change requires platform reset]]> - + @@ -2934,7 +2934,7 @@ The mode change requires platform reset]]> - + @@ -2953,7 +2953,7 @@ The mode change requires platform reset]]> - + @@ -2961,7 +2961,7 @@ The mode change requires platform reset]]> - + @@ -2980,7 +2980,7 @@ The mode change requires platform reset]]> - + @@ -2988,7 +2988,7 @@ The mode change requires platform reset]]> - + @@ -3007,7 +3007,7 @@ The mode change requires platform reset]]> - + @@ -3015,7 +3015,7 @@ The mode change requires platform reset]]> - + @@ -3028,13 +3028,13 @@ The mode change requires platform reset]]> - + - + @@ -3042,7 +3042,7 @@ The mode change requires platform reset]]> - + @@ -3050,7 +3050,7 @@ The mode change requires platform reset]]> - UEFI USB CD/DVD + UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J @@ -3061,7 +3061,7 @@ The mode change requires platform reset]]> - + @@ -3069,7 +3069,7 @@ The mode change requires platform reset]]> - + @@ -3088,7 +3088,7 @@ The mode change requires platform reset]]> - + @@ -3096,7 +3096,7 @@ The mode change requires platform reset]]> - + @@ -3115,7 +3115,7 @@ The mode change requires platform reset]]> - + @@ -3123,7 +3123,7 @@ The mode change requires platform reset]]> - + @@ -3142,7 +3142,7 @@ The mode change requires platform reset]]> - + @@ -3150,7 +3150,7 @@ The mode change requires platform reset]]> - + @@ -3169,7 +3169,7 @@ The mode change requires platform reset]]> - + @@ -3177,7 +3177,7 @@ The mode change requires platform reset]]> - + @@ -3197,13 +3197,29 @@ The mode change requires platform reset]]> - + - + - ubuntu(PciRoot1/PCI,Dev:3,Fun:2/NVMe,NSID:0x1) + ubuntu(PciRoot1/PCI,Dev:3,Fun:1/NVMe,NSID:0x1) + + + + + + + + + + + + + + + + UEFI: ATEN Virtual CDROM YS0J(USB,Port:0/USB,Port:2) @@ -3213,7 +3229,7 @@ The mode change requires platform reset]]> - + @@ -3355,7 +3371,7 @@ The mode change requires platform reset]]> - + @@ -3366,6 +3382,22 @@ The mode change requires platform reset]]> + + + + + + + + + + + + ATEN Virtual CDROM YS0J(USB,Port:0/USB,Port:2) + + + + diff --git a/device_configurations/server/H12SSL-CT_st01-stor-r01-u01.xml b/device_configurations/server/H12SSL-CT_st01-stor-r01-u01.xml index b67a3535..6d634718 100644 --- a/device_configurations/server/H12SSL-CT_st01-stor-r01-u01.xml +++ b/device_configurations/server/H12SSL-CT_st01-stor-r01-u01.xml @@ -287,7 +287,7 @@ - 2024/6/1 11:30 + 2024/6/13 16:49 @@ -483,13 +483,13 @@ - + CD/DVD - + http://10.10.23.254:8080 @@ -497,7 +497,7 @@ - + /H12SSL-CT.iso @@ -517,7 +517,7 @@ - Disable + Enable diff --git a/device_configurations/server/H12SSL-CT_st01-stor-r01-u03.cfg b/device_configurations/server/H12SSL-CT_st01-stor-r01-u03.cfg index 65c2c7fe..6f7bb2e6 100644 --- a/device_configurations/server/H12SSL-CT_st01-stor-r01-u03.cfg +++ b/device_configurations/server/H12SSL-CT_st01-stor-r01-u03.cfg @@ -2416,7 +2416,7 @@ The mode change requires platform reset]]> FIXED BOOT ORDER Priorities - + @@ -2435,7 +2435,7 @@ The mode change requires platform reset]]> - + @@ -2473,7 +2473,7 @@ The mode change requires platform reset]]> - + @@ -3197,13 +3197,13 @@ The mode change requires platform reset]]> - + - + - ubuntu(PciRoot1/PCI,Dev:3,Fun:2/NVMe,NSID:0x1) + ubuntu(PciRoot1/PCI,Dev:3,Fun:1/NVMe,NSID:0x1) diff --git a/device_configurations/server/H12SSL-CT_st01-stor-r01-u03.xml b/device_configurations/server/H12SSL-CT_st01-stor-r01-u03.xml index 01b45e29..9971e65f 100644 --- a/device_configurations/server/H12SSL-CT_st01-stor-r01-u03.xml +++ b/device_configurations/server/H12SSL-CT_st01-stor-r01-u03.xml @@ -287,7 +287,7 @@ - 2024/6/1 11:32 + 2024/6/13 16:50 @@ -489,7 +489,7 @@ - + http://10.10.23.254:8080 @@ -497,7 +497,7 @@ - + /H12SSL-CT.iso diff --git a/device_configurations/server/H12SSL-CT_st01-stor-r01-u05.cfg b/device_configurations/server/H12SSL-CT_st01-stor-r01-u05.cfg index d27b85cf..99f78b6f 100644 --- a/device_configurations/server/H12SSL-CT_st01-stor-r01-u05.cfg +++ b/device_configurations/server/H12SSL-CT_st01-stor-r01-u05.cfg @@ -1561,7 +1561,7 @@ Auto = Disabled]]> USB Controllers:() 4 XHCIs USB Devices:() - 1 Keyboard, 1 Mouse, 1 Hub + 1 Drive, 1 Keyboard, 1 Mouse, 1 Hub @@ -2416,13 +2416,13 @@ The mode change requires platform reset]]> FIXED BOOT ORDER Priorities - + - + - + @@ -2430,7 +2430,7 @@ The mode change requires platform reset]]> - UEFI Hard Disk + UEFI Hard Disk:ubuntu @@ -2438,10 +2438,10 @@ The mode change requires platform reset]]> - + - + @@ -2457,10 +2457,10 @@ The mode change requires platform reset]]> - + - + @@ -2473,13 +2473,13 @@ The mode change requires platform reset]]> - + - + - + @@ -2487,7 +2487,7 @@ The mode change requires platform reset]]> - UEFI USB CD/DVD + UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J @@ -2495,10 +2495,10 @@ The mode change requires platform reset]]> - + - + @@ -2514,10 +2514,10 @@ The mode change requires platform reset]]> - + - + @@ -2533,10 +2533,10 @@ The mode change requires platform reset]]> - + - + @@ -2552,10 +2552,10 @@ The mode change requires platform reset]]> - + - + @@ -2571,10 +2571,10 @@ The mode change requires platform reset]]> - + - + @@ -2593,7 +2593,7 @@ The mode change requires platform reset]]> - + @@ -2611,7 +2611,7 @@ The mode change requires platform reset]]> - + @@ -2629,7 +2629,7 @@ The mode change requires platform reset]]> - + @@ -2641,20 +2641,20 @@ The mode change requires platform reset]]> - + - + - USB CD/DVD + USB CD/DVD:ATEN Virtual CDROM YS0J @@ -2665,7 +2665,7 @@ The mode change requires platform reset]]> - + @@ -2683,7 +2683,7 @@ The mode change requires platform reset]]> - + @@ -2701,7 +2701,7 @@ The mode change requires platform reset]]> - + @@ -2719,7 +2719,7 @@ The mode change requires platform reset]]> - + @@ -2737,15 +2737,15 @@ The mode change requires platform reset]]> - + - + - + @@ -2764,15 +2764,15 @@ The mode change requires platform reset]]> - + - + - + @@ -2791,15 +2791,15 @@ The mode change requires platform reset]]> - + - + - + @@ -2812,21 +2812,21 @@ The mode change requires platform reset]]> - + - + - + - + @@ -2834,7 +2834,7 @@ The mode change requires platform reset]]> - USB CD/DVD + USB CD/DVD:ATEN Virtual CDROM YS0J @@ -2845,15 +2845,15 @@ The mode change requires platform reset]]> - + - + - + @@ -2872,15 +2872,15 @@ The mode change requires platform reset]]> - + - + - + @@ -2899,15 +2899,15 @@ The mode change requires platform reset]]> - + - + - + @@ -2926,15 +2926,15 @@ The mode change requires platform reset]]> - + - + - + @@ -2947,21 +2947,21 @@ The mode change requires platform reset]]> - + - + - + - + @@ -2969,7 +2969,7 @@ The mode change requires platform reset]]> - UEFI Hard Disk + UEFI Hard Disk:ubuntu @@ -2980,15 +2980,15 @@ The mode change requires platform reset]]> - + - + - + @@ -3007,15 +3007,15 @@ The mode change requires platform reset]]> - + - + - + @@ -3028,21 +3028,21 @@ The mode change requires platform reset]]> - + - + - + - + @@ -3050,7 +3050,7 @@ The mode change requires platform reset]]> - UEFI USB CD/DVD + UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YS0J @@ -3061,15 +3061,15 @@ The mode change requires platform reset]]> - + - + - + @@ -3088,15 +3088,15 @@ The mode change requires platform reset]]> - + - + - + @@ -3115,15 +3115,15 @@ The mode change requires platform reset]]> - + - + - + @@ -3142,15 +3142,15 @@ The mode change requires platform reset]]> - + - + - + @@ -3169,15 +3169,15 @@ The mode change requires platform reset]]> - + - + - + @@ -3192,12 +3192,44 @@ The mode change requires platform reset]]> + + + + + + + + + + + + ubuntu(PciRoot1/PCI,Dev:3,Fun:1/NVMe,NSID:0x1) + + + + + + + + + + + + + + + + UEFI: ATEN Virtual CDROM YS0J(USB,Port:0/USB,Port:2) + + + + - + @@ -3339,7 +3371,7 @@ The mode change requires platform reset]]> - + @@ -3350,6 +3382,22 @@ The mode change requires platform reset]]> + + + + + + + + + + + + ATEN Virtual CDROM YS0J(USB,Port:0/USB,Port:2) + + + + diff --git a/device_configurations/server/H12SSL-CT_st01-stor-r01-u05.xml b/device_configurations/server/H12SSL-CT_st01-stor-r01-u05.xml index 8c3941a5..bac277d7 100644 --- a/device_configurations/server/H12SSL-CT_st01-stor-r01-u05.xml +++ b/device_configurations/server/H12SSL-CT_st01-stor-r01-u05.xml @@ -287,7 +287,7 @@ - 2024/6/1 11:33 + 2024/6/13 16:52 @@ -483,13 +483,13 @@ - + CD/DVD - + http://10.10.23.254:8080 @@ -497,7 +497,7 @@ - + /H12SSL-CT.iso @@ -517,7 +517,7 @@ - Disable + Enable diff --git a/device_configurations/server/H12SSL-CT_st01-stor-r01-u07.cfg b/device_configurations/server/H12SSL-CT_st01-stor-r01-u07.cfg index c49aa998..d3b89eb5 100644 --- a/device_configurations/server/H12SSL-CT_st01-stor-r01-u07.cfg +++ b/device_configurations/server/H12SSL-CT_st01-stor-r01-u07.cfg @@ -2416,10 +2416,10 @@ The mode change requires platform reset]]> FIXED BOOT ORDER Priorities - + - + @@ -2430,7 +2430,7 @@ The mode change requires platform reset]]> - UEFI Hard Disk + UEFI Hard Disk:ubuntu @@ -2438,7 +2438,7 @@ The mode change requires platform reset]]> - + @@ -2457,7 +2457,7 @@ The mode change requires platform reset]]> - + @@ -2476,7 +2476,7 @@ The mode change requires platform reset]]> - + @@ -2495,7 +2495,7 @@ The mode change requires platform reset]]> - + @@ -2514,7 +2514,7 @@ The mode change requires platform reset]]> - + @@ -2533,7 +2533,7 @@ The mode change requires platform reset]]> - + @@ -2552,7 +2552,7 @@ The mode change requires platform reset]]> - + @@ -2571,7 +2571,7 @@ The mode change requires platform reset]]> - + @@ -2742,7 +2742,7 @@ The mode change requires platform reset]]> - + @@ -2769,7 +2769,7 @@ The mode change requires platform reset]]> - + @@ -2796,7 +2796,7 @@ The mode change requires platform reset]]> - + @@ -2823,7 +2823,7 @@ The mode change requires platform reset]]> - + @@ -2850,7 +2850,7 @@ The mode change requires platform reset]]> - + @@ -2877,7 +2877,7 @@ The mode change requires platform reset]]> - + @@ -2904,7 +2904,7 @@ The mode change requires platform reset]]> - + @@ -2931,7 +2931,7 @@ The mode change requires platform reset]]> - + @@ -2947,7 +2947,7 @@ The mode change requires platform reset]]> - + @@ -2958,7 +2958,7 @@ The mode change requires platform reset]]> - + @@ -2969,7 +2969,7 @@ The mode change requires platform reset]]> - UEFI Hard Disk + UEFI Hard Disk:ubuntu @@ -2985,7 +2985,7 @@ The mode change requires platform reset]]> - + @@ -3012,7 +3012,7 @@ The mode change requires platform reset]]> - + @@ -3039,7 +3039,7 @@ The mode change requires platform reset]]> - + @@ -3066,7 +3066,7 @@ The mode change requires platform reset]]> - + @@ -3093,7 +3093,7 @@ The mode change requires platform reset]]> - + @@ -3120,7 +3120,7 @@ The mode change requires platform reset]]> - + @@ -3147,7 +3147,7 @@ The mode change requires platform reset]]> - + @@ -3174,7 +3174,7 @@ The mode change requires platform reset]]> - + @@ -3192,12 +3192,28 @@ The mode change requires platform reset]]> + + + + + + + + + + + + ubuntu(PciRoot1/PCI,Dev:3,Fun:1/NVMe,NSID:0x1) + + + + - + @@ -3339,7 +3355,7 @@ The mode change requires platform reset]]> - + diff --git a/device_configurations/server/H12SSL-CT_st01-stor-r01-u07.xml b/device_configurations/server/H12SSL-CT_st01-stor-r01-u07.xml index c5d65fc4..18c8e7f8 100644 --- a/device_configurations/server/H12SSL-CT_st01-stor-r01-u07.xml +++ b/device_configurations/server/H12SSL-CT_st01-stor-r01-u07.xml @@ -287,7 +287,7 @@ - 2024/6/1 11:35 + 2024/6/13 16:53 @@ -489,7 +489,7 @@ - + http://10.10.23.254:8080 @@ -497,7 +497,7 @@ - + /H12SSL-CT.iso diff --git a/device_configurations/server/H12SSL-NT_st01-comp-r01-u09.cfg b/device_configurations/server/H12SSL-NT_st01-comp-r01-u09.cfg index f938242d..27ac3fd5 100644 --- a/device_configurations/server/H12SSL-NT_st01-comp-r01-u09.cfg +++ b/device_configurations/server/H12SSL-NT_st01-comp-r01-u09.cfg @@ -1963,8 +1963,6 @@ Auto = Disabled]]> - - @@ -2036,10 +2034,10 @@ The mode change requires platform reset]]> FIXED BOOT ORDER Priorities - + - + @@ -2050,15 +2048,15 @@ The mode change requires platform reset]]> - UEFI Hard Disk + UEFI Hard Disk:ubuntu - + - + @@ -2077,7 +2075,7 @@ The mode change requires platform reset]]> - + @@ -2096,7 +2094,7 @@ The mode change requires platform reset]]> - + @@ -2115,7 +2113,7 @@ The mode change requires platform reset]]> - + @@ -2134,7 +2132,7 @@ The mode change requires platform reset]]> - + @@ -2153,7 +2151,7 @@ The mode change requires platform reset]]> - + @@ -2172,7 +2170,7 @@ The mode change requires platform reset]]> - + @@ -2191,7 +2189,7 @@ The mode change requires platform reset]]> - + @@ -2362,7 +2360,7 @@ The mode change requires platform reset]]> - + @@ -2389,7 +2387,7 @@ The mode change requires platform reset]]> - + @@ -2416,7 +2414,7 @@ The mode change requires platform reset]]> - + @@ -2443,7 +2441,7 @@ The mode change requires platform reset]]> - + @@ -2470,7 +2468,7 @@ The mode change requires platform reset]]> - + @@ -2497,7 +2495,7 @@ The mode change requires platform reset]]> - + @@ -2524,7 +2522,7 @@ The mode change requires platform reset]]> - + @@ -2551,7 +2549,7 @@ The mode change requires platform reset]]> - + @@ -2567,7 +2565,7 @@ The mode change requires platform reset]]> - + @@ -2578,7 +2576,7 @@ The mode change requires platform reset]]> - + @@ -2589,7 +2587,7 @@ The mode change requires platform reset]]> - UEFI Hard Disk + UEFI Hard Disk:ubuntu @@ -2605,7 +2603,7 @@ The mode change requires platform reset]]> - + @@ -2632,7 +2630,7 @@ The mode change requires platform reset]]> - + @@ -2659,7 +2657,7 @@ The mode change requires platform reset]]> - + @@ -2686,7 +2684,7 @@ The mode change requires platform reset]]> - + @@ -2713,7 +2711,7 @@ The mode change requires platform reset]]> - + @@ -2740,7 +2738,7 @@ The mode change requires platform reset]]> - + @@ -2767,7 +2765,7 @@ The mode change requires platform reset]]> - + @@ -2794,7 +2792,7 @@ The mode change requires platform reset]]> - + @@ -2812,12 +2810,28 @@ The mode change requires platform reset]]> + + + + + + + + + + + + ubuntu(Vendor,GUID:d487ddb4-008b-11d9-afdc-001083ffca4d) + + + + - + @@ -3075,7 +3089,7 @@ The mode change requires platform reset]]> - + diff --git a/device_configurations/server/H12SSL-NT_st01-comp-r01-u09.xml b/device_configurations/server/H12SSL-NT_st01-comp-r01-u09.xml index 5aa079e0..23e158a3 100644 --- a/device_configurations/server/H12SSL-NT_st01-comp-r01-u09.xml +++ b/device_configurations/server/H12SSL-NT_st01-comp-r01-u09.xml @@ -287,7 +287,7 @@ - 2024/6/1 11:19 + 2024/6/13 16:37 @@ -489,7 +489,7 @@ - + http://10.10.23.254:8080 @@ -497,7 +497,7 @@ - + /H12SSL-NT.iso @@ -949,7 +949,7 @@ Disable - + 8.8.8.8 diff --git a/device_configurations/server/H12SSL-NT_st01-comp-r01-u11.cfg b/device_configurations/server/H12SSL-NT_st01-comp-r01-u11.cfg index 4fc1fdf8..d1c97792 100644 --- a/device_configurations/server/H12SSL-NT_st01-comp-r01-u11.cfg +++ b/device_configurations/server/H12SSL-NT_st01-comp-r01-u11.cfg @@ -1963,8 +1963,6 @@ Auto = Disabled]]> - - @@ -2036,7 +2034,7 @@ The mode change requires platform reset]]> FIXED BOOT ORDER Priorities - + @@ -2055,7 +2053,7 @@ The mode change requires platform reset]]> - + @@ -2093,7 +2091,7 @@ The mode change requires platform reset]]> - + diff --git a/device_configurations/server/H12SSL-NT_st01-comp-r01-u11.xml b/device_configurations/server/H12SSL-NT_st01-comp-r01-u11.xml index f7a6fd27..4afe47e9 100644 --- a/device_configurations/server/H12SSL-NT_st01-comp-r01-u11.xml +++ b/device_configurations/server/H12SSL-NT_st01-comp-r01-u11.xml @@ -287,7 +287,7 @@ - 2024/6/1 11:20 + 2024/6/13 16:38 @@ -489,7 +489,7 @@ - + http://10.10.23.254:8080 @@ -497,7 +497,7 @@ - + /H12SSL-NT.iso @@ -949,7 +949,7 @@ Disable - + 8.8.8.8 diff --git a/device_configurations/server/H12SSL-NT_st01-comp-r01-u13.cfg b/device_configurations/server/H12SSL-NT_st01-comp-r01-u13.cfg index 7e7c71e6..b57d782d 100644 --- a/device_configurations/server/H12SSL-NT_st01-comp-r01-u13.cfg +++ b/device_configurations/server/H12SSL-NT_st01-comp-r01-u13.cfg @@ -1963,8 +1963,6 @@ Auto = Disabled]]> - - @@ -2036,7 +2034,7 @@ The mode change requires platform reset]]> FIXED BOOT ORDER Priorities - + @@ -2055,7 +2053,7 @@ The mode change requires platform reset]]> - + @@ -2093,7 +2091,7 @@ The mode change requires platform reset]]> - + diff --git a/device_configurations/server/H12SSL-NT_st01-comp-r01-u13.xml b/device_configurations/server/H12SSL-NT_st01-comp-r01-u13.xml index 9482f229..fdecaa6c 100644 --- a/device_configurations/server/H12SSL-NT_st01-comp-r01-u13.xml +++ b/device_configurations/server/H12SSL-NT_st01-comp-r01-u13.xml @@ -287,7 +287,7 @@ - 2024/6/1 11:22 + 2024/6/13 16:40 @@ -489,7 +489,7 @@ - + http://10.10.23.254:8080 @@ -497,7 +497,7 @@ - + /H12SSL-NT.iso @@ -949,7 +949,7 @@ Disable - + 8.8.8.8 @@ -968,7 +968,7 @@ fe80::3eec:efff:fe9f:e22f 64 - fd00::cece:1eff:fe65:f9ac + diff --git a/device_configurations/server/H12SSL-NT_st01-comp-r01-u15.cfg b/device_configurations/server/H12SSL-NT_st01-comp-r01-u15.cfg index 69cc21a2..17e62a46 100644 --- a/device_configurations/server/H12SSL-NT_st01-comp-r01-u15.cfg +++ b/device_configurations/server/H12SSL-NT_st01-comp-r01-u15.cfg @@ -1963,8 +1963,6 @@ Auto = Disabled]]> - - @@ -2036,10 +2034,10 @@ The mode change requires platform reset]]> FIXED BOOT ORDER Priorities - + - + @@ -2050,7 +2048,7 @@ The mode change requires platform reset]]> - UEFI Hard Disk + UEFI Hard Disk:ubuntu @@ -2058,7 +2056,7 @@ The mode change requires platform reset]]> - + @@ -2077,7 +2075,7 @@ The mode change requires platform reset]]> - + @@ -2096,7 +2094,7 @@ The mode change requires platform reset]]> - + @@ -2115,7 +2113,7 @@ The mode change requires platform reset]]> - + @@ -2134,7 +2132,7 @@ The mode change requires platform reset]]> - + @@ -2153,7 +2151,7 @@ The mode change requires platform reset]]> - + @@ -2172,7 +2170,7 @@ The mode change requires platform reset]]> - + @@ -2191,7 +2189,7 @@ The mode change requires platform reset]]> - + @@ -2362,7 +2360,7 @@ The mode change requires platform reset]]> - + @@ -2389,7 +2387,7 @@ The mode change requires platform reset]]> - + @@ -2416,7 +2414,7 @@ The mode change requires platform reset]]> - + @@ -2443,7 +2441,7 @@ The mode change requires platform reset]]> - + @@ -2470,7 +2468,7 @@ The mode change requires platform reset]]> - + @@ -2497,7 +2495,7 @@ The mode change requires platform reset]]> - + @@ -2524,7 +2522,7 @@ The mode change requires platform reset]]> - + @@ -2551,7 +2549,7 @@ The mode change requires platform reset]]> - + @@ -2567,7 +2565,7 @@ The mode change requires platform reset]]> - + @@ -2578,7 +2576,7 @@ The mode change requires platform reset]]> - + @@ -2589,7 +2587,7 @@ The mode change requires platform reset]]> - UEFI Hard Disk + UEFI Hard Disk:ubuntu @@ -2605,7 +2603,7 @@ The mode change requires platform reset]]> - + @@ -2632,7 +2630,7 @@ The mode change requires platform reset]]> - + @@ -2659,7 +2657,7 @@ The mode change requires platform reset]]> - + @@ -2686,7 +2684,7 @@ The mode change requires platform reset]]> - + @@ -2713,7 +2711,7 @@ The mode change requires platform reset]]> - + @@ -2740,7 +2738,7 @@ The mode change requires platform reset]]> - + @@ -2767,7 +2765,7 @@ The mode change requires platform reset]]> - + @@ -2794,7 +2792,7 @@ The mode change requires platform reset]]> - + @@ -2812,12 +2810,28 @@ The mode change requires platform reset]]> + + + + + + + + + + + + ubuntu(Vendor,GUID:d487ddb4-008b-11d9-afdc-001083ffca4d) + + + + - + @@ -3075,7 +3089,7 @@ The mode change requires platform reset]]> - + diff --git a/device_configurations/server/H12SSL-NT_st01-comp-r01-u15.xml b/device_configurations/server/H12SSL-NT_st01-comp-r01-u15.xml index 8b3299b0..b6c4e41e 100644 --- a/device_configurations/server/H12SSL-NT_st01-comp-r01-u15.xml +++ b/device_configurations/server/H12SSL-NT_st01-comp-r01-u15.xml @@ -287,7 +287,7 @@ - 2024/6/1 11:23 + 2024/6/13 16:41 @@ -489,7 +489,7 @@ - + http://10.10.23.254:8080 @@ -497,7 +497,7 @@ - + /H12SSL-NT.iso @@ -949,7 +949,7 @@ Disable - + 8.8.8.8 diff --git a/device_configurations/server/H12SSL-NT_st01-comp-r01-u17.cfg b/device_configurations/server/H12SSL-NT_st01-comp-r01-u17.cfg index fe21b208..6715b5a8 100644 --- a/device_configurations/server/H12SSL-NT_st01-comp-r01-u17.cfg +++ b/device_configurations/server/H12SSL-NT_st01-comp-r01-u17.cfg @@ -1963,8 +1963,6 @@ Auto = Disabled]]> - - @@ -2036,10 +2034,10 @@ The mode change requires platform reset]]> FIXED BOOT ORDER Priorities - + - + @@ -2050,7 +2048,7 @@ The mode change requires platform reset]]> - UEFI Hard Disk + UEFI Hard Disk:ubuntu @@ -2058,7 +2056,7 @@ The mode change requires platform reset]]> - + @@ -2077,7 +2075,7 @@ The mode change requires platform reset]]> - + @@ -2096,7 +2094,7 @@ The mode change requires platform reset]]> - + @@ -2115,7 +2113,7 @@ The mode change requires platform reset]]> - + @@ -2134,7 +2132,7 @@ The mode change requires platform reset]]> - + @@ -2153,7 +2151,7 @@ The mode change requires platform reset]]> - + @@ -2172,7 +2170,7 @@ The mode change requires platform reset]]> - + @@ -2191,7 +2189,7 @@ The mode change requires platform reset]]> - + @@ -2362,7 +2360,7 @@ The mode change requires platform reset]]> - + @@ -2389,7 +2387,7 @@ The mode change requires platform reset]]> - + @@ -2416,7 +2414,7 @@ The mode change requires platform reset]]> - + @@ -2443,7 +2441,7 @@ The mode change requires platform reset]]> - + @@ -2470,7 +2468,7 @@ The mode change requires platform reset]]> - + @@ -2497,7 +2495,7 @@ The mode change requires platform reset]]> - + @@ -2524,7 +2522,7 @@ The mode change requires platform reset]]> - + @@ -2551,7 +2549,7 @@ The mode change requires platform reset]]> - + @@ -2567,7 +2565,7 @@ The mode change requires platform reset]]> - + @@ -2578,7 +2576,7 @@ The mode change requires platform reset]]> - + @@ -2589,7 +2587,7 @@ The mode change requires platform reset]]> - UEFI Hard Disk + UEFI Hard Disk:ubuntu @@ -2605,7 +2603,7 @@ The mode change requires platform reset]]> - + @@ -2632,7 +2630,7 @@ The mode change requires platform reset]]> - + @@ -2659,7 +2657,7 @@ The mode change requires platform reset]]> - + @@ -2686,7 +2684,7 @@ The mode change requires platform reset]]> - + @@ -2713,7 +2711,7 @@ The mode change requires platform reset]]> - + @@ -2740,7 +2738,7 @@ The mode change requires platform reset]]> - + @@ -2767,7 +2765,7 @@ The mode change requires platform reset]]> - + @@ -2794,7 +2792,7 @@ The mode change requires platform reset]]> - + @@ -2812,12 +2810,28 @@ The mode change requires platform reset]]> + + + + + + + + + + + + ubuntu(Vendor,GUID:d487ddb4-008b-11d9-afdc-001083ffca4d) + + + + - + @@ -3075,7 +3089,7 @@ The mode change requires platform reset]]> - + diff --git a/device_configurations/server/H12SSL-NT_st01-comp-r01-u17.xml b/device_configurations/server/H12SSL-NT_st01-comp-r01-u17.xml index ba0d4b86..14e209c8 100644 --- a/device_configurations/server/H12SSL-NT_st01-comp-r01-u17.xml +++ b/device_configurations/server/H12SSL-NT_st01-comp-r01-u17.xml @@ -287,7 +287,7 @@ - 2024/6/1 11:24 + 2024/6/13 16:42 @@ -489,7 +489,7 @@ - + http://10.10.23.254:8080 @@ -497,7 +497,7 @@ - + /H12SSL-NT.iso @@ -949,7 +949,7 @@ Disable - + 8.8.8.8 diff --git a/device_configurations/server/H12SSL-NT_st01-comp-r01-u19.cfg b/device_configurations/server/H12SSL-NT_st01-comp-r01-u19.cfg index 102f422d..12bf9f50 100644 --- a/device_configurations/server/H12SSL-NT_st01-comp-r01-u19.cfg +++ b/device_configurations/server/H12SSL-NT_st01-comp-r01-u19.cfg @@ -1963,8 +1963,6 @@ Auto = Disabled]]> - - @@ -2036,10 +2034,10 @@ The mode change requires platform reset]]> FIXED BOOT ORDER Priorities - + - + @@ -2050,7 +2048,7 @@ The mode change requires platform reset]]> - UEFI Hard Disk + UEFI Hard Disk:ubuntu @@ -2058,7 +2056,7 @@ The mode change requires platform reset]]> - + @@ -2077,7 +2075,7 @@ The mode change requires platform reset]]> - + @@ -2096,7 +2094,7 @@ The mode change requires platform reset]]> - + @@ -2115,7 +2113,7 @@ The mode change requires platform reset]]> - + @@ -2134,7 +2132,7 @@ The mode change requires platform reset]]> - + @@ -2153,7 +2151,7 @@ The mode change requires platform reset]]> - + @@ -2172,7 +2170,7 @@ The mode change requires platform reset]]> - + @@ -2191,7 +2189,7 @@ The mode change requires platform reset]]> - + @@ -2362,7 +2360,7 @@ The mode change requires platform reset]]> - + @@ -2389,7 +2387,7 @@ The mode change requires platform reset]]> - + @@ -2416,7 +2414,7 @@ The mode change requires platform reset]]> - + @@ -2443,7 +2441,7 @@ The mode change requires platform reset]]> - + @@ -2470,7 +2468,7 @@ The mode change requires platform reset]]> - + @@ -2497,7 +2495,7 @@ The mode change requires platform reset]]> - + @@ -2524,7 +2522,7 @@ The mode change requires platform reset]]> - + @@ -2551,7 +2549,7 @@ The mode change requires platform reset]]> - + @@ -2567,7 +2565,7 @@ The mode change requires platform reset]]> - + @@ -2578,7 +2576,7 @@ The mode change requires platform reset]]> - + @@ -2589,7 +2587,7 @@ The mode change requires platform reset]]> - UEFI Hard Disk + UEFI Hard Disk:ubuntu @@ -2605,7 +2603,7 @@ The mode change requires platform reset]]> - + @@ -2632,7 +2630,7 @@ The mode change requires platform reset]]> - + @@ -2659,7 +2657,7 @@ The mode change requires platform reset]]> - + @@ -2686,7 +2684,7 @@ The mode change requires platform reset]]> - + @@ -2713,7 +2711,7 @@ The mode change requires platform reset]]> - + @@ -2740,7 +2738,7 @@ The mode change requires platform reset]]> - + @@ -2767,7 +2765,7 @@ The mode change requires platform reset]]> - + @@ -2794,7 +2792,7 @@ The mode change requires platform reset]]> - + @@ -2812,12 +2810,28 @@ The mode change requires platform reset]]> + + + + + + + + + + + + ubuntu(Vendor,GUID:d487ddb4-008b-11d9-afdc-001083ffca4d) + + + + - + @@ -3075,7 +3089,7 @@ The mode change requires platform reset]]> - + diff --git a/device_configurations/server/H12SSL-NT_st01-comp-r01-u19.xml b/device_configurations/server/H12SSL-NT_st01-comp-r01-u19.xml index 381e7a4c..525b2319 100644 --- a/device_configurations/server/H12SSL-NT_st01-comp-r01-u19.xml +++ b/device_configurations/server/H12SSL-NT_st01-comp-r01-u19.xml @@ -287,7 +287,7 @@ - 2024/6/1 11:26 + 2024/6/13 16:44 @@ -489,7 +489,7 @@ - + http://10.10.23.254:8080 @@ -497,7 +497,7 @@ - + /H12SSL-NT.iso @@ -949,7 +949,7 @@ Disable - + 8.8.8.8 diff --git a/documentation/System_Deployment.md b/documentation/System_Deployment.md index 3f6f72d8..c1ad0add 100644 --- a/documentation/System_Deployment.md +++ b/documentation/System_Deployment.md @@ -11,13 +11,11 @@ * Step 2: Template the configurations ``` ./server_ctl --bmc_template all - ./server_ctl --bmc_template st01-comp-r01-u09 git diff ``` * Step 3: Configure the nodes ``` ./server_ctl --restore_cfg bmc all - ./server_ctl --restore_cfg bmc st01-comp-r01-u09 ``` ## Deployment of the nodes @@ -41,7 +39,7 @@ 3. Install Manager Infrastructure from manager ``` sudo -u dragon -i - osism apply manager_infra + osism apply scs_infra -l manager ``` ### Step 2: Create and publish node images @@ -67,12 +65,15 @@ Please just add issues to this project with hints or directly [contact me](https * Create node node-images on manager ``` - st01-mgmt-r01-u30 + ssh dragon@scs-node-st01-mgmt-r01-u30 cd /opt/configuration/misc/node-images make all ``` * Configure "local shell on your local system * Add the passwords file for BMC password data (TODO, add this later to ansible secrets) : ``secrets/server.passwords`` + +### Install the node images + * Bootstrap legacy AMI BMC systems: (A2SDV-4C-LN8F and A2SDV-4C-LN8F, `st01-mgmt-*` and `st01-ctl`) 1. Configure Virtual Media @@ -97,6 +98,20 @@ Please just add issues to this project with hints or directly [contact me](https ./server_ctl --install_os -w --filter device_model=H12SSL-NT all # ARM Compute Servers - ``` -* Bootstrap legacy ARM systems TODO + ``` +* Set basic system time to prevent problems with apt and signatures + based on a http request to www.google.com. + (prevents problems with gpg signatures of packages) + ``` + osism apply scs_set_time_initial -l 'all:!manager' + ``` +* Install the installation infrastructure + ``` + osism apply scs_infra -l 'all:!manager' + ``` +* Execute the [bootstrap procedure](https://osism.tech/de/docs/guides/deploy-guide/bootstrap) +* Run Basic customizations + ``` + osism apply scs_all_nodes -l 'all:!manager' + ``` diff --git a/documentation/System_Usage.md b/documentation/System_Usage.md index 198de74e..6fd2ae5f 100644 --- a/documentation/System_Usage.md +++ b/documentation/System_Usage.md @@ -72,6 +72,40 @@ based on the documentation in [documentation/devices](./devices). git push ... ``` +## Serial Switch Console Access + +* Attach to a running screen session which provides access to the ttypS0..ttySX interfaces + or create automatically a new one + ``` + scs_serial_access + ``` +* Restart all sessions + 1. Attach to running session + ``` + scs_serial_access + ``` + 2. Terminate sessions by STRG+y :quit + 3. Restart terminals + ``` + scs_serial_access + ``` +* Review console output + see /var/log/screen + +* Screen Usage : + - 'CTLR + y d' + leave the session + - 'CTLR + y, "' + select your terminal + - 'CTLR + y, :quit' + terminate screen entirely + - 'CTLR + y, :break' + send a break signal + - Use the screen command + press 'STRG+y' + send a break signal: ':break' + - Hit the sysrq char "b" multiple times + - Watch the hardware booting :-) # Simple connection to the datacenter diff --git a/documentation/devices/network/FAQ_SONiC.md b/documentation/devices/network/FAQ_SONiC.md index 58b23027..c5c2a3a3 100644 --- a/documentation/devices/network/FAQ_SONiC.md +++ b/documentation/devices/network/FAQ_SONiC.md @@ -43,33 +43,11 @@ # FAQ for Edgecore Switches -## Serial Switch Console Access - -* Attach to a running screen session which provides access to the ttypS0..ttyS3 interfaces - or create automatically a new one - ``` - scs_serial_access - ``` - -> Leave with "STRG+y d" (we use a different command/escape key) -* Restart all sessions - 1. Attach to running session - ``` - scs_serial_access - ``` - 2. Terminate sessions by STRG+y :quit - 3. Restart terminals - ``` - scs_serial_access - ``` -* Review console output - see /var/log/screen - - ## Use Sysrq to restart https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html -- Open a serial sccreen to the hardware +- Open a serial screen to the hardware - Use the screen command (STRG+y or STRG+a) to send a break signal :break - Hit the sysrq char "b" multiple times diff --git a/environments/configuration.yml b/environments/configuration.yml index 370d6aab..1cd9e103 100644 --- a/environments/configuration.yml +++ b/environments/configuration.yml @@ -4,15 +4,13 @@ # docker docker_configure_proxy: false -docker_proxy_http: "http://{{ groups['manager'][0]['internal_ip'] }}:3128" +docker_proxy_http: "http://{{ squid_host }}:8888" docker_proxy_https: "{{ docker_proxy_http }}" # apt -proxy_proxies: {} -# http: "http://{{ groups['manager'][0]['internal_ip'] }}:3128" -# https: "http://{{ groups['manager'][0]['internal_ip'] }}:3128" -# http: "" -# https: "" +proxy_proxies: + http: "http://{{ squid_host }}:8888" + https: "http://{{ squid_host }}:8888" ########################################################## # proxy/server @@ -21,8 +19,8 @@ squid_configuration_directory: /opt/squid/configuration squid_docker_compose_directory: /opt/squid squid_host: 10.10.21.10 - -squid_tag: 5.7-23.04_beta # don't get fooled by "beta". this is actually production ready +#squid_tag: 5.7-23.04_beta # don't get fooled by "beta". this is actually production ready +squid_tag: edge ########################## @@ -39,8 +37,12 @@ docker_user: "{{ operator_user }}" # operator operator_user: dragon +operator_groups: [ "dragon", "adm", "sudo", "docker", "dialout" ] user_sudoers_type: "user" +user_delete: + - name: "osism" + user_list: - name: "scoopex" key: "github" @@ -48,54 +50,63 @@ user_list: uid: 45001 groups: - docker + - dialout - name: "garloff" key: "github" primary_group: dragon uid: 45002 groups: - docker + - dialout - name: "berendt" key: "github" primary_group: dragon uid: 45003 groups: - docker + - dialout - name: "ignatov17" key: "github" primary_group: dragon uid: 45004 groups: - docker + - dialout - name: "akafazov" key: "github" primary_group: dragon uid: 45005 groups: - docker + - dialout - name: "fkr" key: "github" primary_group: dragon uid: 45006 groups: - docker + - dialout - name: "fdobrovolny" key: "github" primary_group: dragon uid: 45007 groups: - docker + - dialout - name: "osfrickler" key: "github" primary_group: dragon uid: 45008 groups: - docker + - dialout - name: "zuse-z3" key: "github" primary_group: dragon uid: 45009 groups: - docker + - dialout # yamllint disable rule:line-length operator_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC2wE2xiuO+i3qmDvu8kCCKX7U7H1diOICbWmR2UrKIxqWgcfWMQsT3WclotJKuVJuKIWyFD6ZNwwLuvC3RxVSqhCiWjqxg3jzJBj7/C1O3IYyLGTUl/x7Cky530lf/aj4wrwt3Ketk/4QNwgget2nCvOy0S2NDCJ3rL6oIUjdJekvRrFf9IbWeX8fqYYCoh1cYJWto1XYPnhMDAB/lqtjN1ssurLSKoJg/bUT7q/KkIvvA/BOR2NMqS0aGx+bKhdkeB22V/t75Ct8ymoCYk9+MTC9i/QX20Fi7835/W7Gl18J8NiO9ebaWyYbsxZ5klWXQa5EiLLBDZ82OR88G+0FjXp1Z3VG6FcpdYpW7sxrT21HEvWOnQACZCdlzwyBJ31id/LjDRhJU6BmZm0Sa9EOJNL8XVOUUzuoa0XL1mIVTsmLpUwqLSfw6Ditb+q4afFi0iYMe3JKOt+JmftvBgeQCjNUsCzk+Ny2j6dZKv2aeF5LOQZGRM3HzG39Gkir3q1zdWmCl4lc3QQBfr5ZcdAp+wQMFSgJAudKffO9kdDVNoyjgih7rD3E+JjJdhY9//WQEEBm2vfEqm7qqEQUAELd0JBCivJmOhUVH0rGbTrnkTBtLR4Au40W5aYaNQJ7+U3hTRrvpycSC1pUU3Wq3OXJd2FRDgKQJljQcpBw4V9j8GQ== @@ -125,16 +136,6 @@ hosts_additional_entries: api-int.int1.landscape.sovereignit.de: 192.168.32.9 api.int1.landscape.sovereignit.de: 192.168.96.9 -########################## -# chrony - -chrony_servers: - - ptbtime1.ptb.de - - ptbtime2.ptb.de - - ptbtime3.ptb.de -chrony_allowed_subnets: - - 127.0.0.1/32 - ########################## # ceph diff --git a/environments/custom/playbook-scs_all_nodes.yml b/environments/custom/playbook-scs_all_nodes.yml new file mode 100644 index 00000000..1aa9477c --- /dev/null +++ b/environments/custom/playbook-scs_all_nodes.yml @@ -0,0 +1,6 @@ +--- +- name: Assign roles to all hosts + hosts: manager + become: true + roles: + - scs-landscape-nodes diff --git a/environments/custom/playbook-scs_infra.yml b/environments/custom/playbook-scs_infra.yml new file mode 100644 index 00000000..6fa6a066 --- /dev/null +++ b/environments/custom/playbook-scs_infra.yml @@ -0,0 +1,20 @@ +--- +- name: Assign roles to manager hosts + hosts: manager + become: true + roles: + - osism.services.squid + - osism.commons.motd + - scs-landscape-nodes + - scs-mgr-tinyproxy + - scs-mgr-samba + - scs-mgr-httpd + +- name: Assign roles to bastion hosts + hosts: bastion + become: true + roles: + - osism.services.squid + - osism.commons.motd + - scs-landscape-nodes + diff --git a/environments/custom/playbook-scs_set_time_initial.yml b/environments/custom/playbook-scs_set_time_initial.yml new file mode 100644 index 00000000..38b3773a --- /dev/null +++ b/environments/custom/playbook-scs_set_time_initial.yml @@ -0,0 +1,30 @@ +--- +- name: Synchronize date/time across remote hosts for an inital installation + hosts: all + gather_facts: no + become: yes + tasks: + - name: Set time by http request to www.google.com + shell: | + #!/bin/bash + HOST=www.google.com + DATESTRING=$(curl -sI "https://$HOST/" | grep -i "^date: ") + + if [[ $? -ne 0 ]]; then + echo "Can't connect to $HOST" + exit 1 + fi + + DATESTRING="$(echo "$DATESTRING"|sed '~s,date: ,,i;~s,^ *,,;~s, *$,,')" + echo "Set system time" + date -s "${DATESTRING}" > /dev/null + echo "Set hardware clock" + hwclock --systohc + + if [[ $? -ne 0 ]];then + echo "Time setting failed - maybe you are not root?" + fi + date + args: + executable: /bin/bash + diff --git a/environments/custom/playbook-test.yml b/environments/custom/playbook-test.yml index 591d21c7..eb4c898c 100644 --- a/environments/custom/playbook-test.yml +++ b/environments/custom/playbook-test.yml @@ -1,7 +1,7 @@ --- -- name: Assign roles to manager hosts +- name: Assign roles to all hosts hosts: manager - tasks: - - debug: - var=hostvars[inventory_hostname] + become: true + roles: + - scs-serial-terminals diff --git a/environments/custom/playbook-test1.yml b/environments/custom/playbook-test1.yml new file mode 100644 index 00000000..431373f5 --- /dev/null +++ b/environments/custom/playbook-test1.yml @@ -0,0 +1,9 @@ +--- +- name: Assign roles to manager hosts + hosts: manager + become: true + # #roles: + # - scs-mgr-httpd + tasks: + - debug: + var=hostvars[inventory_hostname] diff --git a/environments/custom/roles/scs-mgr-tinyproxy/README.md b/environments/custom/roles/scs-mgr-tinyproxy/README.md new file mode 100644 index 00000000..e69de29b diff --git a/environments/custom/roles/scs-mgr-tinyproxy/README.rst b/environments/custom/roles/scs-mgr-tinyproxy/README.rst new file mode 100644 index 00000000..15f1d0bf --- /dev/null +++ b/environments/custom/roles/scs-mgr-tinyproxy/README.rst @@ -0,0 +1,8 @@ +This ansible role install tinyproy + +**Role Variables** + +.. zuul:rolevar:: tinyproxy_package_name + :default: "tinyproxy" + +Package name for installing tinyproy diff --git a/environments/custom/roles/scs-mgr-tinyproxy/defaults/main.yml b/environments/custom/roles/scs-mgr-tinyproxy/defaults/main.yml new file mode 100644 index 00000000..3639ddfa --- /dev/null +++ b/environments/custom/roles/scs-mgr-tinyproxy/defaults/main.yml @@ -0,0 +1,13 @@ +--- +########################## +# tiny proxy + +tinyproxy_package_name: "tinyproxy" +tinyproxy_service_name: "tinyproxy" + +# Binds to all IPs if not set +#tinyproxy_listen_ip: "" + +#tinyproxy_allowed_domains: +# - ^.*debian.*$ +# - ^.*ubuntu.*$ diff --git a/environments/custom/roles/scs-mgr-tinyproxy/handlers/main.yml b/environments/custom/roles/scs-mgr-tinyproxy/handlers/main.yml new file mode 100644 index 00000000..810cd740 --- /dev/null +++ b/environments/custom/roles/scs-mgr-tinyproxy/handlers/main.yml @@ -0,0 +1,7 @@ +--- +# handlers file for tinyproxy +- name: Restart tinyproxy service + become: true + ansible.builtin.service: + name: "{{ tinyproxy_service_name }}" + state: restarted diff --git a/environments/custom/roles/scs-mgr-tinyproxy/meta/main.yml b/environments/custom/roles/scs-mgr-tinyproxy/meta/main.yml new file mode 100644 index 00000000..0cda08fe --- /dev/null +++ b/environments/custom/roles/scs-mgr-tinyproxy/meta/main.yml @@ -0,0 +1,22 @@ +--- +galaxy_info: + author: Marc Schoechlin + description: Role osism.services.rng + company: SBA e.V. + license: Apache License 2.0 + min_ansible_version: 2.16.0 + platforms: + - name: Ubuntu + versions: + - jammy + - noble + - name: Debian + versions: + - bookworm + - name: EL + versions: + - "9" + galaxy_tags: + - osism + - system +dependencies: [] diff --git a/environments/custom/roles/scs-mgr-tinyproxy/tasks/install-Debian-family.yml b/environments/custom/roles/scs-mgr-tinyproxy/tasks/install-Debian-family.yml new file mode 100644 index 00000000..9424813f --- /dev/null +++ b/environments/custom/roles/scs-mgr-tinyproxy/tasks/install-Debian-family.yml @@ -0,0 +1,8 @@ +--- +- name: Install tinyproxy package + become: true + ansible.builtin.apt: + name: "{{ tinyproxy_package_name }}" + state: present + lock_timeout: "{{ apt_lock_timeout | default(300) }}" + diff --git a/environments/custom/roles/scs-mgr-tinyproxy/tasks/install-RedHat-family.yml b/environments/custom/roles/scs-mgr-tinyproxy/tasks/install-RedHat-family.yml new file mode 100644 index 00000000..e1e01680 --- /dev/null +++ b/environments/custom/roles/scs-mgr-tinyproxy/tasks/install-RedHat-family.yml @@ -0,0 +1,8 @@ +--- +- name: Install tinyproxy package + become: true + ansible.builtin.dnf: + name: "{{ tinyproxy_package_name }}" + state: present + lock_timeout: "{{ lock_timeout | default(300) }}" + diff --git a/environments/custom/roles/scs-mgr-tinyproxy/tasks/main.yml b/environments/custom/roles/scs-mgr-tinyproxy/tasks/main.yml new file mode 100644 index 00000000..230a54b2 --- /dev/null +++ b/environments/custom/roles/scs-mgr-tinyproxy/tasks/main.yml @@ -0,0 +1,29 @@ +--- +- name: Include distribution specific install tasks + ansible.builtin.include_tasks: "install-{{ ansible_os_family }}-family.yml" + +- name: Manage tinyproxy service + become: true + ansible.builtin.service: + name: tinyproxy + state: started + enabled: true + +- name: Copy tinyproxy base config file + ansible.builtin.template: + src: tinyproxy.conf.j2 + dest: "/etc/tinyproxy/tinyproxy.conf" + owner: "root" + group: "root" + mode: 0644 + notify: Restart tinyproxy service + +- name: Copy tinyproxy filter file + ansible.builtin.template: + src: filter.j2 + dest: "/etc/tinyproxy/filter" + owner: "root" + group: "root" + mode: 0644 + notify: Restart tinyproxy service + diff --git a/environments/custom/roles/scs-mgr-tinyproxy/templates/filter.j2 b/environments/custom/roles/scs-mgr-tinyproxy/templates/filter.j2 new file mode 100644 index 00000000..a99ca7da --- /dev/null +++ b/environments/custom/roles/scs-mgr-tinyproxy/templates/filter.j2 @@ -0,0 +1,10 @@ +# This file is generated by ansible +{% if tinyproxy_allowed_domains is defined %} +{% for allow in tinyproxy_allowed_domains %} +{{ item }} +{% endfor %} +{% else %} +^.*$ +{% endif %} + + diff --git a/environments/custom/roles/scs-mgr-tinyproxy/templates/tinyproxy.conf.j2 b/environments/custom/roles/scs-mgr-tinyproxy/templates/tinyproxy.conf.j2 new file mode 100644 index 00000000..d6bef78d --- /dev/null +++ b/environments/custom/roles/scs-mgr-tinyproxy/templates/tinyproxy.conf.j2 @@ -0,0 +1,342 @@ +## This file is generated by ansible + +## +## tinyproxy.conf -- tinyproxy daemon configuration file +## +## This example tinyproxy.conf file contains example settings +## with explanations in comments. For decriptions of all +## parameters, see the tinproxy.conf(5) manual page. +## + +# +# User/Group: This allows you to set the user and group that will be +# used for tinyproxy after the initial binding to the port has been done +# as the root user. Either the user or group name or the UID or GID +# number may be used. +# +User tinyproxy +Group tinyproxy + +# +# Port: Specify the port which tinyproxy will listen on. Please note +# that should you choose to run on a port lower than 1024 you will need +# to start tinyproxy using root. +# +Port 8888 + +# +# Listen: If you have multiple interfaces this allows you to bind to +# only one. If this is commented out, tinyproxy will bind to all +# interfaces present. +# +{% if tinyproxy_listen_ip is defined %} +Listen {{ tinyproxy_listen_ip }} +{% endif %} +# +# Bind: This allows you to specify which interface will be used for +# outgoing connections. This is useful for multi-home'd machines where +# you want all traffic to appear outgoing from one particular interface. +# +#Bind 192.168.0.1 + +# +# BindSame: If enabled, tinyproxy will bind the outgoing connection to the +# ip address of the incoming connection. +# +#BindSame yes + +# +# Timeout: The maximum number of seconds of inactivity a connection is +# allowed to have before it is closed by tinyproxy. +# +Timeout 600 + +# +# ErrorFile: Defines the HTML file to send when a given HTTP error +# occurs. You will probably need to customize the location to your +# particular install. The usual locations to check are: +# /usr/local/share/tinyproxy +# /usr/share/tinyproxy +# /etc/tinyproxy +# +#ErrorFile 404 "/usr/share/tinyproxy/404.html" +#ErrorFile 400 "/usr/share/tinyproxy/400.html" +#ErrorFile 503 "/usr/share/tinyproxy/503.html" +#ErrorFile 403 "/usr/share/tinyproxy/403.html" +#ErrorFile 408 "/usr/share/tinyproxy/408.html" + +# +# DefaultErrorFile: The HTML file that gets sent if there is no +# HTML file defined with an ErrorFile keyword for the HTTP error +# that has occured. +# +DefaultErrorFile "/usr/share/tinyproxy/default.html" + +# +# StatHost: This configures the host name or IP address that is treated +# as the stat host: Whenever a request for this host is received, +# Tinyproxy will return an internal statistics page instead of +# forwarding the request to that host. The default value of StatHost is +# tinyproxy.stats. +# +#StatHost "tinyproxy.stats" +# + +# +# StatFile: The HTML file that gets sent when a request is made +# for the stathost. If this file doesn't exist a basic page is +# hardcoded in tinyproxy. +# +StatFile "/usr/share/tinyproxy/stats.html" + +# +# LogFile: Allows you to specify the location where information should +# be logged to. If you would prefer to log to syslog, then disable this +# and enable the Syslog directive. These directives are mutually +# exclusive. If neither Syslog nor LogFile are specified, output goes +# to stdout. +# +LogFile "/var/log/tinyproxy/tinyproxy.log" + +# +# Syslog: Tell tinyproxy to use syslog instead of a logfile. This +# option must not be enabled if the Logfile directive is being used. +# These two directives are mutually exclusive. +# +#Syslog On + +# +# LogLevel: Warning +# +# Set the logging level. Allowed settings are: +# Critical (least verbose) +# Error +# Warning +# Notice +# Connect (to log connections without Info's noise) +# Info (most verbose) +# +# The LogLevel logs from the set level and above. For example, if the +# LogLevel was set to Warning, then all log messages from Warning to +# Critical would be output, but Notice and below would be suppressed. +# +LogLevel Info + +# +# PidFile: Write the PID of the main tinyproxy thread to this file so it +# can be used for signalling purposes. +# If not specified, no pidfile will be written. +# +PidFile "/run/tinyproxy/tinyproxy.pid" + +# +# XTinyproxy: Tell Tinyproxy to include the X-Tinyproxy header, which +# contains the client's IP address. +# +#XTinyproxy Yes + +# +# Upstream: +# +# Turns on upstream proxy support. +# +# The upstream rules allow you to selectively route upstream connections +# based on the host/domain of the site being accessed. +# +# Syntax: upstream type (user:pass@)ip:port ("domain") +# Or: upstream none "domain" +# The parts in parens are optional. +# Possible types are http, socks4, socks5, none +# +# For example: +# # connection to test domain goes through testproxy +# upstream http testproxy:8008 ".test.domain.invalid" +# upstream http testproxy:8008 ".our_testbed.example.com" +# upstream http testproxy:8008 "192.168.128.0/255.255.254.0" +# +# # upstream proxy using basic authentication +# upstream http user:pass@testproxy:8008 ".test.domain.invalid" +# +# # no upstream proxy for internal websites and unqualified hosts +# upstream none ".internal.example.com" +# upstream none "www.example.com" +# upstream none "10.0.0.0/8" +# upstream none "192.168.0.0/255.255.254.0" +# upstream none "." +# +# # connection to these boxes go through their DMZ firewalls +# upstream http cust1_firewall:8008 "testbed_for_cust1" +# upstream http cust2_firewall:8008 "testbed_for_cust2" +# +# # default upstream is internet firewall +# upstream http firewall.internal.example.com:80 +# +# You may also use SOCKS4/SOCKS5 upstream proxies: +# upstream socks4 127.0.0.1:9050 +# upstream socks5 socksproxy:1080 +# +# The LAST matching rule wins the route decision. As you can see, you +# can use a host, or a domain: +# name matches host exactly +# .name matches any host in domain "name" +# . matches any host with no domain (in 'empty' domain) +# IP/bits matches network/mask +# IP/mask matches network/mask +# +#Upstream http some.remote.proxy:port + +# +# MaxClients: This is the absolute highest number of threads which will +# be created. In other words, only MaxClients number of clients can be +# connected at the same time. +# +MaxClients 100 + +# +# Allow: Customization of authorization controls. If there are any +# access control keywords then the default action is to DENY. Otherwise, +# the default action is ALLOW. +# +# The order of the controls are important. All incoming connections are +# tested against the controls based on order. +# +#Allow 127.0.0.1 +#Allow ::1 +#Allow 192.168.0.0/16 +#Allow 172.16.0.0/12 +#Allow 10.0.0.0/8 + +{% if tinyproxy_allowed_networks is defined %} +Allow 127.0.0.1 +Allow ::1 +{% for allow in tinyproxy_allowed_networks %} +Allow {{ allow }} +{% endfor %} +{% endif %} + + +# BasicAuth: HTTP "Basic Authentication" for accessing the proxy. +# If there are any entries specified, access is only granted for authenticated +# users. +#BasicAuth user password + +# +# AddHeader: Adds the specified headers to outgoing HTTP requests that +# Tinyproxy makes. Note that this option will not work for HTTPS +# traffic, as Tinyproxy has no control over what headers are exchanged. +# +#AddHeader "X-My-Header" "Powered by Tinyproxy" + +# +# ViaProxyName: The "Via" header is required by the HTTP RFC, but using +# the real host name is a security concern. If the following directive +# is enabled, the string supplied will be used as the host name in the +# Via header; otherwise, the server's host name will be used. +# +ViaProxyName "tinyproxy" + +# +# DisableViaHeader: When this is set to yes, Tinyproxy does NOT add +# the Via header to the requests. This virtually puts Tinyproxy into +# stealth mode. Note that RFC 2616 requires proxies to set the Via +# header, so by enabling this option, you break compliance. +# Don't disable the Via header unless you know what you are doing... +# +#DisableViaHeader Yes + +# +# Filter: This allows you to specify the location of the filter file. +# +Filter "/etc/tinyproxy/filter" + + +# +# FilterURLs: Filter based on URLs rather than domains. +# +#FilterURLs On + +# +# FilterExtended: Use POSIX Extended regular expressions rather than +# basic. +# +#FilterExtended On + +# +# FilterCaseSensitive: Use case sensitive regular expressions. +# +#FilterCaseSensitive On + +# +# FilterDefaultDeny: Change the default policy of the filtering system. +# If this directive is commented out, or is set to "No" then the default +# policy is to allow everything which is not specifically denied by the +# filter file. +# +# However, by setting this directive to "Yes" the default policy becomes +# to deny everything which is _not_ specifically allowed by the filter +# file. +# +FilterDefaultDeny Yes + +# +# Anonymous: If an Anonymous keyword is present, then anonymous proxying +# is enabled. The headers listed are allowed through, while all others +# are denied. If no Anonymous keyword is present, then all headers are +# allowed through. You must include quotes around the headers. +# +# Most sites require cookies to be enabled for them to work correctly, so +# you will need to allow Cookies through if you access those sites. +# +#Anonymous "Host" +#Anonymous "Authorization" +#Anonymous "Cookie" + +# +# ConnectPort: This is a list of ports allowed by tinyproxy when the +# CONNECT method is used. To disable the CONNECT method altogether, set +# the value to 0. If no ConnectPort line is found, all ports are +# allowed. +# +# The following two ports are used by SSL. +# +ConnectPort 443 +ConnectPort 563 + +# +# Configure one or more ReversePath directives to enable reverse proxy +# support. With reverse proxying it's possible to make a number of +# sites appear as if they were part of a single site. +# +# If you uncomment the following two directives and run tinyproxy +# on your own computer at port 8888, you can access Google using +# http://localhost:8888/google/ and Wired News using +# http://localhost:8888/wired/news/. Neither will actually work +# until you uncomment ReverseMagic as they use absolute linking. +# +#ReversePath "/google/" "http://www.google.com/" +#ReversePath "/wired/" "http://www.wired.com/" + +# +# When using tinyproxy as a reverse proxy, it is STRONGLY recommended +# that the normal proxy is turned off by uncommenting the next directive. +# +#ReverseOnly Yes + +# +# Use a cookie to track reverse proxy mappings. If you need to reverse +# proxy sites which have absolute links you must uncomment this. +# +#ReverseMagic Yes + +# +# The URL that's used to access this reverse proxy. The URL is used to +# rewrite HTTP redirects so that they won't escape the proxy. If you +# have a chain of reverse proxies, you'll need to put the outermost +# URL here (the address which the end user types into his/her browser). +# +# If not set then no rewriting occurs. +# +#ReverseBaseURL "http://localhost:8888/" + + + diff --git a/environments/custom/roles/scs-serial-terminals/README.md b/environments/custom/roles/scs-serial-terminals/README.md new file mode 100644 index 00000000..e69de29b diff --git a/environments/custom/roles/scs-serial-terminals/README.rst b/environments/custom/roles/scs-serial-terminals/README.rst new file mode 100644 index 00000000..36528d5c --- /dev/null +++ b/environments/custom/roles/scs-serial-terminals/README.rst @@ -0,0 +1,78 @@ +This ansible role installs squid proxy. +Allow other services to access only allowed addresses. + +**Role Variables** + +.. zuul:rolevar:: operator_user + :default: dragon + +The user which will own the configuration directory and handles with Docker. + +.. zuul:rolevar:: operator_group + :default: operator_user + +Group from the user which will own the configuration directory and handles with Docker. + +.. zuul:rolevar:: docker_network_mtu + :default: 1500 + +Because of Docker don't check the default MTU from the system it is nessecary +to set the MTU for Docker. + +.. zuul:rolevar:: docker_registry_squid + :default: index.docker.io + +Path to the registry that stores the Docker container images for Squid. + +.. zuul:rolevar:: squid_configuration_directory + :default: /opt/squid/configuration + +In this directory the configuration files will be stored. + +.. zuul:rolevar:: squid_docker_compose_directory + :default: /opt/squid + +Path to the directory where the docker-compose-files from Squid will be stored. + +.. zuul:rolevar:: squid_host + :default: 127.0.0.1 + +The host where Squid will be reachable. + +.. zuul:rolevar:: squid_port + :default: 3128 + +Port which Squid will be used for connections from outside. + +.. zuul:rolevar:: squid_tag + :default: 5.7-23.04_beta + +Version from Squid in form of a tag which should be used. + +.. zuul:rolevar:: squid_image + :default: {{ docker_registry_squid }}/ubuntu/squid:{{ squid_tag }} + +The container image to use. + +.. zuul:rolevar:: squid_container_name + :default: squid + +Name of the container in which Squid will run. + +.. zuul:rolevar:: squid_network + :default: 172.31.101.144/28 + +The subnet for Squid in the docker-compose file. + +.. zuul:rolevar:: squid_service_name + :default: docker-compose@squid + +Name from the Squid service to deal with it. + + +**Urls for the services** + +The following Variables define the urls to the webservices that OSISM provides: + +.. zuul:rolevar:: homer_url_ara + :default: http://{{ ara_server_host | default(ansible_default_ipv4.address) }}:{{ ara_server_port | default(8120) }} diff --git a/environments/custom/roles/scs-serial-terminals/defaults/main.yml b/environments/custom/roles/scs-serial-terminals/defaults/main.yml new file mode 100644 index 00000000..43abccac --- /dev/null +++ b/environments/custom/roles/scs-serial-terminals/defaults/main.yml @@ -0,0 +1,13 @@ +--- +########################## +# operator + +operator_user: "dragon" +operator_group: "dragon" + +#operator_groups: [ ..., "dialout" ] + +serial_terminal_device_prefix: "/dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_" +serial_terminal_device_suffix: "-if00-port0" +# serial_device: "" +serial_terminal_boud_rate: 115200 diff --git a/environments/custom/roles/scs-serial-terminals/meta/main.yml b/environments/custom/roles/scs-serial-terminals/meta/main.yml new file mode 100644 index 00000000..b2e24239 --- /dev/null +++ b/environments/custom/roles/scs-serial-terminals/meta/main.yml @@ -0,0 +1,22 @@ +--- +galaxy_info: + author: Marc Schoechlin + description: Role for media download via HTTPD + company: OSBA e.V. + license: Apache License 2.0 + min_ansible_version: 2.16.0 + platforms: + - name: Ubuntu + versions: + - jammy + - noble + - name: Debian + versions: + - bookworm + - name: EL + versions: + - "9" + galaxy_tags: + - osism + - system +dependencies: [] diff --git a/environments/custom/roles/scs-serial-terminals/tasks/main.yml b/environments/custom/roles/scs-serial-terminals/tasks/main.yml new file mode 100644 index 00000000..23396899 --- /dev/null +++ b/environments/custom/roles/scs-serial-terminals/tasks/main.yml @@ -0,0 +1,59 @@ +--- +# tasks file for httpd + +- name: Create required directories + become: true + ansible.builtin.file: + path: "{{ item }}" + state: directory + owner: "{{ operator_user }}" + group: "{{ operator_group }}" + mode: 0775 + loop: + - "/var/log/screen" + +- name: Create /usr/local/bin/scs_serial_access + copy: + dest: /usr/local/bin/scs_serial_access + mode: 0755 + owner: "{{ operator_user }}" + group: "{{ operator_group }}" + content: | + #!/bin/bash + + ident="scs_serial_access" + cfg="/etc/screenrc_serial" + logdir="/var/log/screen" + + screen="sudo -u dragon /usr/bin/screen" + + if [ "$($screen -ls ${ident}|grep Multi|wc -l)" -gt 1 ];then + echo "ERROR: not exactly on session available" + sudo screen -ls ${ident} + exit 1 + elif [ "$($screen -ls ${ident}|grep Multi|wc -l)" -eq 0 ];then + mkdir -p $logdir + echo "INFO: Starting a new screen session" + set -x + $screen -c ${cfg} -S ${ident} -dm + sleep 2 + fi + echo "INFO: Attaching to screen session" + $screen -c ${cfg} -xS ${ident} + +- name: Create sudoers permission for screen + copy: + dest: /etc/sudoers.d/scs_serial_access + mode: 0644 + owner: "root" + group: "root" + content: | + ALL ALL=(dragon) NOPASSWD: /usr/bin/screen + +- name: Create configuration + ansible.builtin.template: + src: screenrc_serial.j2 + dest: /etc/screenrc_serial + owner: "{{ operator_user }}" + group: "{{ operator_group }}" + mode: 0644 diff --git a/environments/custom/roles/scs-serial-terminals/templates/screenrc_serial.j2 b/environments/custom/roles/scs-serial-terminals/templates/screenrc_serial.j2 new file mode 100644 index 00000000..aacbf2c8 --- /dev/null +++ b/environments/custom/roles/scs-serial-terminals/templates/screenrc_serial.j2 @@ -0,0 +1,51 @@ +# This lets me have autoindent mode in vi. +register [ "\033:se noai\015a" +register ] "\033:se ai\015a" +bind ^] paste [.] + +bindkey -k kD stuff \177 + +################ +# +# default windows +# +caption always "%3n %t%? @%u%?%? [%h]%?" + +### add colour to the caption... +caption string "%{.ck} %n %t %{.gk}" +hardstatus alwayslastline +hardstatus string "%{.rw}%c:%s [%l] %{.bw} %n %t %{.wk} %W %{.wk}(use STRG+y instead of STRG+a)" + +multiuser on + +escape ^yy + +##################################### + +# Vom Screen aus in VIM pasten +register [ "\033:se paste\015a" +register ] "\033:se nopaste\015a" + +bind ^] paste [.] + +defutf8 on + + +activity "activity in %n (%t) [%w:%s]~" # NOTE: beep included! +vbell_msg " *beep* " + +logfile /var/log/screen/screen.log +logfile flush 1 +log on +logtstamp after 1 +logtstamp string "[ %t: %Y-%m-%d %c:%s ]\012" +logtstamp on +zombie kr + +{% for item in groups[serial_terminals_group | default("network")] | default([]) | sort %} +{% if hostvars[item]['serial_device'] is defined %} +# Host: {{ item }} // {{ hostvars[item]['ansible_host'] }} +screen -t {{ item }}-{{ hostvars[item]['serial_device'] }} {{ serial_terminal_device_prefix }}{{ hostvars[item]['serial_device'] }}{{ serial_terminal_device_suffix }} {{ serial_terminal_boud_rate }} +{% endif %} +{% endfor %} + diff --git a/environments/manager/configuration.yml b/environments/manager/configuration.yml index 33e1bc3b..9309f2b6 100644 --- a/environments/manager/configuration.yml +++ b/environments/manager/configuration.yml @@ -63,4 +63,4 @@ configuration_git_protocol: ssh configuration_git_repository: SovereignCloudStack/hardware-landscape configuration_git_username: git -configuration_git_version: provision_nodes +configuration_git_version: rollout_nodes diff --git a/environments/secrets.yml b/environments/secrets.yml index c5c02254..70b65ddf 100644 --- a/environments/secrets.yml +++ b/environments/secrets.yml @@ -1,372 +1,382 @@ $ANSIBLE_VAULT;1.1;AES256 -64336331643030633164333531653763356364633135663735663933656365373536663066313566 -3865346565643132616237333430306230653965656261610a633536616162646635336135363163 -63356361636563376537636532633064303964306462643064313533393038323463646439373964 -3363363166313561350a303366363166653532336239316433323763616239313435376233326130 -62333836643362333636306466303130383035353265653032336662353863633866393964626335 -38363836313062636138633530323764353461646239313662623631663461326638646132373135 -66373730646434613362383261346663363830346663333835653338613761326562343964313330 -66323463613230303162303034663936316162336536323563336366353234326464643364303431 -31333338353531306630653365656361396238376265316565623862316133363162646136333935 -64633639316334353266313464346436323934373735353333303538333861326264643361333034 -64636666303932643561636230663538333461343637333135366465353932303630396162366638 -30623133336666363538613762323136653039616465303835663935373439626136616162616566 -33326165666432656137373430376533656637316662383133616339363037616136663035353535 -32393161656434356530626462366664663064326132666337306261363534616163623439333562 -66383038363833616532656338666132656230316239373332393164656662666431376563656131 -61393135313966363038323234366133303961653235386538346332366635666230613935333133 -61626264653733616266353532633439636563396561306663383935393734666561633234653337 -65633231303738386130666662303564333865353332616431666338333766323165393539636663 -34663535613938333036643664623664303339653730316662643830356432373863613465323838 -37613362333132656663643738326231663464343363636130383637366636363336343036383933 -32316633326564393730363166613734343736616434656666356539313363303437343837636637 -39303665353530663636616639393738343631666562366363653934386461393939653139363165 -63393835393931373765656334393536626262353432363461396138343134623036336438353562 -63323737393138386533323136616131306665343330613237636133336566633066353232393731 -64343262643037353861353666323833646133633731656563343264376338613032663238376263 -33336137333161613437636265316465343232336335376538653465303131303365663964376437 -33666534633733366263386264353864366130393638356137623038383434336331633533373266 -61666361333436616161636138613839363339323461383139343635613432353433633034326264 -32356239623232366638316238616264346463366439626464346266613162646332326366396639 -63363532323736643036633039336438653531626662373036313736323364303335623563386263 -39373861353964316534396462383061326239306464323136643936363264326136663936306433 -65343038386336336636346434656364326137313234336166383834623236616262653465303431 -34636232343534373265616536393932353336396666613563373438323739623338663734323534 -32376164313539623239333032313535666438383964386434313230323664653139346163653636 -39326335623265386635616462303630663537613339313039636164646132343863623338386536 -64386639303264343062656536326662376537373363356661363837326362643062633039636431 -66353865663763666264633638383439393539383962353533633565316639353634333837656335 -30623737393866343164613536653936326230373831323733356432613230663063666333643364 -38303630376637646637636539616465376638383063323137663837343231633136613462356639 -37623434316365363166666133643663656363323432653039636239646664366436386436326266 -37356234616664313462303164626262633132373662373635633964663733633737616335383938 -61393264613665393262323239616637643136373163643636323762636136386231383232333435 -33386665313638396463613234303261333037343135653737316535323031363434346438633937 -32336238613139313862653935633737383339383135316530376437323635336566383132363835 -64303033646530363766626538356438376364656330393235633664356237663737623365356561 -61396631653939663235313331343362386665633233333637623063656462663863353037373931 -31346465646635626237396662396565343066343939393838303564633236623637626333666437 -64373630613166613035303431613062386333323939616634396431613265643262353830623931 -66326464323363363662333237343933353565356633323431346235373264383038306638313038 -39623961653661343433613162663134626364376639393632666433633837366433643634393864 -36326230313836333164393137383931333363663964396239656265323833343637646233653936 -34623636623330656531633834373435343231326332313965306531613938343661666630643432 -62626466336236383737373232323930316632666130633332363135656163376663633763333234 -63303731326366376137636437363832393863623039653237623232373366376531343561363137 -66353636393363316434363531326231626134656434643435386535316530613565343734646539 -33353935653535643962666261613731346664643661353634656535613132336434626537643462 -38323036373465653734613637323533623333306131343065356232353366666533626237336137 -39326432653536306335393363386632393534323932633934376239386562313036353462313363 -39373338396330633338373039346135363239656636373439353862643830316230663530316364 -38333139633262396162366361643361356138393062393838613032376664303536333733313566 -62306535626236393164393933306161346162303265383432326337666538373464393530326138 -37363965656532623263626463373364626434373864306661663437383037353237333531393336 -62343239363665643865363165373261383566613038376133633839323261323966646664636434 -66386166636663623439356365616431356436373536346237653339383731353738346533656635 -37386132316137613233306463366266343532383032386138316365323463396465373739316164 -37313630343561626334366666373130353538303939646534626530666166636538613364653239 -36306366363236303531366161343230636538653233316137666331373239313439303761623935 -33626630613232386634366662313661393335613432613961666438656561313964363438653263 -30376136616665383534663930653032636439636263643238316538643761653330383737376535 -34386639323537393665363262326330393761323462333531636439333561646234346563326532 -64323964373631663032376236323564353136616530376135356136643361643735316330653862 -65653064333761393461376639613831636634616266356362633034396435633466373736386630 -64643232333533663963393535623138333631386366386662666430366338353430333361623832 -30396666323462363165366366323931373832656636653261396335356138393664393337336566 -37313332363139613366316535626534326334383664353035333139393766636335343539613266 -34623563633366373631616632316161313265373934343865616363386236336435373965306531 -31666131663066323834623966376338326264356435336463383164636333343930613831363330 -36623239396664373765643638613230323636313639396364666437653863343662616538633462 -34383564316536343232326137383765343365643861616537393466303865613966363463636233 -31303966393665323462356333636666666665366331323033663938643734373235353762326530 -36333437356632393133313435643836666433333565636164316235313364626132393936333131 -36333634316232386431363539623862303538356631373339356431666539613264373636376538 -35663534373763323362353065643262313164376464396230326234333036386539303534623933 -39666364653762646664333231633165316366643238656464386231333730306237636266393037 -65643937366533656365653030346463373831646565336663373033396335666536633061383139 -32613331623439653963346132623766613439326161343163383235313432356336383039376138 -61666531313230633862323163623534383934393765353638633030646332646233653964373635 -39323038306635373966613666376330313766626435366165383365323130633364353061343461 -64613932636430323065326138326536623532653939383836613861353330343561373438343938 -63353166393834353763363139313130343938333566633933626263653535653961656234353132 -38323633353564623130356666343936613961323465313233356236346565616139636539636635 -34343834393833343365383365343630333466336466636264386465656664386437643630323134 -35623539646165326136383732383832323133666539323630623063343764613032383132356237 -31336239356433396434623166623966353361366461636533396138613661343238656131353366 -31393661323261616462383239383466643633386663376637626331353232346538303862323437 -36656265653231646639386435376237366664613364643837303166653866386136653333363064 -30366332373333333835333963653838323135396238366166613166633763313262323338303439 -32356135623833633666363961323263396665393339383039343562653430363235333765656662 -35623764323239633735613962633137326263336634303232633037616336316463626631613731 -61386535303336363033363237626435643230346263313761656431666139386432363732333266 -39333137653838336466613161326233653762366466303032366238656533393765306462373435 -37363235306361336237366532306538393737323033373736313334333564363237373037323461 -66306431383830346539366238333334343733316362393531393366653339643435393132326261 -37353332386161333130376434346539633634393932393833613931383033336463386430356534 -61646663613434633462643034343532333632613065303162343537333038303735613361333665 -30386330323861393462326461383239386665623161373734356533386365383838623436373438 -31383135633539333637346332376633363963333739353938323261303138313239636337383334 -61376638363839636239623366303532646537393961666666363866376562613965613035633637 -36653234633839663762393762353564323938343238666430326133623265346639313161303137 -30353034643533323839333365336436636362663236333632333064656531303761646562323361 -31313839323436323966643436353863396533643661633638616231656465653630366531653937 -31663765646536366362396563316632373464626362396135353933346666396265346533353831 -32613635313562386433646366316262323566613230653435636438376435613635316336373564 -33316539626239333032356265633537333134373735656637666566626430376363653434636634 -31356330313739353662633864393533303938316333333130323134633233383738313833396539 -33656536323834613661636261653362323862313562373165323331386336383737313464323631 -66636234393365333835323530313933383161643231616435643933356239653630393331636261 -34316662656637333164363534386339313265623465636137363566386336656139306161633734 -61386666306637636331313963643265353036346330333863333064353131393961386665623664 -35393739663465663065313735363832623739623639363831653535623933623536626431343035 -37333434326564646439306466373036383730393563306166373262373538623564633735666433 -66643034383133313862356637376531386432653762633163636533663130363561636535386437 -36653561386561393864373463303531306332666533363133643434333537643636666162346639 -32396364633537393166623833656539623531366232383532623637613730333338333836653763 -62663031356639663534656433303263373534353061363930363133333861333534303333323233 -37386530376438633062396537346332353463653034383433353063633630666261613730353831 -37343939393839323861363564323662656230616563306538623137643630613433613937383538 -38633039663237656630326332646432333839653262663761343839393236626131363237333030 -33613130656365316634643837363036386564666566356338383864353239383161353537653730 -35633364336662633463633230663031363030303133353237623934373865323037643532376136 -33653864626134613166313531663235623731386636303434653639306162643734623738353536 -38313034663336303738376533626132613538346163666463353139363032363839343264306538 -31656334306137303033386661623032633361323537323332666161343066643631643066393030 -33303466666162303362353235326462336336323135316263363530613562353964623433633764 -30316138613431303864616665376435366162343536356533396262666335366537306138386666 -33666330333765626439343563343136643865366161663364646435343037663535633033653863 -63333639366335613763616438306338616132393633646338326238366136646366646565623830 -64396630346235376330633761313966343962653435343866633836316534303431303234613166 -30613735323130336432346631313030323265353538396662383166303330303637656562636466 -30303934303439383738313264616362386233633433646631633266653235326534633832663630 -66643634316235613835353462343566303738326232666264313462393763366635323266323637 -30393337643866323936383338643737376362613538346564333131366436663230383635633262 -30313334663130326636396430323237376234653834393161646332656434623661663362396236 -61353066643866623461343862633730386533346134623639336166623564303131646262623066 -63363765386635646633333230643935386639663630356330663035353031643965363838313938 -38306438633737313631386561353166336130666563323938346630653433636537356535316434 -33623836646461613030306538356230303866656433613438313064383735376233373235376635 -62373838353262653431663133653463656464366163313938653964623436393137396330613864 -30666533623466316535653032343131383935316231643766343763333863363234303334616634 -61653665643035383638623632316331373235613065396635383966376339396463333661653432 -63623837666361346637613462643435363633663836626337313965383534303238613132663561 -33623165643536353739626233623234613330326438646565326339663437323131323536343663 -61313065353938393936393935333663643634376137663732643534393232623062326131336661 -34646638303666363937626266323061376366626434323662353834346166336235636538343161 -32336130356262336335316130623266386135383836623434663735383230646335386634326635 -63663036346663646335636633326535373062373830373932346630386436326461373665643233 -66646563666533366539356134346666373864636438663166353265353464633535323230623237 -33636162633063633638343133626264373462626531346334303334396632613961663238613939 -36383364376130306634643166666661643063616262623332656234313135316161303966363030 -34353666393238666166363462623036666263653335306266383366353932613930336134383939 -31393061623331326631383864316336636137646430383035653061613739653063353632633566 -66356162613632366464656536653362306236353634313764616565326366313834333737363064 -32303733383335383832633531656331343861646336633135343630393136633532353436383039 -62353631316333656533356332356561356138353765353533643139643963363038366433663039 -35313934306265383165643230386536616566313766316538333864666130366533663438633965 -64323862336338633033653463633137313737626162326265656336663839656233366338653436 -35646135633363353836653133383432393936646161353064633532643935393365366139323762 -31326437386337663336303962383437303765623332346162373363663666326364623566393936 -63613464326430623865656237363239356631363066633961343437623238633766336361323136 -31303865386531643162346562303735366362316330663638343237616666356437646365333332 -30303165353132393838613166653135376364376162613461366634316664663966376163666136 -36373662353730613561623538336134623139613162643438303762393861383230303163646463 -36643636373164346333656262303930656566623731663237323437323634393631393865386661 -61646531636538356335383664643362383937383632396439356636656431646131303734366331 -64323334633830633830303631653133636662323832393364356134343363396464336266653261 -61326166383930323862313364316437636331646265323636643133626538626464303962353638 -61613364333362356637666230653535666333646132376230313730383131363031643631333637 -31616165636463353865643864636633326661663963353632663731316162613531326664316535 -66306366333863343931353039323963616330646531306563306338643231666163333462663362 -39316539393233323737316365653635333663613635353666373439663131356664393936303232 -36636463653333376637613937383062393337376363363939626237343934383730646439343764 -31616638323730653964373930396638313865373764303535316238643436653565646235373461 -31313732623061636365333133633635323664376531313532386462363438623135343736323563 -34666161393366646137383330666537336463613434653639353733643863333035363139363864 -34366436383066363035386364373838396131666461616638333032393534313432623235653235 -61613762626131353235386566623837643937303963373065333533353836643861336433353238 -65306362623132643061663062343139313033303138623631616261373935366233356538396537 -63333737393162306337636566303139343132303839343231326330373831633961313264616334 -62343332313436363963373261626462363633326132316537323737343434396538376563633539 -31383130363465333639633031343561396538643137636337653034376634363065636136353930 -64303937636561626362393231306235326561356430313662653436356134303566386637663738 -30323936623463353839653730356336396465343363333939356334396465663430393234326233 -64643333336333336430663538373338323130653632613036666539643139313836313138653966 -30306461356538383731656138626132383266366635333530653130393964353434633561323762 -32656337373833303738656134313439323032343831643637323830326433366137313834653365 -37616561313036666334666163646638613666376261663633333464636536323561623265626533 -34343236333239333630336362333862616235333638343664616563313038363166343264366431 -65326235623562366231653162326530646338636362653234343563623262323062623363316465 -65323138633032303961663635623733386361626334633663376530323632313430633433653335 -63313530623339363162383065333263656232613030393432303266356461326537653132356538 -35643531613732623538353766643863393763653138643235346436386535303664356565373064 -32366365663836363962383930653031313561616233313631663835663730316366623463383930 -37323964633866663033363331396230323264303833643039616566366262373331613731656538 -64643239623232386266306134333838303530613937393535386139306138666463333431326164 -32316334353738626563396132303536643566313663373538323661383137376430653438366131 -63386163393666353664373333313264323666326231656136353761363837623535336631646435 -65303565383764666536613866313136313366306461393932313936616631376463666433336332 -33626639656361616131633934623939336331656132653336303339306164613634663963646533 -36306431333463386137383938306535363431393231303266383465626431656438623365316332 -61313135323438386261383438616630306434613737663966373666333465656537363637623839 -30343333623062626433336332353431363263653161366663383764626634646538656533656431 -32336336343363353930666439626262376365613266363862356332343037393935306337323061 -61656131353038343635353334383464333962663434323533376635326664303132616433353165 -33663933636565663632343133623433343961663165366239326236613766353166313433316231 -64663932343263616536646139346465316230316664393339333461643461626266316536323133 -36363837626437636566356564383361326331656666623064343662336466333439656538616466 -34353238653763363662323336633737656630616631613430663065353235353337396134616461 -61386330356637376334343233333532613033363131336363366363653430373034396330663566 -64346163323864643865646264653338636663343264326333643338353736326662663035626631 -66366363376432346266343663656362626234383064313732633838646639386136383039303362 -32343132636562633662316664336532656132636338613531393638633962343633353535313634 -63613761363935373666353030356565326633313930333863306630666138643632636565623762 -64303034643334343536656438663031366137316665396362356265646237646264323132616539 -33373263373562633663643965376532656639666339393564656561633030663163376662386664 -61626230363830323132626234343431373230386564373534636638653064613237363337363231 -64636466323031343830336362383762326162666334306362666361636162316436346535323438 -62386534306461353232343037373139323537623433316331356235626534396166396164353833 -39393637376136656331613638313363373661633561383735623239306135383164393034626334 -32646431346436643730323533386566656535383933633032323530363230666138643935623162 -34643434653264353938336364383761646663396465363836333165386362663430613162323961 -62363366616230646236653862663236643836643562376165653436633066636336316232383332 -31633562333464313232643632666630333765613566343035663635386661383635343032393165 -65376336306237643734333866653531346662373433373238363030663562653335653138356638 -38346337636137306364333461353233656563343666663733333235353962633931633038636434 -66626337366361393966613139633936313961316633383431366264616362623338343133333538 -32303462373031376432663738343030343637653038636532623235643635376633396337323461 -39353431666539313964363733646665386366336565643937353562373338333265353232333331 -35613562636436636537373763303730333562373933663263316431386331373836396433306166 -33303136373432323766663631373837323035333432643161663830623862636565313432663534 -65663933653264663437616164656233666465363936656236323032663035323830396336393566 -66636463396662633165313234306137383939346464643162363463636434356238616137626266 -37633463343835663038326564366163303334393934353731666638636232643934306436626561 -64343635366637396230316165306565623539643063623335396335623561373638313733303164 -35356661303662333431383164346466393638396263616132343436373939343530636363303565 -35363235643633653834326364396366373532653362313561386565353134633639396666643132 -36356438313539633764663166636232626365396634393562613234653163323337386131376336 -32633536646136636130663635383166306433343662613134663338363563366165363465393636 -32623565326432373965343034313565633963323862393631353736616330636536363933383261 -64666639346137343364353231353939363538386237323164626262323066383730376136393037 -64326263633135666563356431613531343861623735656531373838336331613463393334353037 -33383430363362643162373262623035663030343731376362613034616662666162366135303565 -63633535343536663635323537633763643165353161333062366164383239346134663230646564 -63633166303537626365313935323766383866336363623234613435353965343963353836353131 -31633837346333316662333932383537343234643562366133333635386265636439363032346663 -61363732653161343063326638383033336430353238323866373336656237346631323837373935 -33323236646166646639653138313666333934643934626563626232386231353937343030343064 -39653932323363306334626261373566363835616464623561373664333631353830626561633961 -32373732376235363663386664323263393833636332363464323439356235366331643762633035 -64373466623635376431653838306439376634356130613765326232666566306266623131383562 -39643237663336633331346635323431633963366365373037636431613732613035656337333433 -66623566323731663835313131316132616431313964663465613661376535626239363736666366 -35386163346663616461356565626133383239643430653334643364376437303131636164343530 -38653430303331396366393933333931323765633766303561336663363532326563383531643564 -37326538663166623563653030613039336563376461343065303961353431383939313134323464 -32653733336231303965613364613335336562623765326331303638333138643363376134326162 -33653439646365623832646462363762663935343835656430626665623538383638353861346137 -62333362343831396531393830313637396431623039663532366362333639323438633065316461 -64656337326335333665626262393739656666393832613737666537333366333930323066366239 -38383562346430333765356339366636326465396266393535663031303330303666653861663136 -64373531623139353330383630626137333261333063343337663437343862643763383561363066 -65626262653830663864326631636139356265313030323635313632333833633932393732623964 -35363936656563666365376230613061653437303037376132623736633239383066616536306130 -33636664646239353130383038303365376263653663363264363935616130396535323665366131 -65653735343634396231656332666466306336653963393735646337656364353665616630646665 -65666335626362643037326464313937613135346635653931623965373261373632663861386631 -62653734653364656434316264623962326566333332343764373338303935623966616364653162 -38626462353861333364613234653536656630323365333033396461633436393636643864343265 -33383934623765326330653466393132653632663363646535646432346133323833343030653264 -39323035316231323730633138623634363830333761646363633939646366633231326235363365 -66313035323039396664353165323961633537616631616334366366656562393563333162363036 -32393634666339656666313565396538353835313766623232613534626537393366313335623534 -38373962663236663633653661306137326462646338366137646436383637336236666331336566 -35663431333639643036386635633532316135613038623032303761333561346331653466353862 -35363336353664663766383337613561323863623136356430636633383063386630636234366533 -30393264656335373031376530303163313238613963303337653731643433613662323930616561 -39363362643962376636326335333366323464366163643237386365383162303634656665356361 -34613965376634396239383734656631636230353834643633386134666334306633326663636138 -36386432396432306538313266326565316636613732386531316464366331316165386533653735 -30376336363531623539646534353231636264363435666236643136316136383234653062636138 -30303334663334383033656365343263626231663363626430353865666566626663623439316534 -38623033616165343561323934396433383264323335653065303937653436383634393735326432 -36613032363633323935316338623433626639613231363336313935376464393764346433383137 -37663338363764376665336436346666366363623831306334373661613836386537623830626533 -63636230383533336639373365346533393235636237653834376331383234343165363639356532 -63613761343361356462323132663435316465643633656637353732376331303866636139396662 -39663464363932323961363335363332613934643238643531383232376639383531636538306337 -39373032623837346639386466666430396534313134663866306133643735313430303937396466 -39366631383138363034353031626339383765616532646235383834626362653935386362306266 -65383535636362343437313265663262303330333062323034306330353464313238643966376563 -34343662306432636466363436376265623137303864333064313835326662396636386239636164 -33633635643530323761343333303237666666616230393064616363323731373066393566353136 -36313736356334313134663634303738633466336336656233363962633865653033623966306535 -32333730353736366334383132643430333336623565383934613130643633666266396432316161 -64363632643762633936396336623164336265396439326233373965343665326139363933613062 -63636239623638313066363835363833396230346336376166633666363837613663666632346661 -38363335613434343530316139343065666634353433333231653639316636666435393465393431 -61663961623062643939643333663030356131366462376232373934306665323932663937633132 -31363336626438633033323334623537613435303332653437653633376363613532343564623166 -63383966373266643162643766393865323136313561343961663930353039323366643231396634 -36363434653766363235386438383435313834343965393735386232626562356234396432633033 -35383264383863353934616339636330636362346132653063353038363131353535376662663265 -30396132613235343035633234396131613561363962343962633133393833366530623062616435 -32653966326232633636666362376639396534643532386231323735303165643034373930366531 -38383339363033353135376536393532373931626132383664346261363032653736306564306232 -66636432363736396465336166343134653561346637386366633563343265663766346664343734 -38626437623463376535343130323364353638643764323135636264653132656631326332626662 -64616566366539633266653730613934316234313565656363373637343632643035656531303234 -66636264623166366639376563653635376333636434373835633638643137396237343533646236 -30626130323766613233363731386366323964343837623739376631643365663765376633386438 -62376135303634346662333562623138386364366262373562633761366365373430616537636564 -32616661343637613637373838376336646162363137363636303539663330626130346162326433 -34613265356533323932646266366639623665363964326535373033386131633362353365653236 -61323536356139613035393261363434623933653136383437343866646531646231633339333564 -63333731336536383931386434663130353233393634656132643135303933663831333338656534 -30383633366536386563336635393165623561643731303131373364363762366165353739613037 -64653465656132663039373531363034666461353239656438663362343438313034386664653562 -30646635303266383137653531383131313535663461383232623765396637636266333336663130 -34333134613332626663313664613363663266396333396363313334666533346365323133333737 -34633665346464346632623332313737396666333834616663666331653461666336636136316136 -63306232393539356332616634633338343638356135656630343435383637346436653531303237 -65303661316134333230346331366637386236653539383565313636653863323066626461356239 -66666531626331623439343063333634613465616566663362376165633065633933623335353761 -66666664383166376564353161376663383865633638313862383663653363393861393437326266 -32633230666465336439643535313465643633363734306563643662366463616531376230393663 -64386231636234656331613036356531613032363963613166373466343734616233623336656433 -65653365353131653935663261623133343164373365646337613935643364313665646365333830 -38366364343162633263306365643563363538383264623266616432616536653237346630643361 -31663335653839303666666663383264336436356262323038653963306161386632353364373531 -38366566663837376466353235373230333333313834623264363765373435643666623935393366 -39303535343138643531343461613762323431343830656433626435323839393930323535636535 -66373430656165366135323230383137396332316632346432653866353162363430656463633334 -62633938663366316235613565316361333665383364666231623265626432646665383164636162 -61333136343864373034633735646261323763663231376366373663316461653866623563353463 -62336238303661353738376532376361616537646333333430663366336665353232386535643033 -63663134386638343634383665363430656334646638393863613231653461326361333665623238 -35643436343631636235373266653639666664346661376564326434316638323235333061306362 -66373239623765613231313934373466636336643465393233626633333139643463396165343961 -33343765393031653139633232306564666631663963393766376639326661613230313934323765 -31323330643062303166643833333932643333393034656335663337326138626462663434643831 -37366238346666336237353430313536663132376530366434323532383438303033636630313937 -34643436333362323037393563643035386638616336313931333531323565633365363837623439 -35363961326439646265616233363933333363613931376463386333386561663031396665373234 -64646338653964313731363734386138336365386166366266623539353161363766663162353532 -62616537303366663665393537333833333230323835353338373038376635326637323837346530 -61623136653035333230396538383830393562313339336166303437333531343539356532363765 -35343361313461366334343338613866663436653864353862633661623436386637653535323730 -66633635396431663632346663633138343366353239643532653162396636663831393566313862 -62343431363334316435376363636435616363316365613664376465363334313533643137356366 -30373332396535633631316463346436336163626666666534383138306135636564323261376138 -35656338336536616335346332636434343064353637316263613236316465303837316266323664 -34666131666135393065386239393265396263356136623033343531326434656130356239653930 -39376261383566356234383330323530336137363163636230366433383161646331636335633232 -31323430383766653539343463663635343862386362336665666564623161646139373331333961 -62623635313834376364366464386263613630396564336232383532383035656166333162636134 -38356464613764303936376536653961373539346238633435343935376436636562306438613637 -39633533613532333636363737323030663537626535323439393464346539356238373436353839 -37643063643464636334356431323232383133386433356564623638356536343839666635383539 -35363736643838613530353533336561646438363530326433363738656463646637653636653332 -33326436393037653833663734326334616236393239633961366239643533393366636332613033 -39356439666663613864376262376232613165376638383439353830316638303035373731306437 -366634393863666362323034326539643864 +39363362333237346462346261303832666161386162346661393366616235663232303135633736 +6365633631643965326238623535373161656335303134660a373637316434616537626330336531 +62623663366230346565303437373463396332393637316563623464353233633633336262343362 +6130316365323435310a316166303837326264383765373337653437336564326261633766616361 +31346363386562373933363266643665373666343232656539623066386435306232316266303963 +64333463363537333035386661356166363264666539303535373562396134386632383561326264 +39356665333638626636613966643530343338313039373464646165303438356465326435393733 +61623436353138356230663634643664613930633663353732363163636638396533616466316635 +65393038333438373136356238623665633261626362346663666562396139303565396335396164 +66303635313932626262323634386563613266326231333439303639333263303138663566373434 +65323635646134303332326261323764373663633838373339333764393337303366336565653264 +35333366623636663839316634646538323836323131663231643661306439343338393433313035 +31303930306661663463396132373766656530356266613631303033383362343564623332396431 +30656266353930653137346332353933646231343738333635613435623534623861613137653639 +37373833396139643564386239323037363237646133353535383732303662613039316166313633 +30376537396333333361643238613738333764343938643666316532393665333362353432376533 +34393961306634323466666532643265303033633533323134653134383466313930656361633466 +37616362313738646539623639383633376466353838616637313733366162623935356437656130 +61336264613935323965373466623132326636613763303031313939383062663032346532313736 +65346463356430643665363132363866363463333837653831393730613735306439616337613932 +34653362633930376661373635306131613736363736633630326335373935366663646330303539 +61656265396436336237383830323561313236366333396364343964356334626166653863313961 +63386532303638646661303138393563623632633732353937643632303366376135336162636436 +37346632306330313664643465316261306662386531303162633436633965393263666431353263 +61363136366239636236636530666265333135633461383934646464346534643131376332633165 +62313030663436613434353130366236356639633936356234366339656263666537353164623131 +31643465396537376339346139626336323035616263623631646663316465366237666666626266 +61623931633939313261313034626438353038366563303864356538353964646532353137646230 +31613530303263626139666463356238303765623836343662303064336666396465333336623366 +61656164373464653161306133306238663834383762633535363764623832643366326339323831 +62336230346566663036316662623466643265376235623332346637323737366430646466633934 +38306265383364376430353536663034353166613539633332613031356532613536326265323339 +36333532643533623761646336386637666136663332323834336338336239643063353664356534 +30633138663363386337383035336661376637653963336664353834306638626635396262343738 +39613137373235393134613535366336376561636164363464636461663864346533396365316431 +65333264633564373134353763623666343961623234316537353637383763336331643262623134 +36663433346434393261313563386435333561303239656665623335396530653237313232656666 +39386466643037633836326538306661376361316530633865373935386136343638373266393635 +61653035316562613136363163366364633863383537313232346163323032386537653166343433 +37343735366662356432356361353035636463653764616166346637353462366436336636393166 +64623263626662666533663062326637666666653032383033393662386334393762646166383961 +63646463636262376436313934636662313763386233666636636663303163373934373933356163 +37383865653431666230393961656437643437326162623462306333616232616431326162323665 +34346266383635653432396466343462656531333365396566616266633635313266323135386434 +36346661663164616566353461323033323834646632613534363062383466383162643465636165 +31653361373064653064303031666164643834336431653033396631626233643935363339373631 +63636632303062623831393935343633353464323531393633373864386666316265643931323531 +35626164323739396561613837656132663034663931376261393039316430343561363331356238 +35613662313330396461633435316465643762663635333235356538303065336165396632613934 +64623930393464633137633332356637326662663439616631663336303439623131313437336162 +64326264363435616534626237343437633539626630373765383262313332323131323466316532 +61336266313937326365623361326633383132613937373863633939313831623961386635656631 +39373131633231623265636432366232656434386138353036666365366439376334393432353436 +34333466623065626638636433373263393362643032383638393532643864653562663738336364 +62376265383261306331313530636566386435646636626430616230626235663564373964623135 +34326565393630323836396261396333633238396439323834653936656162663239393834353337 +37653136376437626435323733383235343537623736613832383034353738333331343437333739 +32643365373936396634336562636637333430623230393663303961316533613766323535336634 +62326635373631383430396637303734366264623165353365373634306163303162343064626234 +61623966663834633538373665653134373332633533366539616631613234663139623831613634 +39346133373536383530613034306332363830313138656333386635333961623761323538663437 +30396535613431383931643363393337656630333237373431636665333861393736623461616561 +33393634663132626236656334626430303665653965306237326635346165373761396434336133 +64653135623038653761653230356533396133303535386235316637343530633134383636653337 +36383463346361383631663261663632303636616539616564656561363233653837383666633561 +31346565666361396338633730656432353264333962373530666636373530313535666361663934 +66623738363333633933346466616237313134636638636666373461613537306265356138343166 +31386631323337376431656333383463643630343131666434646632393166356466383039666133 +30353563336561653939323365656465343933613862643138353532333731643264303562333034 +38663330313664653431636333626161663832656662653932366131346266666363303163373734 +39653230343532356638643038343337343464393931333261643864356534336130313034393132 +65666338396337353439393330626362373532656532396636373966336666376663333265386161 +35323861633832356531613061376437626237356537306661613731343865633334396332636634 +66373732353966623265303635383837303665623831343362653365383837393233346536323731 +38346262313861356562326263343463363265353261636661623239393335653330336238336163 +37666564653930373364616531373437333534383435336433376632343437323632373561663861 +32303364356438663733313866323461646632316366656138303863656466396530343131366664 +38353164383666306239613165333361323436366637346631633936323661636163353763376130 +63623230303763336332666335353631353332333365666665373962306362616163393839316330 +64623533623830353536323563633536373934643439626635323835303763346633343064386332 +66376562626464613534373861353330636665333238656462653235366532626165346262376265 +61356636386137386661633234373564626665643964666666636236343435386130323134346634 +63643466346238636664343164353431353363333762313366343465343834323332383936633339 +36646139656431616233306563333737643932346139356336363132656234663931633636376563 +30313334633034386662383539633663643130373666393836356266333539376637356635666463 +64393262366632326566356531366361643365356132316433656565666262376432383539646335 +62616631623632393237636533303566663433656631323736623163376238353862313339346364 +62323337623161353134376434373636663837313639393537666264326264336237363166353531 +39633034393932373236613033323836393731353639353935663634663536333662626234663838 +65656336383634633730386365383431666538396131306162353331313638363239343732643339 +36646465656238633938663131663032393339313233616132646538313631376234333262643630 +64336663306639666162656665653966663830613165656137633763346131326361336166363564 +35303463303239353536363562656136636263663539613465353239333764356232333361303830 +61636665663137383538633362333330666462623365343933356634373762653939663935353862 +66656232353130626166633966656336373435656563643966303366336563666634363731323136 +39336139616166333239393963303138616161363361343439376664343336653065353764373466 +39333932303837663131666338336432333836303239613036323630643730646564653132326137 +33323630616366616364316638326466373930363064353661326134313638383338623663313362 +34353235306437396162663563653662633934343235633864656539636563313630396632363863 +37346463346131633737346234356438646265356264653638616365636337646334363337393164 +32326462393561366232613064626564353034646230343534306433316465333736386631373731 +64636365313066386235346339316564666632333831353339333562613261613038333366346164 +37356132373330323730393861333132633331393461653630386565316537346462656634383564 +65666238336432643531396132333939303163653139326530626665633435303337636662303063 +66366138663464383865646463393731393137343162373366623864653538646264333463656233 +38613234653234643435653434373434306163653034323732613334656538353634373663393965 +66396566623534303132393238653139356639316434373434356262633134333831343064613561 +66656334303537643535333261333166333932376339626132376531643633643431623566383235 +65646331616438333263383039383834363462303931306138663862313463666133333266353663 +34356332656133336134386234616639373537623930356237646336343837636263383364663330 +33333565326637616666373338303830373439386138626465346138633231663631303430613738 +32356330316635643261353662346332326163306465633934326231333636383565396431303830 +62353530313038346136363461383633363031653635313638356666333532643030343837373163 +32646533373963616362653539613432653933366632653931376161333335663331346637343035 +33663562626363303335336638383738343239353835663663363238623534333537613432653738 +34613061393436346331326266666661343564366631636637313863316632316338303066633166 +30373834383039376435633437303035336465616463376335313439383762343266626131346366 +34353066313561383532663862393433363564303262346262313334663665323064346664666534 +34326532386237376464393564663035373130393939323335326439383836346634616362333039 +64366165393461306439643034326434336464336466393361633763393138346566633338643836 +35656332353937366239666166623637623134303562643838326632346263333838316165653332 +32333136343839653664636230323130313435663661363234346239373962323134653335313234 +35353261393939613731303863653166643339613034623535383532336131616262653835396538 +64616232333961383063613334323662363838663030396231353538333539653533353036343537 +31663539343236623066396639626535356465636164303463376638653935303533383936346631 +65333336393933393231346536343136363735313566646432646562303161663964393036666533 +39626239333833303132376539316435303065653466356663306538353337343739623963353635 +31346665656163616132353337666533633262656161386132386361353038333266363331626261 +39313863393438623337343232386235633334326632316663316262393861643163313332346366 +62623466636233323465663564316164376166613166373237613363333939313330643964363335 +39376530303965353330646235353065646233373964353830613132326432306530303663663564 +61616532366437623834633535356336653038666534653035346266633262653533386635363435 +62333464366461346538393232643665303934386661376636653134666466323062623138316330 +31653661616330373838663134636134353765343039353738643836363038313135646462393635 +62613662383761636165373963653738326531643134396236663765663265623234363965653465 +36636537363665326235366635363465653534386462626662303763393538326338303561313662 +63646431396666363963643966376364653630616530336639663463303631316431376465366233 +63613632323365633135316261663336663436333165623633303333636332633235363933393665 +35616531323034663937346237316630366266383938636164666132623333393864366135333733 +36376263646666663161323132353731386264303763383434313630663038366232393663383033 +31373165646564643764636137616237333261396136633437373062623166383733333338646562 +32326136616532313765613935313330396438363939346235343663326635343734396232326136 +34343566386532626564336334343836303639343064343431613432313237396137383763656237 +66616532613533356263333565346630623830633565663430373838383462336534346662346334 +62633936373030333734396163363737326235373665363636396230353763323531306337626534 +39393639376539663636616338616261613763613565633264336135666566333765323263613565 +35623737393437316231306334663966353136646435623039373466643463336262326461383366 +63386330313138333133623938363535623239666461366462376130323434633732616663366265 +62366439633161343330333363613533656163643338633837393633376436356632656333376535 +33386263396562386166363939353336663539653739353433613634356435663565366363616165 +63376537616333343961623065656537313734613634643338326361636637653136393730323666 +66323666623139653431626563306565333233366563346331613661363761346230353864323762 +31383565383836383039383832333366333634616564363135383030666263396135303062633233 +30613264646638383433353631623232613264343232376136376632343962396562383430346361 +35363336353830313663396531653831616332353833666338656463333936396332636435316338 +62356335363838363437663732623664643933666134626335623334633437366563353233333735 +33356365333131613363666336396236383539306361363939346536643665653338303330386530 +38393830393038623533613261663063343466386436633662313439663339353139613033626564 +37366333663335323264626633623266343536373665333164653230616333653938333838323464 +34613862636535393939663731653966353638346263336131306238663633343931666435396661 +31333965333862306366323431343032383665323963386666363637366431303235303338396632 +66373063663961336463396137376436633134316538353863623332626435343132366236636330 +36363736646663343831303462343032303632373730313265643739386139333536643263323363 +38616138633961646334373035623166376364326634643066383838333433363263623135623636 +31386233343438373532373338373137653934316663306337613630353636616531666130346430 +66663232613463373033623835663665353563316633363862323633633238643861383331643337 +33313439353661396439636130376336393534326566616330363162393136386630323539376562 +37663436636464613934366366633135396631353735626436393165393436383639653737363661 +36353161623262333264383839646564366338386137633638383564646364663836356634653931 +30373735633635333537633834613438373331366336643233356130343761313565663632633331 +32653239333161303739633435326163316235336365323965386338333162353939376635646365 +64663963653966393131366362303130653861326230643136646265363930316336393131313162 +61363761343066373933393235343461653365326261306566356432656639353163396265356165 +33376339373232613931643931376666356434383537316534666264623838396334343133376335 +38313639313462653236366531353663346534653238393730613035323738646165643335383639 +39313536343762393239346235366634636533616235643532383532346661363863383639396330 +33326333666632626134613530623766396333653539633936613636646462663764663139663063 +64323130353439366138633539646533393162303830656234613730636631663939343534326337 +39313934393735326531343665343630633638396237663030393333316239626361396466666433 +37613535396138643139306636396430336530313937393131653465316165353361303737356532 +33623534313865646635323261343637356164333966643330353737376330343465333266353932 +33306630393335653238336365623437616261343437386366613734666537346231373166356437 +64373235336361653738643031346333613362636163363430623561346466326663353130306339 +38623361653732356239366331663361376332653463393332316663303234383131356239326431 +61653464636664343636376164363335323032323632636162613735393439363733366464343261 +37626236383261666437396364626462376336303531653937306439386265656335633563393637 +32613238323935386131303039613636626561623831366365366462653431353436366562333938 +36376263323333356535366663623164373334393432373235333636323065313339353330646435 +38316239613163666239643161396633383838346639356537636535343738313433393638653264 +36346237663064386163366332333432333564643536623435303361303134663037303433623664 +39353737323366343839323938373362386635616136353162383732663735366231663066313933 +66386464353266343965316131366365326630393130373036656433363239346365393763353436 +37653636316235663239323535306636656537303133393363636437646166663131653864326432 +33643232393831346638653638633937393533333263633835633537396331386531366335386566 +38616332616136383566346336663033323138323665383965623439643663366531306164653437 +34646435393934636264343232343930333166656265306233323266626162393932306437303762 +33666234393833303262303434373261356434653931336534376436336664303732353763323433 +30396533336133383037613435666563346261383630656538333363386466616630666635656265 +62396266383766653439663237633964306230323437343334663435613666663138656438333432 +61623630656261323166333361383862373334313830356233333532303032366464333734643861 +66393938353133363730333261376538323139396664313734623633326630303033373233623039 +33636339346338386235366134336565386462383961383935633735393461393130383238353862 +33313262643838333135656531623135353830376531393237343739343036653133393832653266 +38376537346561333066636438306162396334353062316137613563396364323562383231653235 +38393566666437353734303632633536323433306364326233633131386337393033336232313930 +61326462656138666138623535396665393166393131393632356264333661656434343939323934 +32653164303132626538323138383138393466623932316261383235626338663963396365393734 +30623362313937363265376562383235326337363432633134656165306530356264623835323735 +64366566613965623531373263393939666636363936666137343937623233663963353134386332 +36643865373561326666376362376361613330376435313362326264313037303639646463643961 +30613330373465343337653762613639636230363337376263666362653235363863353939313833 +61333236326634383762343039323166373165393262353865336166643535313438346632396133 +39393436363065366336356262323964373964643861666162623334623666336661663232316434 +33383334623933316664313864303862616162333661356165633665343166626662626333323033 +31666430346235636539356562643763613232626537303637383434343930343130316132393763 +65656536666366376566646464373137623836366537636636643639313735643732306662653061 +30343362626431636631316336343135373165396561623535303063313635613530613565633039 +37346435636562393638656437373362313661343736303133303637613765633431616166373565 +39626631346332343266306163666330666466653035386461393339646238656366613462383331 +61653765336633643165316661646135613035333139663434643163356430666262626137626166 +64353436346132393033366232623833666265653439326433346431623864386439343236363534 +61333934363139313461626333353435303463613936303330653330363538303839613237616339 +65653034393866386363373637376136386138626335313465633862633663333364366133646138 +62333665316165333963316332316433383665653039303761613732313863343632663230396138 +32326564323462623263366530656435623261626363346565386534623734383030626532656539 +36383864343132613133313833366431346430366430363738626530303032623666316537356466 +61633361373437656637656335313336323864326435396233646239393466636535626538393630 +31383639626333373762353830333366396461653631363538313266653733633464373134636335 +63356330323137623861336465636437353133356562336166303138616366653033373935316138 +63326638386139376463396237323965303861323939303037663336356134393637616337633135 +63623839653162396261613962383037396662666439656665353638653466376561393463656538 +64633663343837353663396262346539393964333864386432643234306166363338303731366534 +63393664366336356361323466643965656661616530383538633539646562303961336664353865 +63646362636537313931633635313135663661376563396430386362343930636263346261303134 +64646262313430623038393230316464626237386531646164643464666161313036313231656135 +35396366396563623630623366383930366238353736336339636634613862386532313166396135 +63656236646439343930633034623066306237306666633165323863326337313235613865666361 +65323539386337326430346564383837363139653837386630393465316362333731383633396538 +62343432623365356138616431306139343063386234343032373932353263363261613231336539 +33306561633539303030356237383234346238316334613363313634613965633731623164396365 +35623930336664346130653361373365313730373764636134663438393133343237333066373335 +65636338343262383733373261353930346661613662363036363537653838353439393764343239 +38313136383238326530366665666431306335376262356539656435373861363838653832653937 +61316230343831363063383230383663353836346363396530326431653030383062373436653538 +61376362643534333764316135643864383736363433623739633739383830353536353133663534 +35346563353562353261386236653537666332643232343861356239623163666338613665623230 +34623731353861646266663163366634616134666630333865633562303831363961306433386361 +65633033303634653462663935643362366133306634373462356364316266363033663264646461 +35313438643964363337616464313733363864346231373033366636633533353138366166353737 +30653064336464356436373338303635343866383562313336646335373963333733326635393461 +65363165363435313034343666323766356530633734633364653432326133633931366230333564 +62333938653636663961656633383231393939313566646430633037323430633563366461363939 +65386237343530396331353663646665383164613338386632343831323465323035386165313036 +62323662353634393666313665336264303934373234306239333132373837366535633337636435 +64363365616666373762616334303765663039373230623862333933636564363361666465356331 +39346434323130616439316161373533376638366631653937306133623961336539366234633637 +66666239626537303363613365633133633236353033663431366462393663316637363131346534 +64393837633435656137373363666532626661363162613966383032336165626464306335373030 +62316364323430663139356664383631633232343565393635303234333034633064373636613264 +37646131336232346135663834373439366534366430306563356139653338353064386366616163 +32643832313539303734633036336438366639376330653031653666373034316135386565666133 +32336637623630613862383961663062383133346138343765393734316630393732353230653934 +65373363323837333535633038386563326434393330653663356261356363613863653739323531 +63383836616138366261306366653930643764313665613638303961616532313431373338646532 +34333866353737386163643030316331313539386663303764666464653237636138303633633638 +37393465626534323665313334383033386161636634653736336439393365333439323562323063 +61656139306639663364666430353465623230303062336261653466636462393437363465376566 +61333234346363383034306537326233643564653932346332643965303966363666613032316130 +39356361633365303935353566303364393634653633643730383436626531653162373534353935 +30373733323331626161636363336136646332326532393262316166373638623639306163653362 +64613631383266326566346133333431316266613330313039376438613237303662623861646362 +64376637643338343439363530346632643537663663393032363835396439643263343539653732 +31386163353165353864373332343537393462373962623839353163396161623039383531346665 +30633765306138373334323436663462633063303038336632326564363837306465616431643531 +62633661626336323938366261636437316330383736366134643737333637326534636637623463 +62636538636533626435366336313763346130306431613438353932323031396639616133623036 +61363030613738663036303931623230373434306566323261613330363533333664323665306439 +61666530333863303635323938316539363163646666393462363063356131613231396162323839 +63336363326437663533333334386635353064396664323437303366313865613835306265623963 +65653966363866306235313836356238623961616433363665323264653161366532376366663433 +63336636653039313834346462323233353162386633346633663361663237393461313035303037 +34663664366164633134353530613037376636393239303532323837313039306265373038386665 +33643135626534616130313337616638316432333334643331313839363039613334613034356336 +66616538353766353061663332386131343536663561643235636366363663306434366561343035 +34633034636233346331626230393630616561613339386266353035336432626139353665316432 +34666239323739643737666464656234663566616438313637653435363161363136363564613830 +63643236316339653666653234323965373434633561616262383233643332303863636539326636 +38316133396433373836326130373839633230313439633433326666623832633639313438613665 +34643931663237363861653762626539326166336533313437363762353364323939643839303431 +31393530323639366532613333633730626265306230346532393239643234663265613162383664 +65353432373036643535383833396562643631373863656266383734336233376231633462643563 +33323337383761363534336161383839393336646636643238346136303861643538356265396230 +63373263316361373830303033303937653761333035656666323835343230373336333264316139 +65383135346430353034333338663064356235636363313738366165333433636334373835353730 +63316364336132656363626137656338303332623739336630663135313632333035313864633239 +37326665376432326331616436376363636463373332313464323836663635393065656231653964 +37386133383231666536386132303039363464636331383634396663316665636430663434366437 +37656131343933313266363234323630386466383734343938343830376463353463306435373265 +39393831343734313437623533633435323937633937303339343766653634393534373266383439 +31643463666363613762303361393839633731623931323038656364353866626263656539393239 +33393633643137323438616432663465613435333439636164303535373336386535343337633631 +33643465626661646439303532646634343034363566336661376162653264383736653163333061 +61613938613430363737656130636131613538626439303834363034656565643438636637663863 +65316566343030336134396633343561636339376338656439383663376638663434393763633435 +36383465313064373931663063613438316633366233306238363737346262353864326261643730 +62616263383537623837626363316135313861623661653236396238613134323561353033643332 +30353934663836666134303762303064623334366538646132306534636230313930623263643565 +62623038616563636561643764393836656133326137623538633239663637393036663239386263 +39666262333830383031386464396339643831343730333864316337393936333364633865633736 +37616531336261646131343162376133316134366232623333666361373431303732653761663966 +63333136396633663562306236396130636433626464303538313335393563633364303561303933 +39303064346664666633643334393438616166663463626262396562343735333565633438653436 +36613833363734366433393734343064353937616134366166346231326131373530333063356637 +34336533363965616261663563616636663264343539313534613966626536326238386236366236 +39373063646139636634613063393261333638363238303436323466343538613233653739643431 +38383132633162333162316337336238396163333064353538626631613432363661643633396239 +34636334393538356661383266356333326335313730663565393164393363616566326336376637 +35626266613831643632316137343839333033393766383965303335333533623939323865653137 +66663366336663376631616435303766386237363462666537313034343063643333373566356561 +66306362663736303163373363623230336435373661323363653136313638623837653230303161 +66393136323233393735393231373938323234636365663661383631373730393764353065353537 +32376336653730373237323236366161306465356233386262383530396564346261316634626264 +35303831383866326132306261343432343338633332396330313438353532636239393530643663 +66326339666363666364343764363262343932303161313535313765613763656239623965623236 +36616433323634376232616366303364613031383636383766333735353838373762333666373830 +34393964323437343065326463343036613936633230633061323530386566646533376338323165 +36323064616330663739383230663863636237646139616635303932373130333634383037376166 +63343232636332303130306161633835306165626631643966343062356630643465323434346664 +65313739306163643862643237366433303637353163393835353964663365633139323835663564 +65653563323361366334633030363636633666393064323564316464386535356563623061613933 +32396630643564656332373662393762616566363461666166353865633835663131343266653839 +66396362613930636238306662383761616431313262316161636332656339383739383863376139 +35336337346630366235366364323465343266313038646431656630376562313938373033323534 +31373033616264373931343439633833653566323539346235363761376532373338323933623230 +34366433393432393532373065316161613564363831396462643132366534653365353736623663 +31323362363666613537303336643964353131643836363433373465656335623433626266306433 +36333034306162656661346663323564383836353031656138663365646330343231363434333938 +32626232333632663362656231636164646266313532326531363761313662613162383538353361 +61613762303338663064316133643932393261636162336538636233343136613364643762343764 +32313663393462376232383163663631316430636539316230653062346432373661386165666262 +31306130356238653735396565663165623735393865626464376166633461373161386538663030 +63323465343233383331323735626630376330323965323735333762363433336235393661366432 +61356236663362656435336533326664653939666534636630663239353366653832636634653666 +66663732363662333334346463333135653938343565613063396532376130396231346566363666 +65653566346337633131386662633262373539353533616336363336343964663531346333643137 +35316166636439363036656439333962366533376435373264363363316361346162636162323263 +39393164366663633133656630363266653235666137633133303837633064323632323938616666 +32336263326334613261653134636637656564353031663366613134633437636631376462383731 +61616231613566313332616234393539306335613831663936666239313338666534383665643762 +34663366653238303833623839306264613363643266383435316437643134326332363761366430 +65393064366432633730336430306135303730366435323736323963633562363762363332623330 +62386237303539303733643232383765386338666631646566383962663835393462636332666130 +32643635636630313363393533393438306163393430656465386234323536376132336364383939 +36616233393438663730623664613931663665346439393038343861333633626266633530306563 +62626333323162323533373439616461643438613936363637623130633634366563306563303936 +64663863636563306165666635373634623337353031363232373066656631353938386464626639 +62613132613261636230343133666461613131356534373036353039393539373865386535616164 +61303261613164353735386661353439623533363131393738663933303736386639653238633637 +33396561636238343934323233353761306262613933323530356564616561656161363562666338 +62333963383166333439333065333439623031336630373631623530633533373233366565306266 +35616434363539363763313831636235376432333066653039343462303139333166366437376439 +35363964393764366233393638643231323235646461363061653733663438633039313166303332 +32623763373964316434343532346666393438373137626263313761353130346238393734636163 +66653531383833323466373634393938353764353133353938626530393332313738343163633730 +62636564623931353838386337333066376561623261303861353338316330303065333634643433 +64333435653536333131366331333562323439383863313234336231616334333435623935666536 +63306565636437313235376531663938376265346163373537383164613230376131643261393961 +64366564366537303934366132623866333139616238366665383661393364363439663932366137 +31393639373362346535393766653537643461623334363833653331393738636535303164616362 +38633238646430346566336238666262353161303731303332626564653166323030666336643534 +64363135333762396134343835363533313030623137323262313030613534646366656632366130 +64306337373564626635663463653065643835633039616332386130353665303436636534383837 +36343265626132393365643462616430363538353535353535626637356232363936393131646464 +32383739303835653635666531323438643939633135323737333038303831613737616231646361 +33313631643832336666386336383061393765323134396136353064323736663965343231616237 +35666266626636336330313331626631313261333161643335653037343637323430303265303832 +64323832636164643430623933336137663661373864356539396630336139626538656534623437 +31316639613330356530656333393330653565323138663732663933356235376538613334343563 +37356662623061646461353161653363313861306632636666396430666539313137383966306666 +63613839363734303036633932653038626437623033353131313461323632356363356339393531 +37343638663062336266353531633939396132626632353131343832303838616262 diff --git a/inventory/10-custom b/inventory/10-custom index 2133e0ca..88792965 100644 --- a/inventory/10-custom +++ b/inventory/10-custom @@ -3,3 +3,20 @@ # In this file any own inventory groups can be defined, # which do not exist yet. + +[bastion] +st01-mgmt-r01-u31 + +#[network] +#st01-sw100g-r01-u36 +#st01-sw100g-r01-u37 +#st01-sw100g-r01-u41 +#st01-sw10g-r01-u38 +#st01-sw10g-r01-u39 +#st01-sw1g-r01-u32 +#st01-sw1g-r01-u33 +#st01-sw1g-r01-u42 +#st01-sw1g-r01-u47 +#st01-sw25g-r01-u34 +#st01-sw25g-r01-u35 +#st01-sw25g-r01-u40 diff --git a/inventory/20-roles b/inventory/20-roles index f9b0c0fa..36db1eb5 100644 --- a/inventory/20-roles +++ b/inventory/20-roles @@ -15,7 +15,27 @@ # The "all" group is not used in OSISM. Therefore it is important # that all nodes are explicitly listed here. [generic] +st01-comp-r01-u09 +st01-comp-r01-u11 +st01-comp-r01-u13 +st01-comp-r01-u15 +st01-comp-r01-u17 +st01-comp-r01-u19 +#st01-comp-r01-u21 +#st01-comp-r01-u22 +#st01-comp-r01-u23 +#st01-comp-r01-u24 +#st01-comp-r01-u25 +#st01-comp-r01-u26 +st01-ctl-r01-u27 +st01-ctl-r01-u28 +st01-ctl-r01-u29 st01-mgmt-r01-u30 +st01-mgmt-r01-u31 +st01-stor-r01-u01 +st01-stor-r01-u03 +st01-stor-r01-u05 +st01-stor-r01-u07 # Nodes that act as manager (sometimes called deployment node) # are included in this group. @@ -25,14 +45,32 @@ st01-mgmt-r01-u30 # Nodes which are intended for monitoring services belong to # this group [monitoring] +#st01-mgmt-r01-u31 # Nodes that serve as controllers, so things like scheduler, # API or database run there, of the environment. [control] +st01-ctl-r01-u27 +st01-ctl-r01-u28 +st01-ctl-r01-u29 + # Virtual systems managed by OpenStack Nova are placed on # nodes in this group. [compute] +st01-comp-r01-u09 +st01-comp-r01-u11 +st01-comp-r01-u13 +st01-comp-r01-u15 +st01-comp-r01-u17 +st01-comp-r01-u19 +#st01-comp-r01-u21 +#st01-comp-r01-u22 +#st01-comp-r01-u23 +#st01-comp-r01-u24 +#st01-comp-r01-u25 +#st01-comp-r01-u26 + # Network resources managed by OpenStack Neutron, such as # L3 routers, are placed on these nodes. This group has nothing @@ -42,10 +80,18 @@ st01-mgmt-r01-u30 # Nodes that serve as controllers for Ceph, so things like the # Ceph Monitor service run here. [ceph-control] +st01-ctl-r01-u27 +st01-ctl-r01-u28 +st01-ctl-r01-u29 + # The storage available in these systems is provided in the # form of OSDs for Ceph. [ceph-resource] +st01-stor-r01-u01 +st01-stor-r01-u03 +st01-stor-r01-u05 +st01-stor-r01-u07 [ceph-rgw:children] ceph-control diff --git a/inventory/group_vars/all.yml b/inventory/group_vars/all.yml index 74facd6f..188aa6c2 100644 --- a/inventory/group_vars/all.yml +++ b/inventory/group_vars/all.yml @@ -1,4 +1,18 @@ + +########################## +# chrony + +chrony_servers: + - st01-ctl-r01-u27 + - st01-ctl-r01-u28 + - st01-ctl-r01-u29 + - st01-mgmt-r01-u30 + - st01-mgmt-r01-u31 +chrony_allowed_subnets: + - 127.0.0.1/32 + + motd_content: | . ____ ____ ____ _ _ diff --git a/inventory/group_vars/control.yml b/inventory/group_vars/control.yml new file mode 100644 index 00000000..f37ee854 --- /dev/null +++ b/inventory/group_vars/control.yml @@ -0,0 +1,8 @@ + +chrony_servers: + - ptbtime1.ptb.de + - ptbtime2.ptb.de + - ptbtime3.ptb.de + - st01-mgmt-r01-u30 + - st01-mgmt-r01-u31 + diff --git a/inventory/group_vars/manager.yml b/inventory/group_vars/manager.yml new file mode 100644 index 00000000..95818e3a --- /dev/null +++ b/inventory/group_vars/manager.yml @@ -0,0 +1,35 @@ + + +# NTP server options. +chrony_server_options: iburst + +# Configure Chrony to synchronize the hardware clock +chrony_sync_rtc: true + +# Chrony limits access to clients that are on certain subnets. Adjust the +# following subnets here to limit client access to chrony servers. +chrony_allowed_subnets: + - 10/8 + - 192.168/16 + - 172.16/12 + +# If set to true, chronyd will never open the server port and will operate +# strictly in a client-only mode. +chrony_bind_local_interfaces_only: false + + +chrony_servers: + - ptbtime1.ptb.de + - ptbtime2.ptb.de + - ptbtime3.ptb.de + - time.google.com + - time.cloudflare.com + +tinyproxy_allowed_networks: + - 10.10.21.0/24 + - 10.10.23.0/24 + +#tinyproxy_allowed_domains: +# - ^.*debian.*$ +# - ^.*ubuntu.*$ + diff --git a/inventory/host_vars/st01-mgmt-r01-u30.yml b/inventory/host_vars/st01-mgmt-r01-u30.yml index 2c7d03ef..5f9a7576 100644 --- a/inventory/host_vars/st01-mgmt-r01-u30.yml +++ b/inventory/host_vars/st01-mgmt-r01-u30.yml @@ -61,6 +61,12 @@ network_ethernets: addresses: - "10.10.22.1/24" + +# Bind Chrony to specific addresses +# NOTE: It is only possible to set at most +chrony_bindaddresses: [ "10.10.21.10" ] + + motd_content: | . ____ ____ ____ _ _ diff --git a/inventory/host_vars/st01-mgmt-r01-u31.yml b/inventory/host_vars/st01-mgmt-r01-u31.yml index a36a4ddf..b74454b5 100644 --- a/inventory/host_vars/st01-mgmt-r01-u31.yml +++ b/inventory/host_vars/st01-mgmt-r01-u31.yml @@ -34,3 +34,8 @@ network_ethernets: dhcp4: "no" dhcp6: "no" +# Bind Chrony to specific addresses +# NOTE: It is only possible to set at most +chrony_bindaddresses: [ "10.10.21.11" ] + + diff --git a/inventory/host_vars/st01-sw100g-r01-u36.yml b/inventory/host_vars/st01-sw100g-r01-u36.yml index bd823863..0d5cf227 100644 --- a/inventory/host_vars/st01-sw100g-r01-u36.yml +++ b/inventory/host_vars/st01-sw100g-r01-u36.yml @@ -8,4 +8,5 @@ ansible_host: 10.10.23.110 # generic device_model: 7726-32X-O-AC-B -mgmt_mac: 90:2d:77:58:27:50 \ No newline at end of file +mgmt_mac: 90:2d:77:58:27:50 +serial_device: BCBRb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw100g-r01-u37.yml b/inventory/host_vars/st01-sw100g-r01-u37.yml index 90f527df..3c6fefe2 100644 --- a/inventory/host_vars/st01-sw100g-r01-u37.yml +++ b/inventory/host_vars/st01-sw100g-r01-u37.yml @@ -8,4 +8,5 @@ ansible_host: 10.10.23.109 # generic device_model: 7726-32X-O-AC-B -mgmt_mac: 90:2d:77:58:26:50 \ No newline at end of file +mgmt_mac: 90:2d:77:58:26:50 +serial_device: DEABb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw100g-r01-u41.yml b/inventory/host_vars/st01-sw100g-r01-u41.yml index 3ba2c414..795dad6d 100644 --- a/inventory/host_vars/st01-sw100g-r01-u41.yml +++ b/inventory/host_vars/st01-sw100g-r01-u41.yml @@ -8,4 +8,5 @@ ansible_host: 10.10.23.111 # generic device_model: 7726-32X-O-AC-B -mgmt_mac: 90:2d:77:58:28:50 \ No newline at end of file +mgmt_mac: 90:2d:77:58:28:50 +serial_device: EHCLb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw10g-r01-u38.yml b/inventory/host_vars/st01-sw10g-r01-u38.yml index 51d1aaef..54504514 100644 --- a/inventory/host_vars/st01-sw10g-r01-u38.yml +++ b/inventory/host_vars/st01-sw10g-r01-u38.yml @@ -8,4 +8,5 @@ ansible_host: 10.10.23.105 # generic device_model: 5835-54X-O-AC-B -mgmt_mac: d0:77:ce:70:f3:06 \ No newline at end of file +mgmt_mac: d0:77:ce:70:f3:06 +serial_device: CZABb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw10g-r01-u39.yml b/inventory/host_vars/st01-sw10g-r01-u39.yml index d70fe29f..1c29a2ed 100644 --- a/inventory/host_vars/st01-sw10g-r01-u39.yml +++ b/inventory/host_vars/st01-sw10g-r01-u39.yml @@ -8,4 +8,5 @@ ansible_host: 10.10.23.104 # generic device_model: 5835-54X-O-AC-B -mgmt_mac: d0:77:ce:70:ee:06 \ No newline at end of file +mgmt_mac: d0:77:ce:70:ee:06 +serial_device: DDABb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw1g-r01-u32.yml b/inventory/host_vars/st01-sw1g-r01-u32.yml index e80b13b8..1a47c263 100644 --- a/inventory/host_vars/st01-sw1g-r01-u32.yml +++ b/inventory/host_vars/st01-sw1g-r01-u32.yml @@ -8,4 +8,5 @@ ansible_host: 10.10.23.101 # generic device_model: 4630-54TE-O-AC-B -mgmt_mac: d0:77:ce:2b:3f:c4 \ No newline at end of file +mgmt_mac: d0:77:ce:2b:3f:c4 +serial_device: DXBOb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw1g-r01-u33.yml b/inventory/host_vars/st01-sw1g-r01-u33.yml index 848fab19..ab08cee7 100644 --- a/inventory/host_vars/st01-sw1g-r01-u33.yml +++ b/inventory/host_vars/st01-sw1g-r01-u33.yml @@ -8,4 +8,5 @@ ansible_host: 10.10.23.100 # generic device_model: 4630-54TE-O-AC-B -mgmt_mac: d0:77:ce:2b:31:c4 \ No newline at end of file +mgmt_mac: d0:77:ce:2b:31:c4 +serial_device: AMBOb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw1g-r01-u42.yml b/inventory/host_vars/st01-sw1g-r01-u42.yml index 8c0797be..ad793a5b 100644 --- a/inventory/host_vars/st01-sw1g-r01-u42.yml +++ b/inventory/host_vars/st01-sw1g-r01-u42.yml @@ -8,4 +8,5 @@ ansible_host: 10.10.23.103 # generic device_model: 4630-54TE-O-AC-B -mgmt_mac: d0:77:ce:2b:59:c4 \ No newline at end of file +mgmt_mac: d0:77:ce:2b:59:c4 +serial_device: EGBGb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw1g-r01-u47.yml b/inventory/host_vars/st01-sw1g-r01-u47.yml index 9b655486..ae56a5bb 100644 --- a/inventory/host_vars/st01-sw1g-r01-u47.yml +++ b/inventory/host_vars/st01-sw1g-r01-u47.yml @@ -8,4 +8,5 @@ ansible_host: 10.10.22.102 # generic device_model: 4630-54TE-O-AC-B -mgmt_mac: d0:77:ce:2b:44:c4 \ No newline at end of file +mgmt_mac: d0:77:ce:2b:44:c4 +serial_device: EFBGb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw25g-r01-u34.yml b/inventory/host_vars/st01-sw25g-r01-u34.yml index 73cb07e5..edf3bd25 100644 --- a/inventory/host_vars/st01-sw25g-r01-u34.yml +++ b/inventory/host_vars/st01-sw25g-r01-u34.yml @@ -8,4 +8,5 @@ ansible_host: 10.10.23.107 # generic device_model: 7326-56X-O-AC-B -mgmt_mac: d0:77:ce:4b:b4:7a \ No newline at end of file +mgmt_mac: d0:77:ce:4b:b4:7a +serial_device: CGBSb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw25g-r01-u35.yml b/inventory/host_vars/st01-sw25g-r01-u35.yml index 02c0d5e2..6eb04d98 100644 --- a/inventory/host_vars/st01-sw25g-r01-u35.yml +++ b/inventory/host_vars/st01-sw25g-r01-u35.yml @@ -8,4 +8,5 @@ ansible_host: 10.10.23.108 # generic device_model: 7326-56X-O-AC-B -mgmt_mac: d0:77:ce:c1:63:80 \ No newline at end of file +mgmt_mac: d0:77:ce:c1:63:80 +serial_device: BSAHb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw25g-r01-u40.yml b/inventory/host_vars/st01-sw25g-r01-u40.yml index a64ea518..fa963498 100644 --- a/inventory/host_vars/st01-sw25g-r01-u40.yml +++ b/inventory/host_vars/st01-sw25g-r01-u40.yml @@ -8,4 +8,5 @@ ansible_host: 10.10.23.106 # generic device_model: 7326-56X-O-AC-B -mgmt_mac: d0:77:ce:4b:b1:7a \ No newline at end of file +mgmt_mac: d0:77:ce:4b:b1:7a +serial_device: DIABb113318 \ No newline at end of file diff --git a/misc/manage/lib/helpers.py b/misc/manage/lib/helpers.py index a8380029..9afa9ef1 100644 --- a/misc/manage/lib/helpers.py +++ b/misc/manage/lib/helpers.py @@ -2,6 +2,9 @@ import logging import os import re +import subprocess +import sys +from enum import Enum import yaml from jinja2 import FileSystemLoader, Environment, StrictUndefined @@ -60,8 +63,12 @@ def regex_replace_in_file(file_path: str, replacements: list[tuple[str, str]]): with open(file_path, 'w') as file: file.write(modified_content) +class AnsibleInvertoryStrategy(str, Enum): + update = 'update' + keep = 'keep' -def template_ansible_config(host_list: list[str], item_type: str): + +def template_ansible_config(host_list: list[str], item_type: str, strategy: AnsibleInvertoryStrategy): host_data = parse_configuration_data()[item_type] template_loader = FileSystemLoader(searchpath=get_ansible_host_inventory_dir()) @@ -70,23 +77,26 @@ def template_ansible_config(host_list: list[str], item_type: str): for host_name in host_list: results_filename = f"{get_ansible_host_inventory_dir()}{host_name}.yml" - - LOGGER.info(f"rendering file : {results_filename}") + results_filename = os.path.realpath(results_filename) templated_string = results_template.render(host_data[host_name]) - templated_data = yaml.safe_load(templated_string) if os.path.exists(results_filename): with open(results_filename, 'r') as file: - existing_config = yaml.safe_load(file) - if existing_config.get("inventory_generate_strategy", "replace") == "keep": - LOGGER.warning(f"Not templating {host_name} inventory file, inventory_generate_strategy=keep") - continue - if existing_config.get("inventory_generate_strategy", "replace") == "update": - LOGGER.warning(f"Updating existing {host_name} inventory file, inventory_generate_strategy=update") - # TODO: do a better merge strategy without messing up the formatting - merged_data = {**templated_data, **existing_config} - with open(results_filename, 'w') as f_out: - yaml.dump(merged_data, f_out) + if strategy: + if strategy == "keep": + LOGGER.warning(f"Not templating {host_name} inventory file {results_filename}, inventory_generate_strategy=keep") + continue + elif strategy == "update": + LOGGER.warning(f"Updating existing {host_name} file {results_filename}, inventory_generate_strategy=update") + with open(results_filename, 'w') as f_out: + f_out.write(templated_string) + else: + LOGGER.error("inventory_generate_strategy not set") + sys.exit(1) + else: + LOGGER.warning(f"Create a new file for {host_name}") with open(results_filename, mode="w", encoding="utf-8") as results: results.write(templated_string) + + subprocess.run(f"git --no-pager diff {get_ansible_host_inventory_dir()}", shell=True) diff --git a/misc/manage/lib/server_hardware.py b/misc/manage/lib/server_hardware.py index 1d4748ba..039af95f 100644 --- a/misc/manage/lib/server_hardware.py +++ b/misc/manage/lib/server_hardware.py @@ -1,5 +1,6 @@ import glob import logging +import os import subprocess import sys import xml @@ -201,7 +202,7 @@ def template_bmc_config(bmc_hosts: list[str]): LOGGER.error(f"So such host {hostname}") break - filename = matching_files[0] + filename = os.path.realpath(matching_files[0]) LOGGER.info(f"Processing {filename}") xml_string = None diff --git a/misc/manage/lib/server_operating_system.py b/misc/manage/lib/server_operating_system.py index 4fe28227..e3766dd9 100755 --- a/misc/manage/lib/server_operating_system.py +++ b/misc/manage/lib/server_operating_system.py @@ -235,6 +235,8 @@ def create_configs(host_list: list[str]): f_out.write(f"Host scs-bmc-{host_name}\n") f_out.write(f" Hostname {host_data[host_name]['bmc_ip_v4']}\n") + # Workaround for crappy old supermicro boxes + f_out.write(f" HostKeyAlgorithms=+ssh-rsa\n") f_out.write(f" User {host_data[host_name]['bmc_username']}\n") f_out.write(f"\n") diff --git a/misc/manage/server_ctl.py b/misc/manage/server_ctl.py index 03afa457..001792e4 100755 --- a/misc/manage/server_ctl.py +++ b/misc/manage/server_ctl.py @@ -62,6 +62,7 @@ default=None, help='A filter expression =') parser.add_argument('--verbose', '-v', action='store_true') +parser.add_argument('--ansible_inventory_update_strategy', type=str, default="keep") args = parser.parse_args() @@ -71,8 +72,8 @@ template_bmc_config(get_unique_servers(args.node, False, args.filter)) if args.ansible: - template_ansible_config(get_unique_servers(args.node, False, args.filter)) - + template_ansible_config(get_unique_servers(args.node, False, args.filter), "servers", + args.ansible_inventory_update_strategy) if args.install_os: install_server(get_unique_servers(args.node, False, args.filter), args.media_url, args.watch) @@ -102,6 +103,4 @@ if args.configs: create_configs(get_unique_servers(args.node, False, args.filter)) - - sys.exit(0) diff --git a/misc/manage/switch_ctl.py b/misc/manage/switch_ctl.py index efb12c61..51fdb2f9 100755 --- a/misc/manage/switch_ctl.py +++ b/misc/manage/switch_ctl.py @@ -37,6 +37,7 @@ parser.add_argument('--filter', '-f', metavar='loglevel', type=str, default=None, help='A filter expression =') +parser.add_argument('--ansible_inventory_update_strategy', type=str, default="keep") parser.add_argument('--verbose', '-v', action='store_true') args = parser.parse_args() @@ -44,7 +45,8 @@ setup_logging(args.log_level) if args.ansible: - template_ansible_config(get_unique_switches(args.node, False, args.filter), "switches") + template_ansible_config(get_unique_switches(args.node, False, args.filter), "switches", + args.ansible_inventory_update_strategy) if args.backup_cfg: backup_config(get_unique_switches(args.node, False, args.filter), args.backup_cfg) From 7a35453667fc92505e262d71f167f26696c981ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Jun 2024 10:30:16 +0200 Subject: [PATCH 02/31] Bump requests from 2.31.0 to 2.32.2 in /misc/manage (#14) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [requests](https://github.com/psf/requests) from 2.31.0 to 2.32.2. - [Release notes](https://github.com/psf/requests/releases) - [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md) - [Commits](https://github.com/psf/requests/compare/v2.31.0...v2.32.2) --- updated-dependencies: - dependency-name: requests dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Marc Schöchlin Signed-off-by: Marc Schöchlin --- misc/manage/requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/misc/manage/requirements.txt b/misc/manage/requirements.txt index 8476688a..4429b81e 100644 --- a/misc/manage/requirements.txt +++ b/misc/manage/requirements.txt @@ -1,7 +1,7 @@ sushy==5.0.0 -requests==2.31.0 +requests==2.32.2 cachetools==5.3.2 -requests==2.31.0 +requests==2.32.2 coloredlogs==15.0.1 setuptools==70.0.0 Jinja2==3.1.4 From 2dfafa4d60f044de9563dbb300a2730c609428eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Wed, 26 Jun 2024 11:46:27 +0200 Subject: [PATCH 03/31] Rollout Services (#18) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Deploy services * More documentation * Add a new Makefile (already backported to cfg-generics) * Update SSH snippets * Update BMC config updates * Added various playbooks/roles for (DHCP, DNS * Upgrade playbooks/role: Samba, Tinyproxy, * Bump requests from 2.31.0 to 2.32.2 in /misc/manage (#14) * Refactoring of ansible inventory and server_ctl and switch_ctl --------- Signed-off-by: Marc Schöchlin Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Marc Schöchlin --- .gitignore | 1 - Makefile | 64 +- Readme.md | 1 + config-snippets/ssh_config_scs_servers | 84 +- config-snippets/ssh_config_scs_switches | 24 +- .../server/H12SSL-NT_st01-comp-r01-u09.xml | 2 +- documentation/System_Deployment.md | 46 +- documentation/System_Operational_Workflows.md | 9 + .../servers/Supermicro_A2SDV-8C-LN8F.md | 7 +- environments/ansible.cfg | 2 +- environments/ceph/configuration.yml | 6 +- environments/configuration.yml | 38 +- environments/custom/playbook-inventory.yml | 6 + .../custom/playbook-manager_infra.yml | 11 - .../custom/playbook-scs_all_nodes.yml | 2 +- .../custom/playbook-scs_check_ntp.yml | 12 + environments/custom/playbook-scs_infra.yml | 4 +- environments/custom/playbook-test.yml | 6 +- .../custom/roles/scs-ceph-keys/README.md | 38 + .../roles/scs-ceph-keys/defaults/main.yml | 2 + .../roles/scs-ceph-keys/handlers/main.yml | 2 + .../library/create_ceph_key_file.py | 74 + .../custom/roles/scs-ceph-keys/meta/main.yml | 52 + .../custom/roles/scs-ceph-keys/tasks/main.yml | 41 + .../roles/scs-ceph-keys/tests/inventory | 2 + .../custom/roles/scs-ceph-keys/tests/test.yml | 5 + .../custom/roles/scs-ceph-keys/vars/main.yml | 2 + .../custom/roles/scs-dnscrypt/README.md | 0 .../custom/roles/scs-dnscrypt/README.rst | 78 + .../roles/scs-dnscrypt/defaults/main.yml | 31 + .../roles/scs-dnscrypt/handlers/main.yml | 7 + .../custom/roles/scs-dnscrypt/meta/main.yml | 22 + .../custom/roles/scs-dnscrypt/tasks/main.yml | 43 + .../templates/cloaking-rules.txt.j2 | 3 + .../templates/dnscrypt-proxy.toml.j2 | 895 +++++ .../templates/docker-compose.yml.j2 | 23 + .../files/scripts/check_chrony.sh | 36 + .../files/scripts/remove_ceph_vgs.sh | 23 + .../roles/scs-landscape-nodes/tasks/main.yml | 1 + .../scs-landscape-nodes/tasks/scripts.yml | 30 + .../custom/roles/scs-mgr-dhcpd/README.md | 0 .../custom/roles/scs-mgr-dhcpd/README.rst | 8 + .../roles/scs-mgr-dhcpd/defaults/main.yml | 21 + .../roles/scs-mgr-dhcpd/handlers/main.yml | 7 + .../custom/roles/scs-mgr-dhcpd/meta/main.yml | 22 + .../tasks/install-Debian-family.yml | 8 + .../tasks/install-RedHat-family.yml | 8 + .../custom/roles/scs-mgr-dhcpd/tasks/main.yml | 41 + .../templates/defaults.isc-dhcp-server.j2 | 17 + .../scs-mgr-dhcpd/templates/dhcpd.conf.j2 | 25 + .../templates/dhcpd_static.conf.j2 | 12 + .../roles/scs-mgr-samba/templates/smb.conf.j2 | 2 +- .../roles/scs-mgr-tinyproxy/tasks/main.yml | 8 + .../templates/tinyproxy.conf.j2 | 2 +- .../files/ceph/ceph.client.admin.keyring | 13 + environments/kolla/configuration.yml | 14 +- .../ceph.client.cinder-backup.keyring | 12 + .../cinder-backup/ceph.client.cinder.keyring | 14 + .../cinder-volume/ceph.client.cinder.keyring | 14 + .../glance/ceph.client.glance.keyring | 13 + .../gnocchi/ceph.client.gnocchi.keyring | 12 + .../manila/ceph.client.manila.keyring | 13 + .../overlays/nova/ceph.client.cinder.keyring | 14 + .../overlays/nova/ceph.client.nova.keyring | 15 + environments/kolla/secrets.yml | 3004 +++++++++-------- environments/manager/configuration.yml | 3 +- .../manager/host_vars/st01-mgmt-r01-u30.yml | 2 +- environments/openstack/clouds.yml | 9 + environments/secrets-ceph.yml | 132 + environments/secrets.yml | 822 ++--- inventory/10-custom | 62 +- inventory/20-roles | 3 + inventory/99-overwrite | 9 + inventory/group_vars/all.yml | 23 - .../group_vars/ceph-resource.yml.disabled | 37 + inventory/group_vars/control.yml | 15 + inventory/group_vars/generic/ceph.yml | 25 + inventory/group_vars/generic/chrony.yml | 25 + inventory/group_vars/generic/dhcpd.yml | 12 + inventory/group_vars/generic/motd.yml | 10 + inventory/group_vars/manager.yml | 5 +- inventory/host_vars/servers-template.yml.j2 | 8 +- .../01_base.yml} | 8 +- .../01_base.yml} | 8 +- .../01_base.yml} | 8 +- .../01_base.yml} | 8 +- .../01_base.yml} | 8 +- .../01_base.yml} | 8 +- .../01_base.yml} | 8 +- .../01_base.yml} | 8 +- .../01_base.yml} | 8 +- .../01_base.yml} | 8 +- .../01_base.yml} | 8 +- .../01_base.yml} | 8 +- .../01_base.yml} | 8 +- .../host_vars/st01-ctl-r01-u27/02_ceph.yml | 2 + .../host_vars/st01-ctl-r01-u27/02_chrony.yml | 2 + .../01_base.yml} | 8 +- .../host_vars/st01-ctl-r01-u28/02_ceph.yml | 3 + .../host_vars/st01-ctl-r01-u28/02_chrony.yml | 2 + .../01_base.yml} | 8 +- .../host_vars/st01-ctl-r01-u29/02_ceph.yml | 3 + .../host_vars/st01-ctl-r01-u29/02_chrony.yml | 2 + inventory/host_vars/st01-mgmt-r01-u30.yml | 103 - .../host_vars/st01-mgmt-r01-u30/00_def.yml | 3 + .../host_vars/st01-mgmt-r01-u30/01_base.yml | 40 + .../host_vars/st01-mgmt-r01-u30/02_chrony.yml | 2 + .../host_vars/st01-mgmt-r01-u30/03_motd.yml | 34 + .../01_base.yml} | 13 +- .../host_vars/st01-mgmt-r01-u31/02_chrony.yml | 2 + .../01_base.yml} | 8 +- .../host_vars/st01-stor-r01-u01/10_ceph.yml | 100 + .../01_base.yml} | 8 +- .../host_vars/st01-stor-r01-u03/10_ceph.yml | 100 + .../01_base.yml} | 8 +- .../host_vars/st01-stor-r01-u05/10_ceph.yml | 100 + .../01_base.yml} | 8 +- .../host_vars/st01-stor-r01-u07/10_ceph.yml | 100 + .../01_base.yml} | 1 + .../01_base.yml} | 1 + .../01_base.yml} | 1 + .../01_base.yml} | 1 + .../01_base.yml} | 1 + .../01_base.yml} | 1 + .../01_base.yml} | 1 + .../01_base.yml} | 1 + .../01_base.yml} | 1 + .../01_base.yml} | 1 + .../01_base.yml} | 1 + .../01_base.yml} | 1 + inventory/host_vars/switches-template.yml.j2 | 1 + misc/manage/lib/global_helpers.py | 1 - misc/manage/lib/helpers.py | 73 +- misc/manage/lib/server_hardware.py | 5 +- misc/manage/lib/server_model.py | 8 +- misc/manage/lib/server_operating_system.py | 21 - misc/manage/lib/switch_model.py | 6 +- misc/manage/lib/switch_operating_system.py | 28 - misc/manage/server_ctl.py | 12 +- misc/manage/switch_ctl.py | 12 +- 140 files changed, 4940 insertions(+), 2258 deletions(-) create mode 100644 documentation/System_Operational_Workflows.md create mode 100644 environments/custom/playbook-inventory.yml delete mode 100644 environments/custom/playbook-manager_infra.yml create mode 100644 environments/custom/playbook-scs_check_ntp.yml create mode 100644 environments/custom/roles/scs-ceph-keys/README.md create mode 100644 environments/custom/roles/scs-ceph-keys/defaults/main.yml create mode 100644 environments/custom/roles/scs-ceph-keys/handlers/main.yml create mode 100644 environments/custom/roles/scs-ceph-keys/library/create_ceph_key_file.py create mode 100644 environments/custom/roles/scs-ceph-keys/meta/main.yml create mode 100644 environments/custom/roles/scs-ceph-keys/tasks/main.yml create mode 100644 environments/custom/roles/scs-ceph-keys/tests/inventory create mode 100644 environments/custom/roles/scs-ceph-keys/tests/test.yml create mode 100644 environments/custom/roles/scs-ceph-keys/vars/main.yml create mode 100644 environments/custom/roles/scs-dnscrypt/README.md create mode 100644 environments/custom/roles/scs-dnscrypt/README.rst create mode 100644 environments/custom/roles/scs-dnscrypt/defaults/main.yml create mode 100644 environments/custom/roles/scs-dnscrypt/handlers/main.yml create mode 100644 environments/custom/roles/scs-dnscrypt/meta/main.yml create mode 100644 environments/custom/roles/scs-dnscrypt/tasks/main.yml create mode 100644 environments/custom/roles/scs-dnscrypt/templates/cloaking-rules.txt.j2 create mode 100644 environments/custom/roles/scs-dnscrypt/templates/dnscrypt-proxy.toml.j2 create mode 100644 environments/custom/roles/scs-dnscrypt/templates/docker-compose.yml.j2 create mode 100755 environments/custom/roles/scs-landscape-nodes/files/scripts/check_chrony.sh create mode 100755 environments/custom/roles/scs-landscape-nodes/files/scripts/remove_ceph_vgs.sh create mode 100644 environments/custom/roles/scs-landscape-nodes/tasks/scripts.yml create mode 100644 environments/custom/roles/scs-mgr-dhcpd/README.md create mode 100644 environments/custom/roles/scs-mgr-dhcpd/README.rst create mode 100644 environments/custom/roles/scs-mgr-dhcpd/defaults/main.yml create mode 100644 environments/custom/roles/scs-mgr-dhcpd/handlers/main.yml create mode 100644 environments/custom/roles/scs-mgr-dhcpd/meta/main.yml create mode 100644 environments/custom/roles/scs-mgr-dhcpd/tasks/install-Debian-family.yml create mode 100644 environments/custom/roles/scs-mgr-dhcpd/tasks/install-RedHat-family.yml create mode 100644 environments/custom/roles/scs-mgr-dhcpd/tasks/main.yml create mode 100644 environments/custom/roles/scs-mgr-dhcpd/templates/defaults.isc-dhcp-server.j2 create mode 100644 environments/custom/roles/scs-mgr-dhcpd/templates/dhcpd.conf.j2 create mode 100644 environments/custom/roles/scs-mgr-dhcpd/templates/dhcpd_static.conf.j2 create mode 100644 environments/secrets-ceph.yml create mode 100644 inventory/group_vars/ceph-resource.yml.disabled create mode 100644 inventory/group_vars/generic/ceph.yml create mode 100644 inventory/group_vars/generic/chrony.yml create mode 100644 inventory/group_vars/generic/dhcpd.yml create mode 100644 inventory/group_vars/generic/motd.yml rename inventory/host_vars/{st01-comp-r01-u09.yml => st01-comp-r01-u09/01_base.yml} (84%) rename inventory/host_vars/{st01-comp-r01-u11.yml => st01-comp-r01-u11/01_base.yml} (84%) rename inventory/host_vars/{st01-comp-r01-u13.yml => st01-comp-r01-u13/01_base.yml} (84%) rename inventory/host_vars/{st01-comp-r01-u15.yml => st01-comp-r01-u15/01_base.yml} (84%) rename inventory/host_vars/{st01-comp-r01-u17.yml => st01-comp-r01-u17/01_base.yml} (84%) rename inventory/host_vars/{st01-comp-r01-u19.yml => st01-comp-r01-u19/01_base.yml} (84%) rename inventory/host_vars/{st01-comp-r01-u21.yml => st01-comp-r01-u21/01_base.yml} (84%) rename inventory/host_vars/{st01-comp-r01-u22.yml => st01-comp-r01-u22/01_base.yml} (84%) rename inventory/host_vars/{st01-comp-r01-u23.yml => st01-comp-r01-u23/01_base.yml} (84%) rename inventory/host_vars/{st01-comp-r01-u24.yml => st01-comp-r01-u24/01_base.yml} (84%) rename inventory/host_vars/{st01-comp-r01-u25.yml => st01-comp-r01-u25/01_base.yml} (84%) rename inventory/host_vars/{st01-comp-r01-u26.yml => st01-comp-r01-u26/01_base.yml} (84%) rename inventory/host_vars/{st01-ctl-r01-u27.yml => st01-ctl-r01-u27/01_base.yml} (84%) create mode 100644 inventory/host_vars/st01-ctl-r01-u27/02_ceph.yml create mode 100644 inventory/host_vars/st01-ctl-r01-u27/02_chrony.yml rename inventory/host_vars/{st01-ctl-r01-u28.yml => st01-ctl-r01-u28/01_base.yml} (84%) create mode 100644 inventory/host_vars/st01-ctl-r01-u28/02_ceph.yml create mode 100644 inventory/host_vars/st01-ctl-r01-u28/02_chrony.yml rename inventory/host_vars/{st01-ctl-r01-u29.yml => st01-ctl-r01-u29/01_base.yml} (84%) create mode 100644 inventory/host_vars/st01-ctl-r01-u29/02_ceph.yml create mode 100644 inventory/host_vars/st01-ctl-r01-u29/02_chrony.yml delete mode 100644 inventory/host_vars/st01-mgmt-r01-u30.yml create mode 100644 inventory/host_vars/st01-mgmt-r01-u30/00_def.yml create mode 100644 inventory/host_vars/st01-mgmt-r01-u30/01_base.yml create mode 100644 inventory/host_vars/st01-mgmt-r01-u30/02_chrony.yml create mode 100644 inventory/host_vars/st01-mgmt-r01-u30/03_motd.yml rename inventory/host_vars/{st01-mgmt-r01-u31.yml => st01-mgmt-r01-u31/01_base.yml} (78%) create mode 100644 inventory/host_vars/st01-mgmt-r01-u31/02_chrony.yml rename inventory/host_vars/{st01-stor-r01-u01.yml => st01-stor-r01-u01/01_base.yml} (84%) create mode 100644 inventory/host_vars/st01-stor-r01-u01/10_ceph.yml rename inventory/host_vars/{st01-stor-r01-u03.yml => st01-stor-r01-u03/01_base.yml} (84%) create mode 100644 inventory/host_vars/st01-stor-r01-u03/10_ceph.yml rename inventory/host_vars/{st01-stor-r01-u05.yml => st01-stor-r01-u05/01_base.yml} (84%) create mode 100644 inventory/host_vars/st01-stor-r01-u05/10_ceph.yml rename inventory/host_vars/{st01-stor-r01-u07.yml => st01-stor-r01-u07/01_base.yml} (84%) create mode 100644 inventory/host_vars/st01-stor-r01-u07/10_ceph.yml rename inventory/host_vars/{st01-sw100g-r01-u36.yml => st01-sw100g-r01-u36/01_base.yml} (90%) rename inventory/host_vars/{st01-sw100g-r01-u37.yml => st01-sw100g-r01-u37/01_base.yml} (90%) rename inventory/host_vars/{st01-sw100g-r01-u41.yml => st01-sw100g-r01-u41/01_base.yml} (90%) rename inventory/host_vars/{st01-sw10g-r01-u38.yml => st01-sw10g-r01-u38/01_base.yml} (90%) rename inventory/host_vars/{st01-sw10g-r01-u39.yml => st01-sw10g-r01-u39/01_base.yml} (90%) rename inventory/host_vars/{st01-sw1g-r01-u32.yml => st01-sw1g-r01-u32/01_base.yml} (90%) rename inventory/host_vars/{st01-sw1g-r01-u33.yml => st01-sw1g-r01-u33/01_base.yml} (90%) rename inventory/host_vars/{st01-sw1g-r01-u42.yml => st01-sw1g-r01-u42/01_base.yml} (90%) rename inventory/host_vars/{st01-sw1g-r01-u47.yml => st01-sw1g-r01-u47/01_base.yml} (90%) rename inventory/host_vars/{st01-sw25g-r01-u34.yml => st01-sw25g-r01-u34/01_base.yml} (90%) rename inventory/host_vars/{st01-sw25g-r01-u35.yml => st01-sw25g-r01-u35/01_base.yml} (90%) rename inventory/host_vars/{st01-sw25g-r01-u40.yml => st01-sw25g-r01-u40/01_base.yml} (90%) diff --git a/.gitignore b/.gitignore index 870feb4f..0ec86356 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ *-new.json note note-* -hardware/servers/setup/sum* *.passwords sum.log Supermicro_*_*.*.log.*_* diff --git a/Makefile b/Makefile index 4d8762ec..65aad5e8 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,22 @@ venv = . venv/bin/activate export PATH := ${PATH}:${PWD}/venv/bin +VAULTPASS_FILE ?= ${PWD}/secrets/vaultpass + +ifeq (,$(wildcard ${VAULTPASS_FILE})) + ifneq (,$(shell docker ps --filter 'name=osism-ansible' --format '{{.Names}}')) + VAULTPASS_FILE := ${PWD}/secrets/vaultpass-wrapper.sh + $(shell echo "#!/usr/bin/env bash" > ${VAULTPASS_FILE}) + $(shell echo "docker exec osism-ansible /ansible-vault.py" >> ${VAULTPASS_FILE}) + $(shell chmod +x ${VAULTPASS_FILE}) + else + $(error ERROR: the file VAULTPASS_FILE='${VAULTPASS_FILE}' does not exist and no running 'osism-ansible' container) + endif +else + $(info INFO: ${VAULTPASS_FILE} exists, using the vault password defined in the file) +endif + + .PHONY: deps deps: venv/bin/activate ## Install software preconditions to `venv`. @@ -19,41 +35,61 @@ sync: deps @[ "${BRANCH}" ] && sed -i -e "s/version: .*/version: ${BRANCH}/" gilt.yml || exit 0 @${venv} && gilt overlay && gilt overlay - .PHONY: check_vault_pass check_vault_pass: - @test -r secrets/vaultpass || ( echo "the file secrets/vaultpass does not exist"; exit 1) + @test -r "${VAULTPASS_FILE}" || ( echo "the file VAULTPASS_FILE='${VAULTPASS_FILE}' does not exist"; exit 1) + +.PHONY: ansible_vault_encrypt_ceph_keys +ansible_vault_encrypt_ceph_keys: deps check_vault_pass + @${venv} ; find . -name "ceph.client.*.keyring"|while read FILE; do \ + echo "-> $${FILE}"; \ + if ! ( grep -q ANSIBLE_VAULT $${FILE} );then \ + ansible-vault encrypt $${FILE} --output $${FILE}.vaulted --vault-password-file ${VAULTPASS_FILE} && \ + mv $${FILE}.vaulted $${FILE}; \ + fi \ + done + +.PHONY: ansible_vault_decrypt_ceph_keys +ansible_vault_decrypt_ceph_keys: deps check_vault_pass + @${venv} ; find . -name "ceph.client.*.keyring"|while read FILE; do \ + echo "-> $${FILE}"; \ + if ( grep -q ANSIBLE_VAULT $${FILE} );then \ + ansible-vault decrypt $${FILE} --output $${FILE}.unvaulted --vault-password-file ${VAULTPASS_FILE} && \ + mv $${FILE}.unvaulted $${FILE}; \ + fi \ + done .PHONY: ansible_vault_rekey ansible_vault_rekey: deps check_vault_pass + @echo "${VAULTPASS_FILE}" |grep -q -v ".sh$$" || ( echo "WARNING: the file VAULTPASS_FILE='${VAULTPASS_FILE}' is not a password file, exitting here"; exit 1) @if ! git diff-index --quiet HEAD --; then \ echo "Error: Uncommitted changes found in the repository. Stash or drop them before rekeying."; \ - git diff; \ + git diff; \ exit 1; \ fi - openssl rand -base64 24 | tr -dc 'A-Za-z0-9' | head -c 32 > secrets/vaultpass.new - echo "CREATING A BACKUP" - cp secrets/vaultpass secrets/vaultpass_backup_$(shell date --date="today" "+%Y-%m-%d_%H-%M-%S") - echo "PERFORM REKEYING" + openssl rand -base64 24 | tr -dc 'A-Za-z0-9' | head -c 32 > ${VAULTPASS_FILE}.new + @echo "INFO: creating a backup" + cp ${VAULTPASS_FILE} ${VAULTPASS_FILE}_backup_$(shell date --date="today" "+%Y-%m-%d_%H-%M-%S"); \ + @echo "INFO: perform rekeying" ${venv} && find environments/ inventory/ -name "*.yml" -not -path "*/.venv/*" -exec grep -l ANSIBLE_VAULT {} \+|\ sort -u|\ xargs -n 1 --verbose ansible-vault rekey -v \ - --vault-password-file secrets/vaultpass \ - --new-vault-password-file secrets/vaultpass.new - echo "MOVE NEW KEY IN PLACE" - mv secrets/vaultpass.new secrets/vaultpass + --vault-password-file ${VAULTPASS_FILE} \ + --new-vault-password-file ${VAULTPASS_FILE}.new + @echo "INFO: move new key in place" + mv ${VAULTPASS_FILE}.new ${VAULTPASS_FILE} .PHONY: ansible_vault_show ansible_vault_show: deps check_vault_pass ${venv} && find environments/ inventory/ -name "*.yml" -and -not -path "*/.venv/*" -exec grep -l ANSIBLE_VAULT {} \+|\ sort -u|\ - xargs -n 1 --verbose ansible-vault view --vault-password-file secrets/vaultpass 2>&1 | less + xargs -n 1 --verbose ansible-vault view --vault-password-file ${VAULTPASS_FILE} 2>&1 | less .PHONY: ansible_vault_edit ansible_vault_edit: deps check_vault_pass ifndef FILE - $(error FILE variable is not set) + $(error FILE variable is not set, example 'make ansible_vault_edit FILE=environments/secrets.yml') endif - ${venv} && ansible-vault edit --vault-password-file secrets/vaultpass ${FILE} + ${venv} && ansible-vault edit --vault-password-file ${VAULTPASS_FILE} ${FILE} diff --git a/Readme.md b/Readme.md index 7e2503b9..d11518ad 100644 --- a/Readme.md +++ b/Readme.md @@ -10,6 +10,7 @@ * [(Start to) work with the environment](documentation/System_Usage.md) * [Deployment of the System(s)](documentation/System_Deployment.md) * [Runbooks](documentation/System_Runbooks.md) + * [Operational Procedures](documentation/System_Operational_Workflows.md) * Documentation of the system setup * [The rack configuration](documentation/System_Rack_Setup.md) * [General Network Information](documentation/System_Networks.md) diff --git a/config-snippets/ssh_config_scs_servers b/config-snippets/ssh_config_scs_servers index 6d4f143b..1345edf3 100644 --- a/config-snippets/ssh_config_scs_servers +++ b/config-snippets/ssh_config_scs_servers @@ -1,168 +1,168 @@ -Host scs-bmc-st01-comp-r01-u09 +Host scs-st01-comp-r01-u09-bmc Hostname 10.10.23.25 HostKeyAlgorithms=+ssh-rsa User ADMIN -Host scs-node-st01-comp-r01-u09 +Host scs-st01-comp-r01-u09 Hostname 10.10.21.25 -Host scs-bmc-st01-comp-r01-u11 +Host scs-st01-comp-r01-u11-bmc Hostname 10.10.23.26 HostKeyAlgorithms=+ssh-rsa User ADMIN -Host scs-node-st01-comp-r01-u11 +Host scs-st01-comp-r01-u11 Hostname 10.10.21.26 -Host scs-bmc-st01-comp-r01-u13 +Host scs-st01-comp-r01-u13-bmc Hostname 10.10.23.27 HostKeyAlgorithms=+ssh-rsa User ADMIN -Host scs-node-st01-comp-r01-u13 +Host scs-st01-comp-r01-u13 Hostname 10.10.21.27 -Host scs-bmc-st01-comp-r01-u15 +Host scs-st01-comp-r01-u15-bmc Hostname 10.10.23.28 HostKeyAlgorithms=+ssh-rsa User ADMIN -Host scs-node-st01-comp-r01-u15 +Host scs-st01-comp-r01-u15 Hostname 10.10.21.28 -Host scs-bmc-st01-comp-r01-u17 +Host scs-st01-comp-r01-u17-bmc Hostname 10.10.23.29 HostKeyAlgorithms=+ssh-rsa User ADMIN -Host scs-node-st01-comp-r01-u17 +Host scs-st01-comp-r01-u17 Hostname 10.10.21.29 -Host scs-bmc-st01-comp-r01-u19 +Host scs-st01-comp-r01-u19-bmc Hostname 10.10.23.30 HostKeyAlgorithms=+ssh-rsa User ADMIN -Host scs-node-st01-comp-r01-u19 +Host scs-st01-comp-r01-u19 Hostname 10.10.21.30 -Host scs-bmc-st01-comp-r01-u21 +Host scs-st01-comp-r01-u21-bmc Hostname 10.10.23.15 HostKeyAlgorithms=+ssh-rsa User root -Host scs-node-st01-comp-r01-u21 +Host scs-st01-comp-r01-u21 Hostname 10.10.21.15 -Host scs-bmc-st01-comp-r01-u22 +Host scs-st01-comp-r01-u22-bmc Hostname 10.10.23.16 HostKeyAlgorithms=+ssh-rsa User root -Host scs-node-st01-comp-r01-u22 +Host scs-st01-comp-r01-u22 Hostname 10.10.21.16 -Host scs-bmc-st01-comp-r01-u23 +Host scs-st01-comp-r01-u23-bmc Hostname 10.10.23.17 HostKeyAlgorithms=+ssh-rsa User root -Host scs-node-st01-comp-r01-u23 +Host scs-st01-comp-r01-u23 Hostname 10.10.21.17 -Host scs-bmc-st01-comp-r01-u24 +Host scs-st01-comp-r01-u24-bmc Hostname 10.10.23.18 HostKeyAlgorithms=+ssh-rsa User root -Host scs-node-st01-comp-r01-u24 +Host scs-st01-comp-r01-u24 Hostname 10.10.21.18 -Host scs-bmc-st01-comp-r01-u25 +Host scs-st01-comp-r01-u25-bmc Hostname 10.10.23.19 HostKeyAlgorithms=+ssh-rsa User root -Host scs-node-st01-comp-r01-u25 +Host scs-st01-comp-r01-u25 Hostname 10.10.21.19 -Host scs-bmc-st01-comp-r01-u26 +Host scs-st01-comp-r01-u26-bmc Hostname 10.10.23.20 HostKeyAlgorithms=+ssh-rsa User root -Host scs-node-st01-comp-r01-u26 +Host scs-st01-comp-r01-u26 Hostname 10.10.21.20 -Host scs-bmc-st01-ctl-r01-u27 +Host scs-st01-ctl-r01-u27-bmc Hostname 10.10.23.12 HostKeyAlgorithms=+ssh-rsa User ADMIN -Host scs-node-st01-ctl-r01-u27 +Host scs-st01-ctl-r01-u27 Hostname 10.10.21.12 -Host scs-bmc-st01-ctl-r01-u28 +Host scs-st01-ctl-r01-u28-bmc Hostname 10.10.23.13 HostKeyAlgorithms=+ssh-rsa User ADMIN -Host scs-node-st01-ctl-r01-u28 +Host scs-st01-ctl-r01-u28 Hostname 10.10.21.13 -Host scs-bmc-st01-ctl-r01-u29 +Host scs-st01-ctl-r01-u29-bmc Hostname 10.10.23.14 HostKeyAlgorithms=+ssh-rsa User ADMIN -Host scs-node-st01-ctl-r01-u29 +Host scs-st01-ctl-r01-u29 Hostname 10.10.21.14 -Host scs-bmc-st01-mgmt-r01-u30 +Host scs-st01-mgmt-r01-u30-bmc Hostname 10.10.23.10 HostKeyAlgorithms=+ssh-rsa User ADMIN -Host scs-node-st01-mgmt-r01-u30 +Host scs-st01-mgmt-r01-u30 Hostname 10.10.21.10 -Host scs-bmc-st01-mgmt-r01-u31 +Host scs-st01-mgmt-r01-u31-bmc Hostname 10.10.23.11 HostKeyAlgorithms=+ssh-rsa User ADMIN -Host scs-node-st01-mgmt-r01-u31 +Host scs-st01-mgmt-r01-u31 Hostname 10.10.21.11 -Host scs-bmc-st01-stor-r01-u01 +Host scs-st01-stor-r01-u01-bmc Hostname 10.10.23.21 HostKeyAlgorithms=+ssh-rsa User ADMIN -Host scs-node-st01-stor-r01-u01 +Host scs-st01-stor-r01-u01 Hostname 10.10.21.21 -Host scs-bmc-st01-stor-r01-u03 +Host scs-st01-stor-r01-u03-bmc Hostname 10.10.23.22 HostKeyAlgorithms=+ssh-rsa User ADMIN -Host scs-node-st01-stor-r01-u03 +Host scs-st01-stor-r01-u03 Hostname 10.10.21.22 -Host scs-bmc-st01-stor-r01-u05 +Host scs-st01-stor-r01-u05-bmc Hostname 10.10.23.23 HostKeyAlgorithms=+ssh-rsa User ADMIN -Host scs-node-st01-stor-r01-u05 +Host scs-st01-stor-r01-u05 Hostname 10.10.21.23 -Host scs-bmc-st01-stor-r01-u07 +Host scs-st01-stor-r01-u07-bmc Hostname 10.10.23.24 HostKeyAlgorithms=+ssh-rsa User ADMIN -Host scs-node-st01-stor-r01-u07 +Host scs-st01-stor-r01-u07 Hostname 10.10.21.24 diff --git a/config-snippets/ssh_config_scs_switches b/config-snippets/ssh_config_scs_switches index 446abc37..12dcba84 100644 --- a/config-snippets/ssh_config_scs_switches +++ b/config-snippets/ssh_config_scs_switches @@ -1,48 +1,48 @@ -Host scs-bmc-st01-sw100g-r01-u36 +Host scs-st01-sw100g-r01-u36-bmc Hostname 10.10.23.110 User admin -Host scs-bmc-st01-sw100g-r01-u37 +Host scs-st01-sw100g-r01-u37-bmc Hostname 10.10.23.109 User admin -Host scs-bmc-st01-sw100g-r01-u41 +Host scs-st01-sw100g-r01-u41-bmc Hostname 10.10.23.111 User admin -Host scs-bmc-st01-sw10g-r01-u38 +Host scs-st01-sw10g-r01-u38-bmc Hostname 10.10.23.105 User admin -Host scs-bmc-st01-sw10g-r01-u39 +Host scs-st01-sw10g-r01-u39-bmc Hostname 10.10.23.104 User admin -Host scs-bmc-st01-sw1g-r01-u32 +Host scs-st01-sw1g-r01-u32-bmc Hostname 10.10.23.101 User admin -Host scs-bmc-st01-sw1g-r01-u33 +Host scs-st01-sw1g-r01-u33-bmc Hostname 10.10.23.100 User admin -Host scs-bmc-st01-sw1g-r01-u42 +Host scs-st01-sw1g-r01-u42-bmc Hostname 10.10.23.103 User admin -Host scs-bmc-st01-sw1g-r01-u47 +Host scs-st01-sw1g-r01-u47-bmc Hostname 10.10.22.102 User admin -Host scs-bmc-st01-sw25g-r01-u34 +Host scs-st01-sw25g-r01-u34-bmc Hostname 10.10.23.107 User admin -Host scs-bmc-st01-sw25g-r01-u35 +Host scs-st01-sw25g-r01-u35-bmc Hostname 10.10.23.108 User admin -Host scs-bmc-st01-sw25g-r01-u40 +Host scs-st01-sw25g-r01-u40-bmc Hostname 10.10.23.106 User admin diff --git a/device_configurations/server/H12SSL-NT_st01-comp-r01-u09.xml b/device_configurations/server/H12SSL-NT_st01-comp-r01-u09.xml index 23e158a3..95ad402c 100644 --- a/device_configurations/server/H12SSL-NT_st01-comp-r01-u09.xml +++ b/device_configurations/server/H12SSL-NT_st01-comp-r01-u09.xml @@ -287,7 +287,7 @@ - 2024/6/13 16:37 + 2024/6/19 13:25 diff --git a/documentation/System_Deployment.md b/documentation/System_Deployment.md index c1ad0add..6153fb19 100644 --- a/documentation/System_Deployment.md +++ b/documentation/System_Deployment.md @@ -72,7 +72,7 @@ Please just add issues to this project with hints or directly [contact me](https * Configure "local shell on your local system * Add the passwords file for BMC password data (TODO, add this later to ansible secrets) : ``secrets/server.passwords`` -### Install the node images +### Step 3: Provision / Install the node images * Bootstrap legacy AMI BMC systems: (A2SDV-4C-LN8F and A2SDV-4C-LN8F, `st01-mgmt-*` and `st01-ctl`) @@ -100,6 +100,9 @@ Please just add issues to this project with hints or directly [contact me](https # ARM Compute Servers TODO ``` + +### Step 4: Bootstrap the nodes + * Set basic system time to prevent problems with apt and signatures based on a http request to www.google.com. (prevents problems with gpg signatures of packages) @@ -115,3 +118,44 @@ Please just add issues to this project with hints or directly [contact me](https ``` osism apply scs_all_nodes -l 'all:!manager' ``` +* Check if the ntp time setup is correct + ``` + osism apply scs_check_ntp + ``` + +## Deploy the infratructure servcies + +Deployment order + +1. [Infrastructure](https://osism.tech/de/docs/guides/deploy-guide/services/infrastructure.md) +2. [Network](https://osism.tech/de/docs/guides/deploy-guide/services/network.md) +3. [Logging & Monitoring](https://osism.tech/de/docs/guides/deploy-guide/services/logging-monitoring.md) +4. [Ceph](https://osism.tech/de/docs/guides/deploy-guide/services/ceph.mdx) +5. [OpenStack](https://osism.tech/de/docs/guides/deploy-guide/services/openstack.md) + +### Step 2: Network + +The OVN database is deployed to the first 3 compute nodes because the ATOM CPUs do not not support the suitable AVX instructions. + +### Step 3: Logging & Monitoring + +TODO + +### Step 4: Ceph + +For the steps described in the osd configurtion there are the following exceptions: + +1. After the file generation + Copy the generated files using the following step to the inventory: + ``` + for filename in /tmp/st01-stor*.yml; do + node="$(basename $filename|sed '~s,-ceph-lvm-configuration.yml,,')"; + cp -v $filename /opt/configuration/inventory/host_vars/${node}/10_ceph.yml ; + done + cd /opt/configuration + git mv inventory/group_vars/ceph-resource.yml inventory/group_vars/ceph-resource.yml.disabled + git add -A . + git commit -m "osd-generation" -a -s + git push + ``` + diff --git a/documentation/System_Operational_Workflows.md b/documentation/System_Operational_Workflows.md new file mode 100644 index 00000000..c6cff3c1 --- /dev/null +++ b/documentation/System_Operational_Workflows.md @@ -0,0 +1,9 @@ +# Performing configuration changes + + +1. Optional: Open a issue describing your goal and inform the users of the plattform +2. Check if there are active pull request for the environment +3. Perform the steps described by ["Working with GIT Branches"](https://osism.tech/docs/guides/configuration-guide/configuration-repository#working-with-git-branches) +4. Complete your technical work +5. Check if new documentation needs to be created +5. Handover the review to the maintainers of the system diff --git a/documentation/devices/servers/Supermicro_A2SDV-8C-LN8F.md b/documentation/devices/servers/Supermicro_A2SDV-8C-LN8F.md index 062192cb..327812b5 100644 --- a/documentation/devices/servers/Supermicro_A2SDV-8C-LN8F.md +++ b/documentation/devices/servers/Supermicro_A2SDV-8C-LN8F.md @@ -4,8 +4,11 @@ * Model: Supermicro A2SDV-8C-LN8F * Feature overview: * Intel - * Single-CPU 8-Core Server - * two 1+ Gbps + * Single-CPU 8-Core Server: + * [Intel(R) Atom(TM) CPU C3758 @ 2.20GHz](https://ark.intel.com/content/www/de/de/ark/products/97926/intel-atom-processor-c3758-16m-cache-up-to-2-20-ghz.html) + * Low budget CPU, missing support for avx cpu instructions + (no chance to run ovs/ovn instrastructure) + * two 1+ Gbps * two 25 Gbps SFP+ * NIC: enp2s0f0np0 * NIC: enp2s0f1np1 diff --git a/environments/ansible.cfg b/environments/ansible.cfg index 56bbcb4a..512e9dd7 100644 --- a/environments/ansible.cfg +++ b/environments/ansible.cfg @@ -12,7 +12,7 @@ deprecation_warnings = false # use -vvvv to see details" warning message force_valid_group_names = ignore -stdout_callback = community.general.yaml +stdout_callback = osism.commons.still_alive host_key_checking = false diff --git a/environments/ceph/configuration.yml b/environments/ceph/configuration.yml index 7994eedf..d972631f 100644 --- a/environments/ceph/configuration.yml +++ b/environments/ceph/configuration.yml @@ -7,15 +7,15 @@ fsid: 44bc2d19-fd83-4b92-a6c4-eed358e35672 ########################## # network -public_network: 10.26.0.0/22 -cluster_network: 10.26.0.0/22 +public_network: 10.10.21.0/22 +cluster_network: 10.10.21.0/22 ########################## # openstack # NOTE: After the initial deployment of the Ceph Clusters, the following parameter can be # set to false. It must only be set to true again when new pools or keys are added. -openstack_config: true +openstack_config: false ########################## # custom diff --git a/environments/configuration.yml b/environments/configuration.yml index 1cd9e103..6d028383 100644 --- a/environments/configuration.yml +++ b/environments/configuration.yml @@ -3,14 +3,14 @@ # proxy/client # docker -docker_configure_proxy: false -docker_proxy_http: "http://{{ squid_host }}:8888" -docker_proxy_https: "{{ docker_proxy_http }}" +docker_configure_proxy: true +docker_proxy_http: "http://{{ groups['manager'][0] }}:8888" +docker_proxy_https: "http://{{ groups['manager'][0] }}:8888" # apt proxy_proxies: - http: "http://{{ squid_host }}:8888" - https: "http://{{ squid_host }}:8888" + http: "http://{{ groups['manager'][0] }}:8888" + https: "http://{{ groups['manager'][0] }}:8888" ########################################################## # proxy/server @@ -27,6 +27,21 @@ squid_tag: edge # system settings motd_show_ssh: true +network_interface: dummy0 + +management_domain: mgmt.sovereignit.de +management_gw: 10.10.23.254 + +########################## +# dnscrypt + +# DNS Crypt acts as a DNS proxy, but is currently not really needed. +# It was a experiment. +# TODO: decide if we remove or keep it +dnscrypt_cloaks: + - "api-int.int1.landscape.sovereignit.de 10.10.21.200" + - "api.int1.landscape.sovereignit.de 10.10.21.201" + ########################## # docker @@ -44,6 +59,13 @@ user_delete: - name: "osism" user_list: + # The user gets a password because this is sometimes useful on the bmc console + # for debugging in exceptional problem situations where "dragon" is not usable. + # (i.e. extremly high load, sudo configuration and file system status of /home) + # The system will not provide root login by ssh. + - name: "root" + password: "{{ operator_password_root }}" + key: "" - name: "scoopex" key: "github" primary_group: dragon @@ -124,6 +146,8 @@ operator_authorized_keys: # resolvconf resolvconf_nameserver: + - 10.10.21.10 + - 10.10.21.11 - 8.8.8.8 - 9.9.9.9 resolvconf_search: int1.landscape.sovereignit.de @@ -133,8 +157,8 @@ resolvconf_search: int1.landscape.sovereignit.de hosts_type: template hosts_additional_entries: - api-int.int1.landscape.sovereignit.de: 192.168.32.9 - api.int1.landscape.sovereignit.de: 192.168.96.9 + api-int.int1.landscape.sovereignit.de: 10.10.21.200 + api.int1.landscape.sovereignit.de: 10.10.21.201 ########################## # ceph diff --git a/environments/custom/playbook-inventory.yml b/environments/custom/playbook-inventory.yml new file mode 100644 index 00000000..5701b902 --- /dev/null +++ b/environments/custom/playbook-inventory.yml @@ -0,0 +1,6 @@ +--- +- name: Dump inventory structure + hosts: manager + tasks: + - debug: + var=groups diff --git a/environments/custom/playbook-manager_infra.yml b/environments/custom/playbook-manager_infra.yml deleted file mode 100644 index 0014c13e..00000000 --- a/environments/custom/playbook-manager_infra.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -- name: Assign roles to manager hosts - hosts: manager - become: true - roles: - - osism.services.squid - - osism.commons.motd - - scs-landscape-nodes - - scs-mgr-samba - - scs-mgr-httpd - diff --git a/environments/custom/playbook-scs_all_nodes.yml b/environments/custom/playbook-scs_all_nodes.yml index 1aa9477c..af819c84 100644 --- a/environments/custom/playbook-scs_all_nodes.yml +++ b/environments/custom/playbook-scs_all_nodes.yml @@ -1,6 +1,6 @@ --- - name: Assign roles to all hosts - hosts: manager + hosts: all become: true roles: - scs-landscape-nodes diff --git a/environments/custom/playbook-scs_check_ntp.yml b/environments/custom/playbook-scs_check_ntp.yml new file mode 100644 index 00000000..3cb06d36 --- /dev/null +++ b/environments/custom/playbook-scs_check_ntp.yml @@ -0,0 +1,12 @@ +--- +- name: Check the state of all ntp daemons + hosts: all + gather_facts: no + become: yes + tasks: + - name: Set time by http request to www.google.com + shell: | + /home/dragon/scripts/check_chrony.sh 3 0.01 + args: + executable: /bin/bash + diff --git a/environments/custom/playbook-scs_infra.yml b/environments/custom/playbook-scs_infra.yml index 6fa6a066..983aee7e 100644 --- a/environments/custom/playbook-scs_infra.yml +++ b/environments/custom/playbook-scs_infra.yml @@ -3,12 +3,14 @@ hosts: manager become: true roles: + - scs-mgr-dhcpd - osism.services.squid - osism.commons.motd - scs-landscape-nodes - - scs-mgr-tinyproxy - scs-mgr-samba - scs-mgr-httpd + - scs-mgr-tinyproxy + - scs-dnscrypt - name: Assign roles to bastion hosts hosts: bastion diff --git a/environments/custom/playbook-test.yml b/environments/custom/playbook-test.yml index eb4c898c..cd78751d 100644 --- a/environments/custom/playbook-test.yml +++ b/environments/custom/playbook-test.yml @@ -1,7 +1,7 @@ --- -- name: Assign roles to all hosts +- name: Assign roles to manager host hosts: manager - become: true + become: false roles: - - scs-serial-terminals + - scs-mgr-dhcpd diff --git a/environments/custom/roles/scs-ceph-keys/README.md b/environments/custom/roles/scs-ceph-keys/README.md new file mode 100644 index 00000000..225dd44b --- /dev/null +++ b/environments/custom/roles/scs-ceph-keys/README.md @@ -0,0 +1,38 @@ +Role Name +========= + +A brief description of the role goes here. + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. + +Dependencies +------------ + +A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. + +Example Playbook +---------------- + +Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: + + - hosts: servers + roles: + - { role: username.rolename, x: 42 } + +License +------- + +BSD + +Author Information +------------------ + +An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/environments/custom/roles/scs-ceph-keys/defaults/main.yml b/environments/custom/roles/scs-ceph-keys/defaults/main.yml new file mode 100644 index 00000000..3c5f178b --- /dev/null +++ b/environments/custom/roles/scs-ceph-keys/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for scs-ceph-keys diff --git a/environments/custom/roles/scs-ceph-keys/handlers/main.yml b/environments/custom/roles/scs-ceph-keys/handlers/main.yml new file mode 100644 index 00000000..dffaa49e --- /dev/null +++ b/environments/custom/roles/scs-ceph-keys/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for scs-ceph-keys diff --git a/environments/custom/roles/scs-ceph-keys/library/create_ceph_key_file.py b/environments/custom/roles/scs-ceph-keys/library/create_ceph_key_file.py new file mode 100644 index 00000000..7467ec52 --- /dev/null +++ b/environments/custom/roles/scs-ceph-keys/library/create_ceph_key_file.py @@ -0,0 +1,74 @@ +#!/usr/bin/python + +from ansible.module_utils.basic import AnsibleModule +import os +import yaml +import glob + +BASE_PATH="/opt/configuration" +def gather_keys() -> list[dict[str,str]]: + try: + os.chdir(BASE_PATH) + except Exception as e: + print(f"Error: {e}") + exit(1) + + found_keys: dict[str,str] = {} + for file_path in sorted(glob.iglob('**/ceph.*.keyring', recursive=True)): + with open(file_path, 'r') as f_in: + found_keys[file_path] = f_in.read() + return [ { "path": x, "content" : y } for x,y in sorted(found_keys.items()) ] + + +def run_module(): + module_args = dict( + target=dict(type='str', required=True), + state=dict(type='str', required=False, default='present', choices=['present', 'absent']) + ) + + result = dict( + changed=False, + original_message='', + message='' + ) + + module = AnsibleModule( + argument_spec=module_args, + supports_check_mode=True + ) + + target = module.params['target'] + state = module.params['state'] + + if state == 'present': + content = yaml.dump({ "collected_ceph_keys": gather_keys() }) + if not os.path.exists(target) or open(target).read() != content: + result['changed'] = True + if not module.check_mode: + previous_umask = os.umask(0o077) + with open(target, 'w') as f: + f.write(content) + os.umask(previous_umask) + result['message'] = f"File {target} created with content." + else: + result['message'] = f"File {target} already exists with the same content." + elif state == 'absent': + if os.path.exists(target): + result['changed'] = True + if not module.check_mode: + os.remove(target) + result['message'] = f"File {target} removed." + else: + result['message'] = f"File {target} does not exist." + + if module.check_mode: + module.exit_json(**result) + + module.exit_json(**result) + +def main(): + run_module() + +if __name__ == '__main__': + main() + diff --git a/environments/custom/roles/scs-ceph-keys/meta/main.yml b/environments/custom/roles/scs-ceph-keys/meta/main.yml new file mode 100644 index 00000000..c572acc9 --- /dev/null +++ b/environments/custom/roles/scs-ceph-keys/meta/main.yml @@ -0,0 +1,52 @@ +galaxy_info: + author: your name + description: your role description + company: your company (optional) + + # If the issue tracker for your role is not on github, uncomment the + # next line and provide a value + # issue_tracker_url: http://example.com/issue/tracker + + # Choose a valid license ID from https://spdx.org - some suggested licenses: + # - BSD-3-Clause (default) + # - MIT + # - GPL-2.0-or-later + # - GPL-3.0-only + # - Apache-2.0 + # - CC-BY-4.0 + license: license (GPL-2.0-or-later, MIT, etc) + + min_ansible_version: 2.1 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + # + # Provide a list of supported platforms, and for each platform a list of versions. + # If you don't wish to enumerate all versions for a particular platform, use 'all'. + # To view available platforms and versions (or releases), visit: + # https://galaxy.ansible.com/api/v1/platforms/ + # + # platforms: + # - name: Fedora + # versions: + # - all + # - 25 + # - name: SomePlatform + # versions: + # - all + # - 1.0 + # - 7 + # - 99.99 + + galaxy_tags: [] + # List tags for your role here, one per line. A tag is a keyword that describes + # and categorizes the role. Users find roles by searching for tags. Be sure to + # remove the '[]' above, if you add tags to this list. + # + # NOTE: A tag is limited to a single word comprised of alphanumeric characters. + # Maximum 20 tags per role. + +dependencies: [] + # List your role dependencies here, one per line. Be sure to remove the '[]' above, + # if you add dependencies to this list. diff --git a/environments/custom/roles/scs-ceph-keys/tasks/main.yml b/environments/custom/roles/scs-ceph-keys/tasks/main.yml new file mode 100644 index 00000000..7a162235 --- /dev/null +++ b/environments/custom/roles/scs-ceph-keys/tasks/main.yml @@ -0,0 +1,41 @@ +--- +# tasks file for scs-ceph-keys +- name: Create a file using the create_ceph_key_file - /tmp/secrets-ceph.yml + create_ceph_key_file: + target: "/tmp/secrets-ceph.yml" + state: "present" + tags: + - create_secret +- name: Fetch file + fetch: + src: /tmp/secrets-ceph.yml + dest: /tmp/secrets-ceph.yml + flat: yes + tags: + - create_secret +- name: Encrypt the file + local_action: + module: command + args: + cmd: "ansible-vault encrypt /tmp/secrets-ceph.yml --output /tmp/secrets-ceph.yml.vaulted --vault-password-file /opt/configuration/secrets/vaultpass" + creates: "/tmp/secrets-ceph.yml.vaulted" + tags: + - create_secret +- name: Copy file + copy: + src: "/tmp/secrets-ceph.yml.vaulted" + dest: "/opt/configuration/environments/secrets-ceph.yml" + mode: 0600 + decrypt: false + tags: + - create_secret + +- name: Write content to files + ansible.builtin.copy: + content: "{{ item.content }}" + dest: "/opt/configuration/{{ item.path }}.new" + mode: '0600' + loop: "{{ collected_ceph_keys }}" + tags: + - create_files + diff --git a/environments/custom/roles/scs-ceph-keys/tests/inventory b/environments/custom/roles/scs-ceph-keys/tests/inventory new file mode 100644 index 00000000..878877b0 --- /dev/null +++ b/environments/custom/roles/scs-ceph-keys/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/environments/custom/roles/scs-ceph-keys/tests/test.yml b/environments/custom/roles/scs-ceph-keys/tests/test.yml new file mode 100644 index 00000000..11461f98 --- /dev/null +++ b/environments/custom/roles/scs-ceph-keys/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - scs-ceph-keys diff --git a/environments/custom/roles/scs-ceph-keys/vars/main.yml b/environments/custom/roles/scs-ceph-keys/vars/main.yml new file mode 100644 index 00000000..f33c8063 --- /dev/null +++ b/environments/custom/roles/scs-ceph-keys/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for scs-ceph-keys diff --git a/environments/custom/roles/scs-dnscrypt/README.md b/environments/custom/roles/scs-dnscrypt/README.md new file mode 100644 index 00000000..e69de29b diff --git a/environments/custom/roles/scs-dnscrypt/README.rst b/environments/custom/roles/scs-dnscrypt/README.rst new file mode 100644 index 00000000..36528d5c --- /dev/null +++ b/environments/custom/roles/scs-dnscrypt/README.rst @@ -0,0 +1,78 @@ +This ansible role installs squid proxy. +Allow other services to access only allowed addresses. + +**Role Variables** + +.. zuul:rolevar:: operator_user + :default: dragon + +The user which will own the configuration directory and handles with Docker. + +.. zuul:rolevar:: operator_group + :default: operator_user + +Group from the user which will own the configuration directory and handles with Docker. + +.. zuul:rolevar:: docker_network_mtu + :default: 1500 + +Because of Docker don't check the default MTU from the system it is nessecary +to set the MTU for Docker. + +.. zuul:rolevar:: docker_registry_squid + :default: index.docker.io + +Path to the registry that stores the Docker container images for Squid. + +.. zuul:rolevar:: squid_configuration_directory + :default: /opt/squid/configuration + +In this directory the configuration files will be stored. + +.. zuul:rolevar:: squid_docker_compose_directory + :default: /opt/squid + +Path to the directory where the docker-compose-files from Squid will be stored. + +.. zuul:rolevar:: squid_host + :default: 127.0.0.1 + +The host where Squid will be reachable. + +.. zuul:rolevar:: squid_port + :default: 3128 + +Port which Squid will be used for connections from outside. + +.. zuul:rolevar:: squid_tag + :default: 5.7-23.04_beta + +Version from Squid in form of a tag which should be used. + +.. zuul:rolevar:: squid_image + :default: {{ docker_registry_squid }}/ubuntu/squid:{{ squid_tag }} + +The container image to use. + +.. zuul:rolevar:: squid_container_name + :default: squid + +Name of the container in which Squid will run. + +.. zuul:rolevar:: squid_network + :default: 172.31.101.144/28 + +The subnet for Squid in the docker-compose file. + +.. zuul:rolevar:: squid_service_name + :default: docker-compose@squid + +Name from the Squid service to deal with it. + + +**Urls for the services** + +The following Variables define the urls to the webservices that OSISM provides: + +.. zuul:rolevar:: homer_url_ara + :default: http://{{ ara_server_host | default(ansible_default_ipv4.address) }}:{{ ara_server_port | default(8120) }} diff --git a/environments/custom/roles/scs-dnscrypt/defaults/main.yml b/environments/custom/roles/scs-dnscrypt/defaults/main.yml new file mode 100644 index 00000000..ac015a82 --- /dev/null +++ b/environments/custom/roles/scs-dnscrypt/defaults/main.yml @@ -0,0 +1,31 @@ +--- +########################## +# operator + +operator_user: "dragon" +operator_group: "dragon" + +########################## +# docker + +docker_network_mtu: 1500 + +docker_registry_dnscrypt: index.docker.io + +########################## +# dnscrypt + +dnscrypt_configuration_directory: /opt/dnscrypt/configuration +dnscrypt_log_directory: /var/log/dnscrypt +dnscrypt_docker_compose_directory: /opt/dnscrypt + +dnscrypt_network: 172.31.105.144/28 +dnscrypt_service_name: "docker-compose@dnscrypt" + +dnscrypt_host: 0.0.0.0 + +dnscrypt_tag: latest +dnscrypt_image: "{{ docker_registry_dnscrypt }}/zydou/dnscrypt:{{ dnscrypt_tag }}" +dnscrypt_container_name: dnscrypt + +dnscrypt_cloaks: [] diff --git a/environments/custom/roles/scs-dnscrypt/handlers/main.yml b/environments/custom/roles/scs-dnscrypt/handlers/main.yml new file mode 100644 index 00000000..a0469f60 --- /dev/null +++ b/environments/custom/roles/scs-dnscrypt/handlers/main.yml @@ -0,0 +1,7 @@ +--- +# handlers file for dnscrypt +- name: Restart dnscrypt service + become: true + ansible.builtin.service: + name: "{{ dnscrypt_service_name }}" + state: restarted diff --git a/environments/custom/roles/scs-dnscrypt/meta/main.yml b/environments/custom/roles/scs-dnscrypt/meta/main.yml new file mode 100644 index 00000000..37be3aed --- /dev/null +++ b/environments/custom/roles/scs-dnscrypt/meta/main.yml @@ -0,0 +1,22 @@ +--- +galaxy_info: + author: Marc schoechlin + description: Role for DNSCrypt + company: OSBA e.V. + license: Apache License 2.0 + min_ansible_version: 2.16.0 + platforms: + - name: Ubuntu + versions: + - jammy + - noble + - name: Debian + versions: + - bookworm + - name: EL + versions: + - "9" + galaxy_tags: + - osism + - system +dependencies: [] diff --git a/environments/custom/roles/scs-dnscrypt/tasks/main.yml b/environments/custom/roles/scs-dnscrypt/tasks/main.yml new file mode 100644 index 00000000..eaace113 --- /dev/null +++ b/environments/custom/roles/scs-dnscrypt/tasks/main.yml @@ -0,0 +1,43 @@ +--- +# tasks file for dnscrypt + +- name: Create required directories + become: true + ansible.builtin.file: + path: "{{ item }}" + state: directory + owner: "{{ operator_user }}" + group: "{{ operator_group }}" + mode: 0775 + loop: + - "{{ dnscrypt_configuration_directory }}" + - "{{ dnscrypt_log_directory }}" + - "{{ dnscrypt_docker_compose_directory }}" + +- name: Copy dnscrypt configuration files + ansible.builtin.template: + src: "{{ item }}.j2" + dest: "{{ dnscrypt_configuration_directory }}/{{ item }}" + mode: 0644 + owner: "{{ operator_user }}" + group: "{{ operator_group }}" + loop: + - dnscrypt-proxy.toml + - cloaking-rules.txt + notify: Restart dnscrypt service + +- name: Copy docker-compose.yml file + ansible.builtin.template: + src: docker-compose.yml.j2 + dest: "{{ dnscrypt_docker_compose_directory }}/docker-compose.yml" + owner: "{{ operator_user }}" + group: "{{ operator_group }}" + mode: 0640 + notify: Restart dnscrypt service + +- name: Manage dnscrypt service + become: true + ansible.builtin.service: + name: "{{ dnscrypt_service_name }}" + state: started + enabled: true diff --git a/environments/custom/roles/scs-dnscrypt/templates/cloaking-rules.txt.j2 b/environments/custom/roles/scs-dnscrypt/templates/cloaking-rules.txt.j2 new file mode 100644 index 00000000..98046232 --- /dev/null +++ b/environments/custom/roles/scs-dnscrypt/templates/cloaking-rules.txt.j2 @@ -0,0 +1,3 @@ +{% for item in dnscrypt_cloaks %} +{{ item }} +{% endfor %} diff --git a/environments/custom/roles/scs-dnscrypt/templates/dnscrypt-proxy.toml.j2 b/environments/custom/roles/scs-dnscrypt/templates/dnscrypt-proxy.toml.j2 new file mode 100644 index 00000000..1d0fbaa1 --- /dev/null +++ b/environments/custom/roles/scs-dnscrypt/templates/dnscrypt-proxy.toml.j2 @@ -0,0 +1,895 @@ + +############################################## +# # +# dnscrypt-proxy configuration # +# # +############################################## + +## This is an example configuration file. +## You should adjust it to your needs, and save it as "dnscrypt-proxy.toml" +## +## Online documentation is available here: https://dnscrypt.info/doc + + + +################################## +# Global settings # +################################## + +## List of servers to use +## +## Servers from the "public-resolvers" source (see down below) can +## be viewed here: https://dnscrypt.info/public-servers +## +## The proxy will automatically pick working servers from this list. +## Note that the require_* filters do NOT apply when using this setting. +## +## By default, this list is empty and all registered servers matching the +## require_* filters will be used instead. +## +## Remove the leading # first to enable this; lines starting with # are ignored. + +server_names = ['scaleway-fr', 'google', 'yandex', 'cloudflare'] + + +## List of local addresses and ports to listen to. Can be IPv4 and/or IPv6. +## Example with both IPv4 and IPv6: +## listen_addresses = ['127.0.0.1:53', '[::1]:53'] +## +## To listen to all IPv4 addresses, use `listen_addresses = ['0.0.0.0:53']` +## To listen to all IPv4+IPv6 addresses, use `listen_addresses = ['[::]:53']` + +listen_addresses = ['[::]:5353'] + + +## Maximum number of simultaneous client connections to accept + +max_clients = 250 + + +## Switch to a different system user after listening sockets have been created. +## Note (1): this feature is currently unsupported on Windows. +## Note (2): this feature is not compatible with systemd socket activation. +## Note (3): when using -pidfile, the PID file directory must be writable by the new user + +# user_name = 'nobody' + + +## Require servers (from remote sources) to satisfy specific properties + +# Use servers reachable over IPv4 +ipv4_servers = true + +# Use servers reachable over IPv6 -- Do not enable if you don't have IPv6 connectivity +ipv6_servers = true + +# Use servers implementing the DNSCrypt protocol +dnscrypt_servers = true + +# Use servers implementing the DNS-over-HTTPS protocol +doh_servers = true + +# Use servers implementing the Oblivious DoH protocol +odoh_servers = false + + +## Require servers defined by remote sources to satisfy specific properties + +# Server must support DNS security extensions (DNSSEC) +require_dnssec = false + +# Server must not log user queries (declarative) +require_nolog = true + +# Server must not enforce its own blocklist (for parental control, ads blocking...) +require_nofilter = true + +# Server names to avoid even if they match all criteria +disabled_server_names = [] + + +## Always use TCP to connect to upstream servers. +## This can be useful if you need to route everything through Tor. +## Otherwise, leave this to `false`, as it doesn't improve security +## (dnscrypt-proxy will always encrypt everything even using UDP), and can +## only increase latency. + +force_tcp = false + + +## Enable *experimental* support for HTTP/3 (DoH3, HTTP over QUIC) +## Note that, like DNSCrypt but unlike other HTTP versions, this uses +## UDP and (usually) port 443 instead of TCP. + +http3 = false + + +## SOCKS proxy +## Uncomment the following line to route all TCP connections to a local Tor node +## Tor doesn't support UDP, so set `force_tcp` to `true` as well. + +# proxy = 'socks5://127.0.0.1:9050' + + +## HTTP/HTTPS proxy +## Only for DoH servers + +# http_proxy = 'http://127.0.0.1:8888' + + +## How long a DNS query will wait for a response, in milliseconds. +## If you have a network with *a lot* of latency, you may need to +## increase this. Startup may be slower if you do so. +## Don't increase it too much. 10000 is the highest reasonable value. + +timeout = 5000 + + +## Keepalive for HTTP (HTTPS, HTTP/2, HTTP/3) queries, in seconds + +keepalive = 30 + + +## Add EDNS-client-subnet information to outgoing queries +## +## Multiple networks can be listed; they will be randomly chosen. +## These networks don't have to match your actual networks. + +# edns_client_subnet = ['0.0.0.0/0', '2001:db8::/32'] + + +## Response for blocked queries. Options are `refused`, `hinfo` (default) or +## an IP response. To give an IP response, use the format `a:,aaaa:`. +## Using the `hinfo` option means that some responses will be lies. +## Unfortunately, the `hinfo` option appears to be required for Android 8+ + +# blocked_query_response = 'refused' + + +## Load-balancing strategy: 'p2' (default), 'ph', 'p', 'first' or 'random' +## Randomly choose 1 of the fastest 2, half, n, 1 or all live servers by latency. +## The response quality still depends on the server itself. + +# lb_strategy = 'p2' + +## Set to `true` to constantly try to estimate the latency of all the resolvers +## and adjust the load-balancing parameters accordingly, or to `false` to disable. +## Default is `true` that makes 'p2' `lb_strategy` work well. + +# lb_estimator = true + + +## Log level (0-6, default: 2 - 0 is very verbose, 6 only contains fatal errors) + +# log_level = 2 + + +## Log file for the application, as an alternative to sending logs to +## the standard system logging service (syslog/Windows event log). +## +## This file is different from other log files, and will not be +## automatically rotated by the application. + +#log_file = '/var/log/dnscrypt-proxy/dnscrypt-proxy.log' +log_file = '/tmp/dnscrypt-proxy.log' + + +## When using a log file, only keep logs from the most recent launch. + +# log_file_latest = true + + +## Use the system logger (syslog on Unix, Event Log on Windows) + +use_syslog = false + + +## Delay, in minutes, after which certificates are reloaded + +cert_refresh_delay = 240 + + +## Initially don't check DNSCrypt server certificates for expiration, and +## only start checking them after a first successful connection to a resolver. +## This can be useful on routers with no battery-backed clock. + +# cert_ignore_timestamp = false + + +## DNSCrypt: Create a new, unique key for every single DNS query +## This may improve privacy but can also have a significant impact on CPU usage +## Only enable if you don't have a lot of network load + +# dnscrypt_ephemeral_keys = false + + +## DoH: Disable TLS session tickets - increases privacy but also latency + +# tls_disable_session_tickets = false + + +## DoH: Use TLS 1.2 and specific cipher suite instead of the server preference +## 49199 = TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 +## 49195 = TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 +## 52392 = TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 +## 52393 = TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 +## +## On non-Intel CPUs such as MIPS routers and ARM systems (Android, Raspberry Pi...), +## the following suite improves performance. +## This may also help on Intel CPUs running 32-bit operating systems. +## +## Keep tls_cipher_suite empty if you have issues fetching sources or +## connecting to some DoH servers. + +# tls_cipher_suite = [52392, 49199] + + +## Log TLS key material to a file, for debugging purposes only. +## This file will contain the TLS master key, which can be used to decrypt +## all TLS traffic to/from DoH servers. +## Never ever enable except for debugging purposes with a tool such as mitmproxy. + +# tls_key_log_file = '/tmp/keylog.txt' + + +## Bootstrap resolvers +## +## These are normal, non-encrypted DNS resolvers, that will be only used +## for one-shot queries when retrieving the initial resolvers list and if +## the system DNS configuration doesn't work. +## +## No user queries will ever be leaked through these resolvers, and they will +## not be used after IP addresses of DoH resolvers have been found (if you are +## using DoH). +## +## They will never be used if lists have already been cached, and if the stamps +## of the configured servers already include IP addresses (which is the case for +## most of DoH servers, and for all DNSCrypt servers and relays). +## +## They will not be used if the configured system DNS works, or after the +## proxy already has at least one usable secure resolver. +## +## Resolvers supporting DNSSEC are recommended, and, if you are using +## DoH, bootstrap resolvers should ideally be operated by a different entity +## than the DoH servers you will be using, especially if you have IPv6 enabled. +## +## People in China may want to use 114.114.114.114:53 here. +## Other popular options include 8.8.8.8, 9.9.9.9 and 1.1.1.1. +## +## If more than one resolver is specified, they will be tried in sequence. +## +## TL;DR: put valid standard resolver addresses here. Your actual queries will +## not be sent there. If you're using DNSCrypt or Anonymized DNS and your +## lists are up to date, these resolvers will not even be used. + +bootstrap_resolvers = ['9.9.9.11:53', '8.8.8.8:53'] + + +## When internal DNS resolution is required, for example to retrieve +## the resolvers list: +## +## - queries will be sent to dnscrypt-proxy itself, if it is already +## running with active servers (*) +## - or else, queries will be sent to fallback servers +## - finally, if `ignore_system_dns` is `false`, queries will be sent +## to the system DNS +## +## (*) this is incompatible with systemd sockets. +## `listen_addrs` must not be empty. + +ignore_system_dns = true + + +## Maximum time (in seconds) to wait for network connectivity before +## initializing the proxy. +## Useful if the proxy is automatically started at boot, and network +## connectivity is not guaranteed to be immediately available. +## Use 0 to not test for connectivity at all (not recommended), +## and -1 to wait as much as possible. + +netprobe_timeout = 60 + +## Address and port to try initializing a connection to, just to check +## if the network is up. It can be any address and any port, even if +## there is nothing answering these on the other side. Just don't use +## a local address, as the goal is to check for Internet connectivity. +## On Windows, a datagram with a single, nul byte will be sent, only +## when the system starts. +## On other operating systems, the connection will be initialized +## but nothing will be sent at all. + +netprobe_address = '9.9.9.9:53' + + +## Offline mode - Do not use any remote encrypted servers. +## The proxy will remain fully functional to respond to queries that +## plugins can handle directly (forwarding, cloaking, ...) + +# offline_mode = false + + +## Additional data to attach to outgoing queries. +## These strings will be added as TXT records to queries. +## Do not use, except on servers explicitly asking for extra data +## to be present. +## encrypted-dns-server can be configured to use this for access control +## in the [access_control] section + +# query_meta = ['key1:value1', 'key2:value2', 'token:MySecretToken'] + + +## Automatic log files rotation + +# Maximum log files size in MB - Set to 0 for unlimited. +log_files_max_size = 10 + +# How long to keep backup files, in days +log_files_max_age = 7 + +# Maximum log files backups to keep (or 0 to keep all backups) +log_files_max_backups = 1 + + + +######################### +# Filters # +######################### + +## Note: if you are using dnsmasq, disable the `dnssec` option in dnsmasq if you +## configure dnscrypt-proxy to do any kind of filtering (including the filters +## below and blocklists). +## You can still choose resolvers that do DNSSEC validation. + + +## Immediately respond to IPv6-related queries with an empty response +## This makes things faster when there is no IPv6 connectivity, but can +## also cause reliability issues with some stub resolvers. + +block_ipv6 = false + + +## Immediately respond to A and AAAA queries for host names without a domain name +## This also prevents "dotless domain names" from being resolved upstream. + +block_unqualified = true + + +## Immediately respond to queries for local zones instead of leaking them to +## upstream resolvers (always causing errors or timeouts). + +block_undelegated = true + + +## TTL for synthetic responses sent when a request has been blocked (due to +## IPv6 or blocklists). + +reject_ttl = 10 + + + +################################################################################## +# Route queries for specific domains to a dedicated set of servers # +################################################################################## + +## See the `example-forwarding-rules.txt` file for an example + +# forwarding_rules = 'forwarding-rules.txt' + + + +############################### +# Cloaking rules # +############################### + +## Cloaking returns a predefined address for a specific name. +## In addition to acting as a HOSTS file, it can also return the IP address +## of a different name. It will also do CNAME flattening. +## If 'cloak_ptr' is set, then PTR (reverse lookups) are enabled +## for cloaking rules that do not contain wild cards. +## +## See the `example-cloaking-rules.txt` file for an example + +cloaking_rules = 'cloaking-rules.txt' + +## TTL used when serving entries in cloaking-rules.txt + +cloak_ttl = 60 +# cloak_ptr = false + + + +########################### +# DNS cache # +########################### + +## Enable a DNS cache to reduce latency and outgoing traffic + +cache = true + + +## Cache size + +cache_size = 4096 + + +## Minimum TTL for cached entries + +cache_min_ttl = 2400 + + +## Maximum TTL for cached entries + +cache_max_ttl = 86400 + + +## Minimum TTL for negatively cached entries + +cache_neg_min_ttl = 60 + + +## Maximum TTL for negatively cached entries + +cache_neg_max_ttl = 600 + + + +######################################## +# Captive portal handling # +######################################## + +[captive_portals] + +## A file that contains a set of names used by operating systems to +## check for connectivity and captive portals, along with hard-coded +## IP addresses to return. + +# map_file = 'example-captive-portals.txt' + + + +################################## +# Local DoH server # +################################## + +[local_doh] + +## dnscrypt-proxy can act as a local DoH server. By doing so, web browsers +## requiring a direct connection to a DoH server in order to enable some +## features will enable these, without bypassing your DNS proxy. + +## Addresses that the local DoH server should listen to + +# listen_addresses = ['127.0.0.1:3000'] + + +## Path of the DoH URL. This is not a file, but the part after the hostname +## in the URL. By convention, `/dns-query` is frequently chosen. +## For each `listen_address` the complete URL to access the server will be: +## `https://` (ex: `https://127.0.0.1/dns-query`) + +# path = '/dns-query' + + +## Certificate file and key - Note that the certificate has to be trusted. +## Can be generated using the following command: +## openssl req -x509 -nodes -newkey rsa:2048 -days 5000 -sha256 -keyout localhost.pem -out localhost.pem +## See the documentation (wiki) for more information. + +# cert_file = 'localhost.pem' +# cert_key_file = 'localhost.pem' + + + +############################### +# Query logging # +############################### + +## Log client queries to a file + +[query_log] + +## Path to the query log file (absolute, or relative to the same directory as the config file) +## Can be set to /dev/stdout in order to log to the standard output. + +# file = 'query.log' + + +## Query log format (currently supported: tsv and ltsv) + +format = 'tsv' + + +## Do not log these query types, to reduce verbosity. Keep empty to log everything. + +# ignored_qtypes = ['DNSKEY', 'NS'] + + + +############################################ +# Suspicious queries logging # +############################################ + +## Log queries for nonexistent zones +## These queries can reveal the presence of malware, broken/obsolete applications, +## and devices signaling their presence to 3rd parties. + +[nx_log] + +## Path to the query log file (absolute, or relative to the same directory as the config file) + +# file = 'nx.log' + + +## Query log format (currently supported: tsv and ltsv) + +format = 'tsv' + + + +###################################################### +# Pattern-based blocking (blocklists) # +###################################################### + +## Blocklists are made of one pattern per line. Example of valid patterns: +## +## example.com +## =example.com +## *sex* +## ads.* +## ads*.example.* +## ads*.example[0-9]*.com +## +## Example blocklist files can be found at https://download.dnscrypt.info/blocklists/ +## A script to build blocklists from public feeds can be found in the +## `utils/generate-domains-blocklists` directory of the dnscrypt-proxy source code. + +[blocked_names] + +## Path to the file of blocking rules (absolute, or relative to the same directory as the config file) + +# blocked_names_file = 'blocked-names.txt' + + +## Optional path to a file logging blocked queries + +# log_file = 'blocked-names.log' + + +## Optional log format: tsv or ltsv (default: tsv) + +# log_format = 'tsv' + + + +########################################################### +# Pattern-based IP blocking (IP blocklists) # +########################################################### + +## IP blocklists are made of one pattern per line. Example of valid patterns: +## +## 127.* +## fe80:abcd:* +## 192.168.1.4 + +[blocked_ips] + +## Path to the file of blocking rules (absolute, or relative to the same directory as the config file) + +# blocked_ips_file = 'blocked-ips.txt' + + +## Optional path to a file logging blocked queries + +# log_file = 'blocked-ips.log' + + +## Optional log format: tsv or ltsv (default: tsv) + +# log_format = 'tsv' + + + +###################################################### +# Pattern-based allow lists (blocklists bypass) # +###################################################### + +## Allowlists support the same patterns as blocklists +## If a name matches an allowlist entry, the corresponding session +## will bypass names and IP filters. +## +## Time-based rules are also supported to make some websites only accessible at specific times of the day. + +[allowed_names] + +## Path to the file of allow list rules (absolute, or relative to the same directory as the config file) + +# allowed_names_file = 'allowed-names.txt' + + +## Optional path to a file logging allowed queries + +# log_file = 'allowed-names.log' + + +## Optional log format: tsv or ltsv (default: tsv) + +# log_format = 'tsv' + + + +######################################################### +# Pattern-based allowed IPs lists (blocklists bypass) # +######################################################### + +## Allowed IP lists support the same patterns as IP blocklists +## If an IP response matches an allowed entry, the corresponding session +## will bypass IP filters. +## +## Time-based rules are also supported to make some websites only accessible at specific times of the day. + +[allowed_ips] + +## Path to the file of allowed ip rules (absolute, or relative to the same directory as the config file) + +# allowed_ips_file = 'allowed-ips.txt' + + +## Optional path to a file logging allowed queries + +# log_file = 'allowed-ips.log' + +## Optional log format: tsv or ltsv (default: tsv) + +# log_format = 'tsv' + + + +########################################## +# Time access restrictions # +########################################## + +## One or more weekly schedules can be defined here. +## Patterns in the name-based blocked_names file can optionally be followed with @schedule_name +## to apply the pattern 'schedule_name' only when it matches a time range of that schedule. +## +## For example, the following rule in a blocklist file: +## *.youtube.* @time-to-sleep +## would block access to YouTube during the times defined by the 'time-to-sleep' schedule. +## +## {after='21:00', before= '7:00'} matches 0:00-7:00 and 21:00-0:00 +## {after= '9:00', before='18:00'} matches 9:00-18:00 + +[schedules] + + # [schedules.time-to-sleep] + # mon = [{after='21:00', before='7:00'}] + # tue = [{after='21:00', before='7:00'}] + # wed = [{after='21:00', before='7:00'}] + # thu = [{after='21:00', before='7:00'}] + # fri = [{after='23:00', before='7:00'}] + # sat = [{after='23:00', before='7:00'}] + # sun = [{after='21:00', before='7:00'}] + + # [schedules.work] + # mon = [{after='9:00', before='18:00'}] + # tue = [{after='9:00', before='18:00'}] + # wed = [{after='9:00', before='18:00'}] + # thu = [{after='9:00', before='18:00'}] + # fri = [{after='9:00', before='17:00'}] + + + +######################### +# Servers # +######################### + +## Remote lists of available servers +## Multiple sources can be used simultaneously, but every source +## requires a dedicated cache file. +## +## Refer to the documentation for URLs of public sources. +## +## A prefix can be prepended to server names in order to +## avoid collisions if different sources share the same for +## different servers. In that case, names listed in `server_names` +## must include the prefixes. +## +## If the `urls` property is missing, cache files and valid signatures +## must already be present. This doesn't prevent these cache files from +## expiring after `refresh_delay` hours. +## `refreshed_delay` must be in the [24..168] interval. +## The minimum delay of 24 hours (1 day) avoids unnecessary requests to servers. +## The maximum delay of 168 hours (1 week) ensures cache freshness. + +[sources] + + ### An example of a remote source from https://github.com/DNSCrypt/dnscrypt-resolvers + + [sources.public-resolvers] + urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/public-resolvers.md', 'https://download.dnscrypt.info/resolvers-list/v3/public-resolvers.md'] + cache_file = 'public-resolvers.md' + minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3' + refresh_delay = 72 + prefix = '' + + ### Anonymized DNS relays + + [sources.relays] + urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/relays.md', 'https://download.dnscrypt.info/resolvers-list/v3/relays.md'] + cache_file = 'relays.md' + minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3' + refresh_delay = 72 + prefix = '' + + ### ODoH (Oblivious DoH) servers and relays + + # [sources.odoh-servers] + # urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/odoh-servers.md', 'https://download.dnscrypt.info/resolvers-list/v3/odoh-servers.md'] + # cache_file = 'odoh-servers.md' + # minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3' + # refresh_delay = 24 + # prefix = '' + # [sources.odoh-relays] + # urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/odoh-relays.md', 'https://download.dnscrypt.info/resolvers-list/v3/odoh-relays.md'] + # cache_file = 'odoh-relays.md' + # minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3' + # refresh_delay = 24 + # prefix = '' + + ### Quad9 + + # [sources.quad9-resolvers] + # urls = ['https://www.quad9.net/quad9-resolvers.md'] + # minisign_key = 'RWQBphd2+f6eiAqBsvDZEBXBGHQBJfeG6G+wJPPKxCZMoEQYpmoysKUN' + # cache_file = 'quad9-resolvers.md' + # prefix = 'quad9-' + + ### Another example source, with resolvers censoring some websites not appropriate for children + ### This is a subset of the `public-resolvers` list, so enabling both is useless. + + # [sources.parental-control] + # urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/parental-control.md', 'https://download.dnscrypt.info/resolvers-list/v3/parental-control.md'] + # cache_file = 'parental-control.md' + # minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3' + + + +######################################### +# Servers with known bugs # +######################################### + +[broken_implementations] + +## Cisco servers currently cannot handle queries larger than 1472 bytes, and don't +## truncate responses larger than questions as expected by the DNSCrypt protocol. +## This prevents large responses from being received over UDP and over relays. +## +## Older versions of the `dnsdist` server software had a bug with queries larger +## than 1500 bytes. This is fixed since `dnsdist` version 1.5.0, but +## some server may still run an outdated version. +## +## The list below enables workarounds to make non-relayed usage more reliable +## until the servers are fixed. + +fragments_blocked = ['cisco', 'cisco-ipv6', 'cisco-familyshield', 'cisco-familyshield-ipv6', 'cleanbrowsing-adult', 'cleanbrowsing-adult-ipv6', 'cleanbrowsing-family', 'cleanbrowsing-family-ipv6', 'cleanbrowsing-security', 'cleanbrowsing-security-ipv6'] + + + +################################################################# +# Certificate-based client authentication for DoH # +################################################################# + +## Use a X509 certificate to authenticate yourself when connecting to DoH servers. +## This is only useful if you are operating your own, private DoH server(s). +## 'creds' maps servers to certificates, and supports multiple entries. +## If you are not using the standard root CA, an optional "root_ca" +## property set to the path to a root CRT file can be added to a server entry. + +[doh_client_x509_auth] + +# creds = [ +# { server_name='*', client_cert='client.crt', client_key='client.key' } +# ] + + + +################################ +# Anonymized DNS # +################################ + +[anonymized_dns] + +## Routes are indirect ways to reach DNSCrypt servers. +## +## A route maps a server name ("server_name") to one or more relays that will be +## used to connect to that server. +## +## A relay can be specified as a DNS Stamp (either a relay stamp, or a +## DNSCrypt stamp) or a server name. +## +## The following example routes "example-server-1" via `anon-example-1` or `anon-example-2`, +## and "example-server-2" via the relay whose relay DNS stamp is +## "sdns://gRIxMzcuNzQuMjIzLjIzNDo0NDM". +## +## !!! THESE ARE JUST EXAMPLES !!! +## +## Review the list of available relays from the "relays.md" file, and, for each +## server you want to use, define the relays you want connections to go through. +## +## Carefully choose relays and servers so that they are run by different entities. +## +## "server_name" can also be set to "*" to define a default route, for all servers: +## { server_name='*', via=['anon-example-1', 'anon-example-2'] } +## +## If a route is ["*"], the proxy automatically picks a relay on a distinct network. +## { server_name='*', via=['*'] } is also an option, but is likely to be suboptimal. +## +## Manual selection is always recommended over automatic selection, so that you can +## select (relay,server) pairs that work well and fit your own criteria (close by or +## in different countries, operated by different entities, on distinct ISPs...) + +# routes = [ +# { server_name='example-server-1', via=['anon-example-1', 'anon-example-2'] }, +# { server_name='example-server-2', via=['sdns://gRIxMzcuNzQuMjIzLjIzNDo0NDM'] } +# ] + + +## Skip resolvers incompatible with anonymization instead of using them directly + +skip_incompatible = false + + +## If public server certificates for a non-conformant server cannot be +## retrieved via a relay, try getting them directly. Actual queries +## will then always go through relays. + +# direct_cert_fallback = false + + + +############################### +# DNS64 # +############################### + +## DNS64 is a mechanism for synthesizing AAAA records from A records. +## It is used with an IPv6/IPv4 translator to enable client-server +## communication between an IPv6-only client and an IPv4-only server, +## without requiring any changes to either the IPv6 or the IPv4 node, +## for the class of applications that work through NATs. +## +## There are two options to synthesize such records: +## Option 1: Using a set of static IPv6 prefixes; +## Option 2: By discovering the IPv6 prefix from DNS64-enabled resolver. +## +## If both options are configured - only static prefixes are used. +## (Ref. RFC6147, RFC6052, RFC7050) +## +## Do not enable unless you know what DNS64 is and why you need it, or else +## you won't be able to connect to anything at all. + +[dns64] + +## Static prefix(es) as Pref64::/n CIDRs + +# prefix = ['64:ff9b::/96'] + +## DNS64-enabled resolver(s) to discover Pref64::/n CIDRs +## These resolvers are used to query for Well-Known IPv4-only Name (WKN) "ipv4only.arpa." to discover only. +## Set with your ISP's resolvers in case of custom prefixes (other than Well-Known Prefix 64:ff9b::/96). +## IMPORTANT: Default resolvers listed below support Well-Known Prefix 64:ff9b::/96 only. + +# resolver = ['[2606:4700:4700::64]:53', '[2001:4860:4860::64]:53'] + + + +######################################## +# Static entries # +######################################## + +## Optional, local, static list of additional servers +## Mostly useful for testing your own servers. + +[static] + + # [static.myserver] + # stamp = 'sdns://AQcAAAAAAAAAAAAQMi5kbnNjcnlwdC1jZXJ0Lg' diff --git a/environments/custom/roles/scs-dnscrypt/templates/docker-compose.yml.j2 b/environments/custom/roles/scs-dnscrypt/templates/docker-compose.yml.j2 new file mode 100644 index 00000000..ac030f47 --- /dev/null +++ b/environments/custom/roles/scs-dnscrypt/templates/docker-compose.yml.j2 @@ -0,0 +1,23 @@ +--- +services: + dnscrypt: + container_name: "{{ dnscrypt_container_name }}" + restart: unless-stopped + image: "{{ dnscrypt_image }}" + environment: + - TZ=UTC + ports: + - "{{ internal_address }}:53:5353" + - "{{ internal_address }}:53:5353/udp" + volumes: + - "{{ dnscrypt_configuration_directory }}/:/etc/dnscrypt-proxy/:ro" + - "{{ dnscrypt_log_directory }}/:/var/log/dnscrypt-proxy/:rw" +networks: + default: + driver: bridge + driver_opts: + com.docker.network.driver.mtu: {{ docker_network_mtu }} + ipam: + driver: default + config: + - subnet: {{ dnscrypt_network }} diff --git a/environments/custom/roles/scs-landscape-nodes/files/scripts/check_chrony.sh b/environments/custom/roles/scs-landscape-nodes/files/scripts/check_chrony.sh new file mode 100755 index 00000000..42de3fe6 --- /dev/null +++ b/environments/custom/roles/scs-landscape-nodes/files/scripts/check_chrony.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +if [ -z "$2" ];then + echo "$0 min_servers diff_in_sec" + exit 1 +fi + +min_servers="${1:-3}" +max_diff="${2:-0.01}" + +result="$(chronyc tracking 2>&1)" +ret="$?" +if [ "$ret" != "0" ];then + echo "ERROR: >>>$result<<<" >&2 + exit 1 +fi + +chronyc -c tracking|awk -F, -v "diff_in_sec=${max_diff}" '{abs_val = ($5 >= 0) ? $5 : -$5; if (abs_val > diff_in_sec){exit 1}else{exit 0}}' +ret="$?" +if [ "$ret" != "0" ];then + echo "ERROR: time diff to high (>$max_diff)" >&2 + chronyc tracking >&2 + exit 2 +fi + +chronyc -c sources|awk -F, -v "min_servers=$min_servers" '$2 ~ /\+|*/ {count=count+1}END{if (count >= min_servers){exit 0}else{exit 1}}' +ret="$?" +if [ "$ret" != "0" ];then + echo "ERROR: not enough active servers (<$min_servers)" >&2 + chronyc sources >&2 + exit 2 +fi + +echo "OK" +exit 1 + diff --git a/environments/custom/roles/scs-landscape-nodes/files/scripts/remove_ceph_vgs.sh b/environments/custom/roles/scs-landscape-nodes/files/scripts/remove_ceph_vgs.sh new file mode 100755 index 00000000..190c0098 --- /dev/null +++ b/environments/custom/roles/scs-landscape-nodes/files/scripts/remove_ceph_vgs.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +for vg in $(vgs | awk '$1 ~ /^ceph-/ {print $1}'); do + echo "** VOLUME GROUP ${vg}" + echo + echo "Deactivate all logical volumes in the volume group ${vg}" + + lvchange -an ${vg} + if [ "$?" != "0" ];then + echo "NOT SUCCESFUL" + exit 1 + fi + + echo "Remove all logical volumes in the volume group ${vg}" + for lv in $(lvs --noheadings -o lv_name ${vg}); do + echo " -> Remove volume ${vg}/${lv}" + lvremove -f ${vg}/${lv} + done + + echo "Remove the volume group ${vg}" + vgremove -f ${vg} +done + diff --git a/environments/custom/roles/scs-landscape-nodes/tasks/main.yml b/environments/custom/roles/scs-landscape-nodes/tasks/main.yml index be0f6fbc..b72ebac4 100644 --- a/environments/custom/roles/scs-landscape-nodes/tasks/main.yml +++ b/environments/custom/roles/scs-landscape-nodes/tasks/main.yml @@ -3,4 +3,5 @@ loop: - vim.yml - packages.yml + - scripts.yml diff --git a/environments/custom/roles/scs-landscape-nodes/tasks/scripts.yml b/environments/custom/roles/scs-landscape-nodes/tasks/scripts.yml new file mode 100644 index 00000000..82064c61 --- /dev/null +++ b/environments/custom/roles/scs-landscape-nodes/tasks/scripts.yml @@ -0,0 +1,30 @@ +- name: Create ceph wrapper + when: "'ceph-control' in group_names" + tags: scripts + copy: + dest: /usr/local/bin/ceph + mode: 0755 + owner: root + group: users + content: | + #!/bin/bash + + CONTAINER_ID=$(docker ps --filter "name=ceph-mon-" --format \{\{.ID\}\} | head -n 1) + + if [ -z "$CONTAINER_ID" ]; then + echo "No container found with a name starting with 'ceph-mon-'." + exit 1 + fi + + docker exec -it "$CONTAINER_ID" /usr/bin/ceph --cluster ceph $@ + +- name: Synchronize all scs helper scripts + become: false + tags: scripts + synchronize: + src: "{{ role_path }}/files/scripts/" + dest: /home/dragon/scripts + owner: false + delete: true + dirs: true + diff --git a/environments/custom/roles/scs-mgr-dhcpd/README.md b/environments/custom/roles/scs-mgr-dhcpd/README.md new file mode 100644 index 00000000..e69de29b diff --git a/environments/custom/roles/scs-mgr-dhcpd/README.rst b/environments/custom/roles/scs-mgr-dhcpd/README.rst new file mode 100644 index 00000000..15f1d0bf --- /dev/null +++ b/environments/custom/roles/scs-mgr-dhcpd/README.rst @@ -0,0 +1,8 @@ +This ansible role install tinyproy + +**Role Variables** + +.. zuul:rolevar:: tinyproxy_package_name + :default: "tinyproxy" + +Package name for installing tinyproy diff --git a/environments/custom/roles/scs-mgr-dhcpd/defaults/main.yml b/environments/custom/roles/scs-mgr-dhcpd/defaults/main.yml new file mode 100644 index 00000000..8a8c5876 --- /dev/null +++ b/environments/custom/roles/scs-mgr-dhcpd/defaults/main.yml @@ -0,0 +1,21 @@ +--- +########################## +# isc-dhcp-server + +isc_dhcp_server_package_name: "isc-dhcp-server" +isc_dhcp_server_service_name: "isc-dhcp-server" + +isc_dhcp_server_subnet_definition: [] +isc_dhcp_mgmt_static_nodes_group: "dhcp-static-nodes" + +#isc_dhcp_server_subnet_definition: +# - description: "Managment Network" +# config: | +# subnet 10.10.23.0 netmask 255.255.255.0 { +# range 10.10.23.2040 10.10.23.250; +# option routers 10.10.23.1; +# option broadcast-address 10.10.23.255; +# option domain-name-servers 8.8.8.8; +# option ntp-servers 10.10.23.10; +# } +# diff --git a/environments/custom/roles/scs-mgr-dhcpd/handlers/main.yml b/environments/custom/roles/scs-mgr-dhcpd/handlers/main.yml new file mode 100644 index 00000000..83e83915 --- /dev/null +++ b/environments/custom/roles/scs-mgr-dhcpd/handlers/main.yml @@ -0,0 +1,7 @@ +--- +# handlers file for isc-dhcp-server +- name: Restart isc-dhcp-server service + become: true + ansible.builtin.service: + name: "{{ isc_dhcp_server_service_name }}" + state: restarted diff --git a/environments/custom/roles/scs-mgr-dhcpd/meta/main.yml b/environments/custom/roles/scs-mgr-dhcpd/meta/main.yml new file mode 100644 index 00000000..1e737d52 --- /dev/null +++ b/environments/custom/roles/scs-mgr-dhcpd/meta/main.yml @@ -0,0 +1,22 @@ +--- +galaxy_info: + author: Marc Schoechlin + description: Role osism.services.isc-dhcp-server + company: SBA e.V. + license: Apache License 2.0 + min_ansible_version: 2.16.0 + platforms: + - name: Ubuntu + versions: + - jammy + - noble + - name: Debian + versions: + - bookworm + - name: EL + versions: + - "9" + galaxy_tags: + - osism + - system +dependencies: [] diff --git a/environments/custom/roles/scs-mgr-dhcpd/tasks/install-Debian-family.yml b/environments/custom/roles/scs-mgr-dhcpd/tasks/install-Debian-family.yml new file mode 100644 index 00000000..72a25ad5 --- /dev/null +++ b/environments/custom/roles/scs-mgr-dhcpd/tasks/install-Debian-family.yml @@ -0,0 +1,8 @@ +--- +- name: Install isc-dhcp-server package + become: true + ansible.builtin.apt: + name: "{{ isc_dhcp_server_package_name }}" + state: present + lock_timeout: "{{ apt_lock_timeout | default(300) }}" + diff --git a/environments/custom/roles/scs-mgr-dhcpd/tasks/install-RedHat-family.yml b/environments/custom/roles/scs-mgr-dhcpd/tasks/install-RedHat-family.yml new file mode 100644 index 00000000..c3798369 --- /dev/null +++ b/environments/custom/roles/scs-mgr-dhcpd/tasks/install-RedHat-family.yml @@ -0,0 +1,8 @@ +--- +- name: Install isc-dhcp-server package + become: true + ansible.builtin.dnf: + name: "{{ isc_dhcp_server_package_name }}" + state: present + lock_timeout: "{{ lock_timeout | default(300) }}" + diff --git a/environments/custom/roles/scs-mgr-dhcpd/tasks/main.yml b/environments/custom/roles/scs-mgr-dhcpd/tasks/main.yml new file mode 100644 index 00000000..0b14980d --- /dev/null +++ b/environments/custom/roles/scs-mgr-dhcpd/tasks/main.yml @@ -0,0 +1,41 @@ +--- +- name: Include distribution specific install tasks + ansible.builtin.include_tasks: "install-{{ ansible_os_family }}-family.yml" + +- name: Manage isc-dhcp-server service + become: true + ansible.builtin.service: + name: isc-dhcp-server + state: started + enabled: true + +- name: Copy isc-dhcp-server base config file + become: true + ansible.builtin.template: + src: "dhcpd.conf.j2" + dest: "/etc/dhcp/dhcpd.conf" + owner: "root" + group: "root" + mode: 0644 + notify: Restart isc-dhcp-server service + +- name: Copy isc-dhcp-server defaults file + become: true + ansible.builtin.template: + src: "defaults.isc-dhcp-server.j2" + dest: "/etc/default/isc-dhcp-server" + owner: "root" + group: "root" + mode: 0644 + notify: Restart isc-dhcp-server service + +- name: "Copy isc-dhcp-server static definitions for group '{{ isc_dhcp_mgmt_static_nodes_group }}'" + become: true + ansible.builtin.template: + src: dhcpd_static.conf.j2 + dest: "/etc/dhcp/dhcpd_static.conf" + owner: "root" + group: "root" + mode: 0644 + notify: Restart isc-dhcp-server service + diff --git a/environments/custom/roles/scs-mgr-dhcpd/templates/defaults.isc-dhcp-server.j2 b/environments/custom/roles/scs-mgr-dhcpd/templates/defaults.isc-dhcp-server.j2 new file mode 100644 index 00000000..91cf265f --- /dev/null +++ b/environments/custom/roles/scs-mgr-dhcpd/templates/defaults.isc-dhcp-server.j2 @@ -0,0 +1,17 @@ +# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf). +#DHCPDv4_CONF=/etc/dhcp/dhcpd.conf +#DHCPDv6_CONF=/etc/dhcp/dhcpd6.conf + +# Path to dhcpd's PID file (default: /var/run/dhcpd.pid). +#DHCPDv4_PID=/var/run/dhcpd.pid +#DHCPDv6_PID=/var/run/dhcpd6.pid + +# Additional options to start dhcpd with. +# Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead +#OPTIONS="" + +# On what interfaces should the DHCP server (dhcpd) serve DHCP requests? +# Separate multiple interfaces with spaces, e.g. "eth0 eth1". +INTERFACESv4="{{ mgmt_interface }}" +INTERFACESv6="" + diff --git a/environments/custom/roles/scs-mgr-dhcpd/templates/dhcpd.conf.j2 b/environments/custom/roles/scs-mgr-dhcpd/templates/dhcpd.conf.j2 new file mode 100644 index 00000000..c689819f --- /dev/null +++ b/environments/custom/roles/scs-mgr-dhcpd/templates/dhcpd.conf.j2 @@ -0,0 +1,25 @@ +# dhcpd.conf +# +# Attention: If /etc/ltsp/dhcpd.conf exists, that will be used as +# configuration file instead of this file. +# + +default-lease-time 600; +max-lease-time 7200; + +ddns-update-style none; + +# If this DHCP server is the official DHCP server for the local +# network, the authoritative directive should be uncommented. +authoritative; + +# Use this to send dhcp log messages to a different log file (you also +# have to hack syslog.conf to complete the redirection). +#log-facility local7; +{% for item in isc_dhcp_server_subnet_definition %} +######################################################## +# {{ item.description }} +{{ item.config }} +{% endfor %} + +include "/etc/dhcp/dhcpd_static.conf"; diff --git a/environments/custom/roles/scs-mgr-dhcpd/templates/dhcpd_static.conf.j2 b/environments/custom/roles/scs-mgr-dhcpd/templates/dhcpd_static.conf.j2 new file mode 100644 index 00000000..b4f17e29 --- /dev/null +++ b/environments/custom/roles/scs-mgr-dhcpd/templates/dhcpd_static.conf.j2 @@ -0,0 +1,12 @@ +{% for item in groups[isc_dhcp_mgmt_static_nodes_group] | sort %} +# Host: {{ item }} +{% if hostvars[item]['mgmt_address'] is defined and hostvars[item]['mgmt_mac'] is defined %} +host {{ item }} { + hardware ethernet {{ hostvars[item]['mgmt_mac'] }}; + server-name "{{ item }}.{{ management_domain }}"; + option host-name "{{ item }}"; + fixed-address {{ hostvars[item]['mgmt_address'] }}; +} +{% endif %} +{% endfor %} + diff --git a/environments/custom/roles/scs-mgr-samba/templates/smb.conf.j2 b/environments/custom/roles/scs-mgr-samba/templates/smb.conf.j2 index 3b5346b9..f01dac33 100644 --- a/environments/custom/roles/scs-mgr-samba/templates/smb.conf.j2 +++ b/environments/custom/roles/scs-mgr-samba/templates/smb.conf.j2 @@ -1,6 +1,6 @@ [global] - interfaces = eth0 + interfaces = {{ internal_interface }} ntlm auth = yes server min protocol = NT1 # server max protocol = NT1 diff --git a/environments/custom/roles/scs-mgr-tinyproxy/tasks/main.yml b/environments/custom/roles/scs-mgr-tinyproxy/tasks/main.yml index 230a54b2..897029cc 100644 --- a/environments/custom/roles/scs-mgr-tinyproxy/tasks/main.yml +++ b/environments/custom/roles/scs-mgr-tinyproxy/tasks/main.yml @@ -9,6 +9,14 @@ state: started enabled: true +- name: Update permissions of logdir + file: + path: /var/log/tinyproxy/ + state: directory + mode: '0755' + owner: 'tinyproxy' + group: 'tinyproxy' + - name: Copy tinyproxy base config file ansible.builtin.template: src: tinyproxy.conf.j2 diff --git a/environments/custom/roles/scs-mgr-tinyproxy/templates/tinyproxy.conf.j2 b/environments/custom/roles/scs-mgr-tinyproxy/templates/tinyproxy.conf.j2 index d6bef78d..6d456bd1 100644 --- a/environments/custom/roles/scs-mgr-tinyproxy/templates/tinyproxy.conf.j2 +++ b/environments/custom/roles/scs-mgr-tinyproxy/templates/tinyproxy.conf.j2 @@ -120,7 +120,7 @@ LogFile "/var/log/tinyproxy/tinyproxy.log" # LogLevel was set to Warning, then all log messages from Warning to # Critical would be output, but Notice and below would be suppressed. # -LogLevel Info +LogLevel Connect # # PidFile: Write the PID of the main tinyproxy thread to this file so it diff --git a/environments/infrastructure/files/ceph/ceph.client.admin.keyring b/environments/infrastructure/files/ceph/ceph.client.admin.keyring index e69de29b..781b44bd 100644 --- a/environments/infrastructure/files/ceph/ceph.client.admin.keyring +++ b/environments/infrastructure/files/ceph/ceph.client.admin.keyring @@ -0,0 +1,13 @@ +$ANSIBLE_VAULT;1.1;AES256 +63633132383934323538306236376436346461376263613533326665393464666636356564353664 +3863353963633231626664653363653961323631343238330a333839306464303530373931323664 +33303834353163346331653761393637393833336334323335653464356364666433623337303061 +3362303966363033660a386532636439633765366463333230366665613932396363366433336663 +37663936343332393239653135306335373361663264333133643763613632613936323036656639 +64626230323036646136633935663233386136376236646232646331306433333530333863353062 +30336139663266616531636232336232646634373765363065616631663331373164326464353836 +38356333333530333963346132626462613438643564343231646163653765383161626338376131 +32373334323237303062333061643363663539633437643862366130343035303239656639353033 +36626663383861313465376561633437333766656431346134623761326638326131623461386364 +36383537353333666363653532396237646665646164393466356636623062333539376239643132 +61363939393966656536 diff --git a/environments/kolla/configuration.yml b/environments/kolla/configuration.yml index 866062b2..aabfacfe 100644 --- a/environments/kolla/configuration.yml +++ b/environments/kolla/configuration.yml @@ -15,8 +15,11 @@ container_no_proxy: "localhost,127.0.0.1" kolla_internal_fqdn: api-int.int1.landscape.sovereignit.de kolla_external_fqdn: api.int1.landscape.sovereignit.de -kolla_internal_vip_address: 192.168.32.9 -kolla_external_vip_address: 192.168.96.9 +kolla_internal_vip_address: 10.10.21.200 +kolla_external_vip_address: 10.10.21.201 + +kolla_enable_tls_external: "no" +kolla_enable_tls_internal: "no" ########################################################## # openstack @@ -61,11 +64,8 @@ ceph_gnocchi_pool_name: "metrics" cinder_backup_driver: "ceph" glance_backend_file: "no" -ceph_nova_user: nova -ceph_nova_keyring: ceph.client.nova.keyring - # NOTE: public_network from environments/ceph/configuration.yml -ceph_public_network: 10.26.0.0/22 +ceph_public_network: 10.10.21.0/22 ########################################################## # keystone @@ -86,3 +86,5 @@ keystone_logout_url: "https://api.testbed.osism.xyz/auth/" ######################################################### # other + +enable_proxysql: no diff --git a/environments/kolla/files/overlays/cinder/cinder-backup/ceph.client.cinder-backup.keyring b/environments/kolla/files/overlays/cinder/cinder-backup/ceph.client.cinder-backup.keyring index e69de29b..f39fd81c 100644 --- a/environments/kolla/files/overlays/cinder/cinder-backup/ceph.client.cinder-backup.keyring +++ b/environments/kolla/files/overlays/cinder/cinder-backup/ceph.client.cinder-backup.keyring @@ -0,0 +1,12 @@ +$ANSIBLE_VAULT;1.1;AES256 +34303637323865623965653863383964383366653436363565346462613133383034366264613463 +6530303863326437663130303433666564306432623330650a366462313562356434366233343537 +37393037613564383734633765353663306334653735393439323538366338643933303634346263 +3634373336366362380a316466323537336465303662333961383263353533306664346536353761 +66343165646634376235623635613634313137343730323338623537363033633031633164656163 +33653734616531333434313263333636623164616161613333353462303930366339356564393138 +61353366333064333634653634336130663235323332383761663966393330346666363137346332 +30363031366664316134663330663730346537303766623064333837636331376538643333623762 +66323534336361323462323138363564653434633962393433656238643837313231663139643030 +37366235316166623865333735356537316265653430623565353534323330636665353136616364 +623965353561326334646433326166646435 diff --git a/environments/kolla/files/overlays/cinder/cinder-backup/ceph.client.cinder.keyring b/environments/kolla/files/overlays/cinder/cinder-backup/ceph.client.cinder.keyring index e69de29b..36e0c083 100644 --- a/environments/kolla/files/overlays/cinder/cinder-backup/ceph.client.cinder.keyring +++ b/environments/kolla/files/overlays/cinder/cinder-backup/ceph.client.cinder.keyring @@ -0,0 +1,14 @@ +$ANSIBLE_VAULT;1.1;AES256 +65333966346664386532363834643032323563393837656133663065333934383434343535636131 +3863343534333235363062313766363739393031656265660a303364343533346536343636313439 +64666265333265623966363835656638323965353763313661303631316539373530366136356339 +3564353164303335300a663239393166393134613938316234646566663834396434346239616533 +31366631326237613733636561346562316431646539336465363336313239323734323863633230 +62613435396236326532613261613061356330313231626435353235613833626239316637363938 +37383063356331333130326632613063666563336536353436356239383030316230306438613830 +36363639636531643933373363336436336339643839396130343063313436353964326132323832 +37613766616563313865396639383862613939333839356532633737343234383634653431326435 +34663030613761363338633939393336326437613138383132323665353131653038626535383232 +30613336623635666436353330626462306637343666373531323832643438323066353939303862 +64653365306537303364313832343461393832633730336635613832396264646638626431303433 +66303035323563376439323966636466303339323836633838393133323366646236 diff --git a/environments/kolla/files/overlays/cinder/cinder-volume/ceph.client.cinder.keyring b/environments/kolla/files/overlays/cinder/cinder-volume/ceph.client.cinder.keyring index e69de29b..3ee5c944 100644 --- a/environments/kolla/files/overlays/cinder/cinder-volume/ceph.client.cinder.keyring +++ b/environments/kolla/files/overlays/cinder/cinder-volume/ceph.client.cinder.keyring @@ -0,0 +1,14 @@ +$ANSIBLE_VAULT;1.1;AES256 +64666638346331333730653333373264366566636535306335613362613763383732326566363533 +3030663333643530643464623565336561616436663864310a323463636437626238633064393935 +66353537653165356432373735616532323265383735616463363031663136636362396433393235 +3136313763323664300a383137343264613039396532383465333734313036303237313766316534 +62336239383362646433666433643132323433353939323230373765396639306561346531323938 +39383266376662366663396432373361643230643131613737386665336537386435633038656430 +30353363633737656233313561386631333462613836633338323330376463353535633935613064 +32363062363338343338636362303436343331613966353730663135373462313766393038353430 +61303335633134643965396561626265363561393439653335393664323933393064626565363832 +31303161373131653135313562303962636161636463333536363936356535636330393534313532 +66303733643336366631316264636661343034636436376139633665323030636364313862393038 +39666332343764633865633562643062353636636432633762643030626431383630333066636564 +63376532383762346433336661646638363161393462666661613431656562376638 diff --git a/environments/kolla/files/overlays/glance/ceph.client.glance.keyring b/environments/kolla/files/overlays/glance/ceph.client.glance.keyring index e69de29b..0dc2172c 100644 --- a/environments/kolla/files/overlays/glance/ceph.client.glance.keyring +++ b/environments/kolla/files/overlays/glance/ceph.client.glance.keyring @@ -0,0 +1,13 @@ +$ANSIBLE_VAULT;1.1;AES256 +34643766303739316232386538643036646538636162666534386466613466306534376635313530 +3363613231323763393864623536353038653664363634340a346432383064663965623466633161 +36353530313063386235646639653535373031313964363031393234653165353765653136353364 +3432383338623362380a363161353835643537656464376665356139353063653965333365366133 +65316165613830343933343638663863623634373739336336653339396565643533613066353165 +64343537626533623864326462633737306335383839303839303032346137373263656437396161 +31643761666630336466623839356266316434366164333039386532313837366231663335623639 +36353431653537353561323830353439326635633538613431623666636137613838303930633233 +35613361366330336439633632663461363031326135393031626333656233393930663333636666 +65363739383562373661366237616165393036373637663662386433343433656436623731303931 +66306331303536343738663264646439336437353435313436363963356339626365356333356638 +62376138313237343031 diff --git a/environments/kolla/files/overlays/gnocchi/ceph.client.gnocchi.keyring b/environments/kolla/files/overlays/gnocchi/ceph.client.gnocchi.keyring index e69de29b..1d4a42da 100644 --- a/environments/kolla/files/overlays/gnocchi/ceph.client.gnocchi.keyring +++ b/environments/kolla/files/overlays/gnocchi/ceph.client.gnocchi.keyring @@ -0,0 +1,12 @@ +$ANSIBLE_VAULT;1.1;AES256 +33336365323433333464616630646164633235366363383232326636396232653663366464343132 +3363643032626136663632303130376462373536353561650a343030656435343963633131303533 +33616132306238353239383133376334613839646639663839336331323935313437616339626639 +3738633236643736370a393632373935343966343237613936626666306366383832373361373638 +63326438393333333135356265626630303361626265376264626663623834376537613364626232 +36633936323636323430363761333533323163393966646330623532393936656666383336333566 +39323664306165616263653162666630613133343263313133633239366637633434303933346561 +35356665636365653536356162303464383530623036613333663061373361393630666564323866 +36396330373261363965353037306566643064323962646337393665303665643236346564376265 +33643533313233373265343666613466633933646432633630343936646531323133663939666164 +396431616263346433653062666462313031 diff --git a/environments/kolla/files/overlays/manila/ceph.client.manila.keyring b/environments/kolla/files/overlays/manila/ceph.client.manila.keyring index e69de29b..108f629d 100644 --- a/environments/kolla/files/overlays/manila/ceph.client.manila.keyring +++ b/environments/kolla/files/overlays/manila/ceph.client.manila.keyring @@ -0,0 +1,13 @@ +$ANSIBLE_VAULT;1.1;AES256 +66633037663631373138393834333663623237666238346439633763333339306532666535343061 +3739303133646339623337653134343730396533656162360a393839393737656165356130666264 +33353536343562343431656236343636386432663438303434666638366234636661313064653937 +3466636332356335660a623562303332333030613561376230323063623039613863626238323066 +64336265363434643131333861393730643234313565646164366136333961666230613864656531 +35376636633165626636376464353164363761326235336539343964313435663432393232353135 +65386531376534326239623737376330393032613934363463326231373762333961633161376162 +65636531363030313633633233363130326338383262613239303337326262363730633166366631 +31376531393839626439633136313861313632373733326432646661323536633063643938393932 +61376333353065636362653331386637373363303163376236306464303063656134386132393634 +37326466653664326430323938373961643666346431623530623632323665643138323730363436 +62666438636137313937 diff --git a/environments/kolla/files/overlays/nova/ceph.client.cinder.keyring b/environments/kolla/files/overlays/nova/ceph.client.cinder.keyring index e69de29b..af8561e0 100644 --- a/environments/kolla/files/overlays/nova/ceph.client.cinder.keyring +++ b/environments/kolla/files/overlays/nova/ceph.client.cinder.keyring @@ -0,0 +1,14 @@ +$ANSIBLE_VAULT;1.1;AES256 +35326435626637316565616439343035616235666338376263653363633664363461623264383961 +3934393039316162663463616535653464613937383564320a306136333332643834663531356666 +39313965366539383362616333633632643961653962626663346533373737303036306231376635 +3830373766633063300a356332626339666361316437383365643938623939376164366362386566 +39633438386530656534366636393963386536323830313833336239613666626161306439613837 +39303834616431653430373762303737623939633531336239656334653339393731356337623832 +38333062633735343537626263333736323132663132356530326437353138386233653233313633 +34636634333861666565326638326337613665316230376537346562626234356461316339623237 +64363535353535623836363731366438626633376364313935303239323836316664303961353638 +39353130353264633334346630393366656133323530343637363830393634333530333166333762 +66373862383964333130663736333163373933393632663934636234343933326262303939393537 +63643630306436363164353937386430383033393830373331366438626332326430343438363339 +61376634386437643262623664323236616134343261346661656230353734313764 diff --git a/environments/kolla/files/overlays/nova/ceph.client.nova.keyring b/environments/kolla/files/overlays/nova/ceph.client.nova.keyring index e69de29b..23c518f3 100644 --- a/environments/kolla/files/overlays/nova/ceph.client.nova.keyring +++ b/environments/kolla/files/overlays/nova/ceph.client.nova.keyring @@ -0,0 +1,15 @@ +$ANSIBLE_VAULT;1.1;AES256 +66666137303162383065323162633461306562343366373261636565313063373533613630653336 +3231396432303262383333313232616234613335363762660a323730306639343231653465373864 +35326134653764333865366666393430643164343239623063623131653538306331626538323134 +6565646661383438630a303666653766383932633361643133623630616133653664646136333236 +38393964326334333161623431383936303439333332633132366464343061643039393832623233 +64643466623061313866323631333330663466343464653566666237646164313736623062613831 +31303862613465353836396333396434346261373132666430373339623162653235663765643966 +66363836383262663966393262636232616465643162613231323634386532343065626331633137 +33386234626630646136333738303961623239616139653638643063613034376261393531633230 +30663663313263336433333966616263393438643235393436306630313230383536643763663837 +39346337396430326262326163393034323535653537313863343935393434353238623163626537 +34393537656635356337623438333861633535356462323164336334613832306166616537373965 +36616531643531373764626239383434346432366463636566616132633464626335346239356338 +3564346538653335636635666238613032326337343536386364 diff --git a/environments/kolla/secrets.yml b/environments/kolla/secrets.yml index 0743208a..c7958985 100644 --- a/environments/kolla/secrets.yml +++ b/environments/kolla/secrets.yml @@ -1,1499 +1,1507 @@ $ANSIBLE_VAULT;1.1;AES256 -65363465366536613563336331396434656664613438356633383564383863663637653731656630 -3366623138616638643030313138626632373636323636330a386231343864353265363435383032 -64393166313862323432613130373464333339653235663635633039303533363334386530303130 -3236663532666336380a303336306637656639343262663038616162333866616338353161396239 -61326130303438613936326533656635343032333037613564396639303932383231623235623532 -63353736376432643330376165666365653363396161616637383366333134616466356661326639 -30323163356539643536313736303139323736326164306661376236316135643032623564373965 -39623431633562396534373965323033633635633832633364643831366430376334613234393735 -37373636643838336465376131386137313437393837626562383966353239633139373663383161 -32663965356236643938616263653061656564646461623564326437613639313036363666393463 -66666532396362643631656138333533336434383438613830613466396461346266636336333938 -61663062336662666130336463343162653531623365336631613739363766323361376265383861 -36363937313534356633646466646133393834393639363939656433303939396563376538633139 -34363637313966346166656235326433353431633335666434363466643261626532633638656333 -34376332346366373538373932383965343531393638343238313132643066663137383139666337 -39366365386463313936643036313034346562623361666565333136633239303134633932643735 -64396161633935353432646232323662303365313430636561306230656464653661343166616439 -36633934306436636136343736346138363433386335376333323034303334653830396661653931 -65616138313930623231636161363862616534366666333137626234306339326535626433643230 -34306135383561353135343731663663356337656661643864353736633336333635666265363964 -62353134333035383432383637643965653036626236613439616366393566303438303165363833 -34306462656163643031663565323465613064326239363439306462643930393130326461353263 -66343761323739303662326666313661646466643933316638633362623662623336653563626530 -36303030373630383237386439333131656163313665393661353465356461373566333137393637 -66643162393664643532633161396438616435303233306538343332663230623433343137613761 -36303534643463366364613263616538666131323164376564633865396362633536316431336135 -36333264653136386634363732383638386635363230353031333537343538313131396263623063 -30333761373635396664613132343762373735316633613263613165633365643235663362643134 -66383861313533326266636462383561613738393830376463306662306462626464356337333839 -38393736373037656461663838303663396561636165373135366438393865643030346466366566 -62333130393065383264306261643830653965363734636565323661343039326432653633633964 -34346534386230356137666436376263323135623936646666333934386534366662396263346231 -62313337383563353865363331313232656262663134616461353561356365653733613131353437 -65313035373133316230343562373530303233663963633762646138623337303163333936316430 -36346631363438363963646236363230616230386165353664623365363862363431353161646238 -63366136393833656163363363326563643931363837626635626232383330613738316435663338 -38306536376232646430646139316265346435313161336165663961326235343831356130313537 -35366266653762633664393238356438623662353430613064316234303732333134356163346130 -63373231633536333439373032646136646430316532626463653830366365616636356538666461 -36343533353363636364316133353335373534386434643465653635356562396366313539363565 -30323365656666343035663939613039323134303832303037663465643430636137633130663666 -38346634616164626366623830373630386166303838326431626439633734623662663035646437 -61636365323666633935326139613533663039306532643134363063643034613633306633316331 -62656434353366643731363665393065313361303562613161373439326365336263306237336463 -37373365646661313765306439363361336333316166623363346463636436343338393965313263 -65653934653062613531306238633932353839663933616434643232616163666232643034363035 -38636338353432646666653232373538613062663834626166386534303531356330356332633161 -33653938353731333666643234373331613531366331343263646330343233373137666461613135 -63396430303731653461653232643637373265653965336665353234306565636533383838656464 -66323266636665363030346261613266323233366533666561356663396263356664393933623938 -37613638313038306437363535343739343134656264613461346433643030393062376663396564 -35393163613135343064626634616465646263613262346631333333333061393837373634366462 -36646366623064646633313831663963323732306337343464373062396333623733323462363937 -32656634623038306237343338353961343839656338663131316363393566333165306565613065 -32643362333934313830616131376433643234643330643761316666386636643465386436323462 -30326337373565343861666339333430313738666131353139636366303862386434646363333730 -35613636353031323861313839353039656230613538353232336330316261393163656261353831 -63353634666264326163336631343838366636303362613962643738666463656439633661363230 -62336338613636343531353831356466626565373563623532663466323937643961303930333639 -34343338376238366266353932386366623231366163363137663666656238376230383661336461 -62353139663930376236616463303934646163303638383137646530623732646462636634653633 -33333434353231306230326634326261333532306136626238356562666161356362323034303030 -33633562336463623132373038306361346330386437613731306336386364373561303061313237 -64393166366265666361613932356337393065643066656361643364656564623437306131336330 -35383536373937383939346639373666353461616136643163623666613935333432616335396532 -39303335373235653165376538643037316363343137653262633837666139383730343236616465 -62313237373537303238326366303232333164353734346466623031333861333038373234626433 -37376430346136333032333066623438356562646533613163613033303439323365333432336633 -64343033613231386630333839306265353164303238356330373834626231336563383038636332 -64613866646366373265373565313532386237333262666538336162353264303934383134343530 -63393566373065313661646139316337636334303934346264326566393965346331666466636139 -64373664353666353763643837376635336439656465343234646666643263333238636437623462 -32383339323265363339653165646332666636323536386563616130346564316537313734626136 -32643864333136393133353731666664373764376666366639623562633261303433633166356261 -38633830623833303639343762366562313135366263643235616232373837616662633630633631 -39386164383266366335313166316566613965663432343638373966383438376235386134386561 -62353663363536303139353133303434303232646137613831356337383664643838333466626638 -37623436653839303432326135306166616131346435613035613730393363356664393464303332 -37663134666264383864346231313463383834613363356365633763313234383661623838366431 -33306536323336306435633563306130646164383436376565633964663434626165653033633834 -38393234363462346436323638313865633763666138303832303432386363656561303564613733 -31363732376333313362303361646139666566366662663231356535653238396463373531306561 -65303938646438383130366138373863333263386165356163633736323930303539386664636362 -66353035333331643664343664363435613765316339363538326562346237336332653736656136 -31623335353736333634623130636639633865623137626135633938343766376538346633396631 -62663464313638616436373939333331623838303733313266396139646361343765306438626238 -34383539623262316363643564643566353735333765633835623336363862653935323432363434 -65613036363561643363663362303764613938653232303764303333316662303531343363653638 -66356632613737643639366539633461663136633036313262366136643764613238613762376561 -63326466353130343264383162373865363735643138333763366364396634363964646133643465 -61616166353634643538636134323534633534316265663566363436653231356432326465303333 -62636261623863333866306631303434306434326433383637393862656332353433393763323865 -33393731633437386436613331616430316463376161623662316633346165643365383539356338 -39383766643239306538303738353336656437356635323235313236363832616236396363376633 -39393832663333313533666133333633376366313064323466306534356131383866656330336338 -33323564386539373539363464323161393938313738313837306662623435373865313534616535 -62626334626134623666613166336663303738366532376430346232386662616465303833336639 -62363330653863333436363037633061303839323731633837653139356534306238613063366131 -33633530396336363561386634303931363735313239353666616236643530346562643431323637 -34613234616337663730633166666439346232376437623161346466326531646632386161303461 -66363034353635663361623362393336356266653362333864303431376434633533363766623636 -62353663323562336133653761393732633361373864346533646631643964636362393035346638 -30643837653837653361333532306136303863303365343161306563303165656531666431663766 -37343639383132643232376466393938616266323731623266313734313261643361396235306235 -64613266646632636262333462333638653365636466343032393333346232393764633638643165 -63373031313337626565316139666339303565633964313632623638383834336565326563326439 -38303362326262353632643530636265613033616234646237343438616665346339303366376139 -30383335653633616631316632303735326162323230383332383536646630323035663037353334 -34323330396339316231393930366531313637656661653834336263343632393237316561303365 -36333539633662613634616462346535366562613931663932373663333638316139373231383835 -39623737393432326336313266626166663336343036386335653865613365626665666230653865 -31353163646564333536613736343464346337653962613864613332613834663232643062346437 -65623836616565383262363436653532323762373632333732386637386234633738643531623438 -64363863353235353563306330373033616163313962626539633665623030303131613939306239 -30306139366438623533393531616663336538353831393132643064363430363238356565313963 -35363733306165333032613630623333383434653336306637663939386466323331373232383663 -35636365633532396264666632356363326536663534346263383837663639636235356537613136 -61666564396366343030616538356162356163383030383232396336333066633032623631336639 -62373733643531393266643662656565333530336630363132323132363534383033666463626361 -66376136383531363539376137353065623335643063366364393661623265303435326636383836 -32646538623161373866313936623565323333636332653833333336323361386366666331383733 -38656130366235613964383239363666323535316163383837616634386633616234333733303339 -31353637333435626138613537663639333963666137323239303831313438386634343735316264 -63343931356433333566613131613663636135323034613338343534646530356361313363336536 -62393735643631616530333331363163326430316637343637353839646661333939363762623063 -35373339376461646631336133376334303062303139623930663038326431613533326339616265 -32373935366234313832643166346439643062343737613965393632373038336437633761663864 -33633831613061303139333465393664663237633538653566313162656531383832333531333162 -66333162323063326437383266356561303538643062383931383739386634313064306130616462 -38656632663337376331633737306463393532316161643161336536343039303539646332666162 -34306566326563386634333764656164636132633139333365353962313137313061353138353236 -31643535353133336536616266613438656662376631336536646330613766356636653837323164 -65336539356333653935653830646262613563316337633832613934373338646436613964303837 -30346464306362363861383937666232626236343130346435323437653436313336356165363166 -32383431323137623662373131376663356265363832383866343233643532386332306664313162 -66326339343936343266313239313238323338623231613238613164393235393965313564613132 -32653336633839306265653861393431306334316431613832643965343466343330373236666530 -61633237356362613862373561613366343563393739626565363030346131333134313930306532 -39363830313736323765373261306565336463373937376139336534613366356330336663386265 -31303361336562353439306432326435643434383264633539333765616432623832633866623035 -37373535393962643939643566396537656637316137643565623231323035616463653630613262 -31373939313037613662633166666331303765353838633931313839323835613564393938303861 -64613435383262313535303736316330623639376239326435633466316536626439326639383232 -36663133623166666638353936633666313461333031616666303435333462366538643330646437 -34373362333264323637326436353633393737393336646666386366343732346332393463366430 -35333235316464653239613166323139386531363166336239373564316430323565323436356566 -39373334613565356466306561663334316637383431386437373465366330366130623765306234 -36316337623331303662316362303066386461313064306337376337636532316637613364653835 -61383464356230643163316364666236363933386166323730356162313338363635316233343439 -63303839356564356438373933386165333565326135336662613265303938633636393336366230 -33376361653061323034366165343235633533366234326235343561623161663236666566666436 -31646335343537376265616334393166346235626564386339636462646131353236633065316432 -63393065393562643332666431326336303230316366343165313635346165623963643631363161 -37356231366136613430373162366539646333363632623635653335613365616561363137336566 -39646432643862376639306136343264623865623962376266343833653530303963393338326232 -66646139613165316631326136636632663739323561643134623763326630363634363135623234 -65383064663964343535393832356664306666303330386238373565663232623330373737393961 -35336435353732333730323135353930306433363063386336613130363763333836326466393931 -61643135613438393736613130316538313135656364303930653733616438343766326361383736 -36333130616336306636306631323430376232643861666163383439613565356239383966316233 -36616531666434343034306437366463323865323966316363663932346134306231326330313865 -63353936613230353236613434646263353537383631656130343664303866383063313764323831 -61633562633063363635333963353164643561393733336438353536643333366666306361333737 -31656638326638383864646533396330646232313931346466346564633461326662623234666166 -32356561666538393861633561363362666661313632323961393966653661363637363438313563 -34366463303634393131363134306166643462616562396466383031616236383463323636343336 -62313162653666313030616538623461636564663766646136326135353737373066653966626438 -31643733383935346166663762653938393761376437316666373365376366646365386531363436 -31343637366162623365316530373431663337313964383134353664613633353430346532383434 -36626464623233656430346334343137326535623663366635636435313332636566626166663933 -65363333363039336463633838366661643133613966393365633131363863666665623362643231 -30613661663535666531383433393037303035646131633738323063323830303431643536616637 -62383137363932316665393139613734313164373934346331333266343965303834363936396364 -34373166643962306434323338393236656664656362383461633739326561633530363632303039 -63366362666235663431333335363464616130643531366264306534663336316664633231353563 -31653035336435396534383237333035326534633663656465313362373834656131656163373166 -37373032613365633333636138366330323734653533636131343338313131613839643262313631 -34333730313735366237383164646536356639356639323335333366343930383036393931633630 -32643930613732616534636233326662636338653164376135613035323131373962336461386465 -38393035383237333236653733363966336637373030663263656639363265333133653762366135 -37623436313536653130613933643434343562353633623438323733313435323765303538393930 -62333439643966363330303834666537306634373934663537666634623165373939353561646330 -63613932396133383565666133616539306234633133633739646131353461323534393335373161 -33373735653939653635616334353639663134636561643439343761333136346632323630323531 -64363837303235383933636432373938393931346231373436653434336262346562653763383463 -32303833613330343234303766643535376538376337313231643430316662353362323562663765 -37383761336165303238613062643464356332343034336239653131386435346139663361363532 -62333966353033623338336138386436613933613737316666376332663139636436656163646563 -33373538303139303738333435356666613734653965653763636465623035316236306466383235 -37353838316565643330663963656163666537633361303535656537393361623636353164326433 -30363230613033323839386137663264303233333433373430633533653761333465393262653933 -39666165346231613930623837646332396136333230666261623561623437336263633334393833 -32613166376633626264303962383165353338623164343333303663396335306530633935336530 -30376562333161313136323262303339396234623830386235636565316565623065346363623730 -61393261666631663662306536333133363434653732616230396636333432313437316634646332 -31373161633861333866373736383931323961626464666665633033663433623164363064666466 -66656339353732353731626531303265616361626434393033633935636134613431383039656431 -61393561313165356434663165333463316263353630353634366263346535353339626333303432 -64386232313466363130613838343164333962613730646263313763393735363163653832613236 -39653461623131623662356465633664653165363265303365626330303765326335353934373364 -30613366343938373834313964356564303065336366646337646463626361333565663137366635 -33333832353635343164653361303165646663326139396334313138313866636333343235393735 -35613866326564633130656161613262396334656439306637343232626361303730636661653964 -32393765643039363262653764643334343738643863383566663232363730346232613661306233 -37666365343865386238383861623234616336623763383538623434656636386639366437323433 -32356162396134336430303031616264633238303439336463336339353166343735623533633937 -62336562626631373338633437353065653432353135663733373737326666333233333763383133 -30323437353735316436333537343963623539313961386331623834663433396139386564626165 -63366364353438333135326636376636616535323335633032333166633861323933623266303438 -35643036353538303065393738346564303238313963623934353735643038363833663532353734 -39643733316137376236333534653065636364626430386332323265656161643333386631613965 -36353539393630353062663332643134393330393362636462366239306634386335353930376165 -36366231373963633864643039623533383138666531666637323162616561646233623265653063 -35323539663535386332613762323165336637323330313038653035666337306535363464626366 -34393166643638666466633734313065363239386662366664663534386364653164366261303333 -65353734323533653636656334326566323262323932656139313536623135383464323837326633 -37643465303033343733653434636666303634626231623733623035336139653438633535373632 -62323461663661653034633137373232373932656231353433353930326636663832623234343864 -31633836613639373463646337303162366531653337653264616133353533333330353562326338 -31623666666333346564323834613431393566336436646333383161343931643261373166313364 -39646438656530303561386530633861343464303438323039666138386664313961646238643063 -65633866353431333736306365633262373633653461343834383732383766656334633162303630 -34303839383063343134633936646562323932656263373263656565366136326237333933356666 -36653936356232333961653239306563393133333139313734623761373566646666663037393535 -65333264646261303630386531353638363062363934396461303362366262653331636365336163 -66646162376539656637373332353330306332666339383066313364333162353665333832386236 -30363362653935363637323934633065323430616537616132336165323666633132383836313736 -32626564653630336531356535363737356130623838333235343764396532663765353263653333 -35643066353235323766363734626161393035623361383239326539653766363330663738303066 -31373038383330323634393339386632663230356130643138376633363064343733643564373962 -36323638633637373438643564303934633030343636646261383465663130666161383562633438 -38663633376664306534326537346132376233303432656237326235396432613765303335626135 -34653130373164363138396363323531616366363439633362646361326430326532663237383865 -64346233376339316431623139363663383965333737303234616336343630623432363461613839 -34643364306464363336623762386430333136636163393133666636376333643738363539373434 -33636531646336303131363230373166643138373239646330666237663237623530353064323439 -38626336653835373336653338303831306665653364633235333435663130663136643466623231 -32393666323461616535313965343639313139376432633064346232383633346130366363663133 -63613966303637356333613561353435383366353565643466373461323739366231346235653864 -64623363313536366563636238393165346362633966623035303032333630333266376339376465 -35373937666663623835373263383038623237333862396364666266363639303236653366393037 -33653765623631303036303531386531346533336635326664356334373335376438626137323137 -30383430336237373131326161666630643437613737666538306365613334343938346133396263 -36656463383439666634393933313334356633366338666231666661396633366263313532383238 -35306637313932306131303232303330363233376138383162376165363039376338363430313237 -35643134653837383566653738303936333638386266646564616436336365643639386564386136 -32326662623536353335363531616638326432316564643562613264633539386637633938313337 -34323839616664343834646236333234386638303939663030646366346330626662653433396534 -66366365646333313463356434313633613531633535393766323835616337396530376262313666 -30346461396661303931313531363732363464353966336138326661623736316564636539323864 -64396437303465646362313166373230633631636238323131626239326161373465333938366533 -61353837313665356262633637343030376362626435666137663466363364343964353864636163 -39366235313838656266373633386430626664353537383438323863376130333836316538303834 -35303861303231656161656164333235343930346365366662303266666232623965626163633834 -31346166616139626634623231326631323035393531656461396266333434363466393261373833 -64353530373165386461326130646364653836613732303936626462386339666637653739356535 -36306231643837313130316262643764396365303330616465363236396333653263376161666233 -30616164313337306363306561646637626636303730616538346362653661643061613433663038 -39353936303635663239343131323030363766383631616138303861666365653366633963653161 -32323765303464323832363237356238393664643835353539656661646630353666383435643935 -31613837643438613166303663613564643638653562616564306162346436653632313730616163 -35333331643465366565363562656239666537626136306562366237353061363333303536626536 -36343434383034356335343264356234313131643538626633356135333561623936653833336636 -32363338623532633031313663303866386331363064653465626139363735623862333331323731 -33306239306539356365343230346261343034643934396530636663353433623132346266356139 -34613436666639333231346562656131646231646362343563366432366236616162653439376130 -64306163343565323235663731653761326535393662356130336131643265623630376566393535 -39333663353733356332633735363735656265623230626335643332333536666366323537663733 -62663464376539386262636162343731633436373466376439303564646364323461616662613061 -61303031653765303935666334393966326633353838386336643963336432363661616135636532 -30336263336338613139316630633931313930383435303738363531393061363564646636346137 -30323237633239353038363863316364336434613437383533353462333162396566623966306565 -62653234303062333538643962366334383335356139623736353733386337303138623938326265 -65303864366236323463626536323735396665323130386263626232343262303238393030373466 -32393434633133653064383435356234396662373830336438343838653931636235363265626166 -35343132376464386633666362363333616537373732306439653536323566356232326534343436 -65333439636534353131303032333366386464383430333964373461313266353664353739333334 -35386361643566386462666565353839326233333135663531613030303764376132383634626535 -61313430333139313561303338396634643231323064333033343231346435333538343431346264 -36613432353335336631663432633933366565656663383630356434636138336330386335313964 -39343239303330616231393934373537303337663566653539613632643639313365653039363339 -34626364653735353235623365656330316463393436383034343666646464373761643036326462 -31323235333131396636623633363939663131353132646337303837386432646363363831393834 -31663261376239636561393663376665373564396233316464623763663439663763646339346562 -38306162363339373434316337336635316337376638343861386535373036353436326534613035 -32396464616531386564333865333136643833303233383931343263376564366466383934313534 -63353065616332623437376666353031646332623738643137383437626232383038376164623738 -39353235663230386134316665643638666166646338623166333366316538303061656331393230 -37373261626463366530643536616539623838663735353261396538323665663635343961363366 -32356339323938383336383739653136366663353636303165323066656236656338663366663836 -32336664653134326630303662316139646162393765376432646536363534316532616632333461 -32313534373734613931306337383062303363623465623362393461343234326336626236363834 -31636565343233633236356237653233633962336232306533653030376438363936316538636361 -63383466656639396233363933646662373731303833356532343835346665313265383634656361 -34656465613233363638353635616661323266613833363835393063666133303965363838393139 -35663331636566633535613363393239343962393937316664643364613864643461616664663636 -33663561323730376631666266386533623137336161626262643839386639666433616161336339 -65636162363835633536343332323535363361306235656631613630663766393664346536636464 -35666435323136336263653837643862646636326465663534396630626464373338663439356663 -32626566636638613336613033313434646165326364326431303530623139393031613334373332 -33326234643530386136663562663332346531323862343932643063623266336337333835623864 -61646364353061316338356563636562653432653863666366633137396639663430383964373039 -32336164623064656235346462333562636237656439333236613530363464636666643336303761 -39346663643433613265303939306164666239313633306438643161333361663731626463383137 -39306135623065323730356662363966393962333763336366363330323366346364656563636130 -63393765353566353832656531346432353631353035323031323039376563373638623639653362 -37333436303866303733353635646430643330366261663031633139353432303765383661396432 -35643266626533636435353164333966343238626265353837376332646264373566353638393335 -31396537613935623061316635373237376436623162653936653139326135303630666436613537 -31323632396266346438313136646362303739346362383736316661346163316462313932323365 -37623665613635643734366265333135623238346238346237636662303637313763313064643937 -61366331393637376232666137663364666431633836343561653839656538343532373561323731 -63373132636335653931616632393332333038613063623636656464653533643734383562303733 -61303434373832333339633731633466646635393738636462363463646437613533363230623831 -37643561633966393937653337363337663432616634303065336134313133393032333662353165 -30643030623938313236636364346265636237613438623536373536333033333032313636663862 -34653039643830393936633463383563316430343231663831633662323936363736356465323635 -65636539356432643036396562376138383833666163313364356135386266643463303363363133 -37633064613838303238363733613066376162633361613239303630613434363966316132383161 -63313165323033383931393962316634353361353538393163616438636430306465616561333462 -65373531386433363532326531613966633430613339636364616334643863653663363766626562 -65633533633463633264313039363933393639373032633837636339663066643164643137653335 -30663266663231663537663862646531303030326131373437363630383731643066663366633564 -64396132383762383738663763613135646164666465626432373335303765663563326638323938 -63396533313463393664386465366337633736623364393336356336356332333236343962323465 -63333366303134326333626334393033343538666337616539663439666134323137616432366165 -30393466633366303665633765646334666136343035343865663365623963633633613936333961 -30323835363662313438353662343731613764303539643266386339363731343636356436353539 -64626439343164313063366531636364363533396165356332666362326233393135623064623339 -30653863373665663637663737343530633839656133386139666431333063633232633462626133 -33333364623033326331613766623134313239616262636538646636373963643462623064663639 -34613730313732663232633734626637313630386530363565663632306434343638326665333536 -30376134326336316332353664363666363838326365346236373162623033323037623534363338 -33366139626534336139383430323739386464383964333936633136383264316232343864653062 -39626666613038643839626237636538343639363165656539353466393635636536613036363962 -37313333333937366561313032623634373636303735393130303764366532353339346566633466 -38313261353163383136336432656534376365663935656232323231383437663034353032313032 -38626132306163333837636231623239653166346133616237653365613761383339343361316130 -33313338643061356264343337316230333636646639653462363562393734613334343531633566 -63313932633461616661633533636531306333313863666430616231323666396537353966333534 -39613236653337336233386461363735636463303631656632313865663431326334383936386335 -38663664353134343965336134653063636163303638383734376139323363626631616162656261 -35656439653938633263336331333333383163393762343738353863386662656664633631323361 -61343936643864616562376264396632386466656533363339623561366435343439393131316133 -65396135653031646636646664623835313162333239303731306536333638383336373466343731 -63633564303133323166353834383233623134353636353865613462646430613265326135643036 -36336163363931363631323837343632306239643834626434373433656138353832656163373533 -62613530383538616233363932643831396233343839396237326337303361316238623463383239 -35613433306561653234323037306565646366386263303765643563323864316466346133613861 -30393834653235313336363739623330373335373061363434303563363738613532366665333332 -65383535326237616165373364643365623130386638666633383538383836663964613034316532 -65643637376237313964636333643236323035376332336231623434613361616435613165363766 -36616465366135346638626563633963376238313035366335303839346430393337333563623233 -38353565383539343339363263396632356565336236653665303837376135646264333563313038 -32313138323462656431336432373535396130643962633238613963383731383034613630313163 -31363838333865346562343332643262633964396362343338323931326661303339313033343264 -35613566646266653237636665323862373836323462656633336333643133363832633065306330 -30646566633138316530383832313866636564356366376365616432346565383733326439363239 -66356164316435663335643632333833626536353564373630323930646661663031333330646564 -65343466623533653462653538303062326436623166333631616430663139323236313064386261 -31376565653261633965383234626164613363346437323634653238663662303063313434396636 -66353061646130386463363333303639323461356261343265306634303834363765653437613239 -35313332326438363231616630373237346639316435373262343139333066663337313330626239 -61316635346439306561396232386130646266363163373438663266393433616237653233663665 -62353834613661663262653839643263386164633564316431646232386165333434366364363037 -66346232306433623332653734653064643032333836386336363837393965303031333936636239 -31343563386134356434306133373965373132313037323562646534326666616133663064646630 -39326334323037336237663866396430306132346232646534633933636134363364383761343238 -31653162626137616661656331633339373632303462306331353437636664643734656532656633 -35643837303733613534613731636537383563613763386162616238643536326461396464643862 -63363862373439303465613035353339663836393137346432623933633636393033373661663331 -33623537333164346664613836343338356166326438613636663031326530373131396337363265 -31316431326163626336653462396337343061343066356130343561326461343133346334356337 -33353131336136393434313137663561633364303333613936326231656530636436653763323134 -30626634646462313933626662306339393865626435336262313064643163373936366165656462 -30383662663832353037353661363531663436376666626565376530386232306364656337306564 -37373164656430366337666634303963383965633039613234396434323339356431313332363835 -61393239316333653063633436653664653336303266356365643366613666633766623930393261 -66633436643830616664636361393435623462363862373335616636653864303835623136363330 -36346465646439323630633331623462323564333935353765346230626466383630346662336430 -36343837356333393763353666653434633230616236663464636339383935616464656666373262 -34343765653366323730333537393234633131626263326532626164663130326531623566346532 -62343936326163343938313866633235336463633663646661313262326163353835323464363536 -30646261393932613933306131643964306632663330313233343338636430353762666561643365 -32353933636436663134656464633533336137393936383661393331306133623262653730393038 -65336534616339383965303463653261396230386233316135373330656130663931396339343164 -31313538383035333063646633623636386331643332613335303236616135313563396263363964 -62383963323364373133373864393230643932396366656661653832636465313834636166343739 -36306233646162636130363539316162376264386236663639616639346163633333383839383636 -65396635396631363031323637633937626662373566643064336430393063383033643463396266 -35353864623761326561376134316236356133343461316134663231363663363539373138306566 -66666361333061386636663861333462343030313363353435613232633935646531656663306463 -30643835363030323465383539396530316562643734346462343837366239383834363039613634 -32383634646630383131616665373364346631326134373633373135306137353561386665343366 -30383361343065313865356132626239623031323331646133633066643937316337383836663632 -38323130373236656235383664633634623864366432623962656366333635323263356466613463 -62353638303464643537346430396136336636633964333262613063623932363837666137383064 -37313731646336333338643932343337363963663532326139363064623033343361366139333539 -39343234333833366535356139623831613531653365366365363662643461366136363639353265 -66363235396331626265313161663731633661323534633736313435353062633734373061376462 -62653833373531353330353765313035366236316663316463616532613566303461656239646239 -63383266653732366665396130623863343762343066373338336266333938363765376361666232 -66333966393965376637353732316262643936306434663332613736383363393533313664316232 -33353562663436636237633462633865636130303739366465326139623565323939326532353430 -61346662656633326366643864356337343062636239396162393638353634363864623736623637 -63666236326635303637386132373762656438363131346635656631326431313033313734316166 -34343733343633623066356231616165333637393231373366643332353536336538366430323733 -62326439373034376338386564306130393361336435316631373030373236623730613739623232 -33313861653865353461386363306438633135323961306231633030393236343766643132373035 -37346230663834663865653139643639623937643631653735653563663832663662663030316132 -30386232393263643461313463336133333465633263316563343364653265633039383366616432 -38613539393431346161316437353061313062393763643733346537363262663030643162316362 -38636662626232393934316536356363343731313862393835326265396163656235313831626535 -33333666313532323666346363383730323961376233613232343035616132626262363262643664 -35356231373366393864396630653964656534616134376464373566646133626662343765306264 -64303564353030383136343931336234623531623661626134316630326465636464333232333564 -34373035333234393639363139306566663535613262633831393331613138393630326166663835 -62336163383235343734356234666134383233346234373839346231356234373861646637383262 -30313134313039323532646365346337313535353038663437666164636230383563316430313230 -36623836653737366436396531656333303030346232393366386439376133323062613566323634 -31613331373932333536613031626431313439316161646131616666373262386531323337653535 -33613465623566353930653437373366386632636363386334623030396366383035396632616536 -64303135653666363737346431306138353334376663616266383734303730316266623431303831 -31336236383561383538363137623532313337303763313735623134363837613635376635336564 -63633933663565626531333865623537383365323862343262323232666434363531643139643333 -39363666613061326231353534353335623066376363666633346263363734326239643533336139 -34636531386264303136336631643865306632333661623432363764323366353436663833313764 -31396264663135343462396462306130616534383932633961396438363937373762643061353039 -30623039613534333961353236316663653136333432623935346263653533373762333461636630 -66373033626161303237613138363963393433326435373032373263363962393862633966343437 -30326234343664663665333962323434636362353665376563373463346530626638663731393231 -38353034336361623130656238383434383133383962333539366335336463326130313161303034 -63643932653636373337376435616434326433373836346637303239616332613135646430343639 -32323936643364656332633437303736373262336533356634666661666338373030636536653866 -62633535346163643462646134633137356536643830656664643034623165363432383937643465 -33343563326165353234386265616664636663613530356663643165663131616365343964623364 -34653939356137653031373230383738333334323432653537626465636636623633643664383535 -30633464326264343462663339636531343235643533386562363361663666383930616563633262 -31343533643430666535613535366639313262646136613831393734633966323037346264373836 -63636436343336306662653232396439386635663131366239613831313761386366343934636432 -34656564646161346237393564373432613931326166303537393264663263633665353737616464 -39363062623864313835386239373832623439303964383562333135656662646231343861386639 -36353533313133306439383533323936383161323437643733323237393864393962353633343664 -35393963343764356536313039326363386665626437366537343135643339613766343339636238 -34303766343039653737396632336363613433313265383434376332633066653236663432613066 -30613230613164383232356665653037393037643962646262376535323035363438333565396339 -32336437393063653938316362313338303266353737643732366236613532656336336566363962 -64333632633333303466393365646338353461373434313133666362396537323263636638656462 -31653262636230313562633065313037303536343463653935313038643334333239393362653962 -34313633613265363366633066663232313433663966353530646364633636646332326162333030 -62653036383562373065346131363731613363363236643934353930396333623334303433643464 -65326366376134353235383266633432346534386233303539316138663036653537396166356535 -35646235326135326530323231303435643133303234633834313262363965666231346538323633 -61623664366334366561633466666662373063363364373133656437353165346533383866356333 -65643164623930376238313036613431346262393162643233666165323862323036336431303632 -63303434383662333539363634376432626235656138323462323864326435663130626334383666 -32363164363363393535333638616130393065333336363139333034663765373961633366313461 -33373238376139623036663763613331666230323337636434383363306436376465386533346362 -65396562363135393935623765376137656365326332366363343434323232336561326564393862 -38336635653032313266633338373464386363623832393337333238653430363138623064346332 -35306364313534393438343736383637316362623763323061656138313636383765303531373831 -34653763393739646666616337376365336137343634303632616562623261313639663966363334 -37326338366662333334643861623033346435653732373132393337343738643763306438386562 -63363537363966613538663036336333343435353264336238643564353339376630303364656565 -30646466376530353564636466383136326238366165633437363937656361306132393639653762 -66356430353461643833636330393338393161356161646136303037336132646230613566643235 -34616433626263663731663164643062336534616164393864666365356363353139653830353034 -34626262653933323636616331663031646235376534303137326635643431643635333535613536 -37373231306537393335333539613637663032663034323536303237383964613964396562373131 -66656131386233306262326465386361613032636332303739346663343862623636383066626533 -34383634366330356339333337623164386134636632326531623530643033383438626635623261 -61363361383839306533316362326130316136623966323934613633646630306261613266656330 -65643963626466343334626164333538613562393531663163353039653361386165346161323937 -61663935636136663336626361623966346335383161386136336538663463656239313832383636 -36353136653161656637623234346565653638313365316536323237643034396432333464383530 -32643338626635366236313239363765346132643266663037613631316333313230326231356639 -63623261373665383739393333343965316639316438653435663466363139396362613738633664 -31616230663537623232303264393836366564313166643131643965353735313933373761666266 -38623262656239316130346335616539353161323539623030656465396536323766393461633135 -32643765336363633164396664663264366666353331393133643062303138376233303536643739 -61653532386231383634336534366132306536343938333034623162353939633964613465646265 -61333134363336343261366234373765336430396137396439643130363336633334393336646336 -63613135396664383030366533333166663431326130393331353164633437323735373463376466 -36393438393163666664653231663836656338356538363163363366643835373438353464613632 -64616533323538363735313034346665376632633531613632376436333739396363363833333630 -36613436396535346339613534363937636665633066353338366237373839376164313034653137 -34383832663836663236396464373736616564336265396564663738313039653166306632613837 -33653331623533333139363765343637616436656639393366346438373166633338623765396133 -61316262623132646337613666666234343732356633356165383633623737313561663033313135 -35386138633433666262393930313264663361386162333262393263383565353931303431646536 -64326538656433653336646232626630636563366262376537336139383931623638363334346232 -63633936623738326266623432376434383562633431333534666430643366313761643235343432 -39623432336164646361383939336431313338653530623136386537316261666464326437633464 -30353834303838376665656362613261636434343561346532343161393964333639613465616462 -33343766656463623631313564333332636162663763666666616336396361323364313230656461 -37323835646264343939336264363566343864353739613836303131643036646161363737323034 -38633734363965323866353065613561323564326138643934373961366538663135343563653965 -30646666313137623735653530643134616431623166616439376338356462346630666161343263 -38333733353731366364623061393531643030353061343034653564366362306633313838613262 -38333931643935626232613033653532653835653334663838663930666535376331643834613566 -39646265353966396334643665343862663534373835363563656265343665343666393964613130 -39373134353538383037373332333539373136623530633961633935373433336433643735646435 -39636239613036613338643330383762366562343234343863323664653333653337333235666430 -30636366663339376161386532323730656561376433666333616137306361323033396339326534 -37336166643461326462663038613535613562343136343062383161646663646530613065643861 -38623461396236396131306164313530656263626538336562346235303765666537396334363063 -62346566323336393862393663303736636237633435326430383036396566373235306366303766 -62383162646566653634333763326430363661376533323863313663663731643466363463346331 -34376537356661303834646161333762646163616530326231316633643438333366393436386265 -38363261326164623763633031633836393064376639363064656664616532336337366439376336 -36343164643263303737393439363362663135633566613565393734623635376435646262636164 -30376532313432386164373438663466386435323866346535326565363139366334306263626565 -61316333346462353330373030343863666232653066313231353631333938623461303835663036 -39323634313964343936323734363832303239343064393161393237393763366666623739646261 -65346130303636306531313962636130396238343838303262306333343532343534366463306561 -63373139356430636530643538666231323564626336666466653833613339663030653066616130 -62353730656636393461323537666161393030326566323739663363666461356466633933366162 -38636639393261633861306232656364613432333535613561323938356330313465363332383161 -34643630333732363537663836376266373937623562633337333037626131313037616535613665 -35363861643564346132653936643034386339663066363763633461613531363963656437303361 -66323533333766373536363361393262313539643239303630383661346163323963656365643261 -31363861636236336531636438363839633131336135376431306137643863643364613163346165 -63323336363739303638366462373530323335613035383534323637623630646163356565336631 -32373335396236646338396139346236366332353034666631383735646133323733373030326233 -33323566313836646365306266363362326539616332386664336662623532333038313439613166 -38323765656535366234386365656438623430643630333266373162613939653866656536346261 -31626134343033313936323165396331363534376239313065623334366565323033653435323130 -63663462653761646234633436383737376365626436336164613834616163366335383434623136 -39313466316561656630643365663562626161383564653236633966626561313831663336343739 -32303335653663303261323364376337666538346265373761333535633661616139376139663165 -39626130393865323234643333623239636339386136626663353733383930656230313866363231 -36333633633662663132666363653833396262353432373466353637353531376538336465613130 -36303661366330333433636465313933613164383736303763373431356566646233393565613938 -63333439336632356366643032656162346632613330643861646138363339386361326566376435 -61323235396632656630646338356462343235373638663239326130393865366464616236326266 -30633365396234663439636664306234623164343262633635353833653732343736363266303538 -61653664626565333633376166656634353739666232633537663363323436636565383137303962 -61616135326239313333393065346538623066343839326533646562313434613066353466616636 -39623039646630353664623031346539613235323963336230646361393432663263326433626635 -62663632633432373338666665616234616662316633333931306238393532653366313766396538 -38383437353539323838363963366135656134333337663765303531336531323133306461393733 -62656435313735653533333939376634646563643130373139616132336139353066383234373436 -61343630393663643862376164663734646664623761666235376537666164336562303461666233 -35656462643739356363353232663163366237663166636562363664633537366133343634393631 -39336430343964363062363531666666643437396531656136363737663636616238306538303137 -39346663323831663265333435356261633334623865643330316632333763346138373663363535 -32663834343238623138373236343534323861386631633834363138306465396165396463323634 -36383862303264323131323765303636386633373438343634333235613164363431646137656361 -39336634636336666430643830353633613963383931313935653562303039663336386463376633 -34333039333933336438306135623230613066346663363930303433303736613238386238613333 -36366435393539396565383730356262373536393835626462653861643538636331333830353939 -63313731306566323538366139343361336466313530636635316436616565653135393964333238 -37353231663333396635373061333362633831633461666466623664303638633463303331323266 -66316161643437663665633566623231366163663462663837633864663564346662363331346233 -62333639383836363439663932616137666632353932313635343538653834333136613033633933 -65373162626134323836616462313336653464666239373936343464373865646238393531336363 -39323765333765666165623431316633616365396135623639386264613661353630633135313664 -39303161666635653566343438663965316635353062623339366131313339633331646561326435 -65346366633263613631613732313635383939343335316361313132353565643835643963313662 -63623231653465333237366263326264346563393432616363353834633634653562336337633165 -62316165363765646533626233333430633663313762316365666231396535663931623765316333 -66303032363332366338343533636563363233376661313532396165653035633933626264306365 -30323465303565363231326138356139363832336232663362363338396534633539373232326536 -36666331396331653237336337616230336166373931313661643136356161623131353233316338 -30376633653537353437626135623861363038626234333131653133336435323030653533343465 -62333531653830376130613865623364376137623563373063613763346139303939333561373634 -30333431373832623165653632313533386433333965323264376166643536363861306662636438 -32623132353463306331373932653966353730643638383736383033373363626665646535653730 -35646634386164313436666330353034303132363230633232383763626639393333356436336165 -30363766373933616338323930343938626130336434626636653931356139333562336133616538 -63323962656235303730356136343138333932356136386639353164366137633536343065663038 -33356137393531663861316135386163336463373135653330613563643363313039653434346134 -37316461353764306239373030393337663366363062326263343531306365326635343938303633 -36303638393832643339656637366636323539653461376434353836393564613936633031626366 -62616634653562346665623066363265313763653066313533383038353661323438643832323431 -63356135363030306136353666306261633839366335613866346336303030306262333930376463 -33336634343431393032613435373537346566626236366538633962343738653733653736623034 -30633939613364303739373038653265633162613339353731353931613534323535356438313031 -39343163666630353230353232393435643163633762376335313233323662376430333430616535 -35303161343565343736306233343335633566623334666264663333346132346132383731643930 -66346463396464323536653562666339663238653262666462323361663261336630363662656335 -31613533336165663035623938633037346361616239356336313964343132323431653265393437 -33633166343336643835663164633962633566356361343632383765353964303633303564383363 -65336362656631343937353532393838616265313637386636386331626535363861663666663233 -62346161346336323138363631383664333963313931343331373933656563623037313566386137 -32343763656361343936613865316138656432653665393636633430663533303136643231373930 -63333662383438616130336162663035626337326663383937306366343132613730616137316161 -39306263663462393965356264633166363733343062353537393036396537646635383336653463 -64646363353939313265613264306634303836613065363632356539663530336638363032313239 -30643634333830613135323831353236376131383864613765663536343336346663306437646333 -39636433656364373930376230643938613763333130363330616435623565333630343361336138 -62353063343963663465313738613435363538653737336634303363626665313733353063616165 -65633830626265383661643663336437323764353739363238623036366331623362643733616433 -61326331396565336132336461373839353136633765343864303566643130323533303363303239 -33383133303637303333333233636164353962613765643535636161393232373263373563386331 -38373562346635373532333232303063363363326438326363633838303234626639366637343061 -32313530633464623132666438326631363633646237616634613735616562393734666263636532 -62663466643234393636393335623762323430373464333235636331663566356132646465613362 -63663265383662663264363838313234393638323639623639613866656137653434626634336230 -61643830366339663134643463343937626337373862366435613662333736383830346462323861 -39623238646334646633366264303538656233396238346136626331373739396333313432633436 -35343037613737653330353330366561643435633062303337643234396637396362353735356437 -39346139323862336564316134303663383663373838623038633237306633363134656639373261 -36333163383230386566643737336131656465626538363233303331356462663632303934343762 -63326331623064336230643064633930643366303134613437363736613536383936373863383439 -33346263386366316566303637313830616130306236343330393936633639356438383064326336 -65626263306230653065613031306333643164616539333834396337663033623236616632613161 -65303664383638396366303930393466636430303136616436653463633761336137323337353861 -35363763326662353766303631353235326362313438376363373361643330623532643665353033 -39663135373234326562323065613331653736306333363635313537636461353166386366386437 -65393366343532613535643131343736393566366639653963353866633065666239313834353164 -62343537303166323464316139643832383934646138393638393666386465373638393437623863 -30356566633031323438636466363764386335643430633439613130336339393866623332306437 -62316161333230626262323564333966663139333731343665333866663537646639316261336138 -30623830643931363636343439393331653637393034636464303338353635393763653263623265 -65386336383263636566653236373566356264353537303164616637656632323337326630643332 -30356634386561623864383536646561666566326664356435633034633263643331383334646431 -61666265303066363439623538616238393738363635663863383838653732653238336163663832 -65636231623332313132356564623262316630636262343863323332396231623866623339353230 -38316638323664353632613038636434363861396365386665623336333364313839343061326638 -64336435386139636261623232323036626434343836393038393332366162303232353830373363 -65643766393133626662343936383838306635386339646236313135373165626234623332653337 -33356234633835393264636532336434653565396434386339353564363633383034363361663336 -63356438373863393361663231326466646665643139346362633864383030666437373931663731 -61636437306363633263353561323166636534633536323038306165356263363031303035366263 -37323063386465386130383131393732303334626131343435666366306231343730633361396633 -62396461383266643333366366623764626337373532643335363131653333323236636564316161 -39316231353366386530336233633631623233643730303366636430663565653365396262626565 -31303837626463663239393463616230313830313032333430653132623834666135656435313665 -36386531636537393936386266303266306566383330326263323537643538313564366339626230 -64623639363664323339633562313565313537626163353234373466623462336362356132326664 -65306362343763306432393139613561633863396237336237653036393632383530323532313435 -61316234316235383562353965363430346530353237383833343235666365363736653335663433 -36663262623831316137343034396130343838663632666138323533376335343532303336393631 -31363431376230363035303535313639633438616237633336363930303337653262333063643262 -66663136653463633239396635663435366266666439373966623565616264613837633862396632 -31353533386232383836623238323533316664393433353962623031313936616464333665633534 -30333333346665653234373138373961326130376239343334323331383734303331323939653466 -33333263376466306239386130376264663864666539653762643662613235383032633437383138 -38643339373137616535343331653237306435396634303264356434306339343739633062653737 -38303036343263633963396265353230303963376562623566363130383931303461636130613866 -34356635303163616138316664343261393134313761373665633637343031316534633134306136 -34396230626531616361323166346439336164656365363764386164376636376663316361653830 -32386264323264303439353133323934316162326561343035313739633334383238616434616634 -62353939616136623566643335663562303464333239376364383833386262646536313263643062 -31323366313737633831333962323832306134336665306563376639326163366665353363633430 -31353964633861653131313938353536633666353764663136323464626661383764323936663530 -62633263643934356638623439333137663536636331333361306636396234646562303465313031 -66323934656539616434646336326637313163356638313761373264633133373337323464633462 -35633861653961326665323965333930656530346538383735303334346331333061643263383533 -66383036306664336436643439316337393130373535656261626439323536353439343835623363 -38313466383933636564363263633435313731633462343235663764626462313666366264313136 -37666630306632333431633664333265616330646263353534383965343937313963616362626365 -37383636623535616437376563313865633139353532616661343830626336323233623765333138 -63363465343136363632626339626438383165656561633631376365303935623431336561386361 -39623866613534663535333734366263323038313932653431313534653763633838303333373231 -37333030616333363631303132636335626334633764366665376532313132353866623931306462 -39633835383262633766336566346235303761303036306462653664613936626633336565383062 -64623036396363306130373561303536336630663563373738353964353433636237623837613437 -31363530353232636161323466613533306539363437663535383662323634376263343233303633 -30643639376363653365343934623437323232323164323963623663663766346135343062396230 -39626466373239656231393532616434393465653433653735383533643466653431633166326332 -38646166653134343237383264396463333361613338656230356136376365613462626438646566 -38356438356665633638366264353838396637353239363832623634376264333938393737343430 -61336235353238363930653037343831396163633537623139616436386161363538343631326436 -64653539313364613539333038316263343135323732393837343563363536663563636564366333 -31623032623861323137343665666665623761363738373137623337396332303232363731386437 -65396530396334633930343333373362666363373161373638363036373432633937346231333531 -38656263393932363032343337353333303437396162383862633230323738653066353136373162 -32353763333930616432386632623535366334396139373935616364346136313462396633303937 -64663864363464336432323538373339383534626237393366306665383862346133326430623838 -37303138323837613435633337643235383733373566303864343563353262313737356536353863 -37343464623663376637386536356562353763316638643235656161643338376663323536366633 -65373033623538643633373663366338396566613863653432343632363431663234613934663237 -39626335303461613662303934383931303364333361633430613632633239373863333330616231 -65623534373533343837343161393230353536623138323939363038373634353235336533376565 -35393466356136333630663036333238376639643933623636393562643234376661393734376436 -33333565363438333537386265376666623766663932316534343663356336366232363064356665 -32396262326231613639373264383430643066396333613337613932626231613934393937303139 -37303562333330316566313966613034656335643362633133336339383835616238303362666561 -62323065396339366432333932383731663262353733343563653837383235623436653339613737 -34656261636533346633346164653630376637656430346464316466383563343632393163353562 -65336137313762623065616635306636633765303061653937383665343766373334343966656631 -37306337373232396164393436393732323031313034316564323463303639616362326263613330 -34366264373664376238623736343139316663643662316336613830656663633439616364346233 -39613836363665613065383462306233326266643166656562653239313931303462373666663962 -38303732663433633330643065626330386438626431383463343665343135366631383865376166 -36363133376464343864643039666563336662623036643236353733323966323039353061643537 -36623935653533663665633365316638313963623233313033323431616436633939633164623030 -65656532353965386132356132633664376265313562383663303633313731393461333161636134 -35336532616164613166376539306233633865656532653161366635346465396637353366393662 -64663137666264363735626566353938373937653436326233396636656364646437666665336661 -65663234346663353639643532623938396234303534646239646636666361623565303031396663 -30623664663831623364636533653036366363323033663035303639633533386563303231333433 -35316362313039366430383830643062353434626366383536613533373261346233336566326335 -32373233643132663261343461336265336438366436356439356463386536363565366364366637 -34323431623862623561663332326431396630313864386333316666336263386639633837316538 -62353933323237353339353939623364353637306336386531633639323362643036643165353661 -30373235306565353138346130363835306262363439616432363533336466333633376639626237 -36316563333465343765303666333933393330386263343334643861363564373439356661313438 -64306334376132643663323637393439316164616332616431356566653631626162393763383862 -33303361643265386663353633323435663636363632623135666133343439303334393230306363 -61633939623062616265376338663431336430386332656564323437663961643733643462376563 -61363930373566653739393638386334353061653037666435303438353836383431623931393731 -33323031356630353139343331313830333131643164613261316639613433666635323737653465 -66353763646161313032386563343636346164343366306539643237323336373364383330646665 -39613434623435386536613032633933363331316262333866636430313031396130316339663238 -30613964303361343562393336386139653135653336383835613164303739626661363339313336 -33626531666237303934623963626563656466666130383636323438303632356235636466633361 -63326139303834356433323332303433653037663061376237346137396265393632643061373331 -39633131333630373762323362376262396335353338333463633431313336623761316334633164 -64333838346436373162653033656465396436343266653163346136613430646538313064393532 -38313366613262323766613534653265393562386265396461366265343031366463373037643863 -33396162393233333931323230326639616564643430366464323236663036663463663533623839 -66353134306561623930336139656439313838366639383235393439666236636463393634373739 -37643132643139323332356636393062393531343331386333653265633339303137623636326137 -61356233316166643463393534353135393164373836626632373530346134646436323335386635 -63373737323235353634333464616366303036386463616435626435643930623961656562663166 -61386363656539626561663266396133383530363465363934313731656463376430396333616137 -66633734333364656139663661336266666537626333366262376362393534666462313136393037 -31306134306638313739663739653663393465626463653064666166363266353034373137646231 -32323862386462303364376234333139323664346537656237653961623037336561626638346431 -35656130333433363235376533613433353563653832323636653764653131616631333261383964 -38646335366339303536336538653536623333646530646532363161343133666461633837653062 -66323062356161663031373138316237383034346534336530356533626161653664393439373237 -31663939336364383662333066633164333338343937303733623736396661323266646231336166 -61346139366437643434343730623364316366656666646532626433306561343263643339653235 -37653163306366336266663065616230336361383739363332663731366666376366373562613565 -38326363383432626661613065663563373861353936646561356463373262656265386630313434 -61343232663861383038653365326164383563613736386436616436663635613261343063343630 -36343163363265663763336239316130323938383339663539366234633737323631336338616336 -37343634633763313435343539376231656161633266333536323766313762656266366132653264 -32366465333362663666306332663037636364303561323661376333643633613937316663316435 -64386439386535633633376534366338396365643034303362373133633566306264356565356263 -63386363363564653662343764386239613036316636303630383836646434333032353261646662 -39613232346464323761306461333963383433356530656166626330323838663634306464656634 -62313338306137653737633234633833653265363836613264646237306438393333656632633134 -31373338643730336430333065613438336137646264656265383638373831373237393161396339 -34346331633035376537323431303231633434323135646565343665363031636235616134613361 -61323561623232373338323331386430373934323739353863306539313865303533656662646365 -35386339613034376537313266386636306463303764316131613961633235653737383463333434 -33656331386638666338393864623663346231336533306161353264323830653733353265383265 -31616361326364643136313562613633353864316534336339646332636538313935343434303666 -65393639643962366232623839313038386562656631366639633932313635303363353132393730 -39653830343463616531653362303930613561333832623939653337383861333762373836393962 -37376266626237653563363035366665636230636234373231396331643464623037316330656133 -39343938326566366139306466353533633261383364323336396464623435313161326162343964 -65313762373863613131366663663331373037323761333066323030633762323732343737343566 -61353866613237346336333239353063326230356264333966326639326561356536646434373835 -32393538613230336665373938303733383364663333663133343237656666333839343466663465 -66633863636339646532313566636232336365366663646363623962353331386165346630313732 -37666265346233303333303334376635643837666538303236393166326532653638316163316137 -61666133393665326139353331613631353564633961396362306666343332636535386532663437 -64623161366465643064616130383031383761323264656533396262393731653538373166363162 -38333566623538653539643030306436353465643665633538353161666139363064386434323338 -65396539383436373130653230386638383737383034636135663431393732613930643635666564 -62313731323562613966373165646262663961666264353362613330643631623639323866353137 -32366263623036386236663262326133613562646166656339333538376534643761396338656565 -62303733326338666130613233653330613231643963653736326136306565623431643332663062 -33636131343139306366383564346564633566396238386136363436333630663938646138376265 -62383630643230353862376434363032363235346639663863383761383463626631376233333734 -64663639633666663131336464346565356237353730633831373039376336666337323437316430 -65363538356134323665366232643465613930323461363862393063663334336662393639343862 -38666536626237623566373136306637613539303665313838396538663534393034373831363062 -31613437323266356261343935643437363139336436393734343664333161623431366232366631 -34326138376637316137333665636230633064313663336662323637363265663335623537323661 -66353235373930356266303738363664616461383862626431353639373538336461653639666563 -65333831303239323563666161643238323135613836393735646564633465623936376339353339 -64343732636431633132613334303561636533643031363934326463613463356464336634353838 -38636437363037363933636463323463613438323066613865353032343662386532363865336466 -65353462646563336433376565346436333730663036643930616666663336316463666639306266 -32376139323232623138376339626461366334323563303230363763623331326237353662333035 -31316633343337373637306433623833613330626136346665656562343635643538663839333537 -32663136316432373261343734376530653362666438623362326638393533633034616232613133 -66616663326132353464393937636633363064613863303932373864366662663233646162356261 -35346664323536386164613363373962636139313638613461393063396365636365386534326530 -62393237343635323462313265633263656638363032323834383739643634386430633037313336 -66646265363333336230343636333036646365323661373765353335383336373331643862643763 -33336139343661623032366532303133373161393336656436646564336635326363613565386266 -36643164313330383665646164616335396138663266346563303434663462326435323261323630 -34343134333337666263613332366364343337363437343663343839373763383865366364653439 -34386132323436303661386665626461373539656139376263663139353531306237643738656136 -34306339663137346165646237306366393838646635666164366163303439616564346163376566 -61656534306361346465646232363030313539353735323834613839656334663531613130326131 -31313435316636353238396532306461366263373438343134633364333330613530343333383131 -37393138303265616634343330666430316635656565363864376234303339306135303162646131 -61393432333232366337376239623130663862303034626233323766303534613932396430626537 -66333664656535376264373965353036306262346537613933633264666132366464303537383935 -64666134633438313337313066303765636562616634653038346431323565376639343337363234 -64323537656164376263396337366132623038656164306463303830633361363265353466633139 -33666531383332626565663166626336393632393534616237316262393035613533353261656135 -31636338663865616136646639366631656234313435363136366630623536336135663335393263 -39336562616461313764343961393030323966323566306138656437663239393537633135343966 -32653762633537323432333733663564613737626263626633633064633233656535626366353333 -63316138346365343165386265623963636430303164303830633363353437633235386534373264 -61346238323633653839653439316562633136346630396634313939393039373938336663313962 -65356137376664356130613335356437653039386432663131306632616630326364643838623830 -65616134396630306363623036376261613030616236393462363666656237636537653663353161 -66643863616331666531643530373336643163626637356661613632373233626532383331666264 -66346239356437323264643838383933626136636261366163636133356362316531623835333466 -64353262393538353734353464646637353037626131376630376264646535333133613534386162 -66336338643061333432306138356662356139313933393736363131383239663263626164373031 -62663831656661373862343864656561363038376564376430396236306364626434323432636262 -34643534663133316261636432393837333632636333343139326565373034383131363533363466 -66323962303332316662326366363364376236373637626461633732306361393437373065333231 -34373864633230643538613738313638653361646266323736306132313637303037363137626135 -61616639356433383830626330623861376662393335356537306436373563643631353834323133 -35366262646238666664363362643163623132663464306134306366356665636461366135613931 -37336164326337356438373633663363663333356536643632303636643064386666646465643539 -32366536373561616664616265356138646534376435303739323434303663636463346132396235 -36643966306565306264363431356139383431346332636631653764623930333732653161613866 -66653665653564613866643262313831333362316464646162613238636561376662353532623833 -35633233306564363166653337323062353332386138333530323264636561366539313334323938 -35303530333935666132666532663439653161343765663431666439616237333963626539643839 -35373135623638313166333130363362643338653136383263653639353331343265666236333137 -36356336366234363932353030383232356264353666333737616361333939306530653632353030 -32366131666438373830323333343438363335326561343737386230333863393233626664393433 -33306136313261353039366337653262623431623736313139336134376233646133353937326336 -30336239393363633636623930333635326335353732363133353762343537616334316561623735 -31366130303362343733356439386637656333353264393064643036396530633164346365316237 -39316136376666343533386161313630613530316433623564633436373261383031633337663939 -64376565646661663865343261356131383164316537643734316434636230303732356261653964 -39613165313266396237636232646134626239333835326135323165396632353465303235376534 -31326662666434386133336531313361396363373361366263343339636238616564366231666634 -34613438626632393834666264393036343633636461303866613838363134353132636438663936 -37623233613632643039346433633336613931306237653731386134343964343038343261316163 -64636431613539616430376436346530643237336261343435366563363365386134343165313036 -37653162373465396461386534663738316564663530353966643732643361323438316432353566 -39646536643361326464616530303936663935313030626439653036326431613733626361623866 -64643932303634613064653063663265356132613064306566636338633334383132373934663563 -66306339353165383538363734346662366338373861343733306636643039636538383932663238 -33653435353730323030613866373630303261303435346338393031326264313663306265636566 -33663238316661376561613636353634306231373635383362313365663736646362323563323638 -63363433656332336238626238653961343238343830353961373239656561326237333038363135 -66373263316439643037653563303261376261383136613561653837336433353064623836396363 -39313131613635653231636163666361336635616363356530306535323932326338323030616439 -38636362653833616535666134353465373063363765643235613835616361326632656333333936 -34303662353935333063393632633138626565633965643132323733613638653966356631343461 -61353538353334343734643362373062336362303538623333383661356436343364373639393938 -65363438323035336434323932346365323161613232636231336331313537646164353434623938 -37663938376464616336663734646236663566353339396336383166316430303237383364393632 -61366136346332626430336437336139343434353835333032656163353036356364643237356261 -62636264643237373862613132343037643532613634323365346538323462313766666136323731 -63633831643534353065316533356433393733613038643066363631653433393665306638303033 -39623763643465313238636464663532343232636433376435383437373532336633393964316365 -65653332646134356236643730396434346563363233333730653738646564373532373662376565 -30303735666261656437386436313465663765636432356535376133616434333634383765623035 -34343937373563613438386665396536353530616433323838326438653762653762616537323864 -37616363373131323864613663623935633631663561393939373466333331373738343063326663 -31393233646332613166626435396534656334636538633930343436646431333637633032393539 -62353963326337343665303764393865636635666638306632373330343236363036323033326236 -65343436343363643531663434323330326431616438343863313237663739333030643361616535 -63336239646534303333383261383663353633336666356335646333306166623530363831396234 -37626464623266656535356535396438383235306537393234306166366532633331626134313062 -33333035346436643236396130366637353839653534343832643232386231653235363765383836 -65643062663736373335633034376561393237363836643539653832373262313365316464363630 -61373363636235343036653839393061663231303136303366386661613235326538333937663439 -63386537653330306633386132363062336164303938363430366538643835663163663962356165 -32376462656335396633316664656437303833306331613261333237346637343336303065613235 -61323038636463663562356261353733363230306535336231643232376632656466306235306263 -37343364646633306330623434356561633262633665303630626165626332346564346231623431 -64353066623266613665636661633464366164356362313663623337326663303931656564663066 -32326163633438323661653933666535336638343564343731393639646262366661356333396335 -36333938613561383563306663366630376665356638323638653134656431623466343538336534 -37636530306531326538353436303733383137313530643339643033616162633665623262393832 -38656366646565633365366139613565393362323162663234346665633736323632623230663733 -62623334353063643936663536363230393733333934613130333364393663346564656236366566 -66306533613138333731653461343731326331323132636339343631353137353764386662393964 -61633238643065623062323464343932313762363631396132383035613738363064376539343434 -62386262326164613938653361633039383136663761613561623265316661616264373362626138 -35313936623963376665633630633338313666306464363166653832643430303662653935613461 -65373264623166363366663366616136643132643164666437353333653363363632373236646137 -31313338653433643834373736386634303932333933323331613834366435613436633733363463 -30663462303966366362626537306466393737633963353339303639643637306134646261353831 -61303262303739393330376162353264386632326137316539396363363133663066376337316161 -36383763653433373133373134656432366130353834366262383266346531396164383033356266 -61343363616636366131633735663063343235633338623963383666643962316338323039356164 -34376165663563383538393834613436363732663165613137333834363765306436383537653539 -61306536646133356133616438623335633365636266663965643231373531343434333530396439 -37383861303464376233396434326334373234323733366138333535343362353333393161663938 -32303330303631613139323066356562383564353439663934633461646662333566346161323937 -36346565336461393930613831623239343332623637643137356432373133323263323432356462 -61356363353163633866393733653464336261653538376463363763643430323765333664666234 -64323135666361313564383964353630653231666665353835336365303662393635323939663737 -31306138623432666664323333616237336432623130646233623766616332646330653865626630 -35356630363731613661363531356663323563373037626632656562363431373763393464396434 -38643937613534386435363462303439383634336532663832373064386566383036633366633431 -63663635666131333636613666643838396364313238306361316564326465346233633936353631 -39373765616166623666396538663035313130623965336235323130356438613638343833383562 -31626564343337316339336466333131336233623965386534633237653864353764323034366161 -63313162333538313037393034666231616133343736616262323365646431626232383031636534 -64383264393666626263643033373163303163666638343637373134343737656364373137353939 -31336437653537306464376138393830326463353362333566333366336461376438643963623165 -62316330646265333830656337633236373437343534346638383737633838626335333233316135 -37643935663438663436666234623439623835306364373132616463383664346665653362373365 -31643637353033633134653130613835386231646238306163373231363565623332313837323466 -31613539386666366265386533383137383638323936343831303738656335643839393338656632 -36643233363637626362633138393731663362366632653830393938343236646339323266363366 -31306133626237383435356435613038303331326166616436623436366638346163633261663434 -38376636646439393435343839343634643138376261363638363230326539373262366637666666 -61653239333561373635663465393334643965313138323063393266343431343437323631623533 -35373765323662643261343030333361323363366262346465366239356330666335646364666461 -65623932353235656362656235393164613536626131383563616234613661366563623033363237 -33663762393731333632363234383565663566666633313766376530343761396135313362613532 -37366431336466303533353133663633386535366331613834616464393866663236616333303934 -65306233366463323834363535343765623966663163306435313037386163343536623366363765 -36353664646163653261626461353766323039643261626234653235646665616539316439346333 -33393865653132326538336139313666623733366437653732366166313031383364613462316563 -38663935633232333338303765373533633833663162656337366337373032343632613532373839 -66363435323962656434663838623865373833623036646430356662346133366439303235653533 -35336132653431313933653364623830663637626234336163666534373235346437353837643731 -32663937653439663763366439343838663736383064666133386233373462393630633466346135 -34326135303937336538326463666434313135356363636537653066306536663763646563363231 -39613736383362323035383565303662633532363833366131666637316564316230373733333735 -65343064396162376437663535363934356631353039343639306364623538353566393435333437 -32393730353032366465653332646165393066613761343465373734396162303433323733616430 -31323435336566636437653036313430666464643130346164346461386265636233376663323966 -63663433646631343064323731373931646139663266653038373364343138343537656131623964 -32653861303433353834656661303933346539353937316566303232353834313736306535336632 -61313936306630633265323437303666623663353539633638633436316131316466383665333761 -35326561616162323064643032333232656337313939363739643031396635316232323964613065 -39613438326266336462653539393735666561633364653838353264333439303362316137633434 -66316332333962613461656230623130623831336434303830363838626637376430373263303165 -62626433643533313537306437313363393063333765646661616338336534363630373063313766 -62313964343561346534663238353736396366326266656239346362336637363834373162623463 -30333936666533383533613038613364666639336539336632336532386361613733336534353033 -62376233633062653235383832346637333030626662666239616130346237396461626165363330 -30323731353430646537346366343933386436666531356635636538373838313566666365373866 -63326666393337363764353161396661386235636466633566616363343832653532636231343130 -61643235663430326665343733383465366365396665666338623130376439306566363662333531 -64343538393764623835313731653633396465396161363535333837613865396464643037633030 -31363530376332303332313635626230653264356263323838626435663265353434373261636261 -35653238376632313436396231346634616662323361333164323764323239313938313063336439 -37663338343563323334323730366530636161636534373032623733313565623438633037316530 -37623763666566613534326237643731623537353231653439343764396533666137303363393539 -30646233316530323331396362313630643935643633333131343430346634333239323133373766 -36646164383139613865613233303265323936373361666634383436356162316166316664616461 -31613061333561326162623163663933386638313763616266323631303234653638306439343931 -64623432666133396131383734306563343333353363363034633664373637376331333765646462 -38636533363761346263653362343133396237333664626466373631636262356137626433626366 -64613731343739376465333632616631303765323866636566356461343138376666636563643239 -64323431336331363935633437353331373135303331616136633366396363396262356364396537 -66313231363236306165643735626530646361616239613030346163613962643764653163316239 -38393735616535643361333430393735336531393337356635353566643430646432363932623437 -64313737333430386464643233326531653735376363613233356538646562636537386262323038 -65336461616132343439316164306134626561623962383030373131333365666461616431313164 -31663032653764626161343464343261656433613761353734613834373835366565666532333264 -34613132316165656235363162313165313232313863643139623437653939643531343164623764 -63643436326438383465636365633437316562313361636131356433393733636562346131646237 -65323737353037313936363765636566623466306266356562336562326132393665636238333032 -65396533333934343263636139653733346335336565316661376665373335326562616565393763 -33313733393966356338323936623062353536343461663235623937313162376163653637393166 -34626263636433356264323964633435633239353466613063656130623239343463386338363334 -62613832343032326662346331666264653235333433373338343431636231386135373066353435 -32373731613963613065343063396233396432656565333332343137363466303739383333386335 -31366237313538356366626662623163633861396534303536616630383133346132366632656639 -61333763336631326537346239363065666537636633636632626465333133626234383734646163 -34613365613464393764613030333839393434313862646234623162613066346363636232376339 -33303830636563383833646233623465346363396438646332653161653862366236386432326563 -35383430376563636330356166623165613139303430613462626334636664353263336636633332 -37363531656235303364656266663531666139333861396664393336636461303937626331313036 -30646662616436333238623233633630636138636533343366313262316331616239386465616566 -39616161303534313230353334633932633765613861306231396539323766386537626632626435 -37623431303163356565626566653236313131613935316636623131363234633134636134616164 -61396535336164656663393936616565333832333766363466356332353438316136653266643463 -62386539333039373739393239316135643964346237633430643733636165396331636631633336 -61663732363939333034376538313663356231623334326437323431313337353236366562343530 -66616639616334356563616662316163343061373265663931396336383366366230323764383062 -38633662393164333132613463393139396532623234653635616231623539626464393766656666 -62333936383839393433623230326539373938383134376538623333386466383963626566613162 -61393963343435313135333261636164326334346530376365313662666332333365373732633062 -64643031303733336232663166373862396365653465643630366534643366346364653233373239 -32646161623965633638393732623131643065303331623862633337336666636131343864386533 -31353038346432613265623138386164666431386562306132333233636665386332363634303537 -30643039616238383533646266376664663230633339666561366532323562386533376437303230 -37363066343233663132373666363964336364303235363034333865643635316563383561613365 -34623232383032326465633838393262653666343166663033383062613734343463306333383836 -61376533626631643730646231393965636533656434313430653962373139613738333262376434 -30646164626330343935363864323330356330346464653731393130366563336161633263663331 -64366436373537323535356336613834363634346631316662653830643532303635333236626363 -36396338653461633935616432386561666231653132303235643530366439386461653566326261 -39333638626437643332343637653234303236643639386430306164313433353164336464346666 -64326139366630346634306261313339323862653336383331333061343332396162346565633266 -34386462333462313033383235313237613263373734326561333865373361303264363038336465 -64346632623137366139646634623165643236306331373736366534613631646632303164646338 -36613132366363633236323839346466393936653966346631363035626236313166383566323333 -37653365346165653639303038383438653931363335633465633138373239353861336133666263 -39393133383031636336326464343835663835333562396233383430356563663331643537323538 -36393832653637356331366537383634633031616136613065353537346363313361376337623433 -38643333306236313230626363333366306236376130356261396365396136616431313339613538 -30656536383836653035353165353734633833373434356238393539623438323233666462393534 -33626630626135313533383364613661643865383466663936643665613434313563666233653534 -39323932626261633331396636393766343334366466656161396665386363346336326339643632 -63623134643536623239633135346162636537373361646134313436363135626163316636306335 -37363834363230336538613234373361346135633462636138366230326438376132663439656463 -64336431613062616561323961316136396365393538346336636266666633656266363136616130 -37346139643765653936343235636532613532373239633436383863356630303538326666363162 -64653362316664306633386163346662393561656563623664626236626362333164653632343064 -63613938383862636166383436396331303461343964643735393166346662653233326433393436 -64373338356266306231623862313331396466303431396362396637313932346461623661346334 -33653232353137393539633135383663663235376430383432326465343030313235383563393861 -39646164623031376563366662666336383735623236396464336565323062386334363336376136 -38636461613536326439623066386535363739323065623062346237386339303536636438613231 -66383561613633666232663164643531383938663330643537353636616536313733393530663865 -32646331613930313065663535613531366139613435613137666564373630373861633064666438 -38626163306438616635656431353630666161653934316334646366303534616331353561363164 -32316161653463626231323862306130356131323464343263626436306434653039656631323336 -66666164626365386635653531343839653263383366633134346561323936303335396366316266 -38323434373137626366383631323033653963623737666638333762396135666133373333316235 -62396334336433323363363637636230616335663736313161616230656134383337353933656663 -62326237373266643536336235346130306566646630616462306131363866376539643964626330 -35396132393234306634316366356462633638363665633836303030336561656362373232316530 -36643135666434323439643662646633613963653537343437306531613838643435383437353566 -37643239386538366239373461613336643264363534353231626232333930313363323833333433 -61323664316136616161656439656431616534313534383964303736376132396564396338643630 -33326165316639636664393037383830656264323564353964373537303364333137633664336334 -66393665396636396139366538663862653634376437613533633366323366613663666131396438 -36623065643162323264313932613962313734343132313731316632396432313564663234376132 -63613161306166353662303061666539343537616164353836313234306361323635633031383735 -33353136366561376132393466393330323662306261393730306132336162626163323539373134 -64313064323536386266313766333639356230373634306231353134656536633937323466363939 -61653263326266343935363330393463316263396662666633326164363735393235663933303866 -38393339386338383031663030313139373538366564663938383436393930323861393638396466 -33386531326535373264363632656239303836626665623964383239386461666461386534396337 -62353563356133306664356130323532663837386333616533303663626464643462386230616631 -62613637653532373933306662633565343361643933656237646535303563633837376264393465 -63363365313834396135366331373131343961663839616332643937396336323963336637633665 -63306362323265633337306333313463653131666233393338376231613366666362336336313135 -65316235656364373836333862666665373766313537346265306437636339366466616131326232 -30343936383434366337626661646431346430663338656163313238343039363964356639363862 -61303632653032346266303030316130373364656562373830646433626162393361376333653263 -33373066373166316334383866646336396639333531383864313938643161663231636365353361 -61633538653665353036636266646130336636323032363731653236343864306366653861346439 -32333138336332363431613163346137373261663365393539326330343830386461363733313732 -64666432386132386130653230653134383563356636303061396535653333356431646433363037 -61373663653165663939383834373733316562613531343465336236656639313236343633396164 -64613939636466633366313639313331653333386134343564616236626334386466383030363238 -66303631616434643435363165373536633464626162373563653934396362383064336566386262 -65643232313366323638646632663936343565383831303737333264656165393933313234323530 -36663938653238626461393631393561633765643264313064636466333366626364376338316262 -63613839646632363030653731633838636636346663656262656539326432353839313064663866 -31393736363633663138333238383666656235643330373839313862666564613064336664356663 -32356333383761383738623339633133396361616362373939363866656464636530313163373338 -35396539393037303031366263303237613135393332633261633062663161336139613766633565 -63666165373631396263666663323165636236393965333130366630333963666462613334353032 -61326464643030643162633336656462336436623830323539356166653766626535333864326530 -31323435316531363532383632343236613137363633376662303937613338333531316330376634 -64666265646535626166653161383763623737303466336439623331363464356334346339363562 -61646530623138376264363538383663363562333639313662646566333263613466376632653466 -66363339653836373736316539346630346535373032393239326435663266303936633935303765 -34616333663665366666353862383063343233373065626364613432363066313435373631643738 -31626534316164356134633836636538356161343936613137353562623030663263616534613837 -32343865393363653065636433363537353866663130366664633762356238373431306662393861 -65653331373331313731623638623733656165373864326165363665653834353734663333333936 -30653163623863326532353234373931343535656531383964613262383534633133356362643762 -31383631306365323232376266316530333230383539663437343364386133313333626566646332 -64313335376235386364316661316638393531376238386662326364616530363737386335613361 -62366363656561626662353934653337646663653030383133663536313039343235373438383636 -33323436333231343534323162623836373231306663613538386133363834643639336631333431 -38373162396337633732306130663662653338626130396465383862343662393762656638396339 -34616135313235336461336639363631346161663764613462633465303334333134636264393132 -33653363316136613132323637343961303761393964663432636437636264303338336135393764 -30363461303233653730656138626161396664393138636562303033393861323632613832366630 -35346166353536656536656663363532346666303137386462626362363463373366333366636234 -32616566643761313339623838346234333531313163326334393931343866386233343637373737 -62343464363334653831656531623738326139376535336632353634333135636262666337316435 -34366163376135396631643964653938643231313139366136633537643731396163646537363939 -39343465393265396634626265373038323961663037306664623039396536346130343438353035 -61383739613465616538383965313334386634313431303531653530313334663963633831626233 -64616534373062623562613136613165326566323233353733353562633534396632303336356139 -66373435303832623931376633326332316231326136333832366632633433633433326164633136 -66656230623836316233643535623365313166623335373731613636666466336336306636623265 -34336135306632323332373733633661636533396431333334326265346238386638613336666134 -66616231313166386433313435306562626262363730393165383635623330303065656637363530 -33643535613832623566383232646535373938653261393763353037383030376466643836333762 -64303738326637383234386236623636326339343764363538396531366336326438643266356237 -38616432316230643261656261393264623839376234336333643161343138313831313466396330 -31366561323936363364323836346534346334663436373333386438326235313764346632313864 -39356264616166376331376235666166613132656561643361326634373335333233373939363734 -38626635306264313761333966363838643334386161623464373837383365623761633462636264 -66353631643331613764393663616135343535653065306365653639633638306539303833633964 -65333164353736393730313766366630613039376334323236386164343330333333373636633232 -39323762383730376362313633373464636432383831663738363733396134383431386134633133 -36383239396333643735316133363961306666663965333739346638356334333738633138633363 -66303630323737616332376163623739393764643261353733336632373336653463333539336534 -32333637333038666139316531363763393063643135613434366336313132333862643665633437 -37623732663635343837336262323630396436343361346235336464353366313030656436313335 -31623334363534643432336263336263323738326462303732313665393333303362386637376336 -62333831356337663534633839393136363066366235653864316338623531643563636137363338 -64646638363335393538656331313364306263623531643434326638386465663735383139363630 -32323631333731363362646134356333616135383630643333363262663036383832383962303862 -31326161313831336364323464626265663363646532316561306565663833653839643035393930 -62663938386433326437393739393135386436616461613132373238393865653430613664613661 -36646131343264393964633738333266326433306536616137646337353034643864353762646134 -37313630633938346434363837663437343336356436656266643139623833353833663965303333 -62353664386264656363636436396137646663313766336137386235336666396362363537646434 -38356239316432663734376236333730313663353430393439366666366239313861313563643564 -32393233653262616232643830663038643664366561373361326133373336323837663232316136 -32633933613331643532343132643062616262666532373764343963666437346333313136356136 -39316536666436323036306439326662303632663865316130313732663938326461326363663361 -33633865383930666431663231326563616439653239333364356533333464306335643233323665 -31646532343734663464333233313166313936633231303130346439616230306537333937353866 -34393164303061666161643338313430363932353438323035656233363634653934356664656535 -38646536326130653664316265616331623664646464663035306164363664653934643230303265 -66653762306665363938373237313237623536333165376335363432666664373135386535636636 -63303937613131633738663935326665326335366265623335313636303230393534323066623437 -38653261656539386265653261653165656333393932356632343963616531646534313265663539 -38633238363761336462333964653238313236303034363932333238306562656665353666623063 -36656663313136656337326430653462313536313066303764356332353364386336313534646235 -32376239653364323162336264623235316535386363376464613330666137393132373738333535 -63353561666432363166353430626331643165373361663336366634386165653537373963373133 -35623430373030616635336266623638323934313138616239653462613165336337333931383739 -32313633363362653939656436646635376335393261353430366463626632313065393862383235 -35373536383264373530636634356531393736303233313061396631303734336262323031653164 -62363034356564363139393063343731656633346566373737346435636166353161323162386635 -37323737663766663836316538343239313337623036643464353663363130376466363335636462 -36373537383430346463323431663430383366333534633539393631316238373034393131363163 -63633033666266346334643139646535653834333139636431353638656566653832343962313332 -65653032613936366263376633633230306638613034363062396165376539313936643665636634 -35336136353530373736346532353864303366653263393335653833316235363039646635373635 -36613939633566306637653638623338613839306137366330333339363538363239353166326634 -35353737393730663562303164303865363262353236303637303961646235636237636634653836 -38616336633632636139643061366230366432366132333233346339646139363237633765613131 -61386163373364633030386661303231366337313865373930333562303662636635623761343737 -61346130383762353766663530386661376361616239383464326664656264373466336564626339 -32383336333931333232363035343765366136383066306239653338313963363032396366643639 -64613562666464353132366531623634376635666330623465316139376432663438623132653662 -31663533303434613434626336323161313036316539396532376238343132643434646230306335 -66666366656530633037343937363032373136656465616130313834353632356630383466663632 -64313835663239383365323034303665373833336639343839343232303639336563343634653465 -30346239613734353163333637373761303336646138346238343333323264353366656439626431 -31346537353738656130393563373737626535383461373431353432616335663232396238353134 -65633536373734623264363664636661353430346436326435633936623966303664303562353362 -39366134383964386162623230336535613030376637663664303564366131386335633332646538 -62356464613838653032313531663566306363636464663465386132326338633861353136656236 -38326562633536623166383537383135306130636566343533643833333938333364636432623437 -64383037396333626536363031633662373566343636626462643832633832373562333232623439 -34646233333433346138333462373564323334373365626363393533613535646430323837313539 -63323563353432323030353630646534383836343037636230356330653866303664303162656663 -31633461363064353764323465663534626164363933646430323833383737636136393563353234 -33313135336365383539373438396531303936313936623765643366333565663735363539323132 -30643262343434373562646431623631363061613335373435393461663931313237356130373832 -65303538653138643939653961666334356331663830663861363835363638633963373764633639 -34643963666133383963373233333230626633376535643532623665343664396139656632653166 -64623739373331653334323230303138303534316531623638616664643266316362646264373731 -38356230653739656164353431353933666164353737373233613239643136373338306466633730 -61666537636365373163393439636337643936316464353334306231326161663263383234646131 -30373961613064373331393566623761356537626239313731396531616234386236663739393538 -65643062633438636461343132376466326533626433363630383061633064343436646263663361 -38366161623562643133383538646538316262386439616362303463356236633463633565643262 -32373362613034316565636665316361653631633864653866343835633131353034306338633661 -35633065386366323532623936626436383337323039393966623033373134373039623933383037 -63653336383730633035326461313235356436336636653030343765653734353432666561643035 -65353336373934636130366439333963326663366264303935383661333166336662633936393666 -30303833386338316136353438323964643738656533316539626132313337333034666565343635 -37386133666538336365326361336236613332626166623564336363616431303035626366373132 -39356633626636636265303230306563373035313235376564353264343631643065646162666438 -65353465653930326663633161613433376537343738376334373238633930616238323162626662 -34363438643266353330306436386565346662656266353231326632303563623663343761323136 -62343065633433306238386134376330643032646532386161616263623230363262623765623263 -39396431363239623765313566333733656461316538396130346532323333323030646539636435 -64393961336533313231613562303564356539643537356334623537653261373530373138346362 -38393237656534346635653832666362653530636632303539313364623037623934326366636639 -65636536356165353632393634636464343430613832613933366464373034386636623066623638 -61346432373633366632386164383238346264383230353630373434353266313664346362633338 -35346638623135346265383966383130633330393365323363313437383838326532626562396332 -63663731363636346538643262613462316161376132373966363765373937633235613530346263 -62393135353930633766666334366432383065393932353630333838363730343230396461333365 -34333861633132363832316237646563346538306636363630663966383936326332353033646634 -32623635316436643861323066666461316138343564633132376436306231656561393364336630 -32346235326165346339353035323766653262643430623031363663346664336637616635643535 -33613563626435383462343432326563326135363763656236366261656166323032313730366632 -33616633316266663466636161323364333434613835643964383536353664343335663262666362 -38623137393534663833313539383962383163363337363330383132303665653234653762303364 -31366634386235623637656666613033656331306634396431626635656230363130636135306465 -34383932633330363637656331313164363963663030316239363762653236643834356135316533 -66366137363537313465363138316436386231313238383065343636303363393039326662353463 -33356361396635386564623734633931636438386432343532313065326564373935333562316563 -39636562663764346664356336623235343932633464613234353563666663633639393536623734 -65346464353862623134386566643330383065353239376137613432343330333361623038316465 -62313833656662303964636261623836303339323632313562346534356666633762356639343564 -32366630336464323533336561303035633232396661333637653461303434386663333138303633 -32626465663662353936623366653863613935363665343366656439366432393337646331336565 -37326665386331313862353531346166633937373432393964316364376130316230373565363631 -66316137626263303133633432373231373238373562353363663966383531646665393036653964 -35386565343731613230633166636566656534306363306431663638396162303535313863656261 -31366263373965396464303632393539353862643738373132653030333332366433646564346232 -32643938663465346161346432343163623130393738363162396161643665393461373539323935 -63643739333337353438643236333131333133336661393331383134303962636531633036343136 -66633637386131333337393031383061613136353361393533326639653762353738303236393035 -34633132643734313132323463633231323234363738383066623961613636346139386266386535 -66333331623136323464313538383531633739653362656639393439306364333330636661303861 -31356538363837623531353639396466326239303435333661663833633864623333316439353930 -35646132613138343161656233646163663561363337383938316465353162303439376137366235 -66643731366234313665623965393033643632613835396233313363393861323132393532353330 -63303632613164366532323562396365666237663632353464396633363466386364336164326234 -31306138613432323036373233376531353361376137636238333336353236333531353735386336 -32616430666466303265663165653933656264343431653932626339353538633163313662623133 -63636131306435343332323938633066306132313666303165656265306162363531623930343436 -39333734356333616564316333663065663030626438363539393935343166316530393163613339 -62383661366332613838353366303533613661313734616532386265636566386664643466663739 -36636566343062383733353330346565643230363238353564356463343732386366363464383034 -66626631306431643734383838356236613130323261383964313636646236366130366534373738 -62323566326661333861653562363532356534633836356437323866366564353537383133366334 -35656363346662626435663532383764633336613436363730366433363833323134323966383434 -66303933313463663830386462653131613836616236633166626662366265303734386436386339 -34626239313235633138393464343765366330343432306333396665643335303565363430376363 -37363731303737383833396535316636646430633162373061363963623433646262623233616230 -31386131333931636638386665356336646630356533646636303731306134373763643166646261 -32626333313031613561643835393664386230623438326262613439386235363634663564356537 -30306464633135653861663037633964383161633634356531313163353930366134383331663431 -36393661653236343130643638303965636333333331653232323835363463356464613437643561 -64643537373431393439633762353437386338333330373930646231386366633237623762393637 -34316461363831353262323031366166613536393764653538393038353866326636613666383136 -38623836363435306238323739303365386239333433323834383637383261363839373362613238 -64306438313938353661323630323063623235636434633734323531373637646665393264386662 -35343365353661303765646330323530393561333364316634333736316233336561663734303633 -33383930626131386535666434653966633134366263316532396664636666396564623764343265 -31613331613461356436636439663030653439663063383130326465646435343936636462343564 -64363637653735643733306636323230323666346666636562613534646235653839323964306535 -33333432623934643061643665653637363037363639616535363630313865646136316463636662 -36343261306437386161336430663835366132623566373764376539383563396239653230643564 -35313639633839633333306163643037386439633534333538323837386436353035633761393061 -38383265393437643833343763313830613432666334616238383236373635663361343862613235 -35653765306330313638316564626361653864326530336634343537383961346234653164363633 -34356631643630383266653032343137313036323964333663376233653231633038363931313136 -66366138303937646266323034613733396430613066616161313961333863623033363835393438 -39346166333236306665643631303235326432616538396464653066366133373463306365333033 -61356334613333366132333439393339613533313630376565363936613634656466623966326435 -32646462643165313335333864323633666239383732613061373164613331336137316430373839 -39333265383239396665326261313663313361336635666232613636666635653233303665346465 -37336230653334393235366266303638303835666531333766666532643261333964336131613839 -32313936616430346337356465653532396531346231396239343532353033653333393932343561 -33643434343566366338373439663438336463336234616632633964393366323930396432396465 -31326665633262633966643039663434383762333831376562666335656266666135653637323935 -37633465333936373236343165333762666432663563363465323535386633663364326635643032 -35343037376565316235363232393634656663636439346262353865616438326664353439653239 -61316330356633343966666164353532383036653563623439346366323365653032353863306638 -37336232616164306561316262343439656636323031346336323264333436313434653963353233 -61306164383661326331393732383962666239323932323766373939636630373965306561336530 -32323533666536336130636565313261353536373361656630353133336537356236343834346562 -66313166336435316235323137303230626132383432643730366463633563376534326234366661 -39613236643737343966353937623664383839656630396433373864623165343633396563336563 -38373166636534623835313465626263636266343063613632383664356531303134373864306434 -37653961343865616532346634393566373864346230363964643132343564363336393730346234 -31396533633938323634363036346431623735333665626463303830636335316661326131356132 -63393336643134663031623164386532663633356561646462626463366432643061373632333166 -36373939616361393338343039383862366335303565373032393264616532373032653964613732 -36393736643330373735623133323139376138343562373236616336366438326335663833383939 -38313266343965336239363762616562323962643266353063343932643438363461326665653063 -30656262313535393665393362386466653434383233316636333434643930663839396236336536 -63616266313435626431383866396166343835303064653338303662323765653164333964336630 -37313538666438353930396462333731653466613330386632646131343263323137343363373565 -39313961373938313730386136633639393061333830666331623934666335393331636539343933 -64383565303334343961663539376439636132313066343536353166356538666166383761306337 -38343034353836386463346538373262356166333731636337306333303437336561363665373337 -30333737303634616539313165393064656337376533656137393435613364646435343739373864 -37613233623165616537353238373337623162356533303564393030396536353433376165373832 -33306661633631323034373461326338356333336134383132333736343131623335666366343365 -62366663653533626134366333353437663833376338313864663730323862666565633834623633 -30393761623466376638313738663633396333373565386533633931646430353235316137353632 -33633837353332353530656239633933303231366339663162633030326432356531373662323032 -63643238396563373435623466643735626365346666333133323061373232326262356337313066 -37643737643336336536616436343062363065353532343861333739613636623437643363313761 -66653864353739393039366331656533396236643433643632643836366131393931313262626230 -39643138346663373263376537656434633266653963366339303635393963333735346131323832 -32353534663965613030643462656632333566643537663432623430383137623061343635356532 -32666562303634356539663734323165383930653065303565623763633661326438613934383266 -36336161306633306634653330653439323165313830663036616664376136656135646634636337 -31323361383132646462363764383236643366343639393665633539373739303938333837333833 -32363431653836623239666134326165386638356630633938326138663737633263643463623535 -30316230376463333531626333396164323962613831356362373737623338366266373930343539 -30653238643331373861633931383664643439303862623031343266316562666534356432613836 -63613966663765313438376135623365623933353363366439346130636665313539336433643135 -34333933663161616237656466303665316135643362396234353136313139336164323536353737 -33636539316662323065323939313561323130373962316661623734386536383730353634643330 -63613866333166666634316535366133653937326432653861663464393065656261633165646365 -66333965376135613661306363613762383039653165613465333831313430396162636364666436 -61326663353938376363383039653466363361383434383739633263623538636233313461336664 -63636531363130336637323735666332323464666566393865376661663463353235376266343766 -35653631336436383334643038353834656630303263656539343235353761626234313039326562 -63646363633664386631633238653432393534356366653234663939336462666436633232616430 -66346338383030376334346433336634636361373665646361316566326438376336343531353566 -64623464626637613634343738646366323238376136323033306135663266613161386636386233 -61326137393161353363353561343065316135656633313235626631323834323833376434366437 -35303533386465333731363661313062396236363833366264356232333338363031623634303934 -36373736613966663365313637393532376536303761383236653935353236306366653434313538 -35643835666362353764646562663266363231623962663963353162366161653239353731623238 -35306631613637663565663134653964633937643466663433626333313531363365636233306365 -37393330373364393264376463613433623933636466653331653961636266646330393230623230 -39343139376265636465663265326531633831653131623931643337383639626336323366646337 -31323766633861646366663735363661626333363337633765363232646533306439613266343232 -30373339323135356638303136646633323435303365646564306136313331666161356463353436 -32636363366333363264616131636134653937626431316532653835383063653435643963656564 -61656161653131623832366335306635313538616163363935323930353837396163383239616433 -32653936303063396633386433623163326439386439396336653966636336663833303265343663 -66373934356261613539626261383437343761613362393439306264663337663136326235626338 -39636639353665626536376333633336303631646465623337663038376331616361396333366234 -36363631623237356534303731613134633539353838353365396531333235383232333838346530 -39313266366235323230643732386262393762356333366339663063373331313237303637346338 -38386566353330633138383764636337363530396632626134663039376464643664336561626161 -64663336376531376335663565336363643930346634626339613564363439306464323933373930 -65616635303336313733333630306564396534653432396338373139613236336533663464333633 -38623737326132613361353663326162643034633238666433323634326430343932613834363563 -36333564323937386565373834326363386632343239336361343764353737613062613432636366 -37313236623366636461663164366563666337303762666534366631353862643532346639306230 -66313961353461333832353733376233666234353839333265323239646232383164323338343837 -35663161383239373863623831666332383566393338313966383663393962373738636139303839 -61663231363764633034636237353634656566643936666633333336636334613534353063313933 -36396563363536343830623533353835333735363637653164333431356335313964356334633332 -36376432363539643339643964623462386662373933336530306631336239353661633931323461 -32316631656565663438303065353532306466666361393864663232613937643831356465383363 -34626238336239303032663032343139613762376137663536313961306365633666366265376462 -39353131373834623032323133333630613739313964363439333837363330623534353638323066 -62323635646634616432303036643538663262646465323934383731653430366534333032666462 -33376432636666653366323236396334316564333432633465646362333834303435366533623639 -36343636333037373634303539306337393164646339616565343733623037383662316164326132 -63356464646533313166326463373463373864333530303264316630313063643936666535343130 -39303336346166393166303465313230373361363762646234306137383163653037376664313931 -35306134353239376665633032366563653930373262653738613636373237313866366336396331 -35353962663735383363306439333338366530353234323130386331613565633230383731376664 -34356639346564623438653666663162316638313839333630653864356666353731353334383339 -38333636643532373639313838356261396433343765613962623731636565396130333639336361 -63623232393437333033366364643764636363333264656530633063393230333762396363366330 -64373232656134613335383066323039366465323932393033393365386435333535376565383766 -31336339616432323665313063373564616335333137396436376331663433646562646366636537 -61346536326639623032333463396632333234313565386663306239623236306434333839613235 -62393933613761313461623130356235656635643438303663373938356531616435626164653139 -32303532333536343632323838323961343036393261383165393861343831636164373866666131 -38303831313433616365346233313832313539343365376437303336613766636336303938613839 -37383832636135663434336261653764363831623663323939613138343466396564326239333739 -32393462366163653637373638303138663533636339343039623462323933643466373366333461 -63396361613264376563353732303030396533623535663538633931633462626563393432646438 -30623565353365303734643238623063396535383839323634323531613766333833613238303538 -34373433663637626636646630633461343134323937326239636336653466333231623833386435 -36623734636132306165656332386364613531333638323330353637326664343230633061336332 -38326330313137613136353437616130646337383864373837643862346539636339363032303437 -37383839383630323030663737626664393935663535656365353961393233633934323238613664 -32666630353238666565313632373165663835613962366164633665633237396530303062646166 -38363664646138646432356565363264363762633366396535303535313966643234636433613737 -30633365366564663032373564633832386563346263633965343536663666373135396631303136 -65633039623266393632343438343066346136336439643632346262636234353965613636663938 -31616236653437613931303137336332353235653364343761346431353335626136376264316337 -39313865376161376364386438316163636261376631396563646138663533343134623731646135 -31303739333830613034393765643861656436616566643338313637656264376632616431656162 -33366362613531626162623963396235646431333765333238366165633861303164306330313164 -64323432373934333164613635376536323938616236613234326437373036356462343564303666 -34353237346666333963636134326263313536356662343265653236326536346135623661326430 -38636330653331366363643066316534636365326334303636333538316665353965633331613131 -37306638653962643238646566656435333066366263316435646663376136636163633032393536 -63313534383161386634316565393532613862346438346336643335333966643532396132396335 -61326230333230333463386537396332643634623239643339356334353638336661646136336262 -65353239623063643565636561363934643763353766373136363564323636386235306337393939 -63363731393036333261303738636261636432656234313632366238333136353861383039666565 -39663831356366363439346337623761363331383864363235363563366538636531353038386232 -37353966323437313534636239323535366332363439303233303963323234623533646662346338 -30656138653332373330383932336532383230343666326464323766306237373436343266373963 -62323862366137623935376636663738363837326339396534396238653665326436613866373466 -33343766646663643136633332323938636664323935663838306430323532326434323938316239 -61636565653963363861653931356363373032616636343838353062346661396632396633613737 -61326366333338646536323839643261373866613339663036666537313832386330393834363739 -34336231613765633532646534626634396632636231353265393861323732313962353938333035 -35656439393035626665613231346439326566383636613162313663313934306135333535626433 -66303266306431613430343830646563326233353766663163623231326365306634313938343938 -37636534303362356334323361303630663863343635356363396438656563616265343263356262 -39363662353361343561326463643165306239303764323735306633393133333661636564666138 -65633364313039343238653736636266613366373165626635623462323836663166623638366563 -33666635653334623937306531353937326533626232386263316534303065353061363535373061 -63393239633932363630326235313937376334613634383464633034393461623161336536393933 -61376637636566383537333431653637613530303863313839646230316438353439643037633866 -38613031636561376361393466306531316535333734343132623133643964613632393438653138 -37646165333233313835323932643462616661643165343733323630663531623266376538666432 -62636161326637613038383135363231326165353739393863353030393561666439633732623531 -33643563656138663431386361376561613630303435333738353162373734353462353734386135 -37356639306461613434373334346630336565323764646362633430666132353365633330393561 -65623365363265646132356135393464333438613637353230343031656132363233633432636564 -65613564656362643038353538346234613764333233346438653566316436316166373366306661 -34626631666536633832613131643064313836623531373664373431353031613230316232633834 -65656461396538306564303435313138633438303936646639373962386634303565643333663133 -34656230386462336535323034303665306433643066303564363030323566623333333862333337 -63646533376634646335393038333030393432306135316337363534616334383362663864626534 -39306533313363303831303966333832393366383937646338373438353933353434643535303363 -39623763616466363731613938383065316236366534303433626632653338333863373963356531 -63336439646537383466333535313939643839643530363939626539383933383639646234336537 -65346539643936333638396135356230323863633338653132316461313231653561326162383339 -38363964363235363634383039663133393230623431306133656637363664366232353033376535 -38323262323233666639393839303666376131623562333436396434666638666434326563303864 -35653164393733636130616463343064323865363764333435363765653237613832386130653834 -30386234383864623538323835383832323534356237656435623139646435396162303534313066 -66343536383032303064636631396133633831326564323230346364373832326535623065373738 -35333662316565376561373933383434646264396138613834383464343162393665646535626138 -35373032356234373135306165633863333835373564313130623936623866623134383032663730 -36363436396665383136613633666566363765396338303764353762643335656236373637643139 -64396633623066646331356430643432363835346230633931333433656339303466343861663763 -33353964323437323834343034393464306232343138396534653539343363386338646462383065 -66313531373031346539633137646636373938333935346166656262303364366135323836663562 -61613738613231373364356635663033613262646230343364666363633562393966646635666661 -31316333326365633164616466633130633131396534376435386461633066646166393266343332 -38356231666131636236386536653731326638353465616161303831373364326431356330303139 -32393965633066303161313339303838393934636632613862373565643939623137613234346539 -36333638636663656236373861316233303063383961383963613039386138633365333236383464 -34633163663339346630333437633030393166323961313665663163346334663032326132386132 -37646534626663636266633736393739303965323739623164366264366434616634313735636437 -30363831646332303235336263326534313237376636306161343364623263623365633764356462 -34396465313539316438373566666464306333306265353937336336656238373831336233613136 -32326263336362653961393538396664353439623133363039323662613539383062343634326334 -37643332376164613239336237316538633430633639303235656566656637336262346365393739 -30393430353533313733633736653035626166316436333661656665333439333764346362626532 -64303765353039326332303832363631323063333134643431306163373062653461613161373836 -31623739303439333466323466643966336331306237653331306136316539653064616433303134 -63303835393736353963366561393439373730633261666231656538626662623634613736336666 -64626432383161313063616231323465333364313232333134646439623534393636623665353966 -36313263346331366131343739323365396239646161333632616565303565303937363833626630 -34396166623364613463646632333736656432306632376633643930373639326162396162376530 -33303763393661626434663663653133313732616435303331363634343163653639646436306666 -30616635313835326634323961343534623865376135383832373765643834343433653765343364 -64636665646535303335323838343466386434346431366465646264616634363139356531323932 -63653062616365333239643635363566366530316364366435363732323339663763303930633038 -36303566343666353866616130633536343065313831646366336462633564303135313433613331 -31376466303364666663316566363162373965333833353632383261323438353566373535643130 -65626436346237636564343438613332623034356139303831326330323137346661313762303537 -62303234656363623239626532343263623066326233653731356535383435356332653066333837 -39633730333365306537303965336666623532393432616636646666346432323436303533613536 -64396563383964633630303230343564333138386138646365306130303134373864363038366266 -36346334316537316236616664613939623262616563666332336339633630636436346539373464 -30383333373562353732386533666665633135616336613733633865643239653934303266626262 -34666364343766663035313538393863643830363333663561373734363162376339616536336361 -66623632373766313638636237623939333638353465626565323236643638383965666566636263 -38373532396132326537656265373239326134666631346166656132646231343761316564613839 -36373664383439616661653564363365623531333636373038356334366530336561323337653435 -34646531373931666639303235396562663037393538623739613936306164633266373362353839 -66363038313261396636303361666237633964343036353439633034633164383161656535326633 -36376465653033373136636562613139643630323339343738376432643633346339653561336137 -38383165386236373038613439316237303835363131346633376334383032313965306232393466 -36313563663163396636653534646265316561616333383861636163306566336530356134313862 -30333461373833663664393236353730323332313662656166316230346535353037636664393336 -61313636623936306363396162323732353635363266383539376431333261366639643864653633 -35373161613239666335333364646131636364393465333262393066373065313163613434333463 -66383863373930626237613831363233336662383034633831366364613762623838363034306237 -32386232303664633663356266376533396439373663623837303366386536623032326164313664 -32376136393031323865396134353032616566373232653635373238353666633965323033316234 -62326562656539373163653566656366636366613037373137626632326135316363613234396233 -37356163643763336439666230646262663936633065333861303864356261376563303131616337 -33346538663238393766363738633033376661303238343437383462616231363535336538323137 -30326266663763303732333666663961353337356537333834333563323130393735353662616465 -39316534316437666361666630353466653061303362383238343562356561313464663864613033 -38613230633137313561653635643262373163346431616264306237333139363562343331613534 -35346637373364323838326530383965636461313230333561663465663330653130346364303361 -32353566326539373830313839343864383236333235383933643561316336616333363465346331 -66303561353034626166396434346665396463613433663362313130623061363731323461366631 -31663162663161343261613538373733333638366439653437313765383062303336623638626333 -34346434343635666139363763343264353563313964303832316536633566373763336635623730 -30366662336132623134363933333762343935613136323362386437383961393335613766313038 -37303563643431373339323332313035653262376330333262393836303163313563613162333861 -61393034356466353632316337326538353064653931636139333138376434343161353233363632 -34313833363263343934376239373861623138336632353964393362646134386535343536303866 -37623964643334656237626139373930303263666362663831346265383436363039366535303832 -62333430616166383865323635616136396132373337613034623732333333306430653233366235 -31333030383761656566626161633832653732383463303338653666633266353039363861376330 -63326435366533646165386436663838333736643666623966626663383335313937623534633630 -64333936373030363732363632343737393634323035633763373436393664653339623539373134 -64356238616333306432316134323339366438646233633638633334313339373366626634653438 -30663538636138663563643965333037306162346432626163623039333934363937386636323439 -35323166346637383630393564353263383361626136323335333138653934373733343964663766 -34623834346565336561653935646635623737366664666163623139643239613461376234383532 -39356163643635316264323138303937346164336331663536633830396164633634353530303637 -31643864346534613236363731626131663536366436636561623362363266656566386333396132 -62373037623034316661626664376134366636346632366533383732373035643539356664386335 -37373165396239373136653336386432653365396534333038656135383861396137326236623130 -33343132663632393864626163383731663865366563363438356564396337346236326331336530 -31306136326235373436363666646433363032303637653031626332383835636664643561383530 -62663631623935623332656530323035363463353537633439373963386363343365356163653635 -37376662363930656431343638653862373939613234626663383939356438343466646134643932 -31383635656566346333616631356139373261393433333537643266633561313239386439333563 -35633962646436313738393035343738373264653235613239386338386361633636343661353339 -65663632633166643433656635663365313132633636646463303366316639646435363233383636 -38326662386533343730333935346232343934373835393563633234323437666539393066336530 -64396363326630313065313337313466323430616462393332353633326261313931633031633330 -61666237323738653462633264313438396430613838366262656164633063616131613461613636 -31313361313033363337303462656138663331376465346334613164373564633131366638333835 -33343038636266353530626366306631353832323530633562363762373131396631306137323763 -37313866376363343939306439376136336330636437313066613135336466316163376334396161 -31616435363662303334643130316464326431633731376366636566396133306331613763383837 -63666230626333666238663035303566376339633764336263353631393765653631353832363436 -33313661366130373464333966663064623233386365313032663632663536313261663038333033 -35303261336638313364333634306337373336613332633962646231323738623962303433626632 -61333838623862663831666639623433383565303034666461363862663531303239373736636538 -63346435316536373865346336323239396430623339666235383261376164353063333765333765 -36623137653739353461326333643538303065613033363166336165323234663331346639323164 -63336334323930633831646234666238646638333134326439353866396666636334373833333739 -34623537333239383638353134343665373836336362393362626565376138353465326532353639 -63666135613364343537663962393030346430356131363065666238306236383762643431323235 -63316438373162383537333464653931393166653031643033623962336563343364353037396535 -33393262333263303531336236633732303264353161316639643734373738373135333864626236 -61613739346265326364633764363962393035303966373435366531333330623166376134303764 -65383662653632653861383764313232623230306235316138386630633633313639303762333265 -33653761336461356432643763316334353333323132343936373865396365383436373232323337 -3964306336316266613966646138353265363434353837333433 +32633566373939623135316162306664616366363731643366353035623266393863666530643130 +6133303065336261663865326265646261336633633739300a653330623962623366363034633561 +62666265323935663531613861326366636164343866663632623166653662383831343563656664 +3838373636333933330a656265343433356234383838346237336565346366396337613438336536 +32653766306139323664653962643231626232326461363763363265393538383463656435373763 +64323030313136623165666532376366363064383634373331656566663739396364633733313337 +39363937343030333039353637306461393862623432316438633731383436616632626164616234 +39303138636266666239643237653765313737353737393963333132376431353837346330613538 +34343336303633306538396438343830613731643064313666303735326431336166636263623533 +62386632626539613134373736663139623137626364613131643561666165303565323530366536 +65333866363331323130363433633237383834303036363334633938343231626632353061353638 +62306230623230373038613562633461633063343137333634663562316136653730633934653133 +36393963633630653661636633383031373864663435633163613238396338616438373364363530 +35323061383166376666306131353636393236643932353137663137653066616334336264663363 +65323966663864346233336634633233626262666334383165363134643361633536613438306664 +33393832316538656332363431336130653266316365313837316266653236646464626262653830 +32313030643030333738363330353431646566356164346662616465346434626533666664613466 +66323063636332313362366538616633653735393464306337643334316638386332313436393636 +37666639356437393162346134356464626331333864333431333934613938633732666531323031 +33373866363236366362333865663339643237386464623333353038386563613164383032393633 +36343763323030653665376632663139303738373335613238333361393663643137663135333364 +61303064306532393661613836386534643364393439326561616430313837313035383433393264 +39633766656363656536643061386466363864316162373933393866643030306339613835663332 +65336238396561373364346134363462333861373230656533336530353365323961326330376238 +30666564616161356334613537323631626630363566653930656330333238623734666234646134 +34633630313564326262353734396634663561393830316630666233663632306531353964363161 +37343437313935623931323034303564633863643930376438383835396634373436333535643735 +62306438353538363332363938383933633061323765323661623636306466303437303236356633 +36646538343464336364636139303965646163396333633037353336323837363264353932343033 +30323734393735316335633833373736653763356335643533653765363533326135343632333639 +32333164646134353236636665653731356638636565643633343466316563336666653466636364 +65366563643731333839386235303565663036383334663364653732623366373231346633633435 +32326366353836643063356432343261353431643338323138343332646432393438663764383164 +39646530663430313066626631663333643635613663386334346634363537396238303837363330 +61376661343763353739343561636166336433646565626664396535336636396532393164306135 +65343434633233363033396566303131646463333265333962653461376530376130666230323631 +35393965373633633334346235626535323962323430646533326365653165613163336236643835 +35646636346231336366616537633233636538656639336433653937653063386464396161333232 +37663361386162306566363531343630623538636633383335383266653435383333366166333565 +34363266623664373264366364613032623138643762363262623535663161653135666232616266 +37633738396564653561613838653636373830666263373333353133353465306136336139626565 +39303430306461386665366332663966643762336663663034313364336430323332316166363039 +33646165313031613837333662613464373163366439326337613162653538306532383961373465 +35353832326165626431613862343431333662386535653035316364646132613935383963373066 +30366632373031376163666365656165383337616263636166396539363330386237363433346231 +35666637616337656637316562656337636561393333656332353131666637333037363131643764 +65343365636334656330323666383833326331366263326261376334333465383962626363663265 +33376636353634343735376633373238393932636563323161313834363463346534393535383363 +32303037633736636361363964343061306337636364356333386335343832386435323538346466 +36333531616664623334623938363366396439353231353530306464633836376238323362333431 +37633630373234653865343863653663653538393736623936633466366261303335343461633739 +34313066643764653563616161633732636164626664303063376332336535613033343833363264 +35366437303733633239633362623163636439613137343536323362653439363735653136636435 +30626639336139346631643666353930303863343135306631373235313430383662666632363063 +32643263356132353337393338343630616462643139336634393339396361646462303239613264 +64336162656461373361303266366533643163383766616437656565646336373134656335343131 +61663639613239313861623363633664643966626131636261303561633239333833336531646330 +36383664636134633139623061626633356665393361373230636334306335306230366336396137 +61376362333761633631386162333232636133316538366635353731353633613865356138326530 +36623034343033633766306535613738363730623938373735343037613566623963336534366366 +65346264386561303433333836333432313839303864616366333639316234366338346465376165 +30373738666135616162663138343661643633646562366264343037666231626135303434326238 +64393035353466373638653461366437383632653739306136653938303262316334613830643062 +34386166343265623932613962313566363439643733343233653165626163386339366530303834 +36373135303463346535383565383564383830396234356438343834366164366636396132623634 +62396431623330333038316165643130363866633432336263623735303866653234366638643363 +39313861373437393364646361636161383165383262363964643930396164393663393065663938 +33646366303837396635613763643738316263653563303935643336616439376136313566363430 +38623864343732633865323166353331333964313366376663343362356261383236616566306164 +65343232393563353937326636323237366165376162356233663437386161353436396539663938 +61623362363961656434353937666439396332313537633338373162633438316138653933613334 +64613130646638326465646261383431396335653435393830336265333831626636393364656530 +64393539643434616239333761383261333037646632343765316362646233333165356162346134 +62666432663137313332626435646638303830633137626538303566313536356539306238393738 +33343532313336383031353336393462656337346366346561383564383833336438323033396632 +65363064326531666237336233623430393933623765353365616233666438336137633439363434 +65626336613665663966383235393539323432336639613633396566633338363437623434383734 +32366464376434653636316561666366386665663065633331343864323965303362306634663962 +65376331376534363436313532323339366563393366653737626465386432336635363264386431 +33633338323566643933356632653561323739323038613263396438623162393431376434356439 +65326437663361386265306639346465653433373161643763326439316339313036336239326463 +62376239383739373364626562323737396538346337386439613361316231653733333134653435 +65393565326632323162633636633364363135323738353432666337313061363335623930653531 +61663064306239353565383032643937313531313030356631313837666664386534613232326465 +61383864346565306536653138646434346331316437336264633637633336633063383463356331 +63663237383364333131326266663937393462363931333239353365373933393531623934366461 +66323435633963623764303737306132626336343537636363376136376637653133646430613839 +66626362636534313131653236656166623734393437316236313935626265666534316337653033 +35383662306363326665363930613234336232336631313935366634366262343239323834336539 +34313633346631643137393963646236386662643138343937343362396666646233306138663337 +62303966616162376466373261653338343931623638656636623531623562616236313164613835 +61323033363966383364633936343264633438613961326335616335373038636535656332373433 +66643162636630366461383166396336373738633962366362393130663133366161363138366635 +33666236623236613938666462623665336535623330313066373635663132303433663465643761 +37363038646136636666303262386636303438663435383930363764616364643066393031333133 +66613931636235633764373366326239323436643563333039613161326535383931653437313061 +31373861613730326361646131643938373930346665313039643561613266313930393330316563 +63376663643262376363323737666565623239393332666461393336303161306561353566643034 +61333838333564646232373839376132666635376130616364366561343031383161663333366633 +63326434373933323234386539343864326630303736633837623034663536386338633563383033 +37616639396632633235653438633230316537316137633635653334333039356166323632646362 +36386462343364376536643334616136376239303930643463663830633731616137376135666532 +66353633383964383462663431396463323033373761343133636265626338663432653865383365 +63356633623635373336643166366133316238363139633639636530636464343930333762316637 +35323935313661663339313165663431663264623462393032326333366634396166303634376537 +64623037333265343565613739323662303933396561343231373866623662353737363163366633 +31336130343936313638643233616336323663353531303834613662386235386437643133336532 +36663830663735303531383432376161393038616534326431656666653636666266626437616265 +61363266646537386163393130623363616430343764356266363832356266663962353636613036 +33343061326235376466363730393662376363353736343563366136346361643732333039613266 +38383033323935363631313162613534343936333138633737373138306361663862666335306361 +35316164653466653863626462616363626638383664343465343236633130363137643866656662 +30343166656130633730613864336433323866646235383138633639643732383162643435333861 +33343939613937353735313639633935656166326264636362303561306164353062626333303066 +36353739633365353334373537666564613734386364366539353937613064646132383331353563 +61326563353230393364383939323233373963646134663566373837653430303466303061663136 +64313165653063643266613835353538386638616233333666303337656665356639303332353462 +33353561653164383064643032656136663139643435366535303961326166323961346563643831 +65626337396164373264633964353163383965656437646436393464626230356135376437303465 +33366230616335336338303838306234623035343165316663383863336464376238363432353639 +30643561373238616132383430656239333738306237303834393831626561653062306362643333 +39653337656661626463363838323232393637333636656137353463313961376662383166323464 +62616436633363306333663938336365376630623166303231376534303836626465646235643437 +39393737393234373430313063346433343530613235643365363434373935383233303337316632 +33333738656232353232643330656364343939346137626633376639323034323863366430663931 +31613339396266383963306433363566313133326361383138323536333438613862636330313263 +36303933346566396230316462653861303934393636616365626236356637613732396530613664 +61643934323633326632363165303664626531323534386138653431326635343033393138336230 +63363164646237373862343164656333386231383964396361396239383364313264636330376365 +62393630363561393566346134386562306336353730643633616137336233633737633332323530 +30313465303139636536633961656236326563363439393730616632623038313338383938313232 +63396533643635323533343834636230613339613830373731356637373332646461646265346130 +39313336353563353139376435326539346262316266346464356538326232623834613263396334 +30393130393233393165373434363735333464353364626464353137613835623930323039306364 +38373738623934313463373961393738626531373939643033376635393831336535333961613634 +63356364363363333333623939386163356438333661643465303137333461616466333439396131 +31373565383561363865393162626530643465653631396264663665656434653435343562336132 +65366162353336646634313935613164326332663636396138366339303939356161663834396564 +30623634623936333261373462366530396239323231376538653131656361356535353934323264 +61353035626666313561343662333064663665306165373665643039326334363232663065326237 +39316532323862343461373739666365663535643866313838623664366266393135336163346231 +35326239376439643133666338313265313464303364313539336366386536313566663064343339 +64353737613561303331333730363039643865363833386332306130613337666332313137333332 +65663732373165663561393235343539383664333734656534333031653163393938346362643764 +65306365643434653461363835343566646261613037333365613964336635333831336365376636 +65303465613239666565643638333436373566616230656431366337386631393838373163333832 +66303330353137343136626235323834346661373735393034633662626130393161353832366639 +36303464633036393437343162313963653963323432386338656430353739363836326433643562 +38393261383038353935643438313437663564373531663235343762336237626630623962366261 +35303937626336353930346638376163383266383630303834373666306632396634343539303932 +63306564643163366533353261646364653436386238396365343736393331376637343736306564 +34333632636465633137613737333636653162613535633135353739626233323765316233346238 +37636437313338373930303366666639356539326437633966326330356130333430383839346331 +39383237666530643930333831353062613638633436663739396561393365336231326535366365 +33373834393865343866666235396165666561613933383061353734633832656231633639643935 +65336566393832333564396261633035383465386437613831313239356235383935383263366438 +32366438393565353966323666653865376339393262356335363165326132633637386630353830 +35396130653632646461303161646462613930333136323164613761373031633866363961363333 +30633864393736316132396361623834623064643534633065616330373937633836353436316337 +31306461393561623065613833326363333132363934303061646338323930333534653939383334 +34383064323633343638373737626363656334336435633431663536306165666562366366356335 +35623930336538363638663033363737383034383466623934393830366633326232366536373537 +38373730613537663262653064646434643033333663373131343034306562313638663039633631 +63613562633235616632646235666638383631363339616264653630663432373330643461646631 +30666439663739343438363364353938656435373738303962626638653030343336656161323665 +66653763363931313864653738643066303137306266626564383962386238653561616232386339 +61613936616663633362653839393833393766303031323665343031313331396534303866636433 +38663730663261623138343031633538346466653134636663306630313637363738643864653939 +61373032323035323832616162666437373666636563326366653133383561653530656631616434 +37316331363939306362666538346461643236323965363965656561646533356339333162653734 +62346436653439363061656166633066323962383333633434613962393236613531613535623537 +62353664633962653131376263633266333261643261396338333430356363646164663338353735 +38373864323237383434646537663839313931343832353136306431366431346138306134343563 +64343738643465383031313466316432323930393639386361306461333661303335303362663236 +37373230393731613335353231363266653137633933643838666432343162633232356263623861 +66656131336561376562623930363563366535383330626237343239383033666438323534663032 +34323438303165353830303563363264393263386533393235376439646535393863653963326635 +64333737663732303861636532356436616465363762303534326639623032613634316336386530 +38393761336535353331363830643931353738653161353030336439613731303331303331323338 +33623134303938346137333433303932373564323663343466383737643135336338373630363938 +35633433666135386534343930363063326662653330663531643435336462303661623038333333 +66383961623337306432626638653034326364343238346138643066666238613137396562316636 +35373439373536653861386536316333653031623063613864643138646535656635393634333635 +64633938333634663866356634303665323133323333383735363131393963373664323465303338 +63656233373136626230653139333162383164363537363135333230653035336533626362346233 +62383766646538316232326636373766333663366232363566316536633130363861343539383630 +38336635353734633866376230326166313935653735356466346236313839323961643039383765 +36333766353035303535366130333836653236353961306232346634323738336263386534623032 +61303963306137633831616265303630643161656533633661323564323731623661623763336166 +39323939366235376135346637643831393662393039656462363630323062666431383363383731 +31663630346133336564393530646664656531646137386264333364643639653733646263373634 +34636263656134613337326432623730316537383165363533376566623639396132613030623565 +63373934616337626164323431366639343837363530343339633030653663393561343736326634 +35323564343464343235363131396631623034323030653063626535313132663138373439323331 +33323036316565393435646137326531346664306162303166363762363932383330306632306461 +32343065663133656661393835306361303566373064303466666230363134313563646331393735 +33346532643930393166333366353534396262626139313731356164623434323564663361646234 +34373663393132306265663335663465366631623063646136616465333063663465333133663263 +66326162346331646164643261303466333065626237663364353261633236373536363162666539 +30396635646136616363343631383239666264376335363136313965386163316338353663326530 +64303938623864366166393137623265373733616364643633613662396465636233333363356361 +33303062393334333263653462333663303661303330626637346166386165643331636262653437 +61663035393038393133623163313864653339636262376162636339623365363966316363336464 +61613536666266363662363061303838306139666130393265393135613062643839313865336266 +39343437303165623465663035633662623337386662336330666137383562313430316139666138 +62643162643465343433353437303563373234393138353933623337636532346238333762323062 +30346236326437323263646130353761326237626564353838373638656336396233353739353635 +38336333383136313239613764653739343230613762616362306530333639643863313032653933 +33656464323230633561343332333737346562646332323566333062646631313132383563663235 +66306533633135343832623965323961383832333634643866633831376230376338306331316432 +37626238636538663231313437613933326237633864616261343534623564333031666464646236 +33633632613462306461663365656163356539353438336335313861303235666564303039623262 +31663638373462656538333962323532343038613335626637363461643831323536613332633764 +39343337636664306364313062323834336666353637613738336634323861656563313335353962 +38323363663362643839346432353466656230373165303237323864393430306364646465653161 +37623937366364373935643933383930616661646430336331373264326466303334613666356439 +66633530313364663763373862383561346361316235333937623733306339383738353266623733 +36333062633836353436663662373537653937646537383537633132393635633735323566303263 +66306135393633636431303661343865326634303266643036393036333164393931363534346137 +64386133396332643031636161633130363635633931643634333464363831326238366131303234 +30383034363236356432313833383864383137646432323362313132363639613363663864663933 +63383631346662623530633066353666633963396537656534333233366338366661363938313366 +32613735353461393130366565623237323037396130626166616138653435616531353431313731 +38326661306532386332303633306266376637323061333538353132396163666539313661376232 +64643533313835636535376161346361613737653063346464656564653339623363323234356136 +33643430343036393566326638646235663733316265323933636561303231323334346462303133 +63376630356664393361616133303237663835363135346264396238383134346338336363386463 +33666633376138356634353638343230636331623963323137646136343837303330353232373361 +65363834333139613332633734303637343839353134383635326264366234323162346338316236 +66343239396264666638363334626632323664633965653538636438633161343931386133373766 +37306534316139656562636236316433353332306562613339626261356134393266356162353465 +35616666623639383337316139363630353838373536636165303333386438643939323332353230 +37613263626236386162326538366335373566393165636435363431333039333631316162363137 +39303937376632396366336262613231323538363835656434346430613366353465646463336332 +65336161626631373766646431333830393262626362343432313439663531653731396533363131 +65333430393163306636323562646432336664353031626436666234323164623636346131663566 +36313333313636316439373664663433616335336330386335633261353536616530353265613732 +66333834323563633130386538393330636161373861623537353030363938373739666635363932 +31313431613165613431373336656338313834666239653737636331316162656635306636666537 +62373563636230343239366365336232393432623461633138386634633834353261303563613435 +36373630623563393639616233383934323462383965373535623265383931356462653537343165 +64366262636333316362613136393634623534323034363433303734626239653865653132653137 +34386130643265323961653661633637303533643939353061316463636435326238346532353035 +30653661383830363761353436616162313062623430663631383965643162626666373331653031 +33313562393465636232346565663264333237383766343337393565636439663764633131626632 +64306637373362323061343962636135303137366434366363323164663137393464383837363130 +33373931663731336530306161323539336164393066666361343735656139623262383237303562 +32623732636238623965323264386332653864303862656364316363356436633637303332386166 +30636331643163393332646536636264326362666363333834376132333532623534336436663837 +34363636366133326435633563636564376666343838663631663734313062636466313637333464 +63353331303831343038393664356566386461346137343633323637326133333635666639343936 +66376462633962383064373035346631383662333038313261336430396630646532383630353064 +36623565323061633766333538646239333931396430663137653833353438336130366438363638 +37366634353934333263306234393064386366323861343166313739623737623633656337363465 +32333731653062313130626230386461366230326231376364386233363534663938626637353262 +61306364626433616265313962656635383232326133613332376530653064343937623764346664 +37386431373837356635386638643462613937653461396131336161663837383232306532333636 +36623732323635633533643131323430383632373339366538373236313563613364326263656133 +66306132313762636636383031323735373061353235393231343636653637373439656638333136 +62313733616364323434326661633065303334623238393364663437646632373363336662373833 +61376461323165323733626132623831353864626365633730313836653336636532356337626339 +61363032306161663631383065613863336166363462333561363666663137653436343337633831 +63303732326535303462393039653334376165613764313236383535656332633733656339376433 +63383630666430646666626366303734656532343731636462316161343765626662646166303839 +66306666363866623134323034333935303261613961376561366261313232366632386261626633 +63623333343463303536643666623663646164346637383633636331623532663535363432643734 +62356339623730643335663331633731336334666234306266383564313432366632353363653738 +39616661616439643663656135376235663662326637653563666564616664356566386139376335 +33386664383037323334633766363838353131643834356166333566623565653035383433643264 +32323566626632323031613739393363633131393663313132323336343237383935656137366135 +66363735666432316662646635653364376134366334663636393532626233363333313232373766 +38313339633637333036656636383165623964363831386131343062646565636432393936333763 +31666337356532363032653534633466623631303861323939636331356639396438393435326564 +32313538393039326533353735303034666634636137376535666636303964386538383834613738 +38626339313834373662306265333962336663623739333134633838306562363733393130393761 +37306139623062633935303735613838383734343265663735323033313864666535363538613830 +34386363626166353439666562316265393966366362363861323464356339366162346434366265 +34633062383335656339396633313137656232623061376335333139333431343863616538666462 +63303234366336383436396530336133363830366432373163366637366164316362373266316166 +38333032376134383837313665653338386631663534663762313336346335643265313636353138 +36336165646562303638343134333639343937303861363234326139613166376639313130633039 +33396230353765306666663461366339613231303130353930306662316163386264643062636238 +62626631623061643565623364303639386133386637383365663961623266663435396537346164 +64316335646535383964373337663437643135343731666562343535353436366535373230393939 +62343535633361653066633364373635626266336563313937363564646563343432373161633836 +30656131616635383837626131376531383330353561393231636463363430343539326530653261 +37393365666438353461306134323465393430623261363833613465353238616666663032396462 +33386666633232333931373539623562623066633632326564386164636166363038636238303731 +64326464623762393034393765623539393538383238373435316166333264663033613331316538 +39616330613632363531396663383331613861336637303338366530376138613431316163346230 +30323162646237333564343831336466376563313432623261363336336335306561363333386131 +62313830313239643336666130383138323733613762323436376334396430376362663834656535 +62666433386164363563663435356636643034353532326161613663653962343166363662383331 +32326365343434396365616535313666386361663366386531643236363962303034346565333962 +32626634643637343366366631373533366161643038366234366163303761383832653634343630 +36373536363064333363346336386235306162653164356338636661366430383933303963383237 +61313139323330353633616662646364616338326164383936363438303031393365346438333133 +35306437613366613966313838333337316364636538306463383962636262306631353264383831 +33386564643738306336396133333464643334616531626335333333613135313666323662373836 +37366162343137343236633239633332363266373765383161626165656335316431313331663839 +61323133326439366131346465633065666136323137623966306365363363656364333238306465 +36653630323961616332663863306561393538316564333234393962323530333965636661383533 +37363336346637323639336139373334333961336162336436643162656663346432366533336566 +38346462313438666662356462356236313165653264306432643934333262333538653764616663 +62353464353863636433626330396536643166373964333039333264343134333034653438333539 +32623962663138303134356137386430636666373436303064653131643863323333613364633138 +37396563346539323563663761666235316630656466323162663631373261613830616330663766 +34643736363064303339313435376132353339363361373633616166303431386431636132653433 +34383936653962343931356565333133383130353836363830343364303731396664376662623762 +61646131653766373737666634613164613835333861333365626631353835306239323439373933 +64336664313838623330326464343835363662323432393131626230663632633836623362353363 +65623461373765353064663734346630333965303265313666373630363532326262306166653033 +38303931626332656465383866383263353937303861663138313164316239353164363335323135 +35326432393534356438326131366261366535663432643835666164396334363234306464643637 +62366666656665383138373232373634316162366539653062336665656436313865383430383830 +61303964363563356161363236336137323631373135646538386566373934313166396165333935 +64363362363765363636313838343566353736353738376231333564343666393562353263626538 +34303565353130363035643634633430613738643337313761346230656530386164613331313135 +64313637306165383431373862333338336436646564316437363764323039313236633639386337 +64646434646131643062633238313330333731353762323537656538323834643463656431386439 +32376262383038383162613033653465386538343438313631383365346235373262633632366336 +62343130383736356239303132633162623163323331353666396463383937346539353437643362 +38613838383563366637643034373137663666346433636439653761653161303965646633383337 +37323438323135383364383932366166663231386530353435383535326235393666373135323963 +32313935343738616432623761656431626339303733626537626235356363376562353934643166 +63386431306436653632393464386636343166613030633266666163646439393661383232343835 +36363766666134353136643339316563353137353061643161343562386231346638643966383939 +64323963373534383639613531663431363233393464306462373931396438623630646166396334 +30633864376432346362663462636236343430613065336366633163633335383437623532383530 +32396131386663353635666463316330313161646661353666636131346334313837303633313838 +66636333363066363332626235653335326562363335393861663438326539396163613662383231 +32646138316364643131393164633636316130376537363831343035613166333135333466373436 +35653062633965336665613834396563636335393939613066323839323239616161313136373938 +62333039373631376163363437663131363561366334663737343436353432633837303066643063 +36373164646461633939376663323137636538666330633337336238383933666634306639303438 +38336132386335626461666566666332623265396533346133613234663332633634613531373831 +65353835656437386337636266666365663034316635356334656236633935353233666533326331 +36323832306631356439613265646134396265633461363264313436326437396463656266333665 +61336364626437393535663336386365396264386536333566363332366262346232383633303839 +65613237393365326638383033663763643431306530373463663038393861313737393236313633 +32663932333365633730353137613335316566303634636635376135643232653635353030636332 +30353464373262393537333033653232663965373930333361306562363663336563353861623539 +30626430386631306663303933363433613238346262333463653633633333316438616361356561 +64386339343763333363376537333164396539336231356565373933633332333638643633373566 +66643366623263636461363963613065393537326134613765623638373361393237633333643333 +31393634383032383139323365613538383834656437303938623362323430323837306266643763 +66643365643731326431646363633039343935636466356635336637626633376136646262623830 +38323033663762376462313936643534633038323335303835323563383465336132666661313564 +62313933303835386565393563356665393031343735623436353039353664663366313866643832 +38376532633930613033383739623034343435323235346262623832373438343932313833663233 +33616364326539616665306130613435666239653034623231363965303965373535323161373065 +62366134303637396436303738326363343632616231376635633766316539663438383832363736 +31306662336436363564666430383264383231363662393166393366386536623738366134333730 +66326135353237313531323735313231306334623239383338623034623031633164323934616532 +30323862383139323834326664613836646432353331333961313461326435303665643730666138 +66623533643232386338623862623237383364336130663134643062623263313763323661343761 +38363735636361653763656164323935313662396530383038306431356564313262666639343335 +63653362336433343938663432376135373831656338653437353331343436343530633462363261 +34353437313031633433656632306634396666656164313130346435383866323131623862646365 +37396236326531366131326437643438366138373961613339666236613261353837396665343836 +37363035363635653864376435313235336636386432663463303739313130346665646261363835 +34376639666231666435646162616633323164396238336537646637626636666164353837383763 +63623435363161383434323063306563356337623739363134656363303135356433306530383735 +36623538333630316665623832663661383365633838343836313337616535383333303031323366 +38383463333162393930356434653030633139373930336262346431393439343562653938376436 +36373934626564376439646137623032373031663361316366363038313435353063623030323239 +37366133373966383231336164353832663961376537616634343632336338643938356162653636 +33653930313531353732383562663535316331623361393132346564643132393737366361346236 +39643162373364643937643335376232396430366636633630626636326335333765366531353565 +33653965393136613832373965333136643238646431306339333363393633383539383136313337 +61323536316637356531633931306132326634303261653534353130623833313330623138323738 +35346462353631623333333931626437343165626462643765366430353430343066363537656239 +65646634393763366162656364643138356464373639326638393862303332353265356635303663 +36656165653235313264393439623731353261336539376436613864396165343036616634336434 +33383832643061343939303436396136303966633664623033316161396530313438643166366634 +62613761316232343036396336306165626637316139636538633436383437646130306365353432 +32666432303861393738353432383533653639373331643733663930646262643536323438666234 +66666364393538346262613665613832636631623731323033386363313133393633653566383265 +66636631383635666432313933623766613631336166643766376438326565353431363937383133 +66623464656333363032666462643136646634653332663937313236373165643832363833633865 +33613464353137336231616132313861343731373764393030313835373034366231613933616462 +63633032646633353662623938303764643730353332353265643061373064353663383064313964 +62343564396635333335313538383330666633353934316239333561663738323763363466393135 +64336434366461356264393934303464346336646630386264636534623066656138663731643537 +65623330333261396237396531613037346136303263313837646366643964343165643930636233 +34316364376536663336343862383865353234666231343962336465356134626231613432643534 +62333931663339393736336662636162346637316165363065633661633739363532663637333235 +31313535396534363733613835333631333530313637656165663465386237326466663166343835 +35366665613930323361633036633462633664316437643533393564356639663932323864303431 +63663963386261663566313964653834303935383935333161333838383939303539633933323062 +32663964333831643662636461326663363463366539663361366361356438643636313430666636 +39366561356637313339343133633432353534663939316431653932393766356163336636366263 +63363865303037353831633231643133373264666236303734633430393465356133376634373334 +37353163393463646133656536636636356262316463623762646666643763633931663935343031 +63363532366436633437386438373337626334393663666436643930353961346463333232626661 +35303534323165663561313831353164653736396164643065306334346266373038363664373835 +32633864356264356363393333303437663231656133393362666335663532336339393634313266 +65646437633730346331623461393936386639373630643033373032363936653935303134643732 +31343632613162663830383935663633666132653030316638366635363132643839663937623066 +36333334636565383161303032633037383530653335356531323937666665666538663436326231 +31313536313965366331656465393161656464393862366330636162623164373062373664653834 +63386163623631643664323838303866663564323965623335363765393732666263626130366532 +61663962306166303630373039386235663238306335393066626238353866396161663430626266 +61653730313462373336316232333662646537383636376562303235333733626630323035326432 +31353136653135363430663436643538333632336338326431373235363363643233303739356234 +32373833646661353466313261653936373934373233333933313465616362646433623364343965 +61323064353539346166653562643335313432376261373761306563343730353937313338373565 +32353935656163313663653337326333663537663334373664653632383266343238653464613033 +62666334656639623762656632386533326335623636313837376463306137623863346461353435 +37633036396335643766383930306363363332626437366133383331353139333662343930333630 +39316335343433363466646430343462616238656161663935636230656330656234656366323630 +62333639316531366639363464333266306336623465366133323033353765653962393362653434 +37326262663139346364656239386137646136396131666437373836343335353564333731326132 +33383461306234393334653730383935633864656237313662653866353861356363373335383238 +35653565616366313131393931633363656563383032333232306461303636663237616431393932 +38666334346131626534326165626363636630303133326231383964633938643230343934363735 +35376362353031376434373338633263393630666665643566633164613836313939663431326132 +39326136383634363066383530373934386661643732646433316362653337636332356230336331 +32333738376163306630393831643463356330333838316362356261363362636137643662356338 +39653832366433633736653130643663666133336335323133313230303031633839316665653265 +65656662313132656132646164633361336538376266616532303836343363626362356263326534 +34396137626534643863333361303637363830373930613837653731353434386537636665373938 +33643434636462383539356339323632343037383934393734363832326564383638393238613764 +30626462303436343430386631323436616563343265646262333161383664333338306638613333 +62386337326436663131313437386264313265326337633663653937333336346366376230383737 +65353064616231366566323235363164353662313832323064313831316466323934646534656334 +62633230636132656432646262633433396238363862396366306432303533366466383363353936 +37386466386166353365393466623962366363343663663564636530396532656266633431643264 +33303633636562666537313931623664396430343937346166376130653962613465316463653234 +65333664333637313336313233623763373961326361313832303139383163393238626663396562 +30376165353038396331356333373565653632653836383932393439303938373539383939326431 +62633662633530366137363564623835326634613830313762313162303137366537366431336130 +38666531336264343836346432333562316665613166616664373231356235336164626537643566 +36346537373837623332376636626131643964393532616230636232633863336636666533396130 +31366138303963393831613730326339343163616365373364383032346665646530663636643331 +30363364653035636139333136616233663966393563376333333333613038363262343862363433 +38303866326134303431666631633736343766636436306333316261626330346163386363343863 +66633637343864666162373134336631323861333564663638613135313732396335633933663335 +39643462396265653831346238616339316235636432613231376339363866333134303161326532 +64376261353238623561323162393265366330396466343966396165366234363638643562633863 +32646131356466643538343938353161303864353163393537623938643064653763616237633762 +34373064323438343235363339353731333438383561633762306361613535313332326631343037 +39313538356166313562363561346230656661323436633262343765356564373963666563613661 +37626332663234383535313466323562363934656634636435363234393537316162373764626466 +63383032383165323838643232323035626432613831383363363837643631343366306532373366 +66313231636562323962373965653361333635363335313732313837356661336234633836373563 +66346237376130313932626263323761643435383065326464373738633661303433353066393866 +35616461386662333461376330646539646538376261663734663365313334336564653964633763 +33653663666431303132646330386161663135663864343863656433333566653731663366396236 +36346130363932636437386665373166643634626131376563333131383063613330666635316233 +36656662626466313164616334366435343233303832323833316364363032656165396338323264 +32303630366666666439633463633035333761666666356437366339656535653565616439353033 +32303432623636393865323364346632323766323965396133366238313839383763646137346239 +36336565663036373634343466663730346138656461623530383062623165303930616333346162 +36313835623765636562343832633066393537613836313733323932346332346361333763313762 +63343430333865306333333336666437306665326536626634356338356432643537313832623535 +31393039366232363938313238623365303632363431666232336661353262383263353163633433 +66396533313665616334363062396561336534363064353464643262383666303737616639613136 +61613331306535356131616231323764373361373939323461626165353437376531623434386165 +35643938643561343238653566363330643163386534326564666263633732646236393432643334 +66356530663330363130343639613964323031623833616536373737396563613834306637343064 +66656631323261363739393836323031303936386164386535333162636336613534343166386137 +37336436336263353430623731313664643231356665393165303265356164323664353832363733 +65313439343836303461363264336633623533326536666330313838343331643835613131333962 +62396463666631316131383935663533383235346636653862663166343463386336666632313631 +35663236323463616262346331396332613566663735636632356364333466323464306333636163 +34623464646137353665313439633431313638386334363234626431343130363666306133386435 +39333561633261313264636333386236326461363131633237323161303531386435323835386365 +35316630386161306161333532303638346562643336653632333537396235303135363362336135 +32663433343434666131343933666136333032346534313861383239323530373035313037306338 +32653335653031353562353035623266393730646236383538303033343933383938393862316239 +63626364333138336333353632613036373633363230313536313636656161663738643236646136 +31336632333437396334313930323430663038623932393761313931306533653666333832393837 +64386364343534313536656434383239316362346439633031306233636264613666633632386539 +34356338343235373564666330383962333761306663396338363262353133356162623266383562 +31376135633163303861373930396265663166653961313162333138356234646163623037633937 +65333863313736343634356464303938623231353964623432323837343835623664333163666339 +34613039653866376363633537343532626133353763386135663561323566373566313331343461 +34663462383764313966396361313733333761346661353037366339336365613561613830326534 +31653561316239616461353932663037373661356537303663326565373661353831306631633537 +32373262363862366130333261393337646430313263313464323664656631663034386634653765 +35643333613336623531336132653136383031396163663761393261363731363462643630333866 +65386361613662396563373765313230646634623133363766393638323533623835393966303963 +61663238353033316139613065643737336130333532623362323931623861653934343963653635 +31386439363633643463393830333930613938636437343036303535396364353365346636343234 +64383432343032333466373830646632323334323464616332643539653038393530623162623030 +63386433363765343861353431613964623331373330343632636132366166663938323464633139 +31386337363236396235653461383730303432336637666339366664363239623233326634326536 +62643366313064656238336337386631353762613130343731356238626135313366353234313733 +64336631626562303861303432633337366539316134393035623464616532316663393138363334 +66616432323264316439616266306366663238383233373838313163366437373137396330313666 +32653739623437396236313463613536356362376536343738303134613237663162333962396237 +37353961303732613530363335356464316266353863363430383061366563383738363137616661 +33643936343036643433663030646535396361626436386433393430646364313334333634393965 +30623563663030306562343861663063383832393533316437313762396339613730323730353861 +65633535323737373230636339363738396139323634393736313132643339663637306161636363 +31336338643365663336633736623331336361633364373134376139383363396536346666373136 +39363238373865643631336561346261343435353966353937313762353265613065616266306233 +63323835623038653434373764613836313435393633326261366264383061633435393861623532 +38636237643337343630383436663636623835346536356137653638396434376365373938623061 +36303466643737333039333432376334396136613232353137326566303234333832333664326137 +36323764303861623237396264643766343639353039323231343838373532386164343839623139 +66616266376136353136633165616666646133396164653238343631663264363938646561336536 +65376231626234383738356361326332333338396161613262343664323135616263626363666165 +62636566633338306163646462636436366632356537303439363366363233636265326439643533 +61643764356366373436613163636364376466376266393338643931303665386236646665336466 +33663664623631356433653632613466313666376363303661336339613462363265346661623038 +34343563636335623861336638626132653561356166303736646331343264343163623032663636 +38323238363638313339346263313837323866326165333561393237363065656336646332313863 +35643333353834306435323935646134626535343732663762333038323730373330366439316264 +66663736306463306665303961316562393965623063346534323630646434313165393134313235 +31356634663930626432346237343738623538623264626163373438356664326537343333363265 +34626534306230386266393031666666393362316636306132316438306562346666356339333361 +32336330336437643332653532393636316666343336366435643637343536333232356532663332 +37373562656631393763376261383438346162373932316435643066316631643931343234303332 +36643330396663303431333236386535656433616338323162623261306338336134633831303632 +34393535363634383232303662666162386131663532656634643335626362663532633333346433 +65303931373032376562366238303834366330366332313239313830353735353633353530396564 +32633431663037373434353138336632613366653735656161326265363438636335626536363637 +64376630363430383336396436333562383530383733363963646633613832386330643136333630 +32303634353538343234386530613437666133636133393563313866306237326161623763366464 +32346363366661373230303265616638663963613237613438663038633363616434346238303334 +31316331396134346362336639366433346362653964313566623034353366336561323934653738 +61613938656261313836356337666138333239613437646532643561323239656338303061386164 +62376261643365333663316265326462393164303036633830373165326462376538323161373039 +61336533313738336331373566626462646663303134663365383235376263623564616561323061 +30626137336538336261613238343933666364306162643132663761383961333833646362373730 +63393966333732303437663336396539633434346263636565646533633036656536313030653464 +30306338303031643661316433393838316532373132353833373463346666393630373738623734 +61353337633239343135653637383431313033353530643630666261333036323362636164666561 +38623530393861383233633933633639663830626563323563306163626164303037636464373536 +65663263373236313363633133663531343538663234346266363734663837643139353365383933 +62306533663938393062326439373330383038336137663336373832366430626631343466366161 +66363064653265623337613038626532383731373631393861653965333132336433623865623037 +33363235303464616661366261366636333863386364343936366164323564353764383237363366 +65616664343862356565333632363063366365303233666430656366613439373466383366343863 +38366366303336346338376135316230613333313830333635326533313335653961666664306362 +61373663313665613632643835313735376332646666623338666131373663313437396339306666 +63383330393663613330626232333236663333383532313764336136343335356530656162313836 +35656163663963313763313833643166376235336561363835613737326662666266663532333235 +33653236643430313833326262313362653334323237366364653632323665343433663038356462 +31333130653230636461613864363865616439326564363063353237326562353334343665356538 +62346263313761383130383261663036613163666562333336383563623835326137623034363965 +31623565616539313031646136353339343465396533366535336264363565653436386532366463 +31623437633234313061333065353962663562323465346235643033623164373564643831643231 +61313061623630643836656636653566383464323836383865323832386430633537313830363633 +62353438396231383138663161643537653261656438306432643763626262633266326166633439 +30326433613435353230653438353832313832616232613665643935313261383036323534613061 +35643832386633356536623531393432623265393164313430313365316364396462333738333737 +33316262336566383165616566353931373637653361376235343839326366643939363439636232 +66613261356561616531376263656534316132303862616333346364336439663632643830363838 +64356139393231626434353737356333313266316361356638343136303435333765393564633537 +34336565306131346162386332306235356638343037616564643732313334643063353966636630 +36343731383238336130626635313063613233383262353365616535633364636366333261636463 +63623866363435363537616139633263326266363930343965633465323062643062613266343864 +30386261613065636562633035636561626661343335386635343538336330353134373966343961 +39346161656434626135393032623138643432303139373364343731656265393261303930383935 +38353036303363643733626438383963383933333136343930663538323566626161323333623633 +33313166666234336466353639313966356663626439396233663633616231393239323964323034 +64343465316266396235346266373537356631313863343531613238323330646663646265356363 +30323339623061396232333064363062633464643238383537623831336265373531303561646130 +38333861376361323435353666636630646162366137336136366538363632626135326566346666 +62323461633166323161613138643631306332633462646664373231303431346235323531356236 +66393861316261663439386564366665613262373036376165656537343436323665336436336162 +61323165383935616663323537343635666566636465646565663834393362626365303338646531 +62636433363233393331313534336335353465613235396164343630643264386366653638376533 +37333832666437336230656439376566313764633665346534303339343437386362313730623063 +66306564333761633731663263343539393834636138333435376663393866356238313863323938 +37376638343536363638623761346265616138366130393231316264626365393930373061663461 +62646137363933366239363464386261316262643363646564346639313266393934396132316466 +38373638396466343764653430643333643666333732333862636162623534636361316363633861 +65643135383630636461616163653462626464623539643365376461373335336232646639323063 +63303433313065326534656136396566313531646161376436353361616561336232353031313032 +39393962393763373639346236393933656537616561323762353830643861653330653038623439 +38626562666263363938306363306637366366333636306162636430656235366166613937376236 +36303766316666613063333236363531383435396466633731356463353137383835383831333039 +36323563316139663038633234633261333066376336333265396663623766386164386362373934 +65653738666234613236646266326431386664653562353961643361623262326332313332313832 +35363037336366313663653466363534376136303135383335326534313133633734316636656263 +62653331346465383461363037303338353666643934366131643066313864636562306139616165 +39663037623263316132313366333037336565346564313932393237646332646233643733356463 +35326562326434346464313536666532633466306635656231353761653334376634356462396532 +39303562626162383265326133636439366134656439623039313330616139626266333039343739 +62643037333539306665643763393035333236383065383633393234396334636635636138613031 +66633539373039386239363434396339373033383935323133626461656431666135356338373935 +62363035306639383836363365616664313630326165333766616631303137393261616536303364 +62363865306630663865346531363562613931346162306664643238353764333532613261373666 +65656163633738613363333135343866353636363539386635356231633161313061323734393836 +63363032366562623438363539613061323834353032343863376435623665376437333735333665 +35643862346531323237633065386436653765626266373135393830373238383133666566316566 +34333431396230323133613863303865623634323966373863656334613966343830393266623331 +36363435656363663830373331383635616233623136336532613265646237616634613461303635 +37363837613762316431323535323135626338653132626666663638313330613634386538343733 +38363638666265363136306131376538303937663861646639383164346536376630643937643230 +37663366653333336566376261616561653462303237343961346637623439653039356565346335 +64316464326130643230653266613131393332633564633635323330613934383830323965343630 +38356666393063346539313836656638343866316161353632336262646662616234363137613230 +32363635643635613634376534363936313334626131353466636663663662373932666238303538 +33626335393131313162643963656164383934663863666430323262313862626138346661653037 +61306435656434323334656661333538386130386161343162643263316537376539343930303134 +33666536643463303264353032353066306361326165353535636662316164366633303866613363 +31646439333766353039653463343930633336643739353863653034303838656231366637346238 +38306534386338313538633164633736643233383138626238373634643139656339303434636561 +61366138646465303435376566363936306135386462396363626265333262383335306337366531 +32323233343834353131646265373839653037323930356566383162383534663138336534643562 +61623436373936306539303064633934373165653331663431383530396466626563616134613136 +65343633316463646265616432396336633566303438663738323764366432383935623565626638 +65646464333064373562306537663230366233353437663634656236616130393331366135303930 +36373064363230326133303639643261613339366437366438306333396137643863303531373761 +34346436363039656637303266346237326262386163386433613966653237343232373838636530 +65643765393034373235666437383730626236666663633161363735663434663063633834336133 +62646539353132623339353435633634383236336331366664303636353862323936316435303231 +35356331316431623265393133373734393861663962313038346462393064366239633033656163 +36353832366335626231626462383563656535373731343933313231306438363266336264336336 +37313461623736643963663065303637316163623965356462333063336664653830326634633936 +34376130663663636236636464343738373639633639313836303537313431383232393462336633 +66333338303766656161323664303630303565636165303639383534383065633439306533353438 +64373863303237303066623764353161616564343435396335393432303263633863376666663036 +62613966656436303761346137653831346235626166343062633431636530306136363061616534 +64373131633366666362303832303634633733633666616330616462393837346262383665656330 +34363437343737373464623738366232323539356665343635626637393433333239356332373633 +39313936616165336635653861346337623962353365363866343865373939646430393334633766 +65643234653262613931336462336239313638653937653136316266656565656335663130643230 +32646237313535376666373130303235306235653932616230613233393863653638386562646132 +37633935366632326565326130393733613938323137623938396139643861623664373236663961 +62383162396665653639613966376634653634663936663330323937613864663439353539326532 +36336636636263623430376162363330376135356163303434366662383335613964663563323938 +36643033383431626264656364396136643363633762633934633432636637393561343337633839 +61376531366634396136333634343661343332663930366161663038386363373131346131316664 +66633034653764356438313633333062333833313530393539353965346333363263386366623961 +64363636623839386362643461646439623839633366626339666461396561316661313163393930 +37386636643066663431363139653835636133616336323062636162356130633738326464306637 +31346136396630316631323566346438346339366263383463373836393237303863666362333031 +62313633383035376537303737316234383539626237616462616262653333383533383762303836 +62386532333564383633323735333431613931316535353936333335633965393562373530666637 +61326639653230643136313466626338623966353232636430373539316563666362326332326565 +38633761373631633866383031656330663838306137363363326336383463353061333138376665 +35373635623332336134356366303534663562303161383430663664356632623536346332613063 +35323330656661393933333632633231633338346365346131623962363235623034623036306639 +65326362633334343734383234656666333561333366656437653635373664633433313637623935 +63663965356437393539656465623463636433373135353636363965313431343462613732376333 +30366237373865343865623039376436623964633339326231353864313839623839633335306236 +39613437656262373834653334353239663736656463383966393839343161383534616133656434 +64656339633161653061316133373166343931333831636233366530343566663332356165636163 +39306439303165306461623739313631346563636632353364626163653935323538303631626435 +65396334333465626265306361363232386630626665363662613534313034656632393564636161 +35313831373066646635643334323038373233326365333131616330363734393461383761336163 +32356231626338316565633765383563343332343264346335316163613136363763623532616337 +64316339666562333639366231373864333335363836303066396431666139393833303830386432 +34383331393763643537366361336434373961353036313464626466643735383361346534616532 +64386235343062313664326261306538656139626633373830366139373335323534363132633236 +65633730393436386564666231656563633533656364636663626531326432363137623664393436 +65643166646135363038626136636261626561386233636564633133336364313133396139333435 +63656362373534646564373931373264633439633230383030346465363338663834643137313465 +36316461353561643661316666623461356436386339373061313530633039363062393463343032 +64393461303062353763626236623362333437303035663837343634333932376239306237356431 +33313265633766663766346239613230633964663063656135633537643330666461383963393065 +32626435303837663431336335323534636262313634633864393338326232646561653434363363 +64626163366132323633626538363039313466383337623362643239393136623437323139653332 +32356332393634633235623134376563336534353934393737613463663135373938303532633831 +33383932386238356238316338323965656333323335353038333364396631333437326365386464 +37323532376130383061383765366236333663383033626137613466336336303139316535663839 +39666334663862636239323235623264363465353966386139326636646539633735623137346635 +35363463616138393263616261366262333735356231663133653863303436386634396638376434 +32393161316664383235306162666135363831393432613263626634646364616536386335643566 +35616339663663353138626531343933636361333962663964346565346133346264663333323132 +34623164653930353137303862313861326437616363376539646262646230396435343761323336 +61386536393835313539303630313933306136663530363464336330613135626162363139313431 +66643665663432646539623231623465393932343537356131326363393838313761356665343566 +35336531333139393139623764633535653336613561643132313661613132396333363862636634 +30383838303166373861626438323733653333633839653934656463373533663962633238663737 +30663434653966613030356632336130306237353766396137316666333135663130633939313033 +31363737356466643664306361316163353131356636656232383232636465353465333037323632 +64323830653436653631636262633539326637656534376431316161326165396164383263646333 +63613335313566343564376264626264663437666365346237306364343233393236663931633433 +34663261383236656663613862656461646132623237386337343431383765663266386466373966 +34646661633064303736363335353137666661383038333332666236323261343636653765303362 +36376135383130373936633730323733613731333163343631616365333633393731313433346664 +38376637623833366563663364623763636663333437316236646338323533373132616338656330 +39653937376135353836333235336263373035636634333533386633623363363166633863323131 +35356566396433356238343138653965626435303930313664373534633464656137623936336166 +61663536356135376233343762653766663566366335396466666462656162376635323862646366 +63353830333335373961343531663466333238633661316535373463333533356635326233373335 +36643436336235313735383436353131386539666138353733313036356164646331336632333335 +34346230396664346630356664383563396330313031343531336462383631343661326462356237 +61353765373838363539326333313235633937393365383865333461343161346433326162643035 +39643661393133323137396530666263366663626561666239366238643436623833333234653630 +64616633666564363562306631666432393364666134653938656165343437323332383562636338 +30303665613265623132393763313231386339346434313032363365363363303563353338376239 +64666532393435653536393336313538613861383063353561343262666535326137326162636139 +31336661333466633439303066616630393535356634303933373562636266313735393266393637 +61346333393838633465656466343266333836326130653763306237306533663361336361653536 +39643236393265396664346333323764663266626263306662656230663237393039616266373764 +61346335333037653166306339666166636366666435663931653839623932616136363461383266 +39636638386366363862353636656436663534626562363564363530393163343137633961623231 +64396131356336353339333563313066313066313239363366616331323634323061366430386365 +31323161346461323666333664616132653031323637353037623533303034303561343436316638 +64333436393036333934396532626235313863336634643465376465666166633930393965336434 +38616666303263653437343565623830313032323233303938313935386539376261636666323830 +64336362643132316632343437666534623930343337363762353239643063626363373939346364 +37633734373962333335356164313431333332393565386164336662633139623636363934346164 +30343134383663633965373033356264643335353530343463343931336363383164363163333834 +35653635316636386339656232366366343831323763626139663438313364643061343739323335 +62643332653038323730386639653562393136383636366133363539643932616465353632303966 +65373263353262633534326439346632353534393532376634623039613462326164396533343835 +66383332343264616163656433363530333763393536323930313437383137653865666631363266 +34633433303535306533383539643265326663646461396566343234653362356162393938386663 +63313465656534633563316166633630626463303139343836303534383865633364363865396261 +66636238633834333031616136353163663764306630326538656334643236313237306431333963 +31393561363636653338656134663334633263393338323038366536666238313138323431313237 +65326433616339613932613663383835366462396133666439346264366232323035393536343636 +33633964666537383935333534303662383132613162666237333261386538353731653133646463 +36613234376561346463643964636436623161343065326636633061336263663835393037653736 +34643336373335316536653135343164363637656462353435623138373032346664666664376231 +65393237636435613066643130366634386334646466343131643165363035643962326265336535 +36393162376438363130313430313764653233393233633037626439666362336364666633363963 +65363862636135613534643233636232323338363032336133653239633837613330633764663539 +64646463326236386538376339363764336261383366333430643665346263396165643638383061 +66383463363439363532666434303836326164643664653434623061646432626661323337373435 +34356366393032643235346537333365626436373261653665616634646434343138623634666633 +66626430336530386238636439343033303165643561363933393062373831656631303035396237 +30633164393732366336336361396439653465663239663632633961353336653538623730373062 +65386233313833373534313534393562663031333633663962633138343538353266393161626638 +36663238326231633438383734343430613262646638396335303236323237383262653462363031 +66336263623436393136663431356265633137396138306330633962633333643539383961376363 +30313130373966653062613736626637313037653464356333663666346135613162303062633439 +35396334346237316431656438366166323335306166656362646663323062376337396461633865 +35643862313737383663303434353836393933663166633539393038393936333561316132306432 +34376262336438663338353562653734346638316564353937303936393664336539333463616431 +62633266336562363433363465646166306135643331626234653737323537613963383462346164 +37653137336339616235396138393966373635336337303830623939333363656233373762373039 +63626638623566383533346266323630363939333237663733643637366231303436656239633435 +39336432393537353538386536316264633934373864323965623665626462373861653561663364 +34396332353563373138623062663865323261316538336563636131333364356538356230326336 +62303662646237613165313430353139616433333033303634343161633232366432623963336534 +35316432386564633934336664363062356262623863343434346431343666613830663136636532 +31623466663866306635626431643431373362396434326162323766623737653439306639343334 +61383039383539343435636238613461386237636261663633316266353163336562633965356231 +32646230653034363538303132643539386362383064303361666239656666663339396538623137 +35376236363566623238363063393938383930346636663930373330376264323866313336343937 +66663134353363646163663962376535613132613935653861386362363133356532633735373131 +38623332383532663539323836633861643862373335616335323334343738306236663334303630 +64356465653836363764376334313638373537326535666231343861303166613161363230313534 +35303463653837343763356561333630653136326338376265343738623565636233383133353766 +64613861343762663465633333643030653632343239333230343833663138336239666531343063 +32636362356166363163383561393264303630663736313338616437303832396261653865653665 +63646135633134383964333163373134623233336433386666393537643139303135396339383265 +66313862666136393063663262623732373931633539353064643930373139323266646262326536 +63366334333262666263373938303439316364613665306139353561643662326161373333363439 +39666261316338343336373733363030646439613332303633303339346238383735393436633865 +35323964653630616364636465326436613335653033643338303539326330666432656334353263 +32653263633332663161306238393238656262343263306438646539663038646532623935366462 +36646530343862396135333261323963393666623139643439633261366436396565356262303238 +34653037623034393937643238333364363138376161376461303637306433393564306537326334 +33386635386236323933663335653830663164623638666366396662623738623432626162313863 +37616130663232343137646437663036643339333339343765643134623330623365646537346163 +33336161313561653430646165613336323330626530333236353139366338666130336661613838 +35353261653766323133326634333361643766373433626162616364346134396566323966663139 +37636336643234373632633538616663336436656436623066373833393837303332313431366563 +30346463346432663333376665366432356539373832343766336236336164386638323735376136 +30666131343039386565333161656436373637343261363730316234653166303230623035623934 +65623137306438336362333930656634393434356336356137316137346462373161363263616135 +35626332346532373333373638383839383262366532626562333935333131666565643931643331 +36666430646331343665333838633361353730366138366330646466633033343236353363323964 +66306266376365373835643561616130623337326438353966316232333631666265353764646463 +66383231646231356362656435393232333237346631383735333539323234626264386433396162 +37643763373237306465393461306665613165346239303530613533613531653435646464623036 +63356562663661366239626636343432626261343766386365663664363936383538383837356662 +64363034313039633565633334376431316664396638336230373934346131393935666132613139 +61363665393666363433386163356130363364383935306261336262383234643032653461393431 +32313763333339333537613464373431383738306132333830353865393562656234386332353739 +33383034663330376433323463326532636165613534643865353163656265643230323433666332 +39323264386336613062633635393134326663633637366435633034383063623333623934363161 +64643932396634343432626265633963346137313563343036383531306431613938613930656639 +30333436626364643830373362626661346162616434323065303865626331343138386365613338 +64663330313261383134396132326365313837343437313735333263303562386336383064666661 +34346433356264653735356261636335393162366232643234353536633462353133646538363464 +39663133633138376537373063383033666430636466383631366136376463613766353463306336 +38386438316562363834633766353061633264323939316135393939323031373961616563316431 +66616334323434656134316365333339343533353539653731623466393131393064666434613764 +61333030643965653734323935313261643464393030383266646362376663346639626139653762 +65373537616132393966303936643036346533333934623035306635626461376662353832343962 +34623737386531376166376139636662643135333331653530326437373066316630383239626665 +61663935383731373963326363336363373735393062333562626462613834383663386665623337 +32643864633062333839633238663835653036306161326433333738333032363733333139373934 +31643735346564663438316663663534303932616530353466383234386366386666333462353834 +66623564613530343238373131306639613362643337623361373432636331656631613662643134 +66656539326234666532343064323930656131306332313233326263663865313430626330653030 +31303331363234366263653536353965653461393235373430336239376531376231353362393761 +36636639323339633862396265633335646635366336313538626137653330613562376630646631 +37633463313161326231393431633632666666316531386264383834376664376438323637373935 +33313938626533303764633530386433653435376364363533373936356438663163666562316237 +36636136383038623165626665343135316164623135383165316565663664353038646339343037 +32616261383532626263663836623530363362363934616538613134666666353234376163653839 +30613839623530333433323038396433633439326234633363646166353935326531633566313133 +35653738663265626634353462393033373632633534656661353361363161663938633130656261 +64346237636133303764316331376133666436306664633636373338393266343864333639353366 +65353536373135356432373031636135393463373431353138356366396330303664306637613232 +66343533396165303665356436306663383037386337343762353438343166663531376434636264 +65313232306135343837346562366262386664333338343337626531306163353335356462383733 +66623265303137353037373539633434343135363337613738313431396235333335343034646531 +36393863303436623963653961623737316432316166633261636437363738626632636139633335 +39323837326535396135376139343030313765323830383732326130623131303031323533393561 +37616262306535656332636333653366633463633062363437633963376534366632623238636634 +61333563626537396465336433303732613865373437326432643262386132646338333632356266 +33316461666433383634633033323536623037366563373732343135303362373766316563633563 +66366131653530373330623433373233313539613561303563343239326434306130626363636263 +36643966616239656231663263386463376335663533383464613530313062316139393639616231 +66386364643336333631303532626262363962353339643861336139653332396266363666346233 +33643337326236363465346534343834323763313366623738613639623139653430653535306430 +65326331636166383333613164626339356335373563316630623434376164366330656364333436 +33353338333662616233646563623862663665613334663235313264323739366163366566366539 +39323633333834373163616563623337343436653730613037353764646634626134656231643862 +33656630636165303364386231356366626133396536303065393439633932643732396330393264 +65383138613935343563313965306134346163623832633565343733303636663464326662336163 +62333936646434326565366462356334386666376662613634646464646235643733316432643436 +31353934626462633162383232653631396333353539353366633866616438323265616332313663 +64356530363031653063663031643937613139326338333834386661303837646166343234663234 +33396661303864393563383366393162646664376234363536343863386336366638363834356233 +66366565666536366237313563393734633433363837396633613530346663323365393863356635 +36333766633434663031623333323236356265623633383534623062303238313261643332666435 +63343932396432323434313562623264633132343936646535353164393565656263376462616539 +64363939646237353163326137386462303664656266663365633231623631626166393234643735 +61306663653138633236356132346566343632653763633035356664623566653630333335316532 +38316361393439316361303331326361616631633561646134396639353365306666313162613066 +37313831373363333364323238643931333437626539383437636331323339656162643438623861 +66373166306632666432626361333364303831373561333236353262643766366662363261323535 +36306537666663343039346162633761363331616232366339353764663737363135623362356235 +64386464393434346539393862363039613734383463623664333038623761663532383861333866 +63623339613831653163613633393662333939326537303863363261613139623139376132636333 +38663563336230656133363033383365326535313532363736333637613736363236633062653266 +36353933643431323532383261613939396236663465643334613837363133333433666564623634 +31333264303664303232346562363866306630666335613531386634326433346237303432393662 +39316664333566636236666232623035326462323233346237613438313862346461336361636164 +64343165623634336332663962333831653036663431393435666563343938633236653238393866 +65356661633332323163303238623432353463333366393862313734336533363366376435663130 +62616166353939656139326333383964316230646332343836316466616638363033313436346338 +64633662323335653163613930333031346437343062356339636165306266396263663736666563 +36633033316538343237656538353038353536356662666464373263366338386139303632336637 +33356332366636336462633561326464343137323561366666316361306131376333393933306562 +63353464383937383364386131323931356461306634373539366337626434336561306565333935 +63313463623333373661326438633136373362316439333461666664383937663538653861376337 +62313832383330396263356236383330396635343165306166343561613433323563386330656263 +32323036366430383532383762623462353963376662393138613463373333653663343438663237 +35353338343639383566313765333435376237313761636235356639393532656366343631633438 +66643362393634643933656231316266376266346637373664633334666337643937343562346363 +35386363313933303236356161633764663038376135653534313733623933303932633738383735 +31303362336466303637616365386264613661383039643639383461643232373336343066323233 +31663435363635343834653537643933353036636234643635656431646538666562326164346565 +65333635616566316336643932623266343232643535323033333638653364353964626539636364 +62396664653037316537326633333636353233383663373961663963363536633731663932623766 +38333739633239663062656537663062643238666634316236626330313539663961363633303230 +33653563643961353937623733313761303032393964393633363566326165613362343461313539 +62363239323938363338303330336261333032306131393135343462386162643335356563303666 +63303862666339316537346166643563393034643961313935623634643236373233363663663738 +65323165643566336139636166356131343563643839373131663464346539383934313363626433 +30343335633861306536323531646330383761323262616166636633306330376239343430306633 +35396661346433643562636230373363316534626139633639326534306265313861353034333666 +30666539666263643562323531323334316664636361646437326361376237633035376433636166 +64653730323166313438343638666139666361313265643535356431363839316563323034613639 +66306438323661353336323232643561656435313038653439313464653237383938383638613538 +36343639333264323235313238376236323937343832343435393032656138383532643635376435 +31626434343163613166303336326337326530623037343164306366366365336430656636366437 +33313131313739363065333735656631663836373430333332396432393633646632663166666231 +33383361333331373036346133663031373964386361393761363363643035323539623135353238 +34383835373130366239353663313239373264303364666231316230316332376164613862356163 +30653732346362333233653035323436356433313537316631643532363939393466343638383362 +63303963396533383739656564323431313061636432333262633661623539613631343832653735 +63336535633033326262346336643934336263313432373230396431656663343032346238626337 +34313335373939373139326635646566323330623535633937333461613136323635633634653464 +61373433363135393062633334633739613532373962616237346134356461616164316165346438 +39656364343436383133353231613361386231373136393936336130333763346461396439656635 +33343334363334616164383631646430353139303137656366366534306264373330353139306565 +36346364363935363764626635633336313230386561643539373432613263616631326237643938 +31323337303731653833623166346135303665663530613562366461323363383761663831643532 +30666134376530653331366237373831636531386366316565616164613131663538346163626434 +31613362346237373035356139366236666138356236326236616334653464363261313265653231 +61633366336639663366343734663438313839366664646130386236366134383638316165643066 +39343238363531356465346634313530346233306464383734303937663764333339316564333433 +62363735666438313137343031613336383432373835326566383938396332386565656231326362 +30323435383035386536626236376661353862643135366164393232303734323939373663366330 +66613764376166653237363330323334373136383633623038663931643561353538386239393238 +38323839313036313164383135323962633635653561626333313362313530353433353863646363 +61313532643738396262396439303162316439393063373235323364623831306130393962616363 +32346234333337323264666337653364383039366432646333383332643532343166316435646366 +39326338333364323030366231613535313737663034616632623934336663363033633830333433 +33316663663032646133366462353834383139363933366432653861636236656430366639363265 +31643530356330613433336132363331383833303465356431666537356464326366663335393931 +64356330356663316330306463663866383734373934306462663937616631376432336465343939 +65356362663565616530663965656536336337333563373063393966613263363964383162616239 +39633464616534653438643934326437326130623733623937383966326435316234333732323839 +32626663636339613330613534363437313565656431323362303734356438313134373036633038 +30343035393138343438613365343630393339353336356637633538353637396639346561366537 +37343665653833373764633934653663663935643763303233323332366435393637396635303964 +37356336303533386632393431666363636238326135313964333232343461313765663634643539 +33643730343231643734343765303934333833313238316132623364396563643535383037643632 +65383765343233646437326632393330393936353633393530626335376131623162653633653066 +38346336356637383936643230333162333166396366393831373263373664383162613737653632 +64666432323236653261366336336333306533396332363036363733343363393437346432303838 +63663163626232356364656632653966386231653932613666656362356436646439383462653563 +61636531306365343131663865306333323039633366393330613837323633393236363639346433 +34626437303937613932306663373237363135313864663039346161393866613464663430643138 +39363337633166303633643862656561666435336562623331336262326566663363393630313933 +63333034626663393366303234616161326431316232303134383136326632303434333630636433 +66306136366134303132376336346166386463323137396661333932303536336634306238333464 +38356531386335346262643632306638646531666634396561396364316534663937336338396238 +34626364623138363231616165323664386632363137663735306334363835643034336561643466 +38356434316234653537373830663465643762313136323238623338616139613137376435616436 +38633931363733323761386663336630363332313035303033396261393366323364353662386333 +32353634396432353332326438313464316337626566343434616134386233643163616265356431 +65636530376332366438363334393732396435323864353035323132653739343934333963616631 +37316634386435663032636439633365336530366439633836356233353839666435613537313762 +61663539636565366433643337363137316532333033393730316433633265376638353461613866 +39323237306236666264623163313636616433303034613865316337653639653535653133343761 +39393463393164336263323636323964353338323937303531303537303836393830386536316561 +33393363636632323430393838303838333561656563613331306231313937643430623737643930 +66616230373138656639643830376436383933656131376264356236643866326634343837646136 +34373632626264643132386137316230613637613263616665643166313163623239343063333131 +63653461363731303437666561303836316339373164613333613734616639653432663962346431 +31613135653635393461636235323030306465323033373963633363343634363835663566343962 +61303764316634316432633237326230616463663766396535356133326231643939333639353739 +32386334343235303334613331636265643962323932373764353665343863643761643433313030 +62666631653135396430666135316638303438396135363734346136303432356565653737633831 +35623133383763623461343765623930336162383837613561613338303438356533613637323766 +35653032343064653664323963383765353634343438613933633139363535613438623532383233 +31356632653963326265333939393638306233653263323935663630323830653630373837633565 +63663463396462323161643533373435343034323931363139363764636565326332373839373633 +30626561383031616135636238363932663431646330323663303139313461623034633064306538 +63623838336230326262633161343138666565333834393366363233383635616663633835666632 +33646437323137323230343835626432633731333236353439346433333964623338303230623264 +62303030616336663766343861636137643033373631626538633538306431626139306335613532 +38363565313834623837616630373036313031333232393838383031653866356531393266303039 +34663962313633353761313833326430363039313739313063313536616664636365326264376665 +33646363336337663464613962613635623530616233303061303265343564623865313730666536 +30636234633661633532633931636464383037356261656530326334346630366663623362656161 +30613630393036663461336533343533666339326330373238613366333537343839356366323732 +63653566373363623666636634303430303861383732643533333439353333363434316537396561 +32356637346338613662353032323366363435313766346463613030353439653333663666633830 +39373938316137326439373638353032363333346535313733613731336336383832376132353732 +35353835306263376265353039616462346631653162666330333664633037303433343764383766 +64356139333035303633663262376637613464363034363862346131306232633738353430353430 +33656537306231323961616138666564393164323232353639373664373936363264313031643838 +32666263653232353136613261396139653734393931346231363262316262643837663430626164 +63326134646465613833633566316238666531383835643437643031643834306530373736396461 +65626236653538396565326636613334353462323934363262636466383364643865366666646635 +35646638633934653964306431333731666434346563663762373537386362306630623331343263 +61623831356630613539623139353264656530333461613838363631323031653531393730353662 +31346638393762303533613133376566323066666435346637653330646664316561623834303832 +64343662386235383036633638653230363665653430333032643865393961346364326133633533 +30373930343734363466643031636239303662666536386562663430616564366237666534396233 +30656265393538613134306335636436363931373366393265656361353532666230376636316235 +61643434653731366264336664636562663132643932326562653762626564393532383834643939 +65363630626138666231333635316239303365366633333037393336633864396162643461623733 +36326234646165363930616165306266373438313636653736623339386130323734323461313730 +62346630363930383538393038323265343031373632323162383832386165393133336262653862 +61616536353365333935386634393935343938366335636134336366646630643130353464653330 +61653038383863336163363039656231643230343164356466313462663334363839616166316538 +64613764636139383838393439333431386633346666656336346565663432346133616161396638 +66393761366336383236643366623637336636343130636331333065363433333337303932353334 +37313532303563646566383961316161343234356666636135666639366237663862666539323233 +33633066353730613133373734393366366534333738316232656631326532303336663264333664 +64623731613235626362363136313330366231623136373939653161313966663932663634666239 +38323036613331666666353066656435626661303431353738633338626664653038333336643466 +32373732306530393532616234353037383431356138333032643835323132323533313062656232 +30363330383334643138643436386564313138306530643634643235373832326131323066303562 +38333962336562303862373863336539383734363438383632346462396438613433363463626137 +36643866313138383563396239613861303761303839386639613462643434373264353366313164 +65303166333665323161313832666466646161313066336535376335336464396538383830636134 +37313339346266343565623833366266336635376661376336376539653462376166653165656566 +35326362666630393232666130666164313864623566616362613937316230636263386334343264 +34313230623734383064623764663761646364633963303030303737363761366366316532303834 +36336563613436306161363939336265303537656430356463663938303430643064643237393361 +30613731643435336566616661616636653730333031393232336630313963633939643432343963 +35356364643733373638633931653938383763633636646235313766646262343930616465363431 +64626665333233666263366337333166353238393763393463343032343538366134356364323862 +38346561356466376664653239326430393363323033393837663634336133366265306565626334 +31353863663035613462656634633133643031643132346630306462353962383431663462623465 +63313363383430303265303333663236636637386330343333656637343063623563626239366163 +30346262656463626334323664653839383237646465366237383934653266333830316437303835 +36313834346536333435643463396363333234626536653837373833613834646666373030373337 +36353437623238623132343139303632633630333039316636383964633966346361613231356631 +63633731303735303334363934363166313462313336343530303463393433343766393536343262 +37303066633666613765613632323764663936396230623466366363373132343963396233323433 +32363365373537346235323831363334386162363263326636396362373761336661636235646536 +39363163636333316430336634376633373137623262653634386461613865666139333534386361 +63366161356533396164346532653737656336323861356437313732636364663630343236656135 +37303538376161353464653131376138336234663862353230346364343831633064346562613434 +37613236653665616437343238326631373265666538613663303238313933663439373039323963 +38636666636535396339643930363464303561333937313266393432363338313464346531663839 +65356136383130383863633265303639303363616133376331383861336165383436343739396433 +31366562613335363833616430613638303565613137373036353439376634333431343530623435 +64666166373334383066366537663835663336356133356161346363383539383461396264393730 +66316563383761373732303365393266333666376239653431353435376230366564633062313639 +35336433386235656364333066663665356166393962393934643739326338356537616261623339 +31343164333832616434306663316235343864653537303666376161343536643765346264396166 +31333737353532396238643334643565616234643462373033623432313139633464363131616463 +35353231353630623163303230643063346266303630333265346435393638333435373538396535 +64396631636530663762323138643964356336643366616434386337663831623336653333303337 +61383665356238356266633538633834323664616266633164396563626231303564353836623837 +34646466346236646263376362643230323630636339333863663535376636623463663364646464 +38373630383761343938353131643739636666303065663230666133636564303563363835333561 +39386161636265643561613137613536653135663736383265353038323261663064663635623130 +66666436313933363038333434653464616539613035393336616530323632363139303037393463 +37646266356638633536353361623635623533373936373738383161643536346238386133656163 +61643966363364333834323361633632333434393633353333383132623961643365313862333264 +31346232366336366566313561363931613739376130346165333039623233346139323339363363 +61343438323365326130353935623762616139643832623739626131656130393036333436396130 +33333838316662653031626662366164396262623736663433316263303731613238373161666639 +36643034363139306337333434303466656562383636383933303564393238356133316361643534 +33663763663335636163663836393334666135623535303139613033623566623461626333623034 +31323264313530343661636463646464366133666430363230346366333564323430303832343434 +32613763616539633939303137663033663037346535383563323335336166623965383233363432 +63376134383933353130346337303532643562323833376461633336373265366163373462633932 +30313337643136366337313865356339383230366363346461356664343536323035666466383062 +62626534383665313235626434333731666166343236356466663966363634646266376465386631 +61343435646566333539363962366631316238643962336164656463346361626266613733366534 +33316534376130633664386262616235646534656364383035333462393638626166306563633431 +64643437326362333766306634643761613061313164323363623439383230343464336631666536 +61623732373865376437396333326636373865353130323765663033666162653837633035346134 +33616434303031613435353139393035383061343833623632643862643663636534366161643365 +63323362313666356239326336613835306334383765323531376666383138323963613030623736 +32366434366162626366643639393263313530346538396632373665316134623037356131626331 +34386536373661393637333234616637343863653631373939313461373231333064396364343832 +32393835303230646362346561336530626434363838653063646333633562373232393965633864 +38353666656463383361613438316364613330366339393537353534386431623038653833393966 +31326263623066623064306133666164363231333638626135363436353036663632663032653264 +64636234323436333237313136376163326265386438363033393762343862633132373132393539 +61636230626265626239616233646166356634356262346331353761643735633132313736343534 +31613130306561666235313932303865646635343633653039336430396565346262663035336139 +37346336663331306434303434643136616237623564393736343536653132333032383266626462 +66303865353830663366323135306263346434613833626430336238336662356336626239343238 +66336363353533663635396437333162343563653363376536323037373331656634613463396663 +35623362653532396265306266333033636638373631393835336162343131356562313165656337 +30656334646135666533303363623765383135303330336661333235313665656136656537646234 +39636136363530656535313066653531653564383265626238663661633939663462323136313233 +66633238646130666163306561323864663461396136393164366238623661356136343865336262 +63626530353035636335663361623533363061313463356466363734316439666664613039333461 +33343934653038383037666162343964353438643534353064666434616138353862386236616463 +34366666643463636230303234363866613261616538343162643637363538333266383736653762 +39356230333533366534366330376537663237313338386533336439616334373861613663393663 +32323565626637306162656464363738356532353131653230646566333566633531636362373739 +62313732393738666138303638643938626563343033336163333864373631316435313239323130 +37633730373439656265313862633165366362663366393538323866316462616339653937613962 +63303361393361393135343361363037616338613136313363613730393235636630613437343264 +65363137303939616637313662666138383939336232346132623639383131656439646164323332 +63313161623835313439343738653139346265386633326366393930343832363837336165636536 +64366364383536366463343562373434306131383262663139626536613832346338663331373762 +63643335613339383231653164656531366463336333303634623761326130323635626466616134 +32383836376430623362643536393530333933343861393764366431656237656438376339373534 +35616562333666393865333730316231393533396665653462613035643932383737613430663935 +30643836613934363637353836666536366662633430623765393733323862313038663362653038 +38636336386433363263376635303935323938336634633533333339663463323336396633343037 +30333561343566353064643966373064396533646162633332643639616665643931316463616337 +33633536623230653331623631656364346363343239653738383364616539336432616233376638 +63383264363165623532326538386434633639336433323437383430613739616138333437653033 +37316237386461396562333666326631376535643932376462303638313333373361656534393132 +37393131323836373730326138336364633935383138333133336239623062393265306637383463 +30313064356436346332663237336537616330653363353563633438386165383964393666306165 +36663331323965643134383835303530636666353863383533333661646434326266613130616461 +62626535663933653366623166363861356333626465386635663333373831646633356231346633 +37316138633464306532633134643766643532343131323366376635306638636430663763313231 +63653832386531373866343363306431356663393637613961363539613865616631383430386335 +32646332383730663436386665376333333138383966316365643765663939386432656563373465 +31363632396330626662653036363733666566336564356664313134376332333134616535326361 +32333239353435636330323732303261306366303937343335376533323633393036336330396463 +39323065656438643436633639613966616132383331353635643931336636376638353639663636 +64623163323234313639306134336535323965396639386661663035343438626661623061333038 +62326261363564323735323036613262343735373435303463616334323131303331366364646265 +62393264333236346561373466303130633634393636666234633063306331613962313333633439 +65626162366537323333343933666539373837333636656539363130613238373462343266616239 +66343064343031353066356135636362333161616363316566383132666437353333656365356439 +30333463326662393431653865653432623664366434636239653033643030366163303136666563 +33643939306161663435363563363032336461656166633965663463616636393038356532363938 +30616536363635373166363933353636373833633964613161393133393134366331306466313261 +39396339303435343166346331613839363138386364386262313634623332396161306135363566 +38323838373265613734626561326432356263383230356432356439393138636531303239613837 +33313866376430616666623736386439646432316139643335366366303263383262346331653530 +63666132303439393466383531383235333464333532353238633862353132326238613236396261 +34376338356236623836376563353361346436316234356634396135393666636238313364656335 +32656336643538386434633735396239396464393465653234626235303838303862663835663132 +34623638653138383632373262623466313539663363353533623934613239623864643335616566 +37623865343134393964373536343935363538633366656636653338313536363638623837313838 +30663439346162356461363863633932316136626166623734623133626131373236303665396131 +66636464313639386239333561646238383339623739366666666531376462393831303139643930 +61636634613036313866336263336330663831376466363131346538643339633339396133646362 +62663564336235323231616234383033626531376135616534626638323330646234613234616331 +62366533653163373465656666646638333937666138653730623061303838366334333132373831 +37643039336631623031373564356335353465316232396666303466373633386563333536346435 +61613634363563313237623337393637313539346239636438626363383438336532313564643137 +61393639393135346336363333333361653866643564613765373330383864646235326437326432 +64353338373463626630363834666262366164303436643038313330343862323832396564333232 +35623130373738393063363332396133613665353062666639336632323631653838643136373034 +33386231316261363165613363303834633639633564343735343836303663353663306135623161 +61336337363662333731616439363539623135663938666439613633313733313966323337316134 +66393735663036373738386566313739643137633134343830356335336230393738323638356131 +30656430376235383465383434626531316130303836653661646461626365373363376337383865 +35383634333435633835623032646132383634353836383034333037356530663430346133386332 +66393964373334373838666161353038653465646262333366643362316435383163376537633137 +64323732313764336639623631306532303762656233643536623030616631366161373934633136 +33353234393766353362623137303161663632326336353231373961333335333264313064373864 +35393465376666656563623261333866643562313362376262643832373530306263623665323465 +36333365323465316234343264363166336130336166343537643366326665313231663032303736 +61653838663937383265626432396637386234333930363661636539353935653063656665666637 +38623964363839633832626432636237366636623336646264623437646530303534313530616132 +61366363346639316462616266323930633961616533343062303438363966663832663739383166 +30366636343832303036343637653636343461336337623431636438323531663066356563386462 +38633831383830343037383539356330663333363335636230636330653434353864646136616632 +36346331313235613331663934353361636431376661356233663963376632383263343530323330 +35383861303034383964336130613865313138393330346533623963336564313034303261643936 +64373263633765306165353935623964383331323963623939323936623230623434653938373138 +63633636386561396533383830613263383762663534656238343533616464306435626534303263 +37643038366535653238343065666161376532366565386163613865626565643339313239623764 +66633135316531646266343664643462356665643734376233376230323936346233376539313931 +36366666636164343730356336623535616431343763626532626630373864356533613966646537 +30383637383234343036373233363035336238613062666632353734643762393539313065623430 +34383139323731343964363630636539336662303463353862373965626234383563313236316566 +35303166663032346534316466623065313837613738666335356537666335326333653033666134 +33656362393737303733306432663764383132376365316333333639336265656338313966323866 +66333637386461633466643739363731623166653537356364613637363534663231356133353235 +35653837663337616439333035316434313463663461663838383037646533396637363233333036 +62643063383437656463323533333863633363343830366464356632333234666564386531343463 +66626564353933383432313139383561626632336233323930656363666637333861326664376361 +35336566336161646462333937356539343435333639643463653838633037373639653239303931 +61626631383362336235303933383639313130636462316366623130636365323865363033653163 +35643837346638626635633662623463366263373035656332343033663433623031376361383261 +66363263376635393037356237346135326262633239326138653761663438636336666364626239 +31346331353864303562383731386461626230343135396532346565653861303432366530363361 +62333566393333333530313962363363623562623734306361613563356162376163333664353538 +34363237373933333066373563616130393035316439333665623932373437393835643034626163 +32336433313131376435346335356161396139346666626262313261333130333538653965626564 +38363434643835336336623139376336313136393066636162366630626632646433366639313164 +32393133663232376339346262366232616435346365313934363130643532653533373738396337 +39346538623865333339303630336631363735633534346434373935613333366366623636303936 +37346365386535336464333066366439383435396630623164306263303865373132613634626130 +30343334613635666131376363386336643139616530373934656430386263323537663166363236 +31323839313131363635646461346431646337663838303138393166663538396162613532373163 +66613138383266353365346533393937616133343433366235663236666164653565303639333537 +64323237303864633834363030336333313937306232653736303366323262366430343539633138 +33383938376331623739393736336431346563333166623236376364346563333636636562633832 +32383464343165646433656565343861336231663165656239613138633762333963393934346365 +63623837316363663161633363373765633632323665613833396362306163333334366230646431 +62343936303564393266646163333535306266373764613061306636623532316264653266626264 +39636563343165623765656566353662633637383132323436396635653337343266323838376166 +66656562636331363161333165366635343434383466306633356166653764626333633735323766 +38663733636532613037396334306236303131323532313164366262656336656438393338366565 +35326639616465303266326337373232626634306332656463313038663137623231363439303566 +66396239383136393639633962653435376161633964633536356139666431313233366435616465 +62306530373262656461636431653430306439633162303235393333396536333963656430613036 +33643938316465363930313764396462383464306332306130356531373161616336323336666163 +36613263386636633264333230623861313734303930633735333537623462383836336262386639 +34653763313564316333653437376663396131303330383937363639623032343566353636653430 +38386537323935323731643333346531366239363063356232346536343739336663366332303431 +65643530643938616163616539643037366364653262653530303837636330636365333531353230 +61343630323336636532633335343038383664333339323233366434383463643933656438623333 +34336335343366623564343636363035383866386662666537323834316239656666316565366232 +64346164666634643631633536373031393431623763343761313961663263646662353735326435 +62613539366666303361666236356132303639396236373338363932633438363337323861356134 +35313632363136326136356431306366643338653439373233326239323235363863646464373761 +38623535353837623131333938303633666139383930323562343732373662373566316262643261 +30613766363531386661623739323939393534376635656338613334363832633936663432343930 +61336234663262373536383630313161643664343133633434333263323434643866383138326633 +39393963636237323237383237363839616665636665303634643435386335646234306530616431 +32643634353734333834643839656465336464613730346130656264633361656333333765323039 +33663764323239636635366362386339396432383934626233653265616162396636343837643830 +64646131636334626230306432303233616563633736313835326439663636303863383531616131 +33376461623565643233393937366365393733656437303365313936643333333038323434383339 +31633135613961626234626665386433663330386336366332376164643531376434393463316238 +36303263646466373539383131383230313466653636383933666338666632633239366564616435 +30363538366533643162303261303734393131616664613031396439323132353939663033383436 +39623632343232326230636461313935316363623139386638323135323738356333353636656235 +66366532313266303537316634383464353665313532646231623439336161666537313635333439 +65366439343239336632653232616439363662353663356361316464356233636535616665373865 +35663635623035373637363864343135643961303564323730656663613861396134333338663664 +33323861663235323632353139386431323737313763386237643235376533633236636130343363 +39636233623436383264386561613165393530623533616261393436343030623461373331383662 +61373639633235376361356132623331643638656135306537363238373063626632633163666361 +30613861363035393962396561623432383437646461353436373738373462383932376566373035 +35656164313466373162653134363066343034616637646665336432373734313163363937636162 +36646462366366326332336231303234373962383036393436656139303965613733306538653436 +62383035396661336166356438326437376533666364613561393261343539336430663435326166 +30633635663337653463653931306634346166376264663230336565383734383338613433353730 +64373961623031636638643438623266643336666266373565383035303038643638356662313139 +34653732393364613231346161343665613164653835623861336432396432313765306535313630 +32373264376164336366336363643835613763363761316330356461353531643833346238333035 +39376334393138353430386431643738313164393839623731343763626166353236663136393730 +34343665613962623633626432396130396266373664326433636434386633346133363431346265 +30366238353039373062623633373936623661343535346263623130666330303765343161633436 +30663036326137333534303233363463373032616237386664646239656136303838623530666666 +38303735646531663737323537653034326239346161333937346533363833363563386337393636 +36343735323335393639316335333330643534633035653633633337336565613764366431396233 +32353764303138643039653533343464326339623532323233636565346464643264373239376364 +64326262376536313635656563656366366662626532316165666263336639633763613931613261 +62386663393663653966613665306239396133663963313161643863663562336537396539323434 +37636339343235333661613065316630323737316433313231613236363330633232356534393438 +62346132373965386264306532666337346263623334656364663361653330383238353137383437 +31386633346431633263653765343331343061323534343066326665333733623938333264386462 +34343863316239626335386235656235373838396136633436316633346534643735383734303633 +62303265313233333336336237663435626330353432666332393538343964316633636366313839 +64633862323939383734343939333766656637313261313961363037666137616539343833386633 +33643963336333323466333538636535396665343066626462346464623064656535373732333631 +39323033393834373262396136396565636634383762356537336261353538373238656239363633 +33626361333933633235343334306163306534373435323838653162393966326463353638623239 +31336339393964356566343064643866386266376232666535636632353839376334643837333636 +32323530636635636131386161363364316561646437633734653364383962386466653332373762 +39393764623830336334376661623339643031316130376133623938646662343631313830346631 +30376637383338303265353063376130346130346530636265386235623834353834363633613834 +62323436656332663139386165393130666363626263386537393236336666636464666133613534 +30356636323230623761306637323433336361393064333661653961363365343631616266323238 +38376631653932323035363038363035353636666338636336313430613561383334356265326335 +36393336333733653565613766623438356565336663353835336362623463353437303235616337 +65643762383237626632333438633336353866366135366139386433663430316639323437323236 +32333139336130366466383538363732393038393635636330366664653731373163373339323538 +35376230666636383531316663353464313364626266646136383662396265396539623539313231 +34316436626534333539633863626432313433383766323662303334386434376563376538356166 +35623238366464666233313362323333393966663037653963353832383835623636666564336439 +61396430313262313838643531336465616532393433613039323334646566626465646365616336 +65656566383462303733326434306634313063333030396636393335646164363161323539633763 +65613036333533636565386538363832366538666163366138643736396334303736396333393033 +36353537313561653932636431393734613134343663396366383031623766663361373431633861 +32373330633238663338666638383534343965306161353266613336373062306137656533626563 +62616338653533636630393035303661393138343534366438356136396238323736646330343734 +34323439643133393235303732656465353163343034303031313762373538656533666636323565 +35333739623165633937636163666635383830623465356231663330366266303462353535306562 +34353864363363346562643434353430363163646635316363346436363832646466353263353535 +62646435323935303432383139343466346661373534613562383462316230346137353531353464 +66663162383161663064303233353736376330633932306630356330336237626532653536633931 +37373331343834613362633939363965656433336638333664623762366639666635383236643838 +31636235393762613237376537343565663762353137393666663666646435356239626533643961 +35356139333664343536373938306634633831626266663165363765356231613961393135666234 +61346237666238613237306539656434326532623335636461353461313761346636653636353066 +36313236366235336437313933373331316131626163393165313032366264303763333361396133 +36396338633639333331663132376536626237623864313665323931663435353334366430343437 +34376661333234323766613333633566643234653562303833633663663265333461626536346265 +66363765366539383339396630313836613132653236386535366365663732656561613630356336 +30663139356132383662633239396565383235363339306362323265626362616336343239343461 +32326463643132333262383231613962323066613639343161356631346362393863386636343431 +65363935626461333336623034623137356561656537373461383563656133346539383036313664 +65663066643233373530383665313434386235353063633039343937656565323233376337653464 +62373830306631383365396535366233326534666132316166363731333066393765376633376239 +32616137313562353331616536373763613230366234386162383165626464313431636333336436 +35343239326565663732363561353166393236636136363534656532353963623935343363643035 +62636561316233316261633337313435656138343766353061353830666163313332366333626562 +61393964386662373564323838633564303638613035386261353036613765653337366139333461 +61303961336337653234616335306138666632623465333435623362356639623031386534666536 +34303839333735643938643339333661623336366339383934653564653163353261616361333433 +30333765386635313134393839326365393432666331623134393934303030626239646133303339 +31653635363961366565353836653433336332356462343662343036653936636163303762326461 +64636134353634356265313263373363366637653737336539323663326535353232343265356632 +39356563323433663637613131643665616534616339326663343062663932623031653338623666 +38323834383032383534336236376238353937316339313231643139616232346635663563396530 +34393565313762313330613336663831663565306564366339346339653831306234666666656138 +30386630613033323562633634306166613931633462633937396537383261343139663534303662 +35356130633862333833356537333935356537316439393265383938356637333965356232333164 +31656431653264343937333134306533363832393761373264386164303031626530326338613839 +30396138383036343362366531636638346561633532353362643532353036656535623961643734 +32376266616532386165323037333234336363636639326139636136626334336239656134343939 +63326538366433343038396532316639356230313931353264633139643930626564373134323530 +63326539376565656339323966346331316161626461653866306630393033353337383332316537 +38363264333031633538653133653932303565313034666639386162663737313464616661663030 +61653837343032643534653839663033353534636330333138313836653734646331663131616332 +61323439353735663139386566303239306532313034343438353233303534316630353431323236 +35663764396535353661313036386638346266353739666462633037646661663931386465653138 +64366463663061353530653465353131616237376534663936393762306334386462303334623232 +38373936323133376431663334666630363039343463373836373164633163633830313738646536 +65306139396434373766383335333465376136353565393061346534656538383464333139653137 +34373162323337653863623666366631353438623434386166333031326165373263643566646431 +63313161303865623664373635353839623662353030303939393565313366306262336466346563 +31306632386638313638653734633530353234366537623732366266383039626464393435343731 +66333933613339653935313064303637356164396130346335386439623961333264636536343266 +38613864613838353935613430383363373966333930363664653130383839353032353535653638 +30666231363437303064633565643961373636326464346239343932303636636638633834616439 +64663934353038303265316631316633643066616539373338396634353663653135653335393263 +34666237383539323338656237393934326462376435376534303434613637636331393439383366 +64333139303333343433646131303661313333663439323335383434306438343238633761383634 +30356331333136366333313264376661333339333833326533393339393230636564343565346438 +30356434376664646232333036663235643563663263336465306165343536346239323564653263 +31636333326665396432343462613930333735393437656233666662343761383035393835363861 +30333762323730313135303963363435326631396538636464336232626334333662356464616432 +64383663663936313063633665306137386138316261323166633662323936636430393332353765 +32613163663764346638633765623261323834336535313462666636323937346134306536633766 +38356531336264376639316666656638666566356336343036343432323761643063303738653736 +34383331396139306431626537623466636335336531373461373762353137656666363637646537 +66623832376137363163613665653866663366303238313039343035663732613764653534313264 +33373435663837613433313833643831373434663435386665643739356239626630323533363161 +32353339316563633061356530653563303436663334663438343162653036653630653137663433 +38333939326165363162643264613936666236356331313366353839303332623564376565613431 +39363362616332653638333738346332306163613665323262363265313266393461333763333336 +32376163336462666136343834666334336666313237626231383231383734356630353535623236 +34663332623063323533646134366337303165616639336132333234386138303861616333613738 +64333935326230396431396436656666346137303234373933373638323334633766326266313166 +34366165396335333336333734383863323337343337366437633937316334313635626133356331 +65303263373631373532636437383765306138653361663131396631383362393762303364366566 +30636436626662653663386461616237363764646533383633626365623435316430643464336230 +62363836343130646338393631643832393763303461356637613561383533393033623334313765 +30353735646336623637383764313732353432373337393130646361353063356435366330376664 +39656433643333326266316362616166383138613733636265333536373739393832393131633838 +61323635326263323933303863373535653436663864386430663634613538663762653039663339 +35643531323865646137343663646138666432356464353839653630376666633137343136343234 +64323834393436613963386431663638306164623237353236326664303861353433346662643533 +64633532653462653961646663323663316663383765626332333137336366623561356633333333 +30653132613965623166393833343637663266386431616431346664333764343562643563643937 +31343133363262646263333230663334356162623463616263646364303933636666393533333934 +36323863613036383432356166623933356432646333393561363639626564373736383165373636 +37386634363638353561653832366330373938393865636135363761336336343663373432393837 +36393133363230633365323539333135643365333738393631333435666364376361356666313930 +31366134396430393863666335396361383337623839376664623637646266366533663263346366 +63376561373332306139306436646233613065313737303135333062386661333465346164333864 +32383330386462366637326531356431346137326333396535323834646563623134326537666663 +30326331653732626664343332313963616166333336633164623038373131353834386435323938 +39376335323165343635366330656533396332353631393734323330323762656338396130656262 +63313965333539323663626438383662363933323764626432653732333565363631663737353235 +64306134653331366435646337303137616634363232353863616665353261623332393266383236 +34383864396463353663336334333539366439666161613334303538346366666534346363376163 +65396265376463323664636361653431666630353433613539326535343637383737356635333263 +38633939613034383436353264306639316639356336323732343938323637616534656465616166 +39353937633036333835633131313663393666313437376264383661386632386133623137623463 +65663432386336316261353630343762643866643839303863363230343634346232323765393133 +32306235373638373462643630323864386536303332333531363663623535313663373035643364 +33653336663864383430643134303535656433633261323763326535366262393930663135326461 +66613666636332613934306531633963666464653366636336613266333665343665323566306333 +39623032393933353438376133366362616361613830363364666163663162396237326335393837 +33643138616363656561363538366363323431313130313438383932346564373832663837313130 +35633333316134336662643861613135373935393933333065633835326330343937323564663336 +32653130383431306466633631376166336634356361636138653965363965326362626362396366 +64366531616339613731333662373935353462616639336138353835323330376332653664643565 +64336435353731653937656432393539333366393534353364636136646237316637633438333034 +62396163373634336636366333386634373366326162633830646663313838353164343932393463 +33646462396464663164336131323366333238386434363833306465643633656333353732313939 +62373434663733366238333332383932653036356534333532343638316639303336363738653265 +66333563366461643466363430613865643063633762376164663337633166663365373134306532 +64643131353261363362396335336565383463636337323265653431336164653330646563633735 +63363430633637393434656464383932396435656265373837313166383536386532323861323930 +65366464653036356135373832376137353761356230646363363938313435306166353265343837 +66313330313834663864333064653938323236383333613362666463343532353230353537623662 +34356662333230656636653031613566323165653235333962333434656462636538306131343233 +61363130323738363133663436656366613039623062346233636664343532346165646665363233 +39376562303062396339366437333038396664613666623739373534336233316136663163336264 +64343335643732393432393431363861326533386266646362646465626130316331326330656635 +63313364666133393361333264393131306133636635633737356364393938316632363636363636 +61323939363436326633626439393331643737636438666532383963376139373864666231303231 +65303564356535386537646535363736313437613531376666353033363132653166376231623666 +33343532373432373131303961313130393937343132653730616334626134306632646435366632 +37393562356435393131333931313762343634383131333863626436353131356464633666323831 +64376561643135333861393163306432653164623538643064643936636639633037366164343639 +31633832653865626465643661626431393531303339333236623962316263313065613130336633 +31633734346331306636636161376261646536636337653063393730383738643734616134346261 +64343938343339306135626536666138613064303662396537336430393361323536663962623563 +34363366633131623664326634663233613037333935363530366665653333363165366137353533 +61326630616634353335356366303766353162316533373861386262326263373137666566346239 +31646266313332343630363362656137306664653833313462623637613466376461613862303666 +61366639626235626135376463373033636336653331316633343833353363313663303962653963 +65313534363032333666363061666430623135386131613366323662323562353365323965646161 +30623839656134663765356331633233623531336662663533333164646465336363333065393733 +63343866363636316161346565373164646663333361383464653935373935393766623235656437 +31396134363861636162336533356433343162356561376232303665373962306637643331303964 +33313964653334633533346537343135623130313866636463326565316133396236653630376633 +61353961353862633032326430653164666164303163663633383963613436646632623464613439 +63373436613834333233643765393736326336373138353464656665333866306435663337323839 +33326464356535316665623333313962616362376462353464616262346162373661666265336533 +38366631666635656336386130373963643761363635313962643732306462656335313363636435 +36343263323638356339366563353061323061326637656133343033303966613661343566626662 +65323066346634313337396665316333303363613532646330366563396432313032363630353339 +34663165626239656632383232303563653036663564386131363166306563666363346562316462 +30306137623831386130306162613730666338343564333131336632323634346536346666623837 +34346465636264336362316132303231376662666630623933353431623263656531396637323761 +39663339326663396637383936646339626164323832383330313861633466666262363765366264 +34353664656664633536323530353339303961326564313263356663356432323763313433396533 +36663634303666356332346361663831386266613232653836353063663365346438386431646166 +61323337653932626436386537646666646165613666323037376632326162663561636532636333 +34356136653766366232646333653862383866356236393364343066356331303562633030396566 +66666361633966303963323066633239373934383634613765303438653661386261643263353836 +30616637656536346537393331343730643261366362373339333636666137356662376538616264 +38316663346662316265353732373933386463613537396332323931316339366164373761336332 +39366238346665643433646233306533336465613165663432326165656638366133356638323963 +36623532313662646139383831613964653530643439313330393938346464393832346132353466 +32363533316139656464633261316535626138666264383336313964353436643639613931343835 +31346632346239653634306233376365626664363931613139626230313661353237656332623062 +61323431636339336466333731356430376430306438356561613164343432396263326566613337 +63636437366461333835633835643734306365303035313161363334346361356235323632643232 +37373465646166653238373630323665316261363238666538633663626336393735613035646338 +38363336343335616637633032333665656535656563633233646431303634323437356634663462 +61363438386333643136373065386637303331323463363632363430643237643262343966313239 +30313932316533646331376433613965383631363231656236353863666338663365303630646438 +63343133653061386133303633633830633462373733646436393237663262333864346530346361 +32333031386662323063386266333261613262313434343265666337316237383339613336383034 +37383734666139303736336261356632643536383965323561663338303963393537626538303833 +36613438373339623665316334616535363166393737643339356464363936623130396136343763 +33326133643565356261653066333537313265373235396334396565396562623332346630303165 +38376630656466633864346232393132383231373965626665353564346533306461663561663463 +62383334346666626461356237383538663264666239353832366233393730626637336366313935 +64363532653037366366646663346661386465663334373331313764393337313033386266396134 +61356165346261333039626661613738646163653739626161356136363061346363383839313436 +61623661633135633030383763323934643066376234303730313037626363653730363263333633 +65353738373262393661383830303366313438386435386238663931323730326232616633633762 +38363561396562343066656236373535316662646136653065613939383537393732333339363062 +65323566326135313539393364653134333466626239643064303661633138646465636338303439 +66646330393937666130636161356666363239393434303563656137373136316632653435323066 +30613564306266326335626231306266376337616463353931373836633435393262656338326638 +39373462643233353830663536376636363837353435623466353664623234623432333066306231 +66613233613437643662653137323632346433613965333632343663383632333838373865383031 +33623765316339306538326235376562386364323136333738396663653762376539393862383936 +30663763663639333436343766343737353831636666393339373865636138633164626165333036 +31343937393035396434333530393731316435303566343833336164393735653332663666653462 +65623738663934366664613437396262623939313361663331373464373038303865393436613065 +66373863386531383862353332333732656337323238653763643239313734373464346534343938 +34396264303036366436303839343531363966353663613632313730653961656538326465383739 +63326432326635363265303033653132316439633465393061663431353265316164373332643535 +63313863323434336631613734613865303963653062663431333464626666626230646365653232 +32373664373230353362346362386639396464316631346635343236393235336564623630626232 +38366232666234646434633933663139633637343432646236663238626664613862366238346436 +39363731373937383837316466653637343365363661646632353632613362306439333562356264 +37623162373832393439656565643630343739636264366239396130363063306539373332323839 +39343237303565363630643639353435326232336131373063653664666338383361386661363164 +61373333623937333131376135643962336238386265323563356263333538636335653562633835 +38366263353935653866323936646232393330666236383065633038343934376535326166383166 +38643965663730303037316335643137653833383866613265643239343030356137623436613834 +35343866306630346136623062376134656534663634323363313038383362623761323764633166 +31633965633136373165636638373030663336353938653934356161656265393930366632653430 +33333336366463613064333337373030663233336565306163323063363837313233346532353735 +62643535623663653766633161656232346536333534363832366432613362663733616265313137 +65343863653363613230363538343965353830353464363465303337393231326365373265373031 +62356266366333373334333964653735376334333131316633353266326334623535316130653130 +31313034633036303461393734653537653633666263313735383331316434366566393263373465 +31393838643063393866396366666437306666363638653831323638323665353862393836356331 +64663139343762313631643065653633353135616339313737633538646138313835363932653362 +64366438363734396636313862343066373364343930386561306364616535393334343234386461 +31323664353361646231396164303366376266613332353633643266656137323231323262653230 +33363664363838393937366465396335323935376565326534643064653965656465646165373934 +34613632613032326665666633343266613663636233653763633962633531633537363134323030 +31636363396139326338643531316438666166633236663831636133633562346463343162663862 +39646137636438393465666362623031653565356539326166366439626635633239643864616365 +33316636646534383332633733306337666166633831613764636234323930303537656465396530 +35323738303531373765386530313934633835643137306437616366616537306436643533376633 +66336337303365326162363136353962633962613364653439613130373765353963386162653563 +33346633616334383734663431346164343233393039343534373266323564376530616561333361 +38613862323439616239653065653231336333663734393830346433343134313137373734613835 +66393031636231646333656563623264333163616365343033653064633133376531643938663266 +62343831656530373339396164336333326465313563386430656234623339326136633134353038 +39656462306663636339383031316266616534333236356366643933653832383433323633623236 +32303836333535626466386235323834666537623334343936616561376432373232326462666332 +30643733366363383332376237343761623362663530393236653435383132646435376633326261 +66666239656261336631613164316434373964623061343362633766333231663162326438656665 +39616534643363656635336466383039303063313363623332323136316664646566646562633239 +30383834363062616236636335653762356434313037396166643662623338373130633239343334 +63656439656435643132316234663933333732623163386532626239663265376564613933656465 +36623437313365343830663761653562623733626564623435326338313633316339383363646166 +66636330636137363964626638666634643134316437323864386532346239366537313134336463 +39643264616662343363393763353031646631306536646334656236376330363439393362356564 +66393663323030663332663765646665376538643137393933663730393265323366353539663934 +33666662613161326633383037396264633037643137353663333463343963323166366633346561 +65643139396334623963303838346233333035626264643234316434633332653737386535653337 +34613937626438343230316430333436376365303962343936373132663233616139373638653566 +63303139626237396135633364623934623436373031393534356666343966356330613866373461 +38303130643932626436363937346237323138613634613236346534333534626237366164633639 +33336631616630386333356266336239616163366331313433626631396439666432653865653962 +61363237656162633830616439343564313362623130363438313661653766393865633664626333 +38616635646361343634303963386631363431343932393633653439353463343235613836616633 +64356232303936613730306164336334663836623266333638666663633033343161373230323331 +31353866336236646234656537316632666565333062643833643061346631633034386631376266 +38323865313034343936343839373835303734393331353132366536303838666363386135353335 +64653430326362626230333635323561353238313535653732333930303831323064393564396537 +38663337326235353237303866616234353533643439663166633836316232323630303765363133 +63333332613635653234653464363239366361333734316337653833666330326265353861343937 +38386562323539356635626163376263373437656463306134333033346265383765666233356635 +66626165623930623833353631306633316664343632323232383335636534366161363231333130 +33356566323837336331303432373662336138653438623761336639313432373131333463336430 +37623366633132373430363639383163326535643532313162326233363739646266313631636266 +39326262313164303037346366623365643636306436613535383065623234336363656561636436 +33323237336635613438633963666564366261663366313033383833366236616464613031653462 +65383835326630336236323938613964666437333766626436333237323265616164303934643234 +63613634386233626466393837363138383538636364373934356139643663386266663037366335 +39343765636133646137373434373833653465383765396665356330623465636334646664366662 +32316233653636336431313030356133623435633435306332653265356434623539353030613830 +30313162646336376331393036636437316461613061663136343931343861366464373536356637 +38306236323565653436663763633234343161353836636336646364653362343138313333376163 +63363030383963623232373261373535383961343530386433393436623761646562303633633033 +31383837636531613033646661353739626131613531306633343733313030633961336638643665 +63363337303732633063646631666431666437303261323830373265356235343764376631646135 +38353566373139643231656536333530356231626265616263323931373536613534393564383366 +62376338656232316338663134303635353963373533643231376636376637323663636539316663 +32633833323733653865633762663564383161316139383463623463303565366163363733363166 +61303639613766666661306566323830643966643039383534663565363066313138393937313134 +63393233333165613036636234323339613634623538656436626365376333613230373164383466 +35363332656561626465363438353766333364636363643732303861326636383238666336333266 +36383364306339633037383462356366333066306432306265303833303737303537306465333466 +61356666383464396565303161613366633139653138346239353537313539663737353935343138 +37326464343933346630326438376563363361393463336663363861373332646634613039336664 +66303534316265393435623065316630303237343736363533636538323363643363396134343862 +31333535343030373932336435373133303762313230333135666666386266383562383332356162 +30396462323834353163346333376261313065616366303131343963653534343834306433623661 +36666530613931386530373564653432333339313539316236636533353333643632383563666339 +63303938306261616535393237646663343639613832356236303762623963313333626330316634 +33323233356638343532656163303231316336373630373066666133636139373866363832636233 +63383732383262616130363735383533656337303434333566646531646664666230363865336261 +33653338343532663338643531316532393735373231323237333432613238336665373630393564 +33306130363366356437616630303366386433613466343964633638343931313961353661353335 +65653530383735373130363136333132393061353534633232313764643566386361313530303764 +38353233356430376138353138313230623761353766306631396138386362653161663236386364 +62326433643035656130393231376632613434633163306336656639633664633163313036326339 +64383236363831306365326564666133336636626438386666626539396465323835316662373264 +62363061316131353633663339363735643639666431366634633963633364386665343136326133 +61653066316537656661376464643061313434643465353738336533393331666337633130356663 +32353161363530396464336636373530633637323835346532383236353935613931363865356232 +66303237643063663563623836383635653835663038393131666464313531303936366538613337 +64643433366438383739633664663239623837336431373639393362323638316236343764326465 +6137333130383833626165386432343534626335623231383337 diff --git a/environments/manager/configuration.yml b/environments/manager/configuration.yml index 9309f2b6..0203bddb 100644 --- a/environments/manager/configuration.yml +++ b/environments/manager/configuration.yml @@ -39,6 +39,7 @@ manager_listener_broker_uri: "{% for host in manager_listener_broker_hosts %}amq netbox_enable: true netbox_api_url: "http://{{ hostvars[inventory_hostname]['ansible_' + internal_interface]['ipv4']['address'] }}:8121" +netbox_host: "{{ hostvars[inventory_hostname]['ansible_' + internal_interface]['ipv4']['address'] }}" ########################## # celery @@ -63,4 +64,4 @@ configuration_git_protocol: ssh configuration_git_repository: SovereignCloudStack/hardware-landscape configuration_git_username: git -configuration_git_version: rollout_nodes +configuration_git_version: rollout-services diff --git a/environments/manager/host_vars/st01-mgmt-r01-u30.yml b/environments/manager/host_vars/st01-mgmt-r01-u30.yml index 5e70d4f6..e2a1693e 100644 --- a/environments/manager/host_vars/st01-mgmt-r01-u30.yml +++ b/environments/manager/host_vars/st01-mgmt-r01-u30.yml @@ -13,7 +13,7 @@ ansible_host: 188.244.101.28 internal_interface: dummy0 external_interface: eno2 -mgmt_interface: eno3 +mgmt_interface: eno6 ########################################################## diff --git a/environments/openstack/clouds.yml b/environments/openstack/clouds.yml index f961d3f8..7730a852 100644 --- a/environments/openstack/clouds.yml +++ b/environments/openstack/clouds.yml @@ -9,3 +9,12 @@ clouds: user_domain_name: default identity_api_version: 3 endpoint_type: internalURL + octavia: + auth: + username: octavia + project_name: service + auth_url: https://api.int1.landscape.sovereignit.de:5000/v3 + project_domain_name: default + user_domain_name: default + cacert: /etc/ssl/certs/ca-certificates.crt + identity_api_version: 3 diff --git a/environments/secrets-ceph.yml b/environments/secrets-ceph.yml new file mode 100644 index 00000000..ef7dca2e --- /dev/null +++ b/environments/secrets-ceph.yml @@ -0,0 +1,132 @@ +$ANSIBLE_VAULT;1.1;AES256 +61363465383830343265336662636236363136313161363065323666333237343062306262373331 +6361653365663336393364623638373735366664346530330a343763316664383334313735373131 +66623837373361666238373631313961336137313162346530366435653961373638643435316166 +3435653966333661340a643532303536313263663132323339393266643439646636333264376566 +30616162636536313561323237623333313930636134663832366239663736356133396230356236 +34356163383962353865663063316166313534623836626536663533643837366563356238313238 +34346239346164636165303835396430393463623633616461323533623330613339636231663035 +37643666326365643434656231616430666366656337636235383334626461323838303234396433 +65653835386638363231396130343131303839616639303032343430386239363534303465386563 +38376566366635363435363764396163656564643861616263616435383935383133316632393933 +63346534656137626130626533373434643634633430383039623437316530613366653530363832 +34346262653461333738326535383133636361396561363431613136633065653061366662656635 +64336633643662386635653032656330666535383161623532653934303339336562663337643466 +34656230383137323134383666376531636264343136313564653333383036333438643039666164 +38306333343764396537356237386664363532303338383931376261633338666461636232353064 +35383065313165653237393939653662663364306365303662636165346434623265623233366165 +38336535376430353236623230303136323663303035396334373139333363363039636135396364 +63333766656466633536626535643037616636363736633161333834373061643130373462386438 +65343662386366323438363134666462613534383135613163386266646637633032316130663466 +65373333663332303731646233313231363663336636306161646566376364383537616365333531 +62306135633263353835373939636235643835313961303933313230633235373031346538316265 +39663962616665393639373561363139376535623634326432353239633662343766326262313763 +66626432623236373337633236663630623665316165383532363230393662326263336337313231 +31393531626136303761613438333230633638656235313534373631373761333332663630343931 +61386432656430613261316163393432633766383039633034613862323431333335346164626564 +62353966396364333064323464396361356662663362663833633630373830613932616335313666 +63373931373039363861663365353132643534386430353861386165393966313834383635663839 +64343964383861343938656464356637616536613634633661653231633634393166653639336231 +33363835656234666638306562353564666639396563613465323766393836393635333561386435 +62313766643938643031326663303734616365666237323264363835393864346334386137356366 +34626137333264333938383766306464316164386666653736633331643963396466323737333633 +30323038333565373839363431343137616230623862333261626562393666616265653033616130 +37343165393961396336633462383766656666626232623334343233313461366439303465363863 +31323838636533373661383739343437373232366137633462653061396563353236626532616330 +62646631373535653663653763383434363338633062323262653666643366656633653631656161 +31386532663132623766353736303338623135623466346234356666646333626139383566353539 +64646134316462616231386233616234663836643337653532326464643339306132626638346133 +36383430623630396137643566393364666139376635363662663239636335326633643532633436 +32393038336338306131626263373733326362366265636631643265633234646365626165346533 +31316361323732303532383734653835313366643730333339363161383038336338373836333930 +66346662353362343932663065396433396533313738303434366436393731333163653436383665 +30353361386336626230326336363235656566666261356436343633333531616135643331366536 +39313338303664326566326434383665323632356331323433393938396561373265613932616261 +33393239626237393961303964656136376363386664643862396638383434383266366163643238 +63393631643637613762336137623563313339633161643233656163633634316132373533626565 +65303664313838393636303163633938383638396437363136633766393638356161363437323132 +38343836313335653864666631313539353034303337373939383364643338386163323362623732 +39333930623732333530363736346330323930323838393766666465376536653566623161303537 +35383033326362646463353263616264343936373561656666393230383337393539323333316265 +31633662383737643137306337326661383635373862323438343035386131346166623632343531 +31383962613531393465343866353934323064666366373136373462663637383030336330303764 +62656532323763343035663134316561343266336134323964656363666661333966623131376665 +65323066623964393035353739623465313162383262383362333664346337333863643031323231 +39396365613538333235346162663337623162643836323436333361626333663235303136386661 +66656332303161383135323965313938303937336639623936336633663533373062363532616537 +35376161613966316266646538306631386336393561613730373764633230613665333033633430 +61336631666135656139663766343661623337336632653732383833393334393938653633306331 +66323365396562323363356235303535316237383432626434643262656234353136623539626233 +32336633303233363538383830386639623137623033643865616133353530363733353332636335 +62396338646239653639306632636439633966366363336437323837383638653163356661393563 +35343265646361343130396531313538316237636365323030643537633636656431373338376366 +66336638383363363962303535616265393639653430336635373761323631393637353163346666 +61613962333864336632363466396637616163626264326665373865373564366666366433323736 +31356135383733303266653338393434373062303730376237656630376432653462336533323361 +66613764323933363430646133663532353961353732646130663738393736633330613835333462 +64383566336230646266343035326161393735343064326466363435336261613935313261313736 +33376563356533663631366162363239633465396564663261653033633931373237353961393836 +37613061666239336162356565383465663838643534366465643163326131383365616439306462 +63666131626139326337653236666236643238313261316638636431373866643530666637646231 +33306263333931366434323935643435613737666535316561333861313963333765613564656239 +37396163316235393365383361303461373965613264386262373634323439376239376633323036 +33333731373862656561303935613664383863376639323130363661363232646434633134393030 +66616537393666363131313366373135626133383761386261613233323031303731626335306639 +36353331616236306337633261396435303535396231643735346566663634306431323236663163 +33653633346662356534383138313636373132643336623366353762333563376166663438393233 +37363932663333613035353466333335636462363332653939643335663639386232396236613965 +35346362663238323034363962363933643861303239633163336234623865343665623735396566 +38353331656364343766636130343133613033346235383461646662343835333035373434316533 +37636261646566633931646435373933316531326134313564663835643761353738306430616637 +62366531396366623966373761653333336131656133633362316639653035626337313936623761 +35373464313434343934666234326561323339666536666332303136383737663737656464316165 +39376661383531373065303163366563613962363964313337363766333730633638346533323435 +64636238626365303033363263383233323439336437613833666464666664663265383665383361 +64656466376636313730343235616336366337616265333264376338666435393136613136616232 +65356235336364303861653931396264363764363537653230313431346132643363346263386565 +30643532613338643837616533323061363466653533346230306564306665663362653061306438 +31386232353338373734646263303237363231343034636432323435336564376263373131373564 +62326661613065343436336466623937336635333565653434376464613863373332343962633561 +33306633653064636333343535646330623434663838663435323434636665613465373031623762 +65636166353062326438613038663466323138613234393436613633373839316438396163303031 +62343961306336396632653430623637333464343761343563303930303263373034663161313662 +65613130623835643532636438643332396131633765623834376663363138616232393432653964 +31626537363339313234653337333330616364373566623633386365636139626433616238343734 +32663962306634313461643031386563373232386436656261616461336230396566393431303332 +30343061653265386431663438316235663262313838626330636666643339663361396539346436 +31633364393862633362396238306438613161636337346165613837343431666133333234353963 +63633439633663616662373137646337303034303730653737376661633839393032353233386430 +64643831653566313633643531613431316434623363373339303762333337656533646266333163 +38616131316136386339363866633637313838663331623863653864613634376334366238613433 +32336534316563366662333637386135303334363237303563373139353461313236306665323964 +39353165616664646636633463663465613566316339393664343637303433333166633262626564 +66353938356261633362386566663931356262383635393232616464613437343035303733353739 +38303633633965643431336661313930656365393964363862396635376564363832616464333664 +34373166623835616535626465646339363931313139623863313639383837363136353735616637 +37336464643137363339343966636431343735613462373234303432613961383833366631343437 +38303434616439623831666337326263303039326566613839373932633130643663353338386238 +64323934313933333432633136623037383234326165376666613237303266306133343434613563 +66346131626130656436386235376437363638313833323736306461323664636639353436373133 +31653235353939336561396332396139393862653330346431633164323739323630316538316338 +63393631343964306132663262323331353761623538656535356639613266356661313136393166 +62646630326565653834666135656663376439633834663830303231353235323430613633353063 +61613466336434376161643034353664306465353962383866303061643930323032663337313339 +38336435323766363136353664663038613533396231323930383361363333393533393961353738 +32666564623362383532386639623132313466613130613966343138653236643261343534316631 +38383337376463383938333830656139643565306632643535323232646136373761333763636632 +36663566363065333632373933313763313866636661346161323432656236323636323232626263 +64366265616566396330656535303337376130373338643465396130326464363037616631613833 +33383464353730306262623539646265386633353130343033663737363132373762613662343537 +39663537333934363163636235343362666264343861393131633131383538343737303238306335 +39646136333739303030356162306539356631613866613931376264313132623139623539336634 +63343137313437613839663434316364636163656463396433333037636538306330323831656436 +65333161636264383034633939613639313230353430303166633937616630656237373335623966 +38643632356663633265393732343662346362343464333363306531316639663864343032393537 +39326536396337313637356634643130333331333333626633346635323361363632353934333165 +38663763626364663030653962623465376262366266646134656339663139623237316635636661 +35656162326465393933343162336332316539383534363536656430386630343061373537636361 +61316230306262623239653937623230623835633134303833633761303435326564316332613735 +32376236623838353035316431666335353132383163636161363034343262643035623634323235 +31363462376563636532343738393331363935396362316539323862623765313262336461323765 +34613138363338633464643366396261373333616133373835363033326435666531383161633035 +643233653530663138613163613365323730 diff --git a/environments/secrets.yml b/environments/secrets.yml index 70b65ddf..706c506f 100644 --- a/environments/secrets.yml +++ b/environments/secrets.yml @@ -1,382 +1,442 @@ $ANSIBLE_VAULT;1.1;AES256 -39363362333237346462346261303832666161386162346661393366616235663232303135633736 -6365633631643965326238623535373161656335303134660a373637316434616537626330336531 -62623663366230346565303437373463396332393637316563623464353233633633336262343362 -6130316365323435310a316166303837326264383765373337653437336564326261633766616361 -31346363386562373933363266643665373666343232656539623066386435306232316266303963 -64333463363537333035386661356166363264666539303535373562396134386632383561326264 -39356665333638626636613966643530343338313039373464646165303438356465326435393733 -61623436353138356230663634643664613930633663353732363163636638396533616466316635 -65393038333438373136356238623665633261626362346663666562396139303565396335396164 -66303635313932626262323634386563613266326231333439303639333263303138663566373434 -65323635646134303332326261323764373663633838373339333764393337303366336565653264 -35333366623636663839316634646538323836323131663231643661306439343338393433313035 -31303930306661663463396132373766656530356266613631303033383362343564623332396431 -30656266353930653137346332353933646231343738333635613435623534623861613137653639 -37373833396139643564386239323037363237646133353535383732303662613039316166313633 -30376537396333333361643238613738333764343938643666316532393665333362353432376533 -34393961306634323466666532643265303033633533323134653134383466313930656361633466 -37616362313738646539623639383633376466353838616637313733366162623935356437656130 -61336264613935323965373466623132326636613763303031313939383062663032346532313736 -65346463356430643665363132363866363463333837653831393730613735306439616337613932 -34653362633930376661373635306131613736363736633630326335373935366663646330303539 -61656265396436336237383830323561313236366333396364343964356334626166653863313961 -63386532303638646661303138393563623632633732353937643632303366376135336162636436 -37346632306330313664643465316261306662386531303162633436633965393263666431353263 -61363136366239636236636530666265333135633461383934646464346534643131376332633165 -62313030663436613434353130366236356639633936356234366339656263666537353164623131 -31643465396537376339346139626336323035616263623631646663316465366237666666626266 -61623931633939313261313034626438353038366563303864356538353964646532353137646230 -31613530303263626139666463356238303765623836343662303064336666396465333336623366 -61656164373464653161306133306238663834383762633535363764623832643366326339323831 -62336230346566663036316662623466643265376235623332346637323737366430646466633934 -38306265383364376430353536663034353166613539633332613031356532613536326265323339 -36333532643533623761646336386637666136663332323834336338336239643063353664356534 -30633138663363386337383035336661376637653963336664353834306638626635396262343738 -39613137373235393134613535366336376561636164363464636461663864346533396365316431 -65333264633564373134353763623666343961623234316537353637383763336331643262623134 -36663433346434393261313563386435333561303239656665623335396530653237313232656666 -39386466643037633836326538306661376361316530633865373935386136343638373266393635 -61653035316562613136363163366364633863383537313232346163323032386537653166343433 -37343735366662356432356361353035636463653764616166346637353462366436336636393166 -64623263626662666533663062326637666666653032383033393662386334393762646166383961 -63646463636262376436313934636662313763386233666636636663303163373934373933356163 -37383865653431666230393961656437643437326162623462306333616232616431326162323665 -34346266383635653432396466343462656531333365396566616266633635313266323135386434 -36346661663164616566353461323033323834646632613534363062383466383162643465636165 -31653361373064653064303031666164643834336431653033396631626233643935363339373631 -63636632303062623831393935343633353464323531393633373864386666316265643931323531 -35626164323739396561613837656132663034663931376261393039316430343561363331356238 -35613662313330396461633435316465643762663635333235356538303065336165396632613934 -64623930393464633137633332356637326662663439616631663336303439623131313437336162 -64326264363435616534626237343437633539626630373765383262313332323131323466316532 -61336266313937326365623361326633383132613937373863633939313831623961386635656631 -39373131633231623265636432366232656434386138353036666365366439376334393432353436 -34333466623065626638636433373263393362643032383638393532643864653562663738336364 -62376265383261306331313530636566386435646636626430616230626235663564373964623135 -34326565393630323836396261396333633238396439323834653936656162663239393834353337 -37653136376437626435323733383235343537623736613832383034353738333331343437333739 -32643365373936396634336562636637333430623230393663303961316533613766323535336634 -62326635373631383430396637303734366264623165353365373634306163303162343064626234 -61623966663834633538373665653134373332633533366539616631613234663139623831613634 -39346133373536383530613034306332363830313138656333386635333961623761323538663437 -30396535613431383931643363393337656630333237373431636665333861393736623461616561 -33393634663132626236656334626430303665653965306237326635346165373761396434336133 -64653135623038653761653230356533396133303535386235316637343530633134383636653337 -36383463346361383631663261663632303636616539616564656561363233653837383666633561 -31346565666361396338633730656432353264333962373530666636373530313535666361663934 -66623738363333633933346466616237313134636638636666373461613537306265356138343166 -31386631323337376431656333383463643630343131666434646632393166356466383039666133 -30353563336561653939323365656465343933613862643138353532333731643264303562333034 -38663330313664653431636333626161663832656662653932366131346266666363303163373734 -39653230343532356638643038343337343464393931333261643864356534336130313034393132 -65666338396337353439393330626362373532656532396636373966336666376663333265386161 -35323861633832356531613061376437626237356537306661613731343865633334396332636634 -66373732353966623265303635383837303665623831343362653365383837393233346536323731 -38346262313861356562326263343463363265353261636661623239393335653330336238336163 -37666564653930373364616531373437333534383435336433376632343437323632373561663861 -32303364356438663733313866323461646632316366656138303863656466396530343131366664 -38353164383666306239613165333361323436366637346631633936323661636163353763376130 -63623230303763336332666335353631353332333365666665373962306362616163393839316330 -64623533623830353536323563633536373934643439626635323835303763346633343064386332 -66376562626464613534373861353330636665333238656462653235366532626165346262376265 -61356636386137386661633234373564626665643964666666636236343435386130323134346634 -63643466346238636664343164353431353363333762313366343465343834323332383936633339 -36646139656431616233306563333737643932346139356336363132656234663931633636376563 -30313334633034386662383539633663643130373666393836356266333539376637356635666463 -64393262366632326566356531366361643365356132316433656565666262376432383539646335 -62616631623632393237636533303566663433656631323736623163376238353862313339346364 -62323337623161353134376434373636663837313639393537666264326264336237363166353531 -39633034393932373236613033323836393731353639353935663634663536333662626234663838 -65656336383634633730386365383431666538396131306162353331313638363239343732643339 -36646465656238633938663131663032393339313233616132646538313631376234333262643630 -64336663306639666162656665653966663830613165656137633763346131326361336166363564 -35303463303239353536363562656136636263663539613465353239333764356232333361303830 -61636665663137383538633362333330666462623365343933356634373762653939663935353862 -66656232353130626166633966656336373435656563643966303366336563666634363731323136 -39336139616166333239393963303138616161363361343439376664343336653065353764373466 -39333932303837663131666338336432333836303239613036323630643730646564653132326137 -33323630616366616364316638326466373930363064353661326134313638383338623663313362 -34353235306437396162663563653662633934343235633864656539636563313630396632363863 -37346463346131633737346234356438646265356264653638616365636337646334363337393164 -32326462393561366232613064626564353034646230343534306433316465333736386631373731 -64636365313066386235346339316564666632333831353339333562613261613038333366346164 -37356132373330323730393861333132633331393461653630386565316537346462656634383564 -65666238336432643531396132333939303163653139326530626665633435303337636662303063 -66366138663464383865646463393731393137343162373366623864653538646264333463656233 -38613234653234643435653434373434306163653034323732613334656538353634373663393965 -66396566623534303132393238653139356639316434373434356262633134333831343064613561 -66656334303537643535333261333166333932376339626132376531643633643431623566383235 -65646331616438333263383039383834363462303931306138663862313463666133333266353663 -34356332656133336134386234616639373537623930356237646336343837636263383364663330 -33333565326637616666373338303830373439386138626465346138633231663631303430613738 -32356330316635643261353662346332326163306465633934326231333636383565396431303830 -62353530313038346136363461383633363031653635313638356666333532643030343837373163 -32646533373963616362653539613432653933366632653931376161333335663331346637343035 -33663562626363303335336638383738343239353835663663363238623534333537613432653738 -34613061393436346331326266666661343564366631636637313863316632316338303066633166 -30373834383039376435633437303035336465616463376335313439383762343266626131346366 -34353066313561383532663862393433363564303262346262313334663665323064346664666534 -34326532386237376464393564663035373130393939323335326439383836346634616362333039 -64366165393461306439643034326434336464336466393361633763393138346566633338643836 -35656332353937366239666166623637623134303562643838326632346263333838316165653332 -32333136343839653664636230323130313435663661363234346239373962323134653335313234 -35353261393939613731303863653166643339613034623535383532336131616262653835396538 -64616232333961383063613334323662363838663030396231353538333539653533353036343537 -31663539343236623066396639626535356465636164303463376638653935303533383936346631 -65333336393933393231346536343136363735313566646432646562303161663964393036666533 -39626239333833303132376539316435303065653466356663306538353337343739623963353635 -31346665656163616132353337666533633262656161386132386361353038333266363331626261 -39313863393438623337343232386235633334326632316663316262393861643163313332346366 -62623466636233323465663564316164376166613166373237613363333939313330643964363335 -39376530303965353330646235353065646233373964353830613132326432306530303663663564 -61616532366437623834633535356336653038666534653035346266633262653533386635363435 -62333464366461346538393232643665303934386661376636653134666466323062623138316330 -31653661616330373838663134636134353765343039353738643836363038313135646462393635 -62613662383761636165373963653738326531643134396236663765663265623234363965653465 -36636537363665326235366635363465653534386462626662303763393538326338303561313662 -63646431396666363963643966376364653630616530336639663463303631316431376465366233 -63613632323365633135316261663336663436333165623633303333636332633235363933393665 -35616531323034663937346237316630366266383938636164666132623333393864366135333733 -36376263646666663161323132353731386264303763383434313630663038366232393663383033 -31373165646564643764636137616237333261396136633437373062623166383733333338646562 -32326136616532313765613935313330396438363939346235343663326635343734396232326136 -34343566386532626564336334343836303639343064343431613432313237396137383763656237 -66616532613533356263333565346630623830633565663430373838383462336534346662346334 -62633936373030333734396163363737326235373665363636396230353763323531306337626534 -39393639376539663636616338616261613763613565633264336135666566333765323263613565 -35623737393437316231306334663966353136646435623039373466643463336262326461383366 -63386330313138333133623938363535623239666461366462376130323434633732616663366265 -62366439633161343330333363613533656163643338633837393633376436356632656333376535 -33386263396562386166363939353336663539653739353433613634356435663565366363616165 -63376537616333343961623065656537313734613634643338326361636637653136393730323666 -66323666623139653431626563306565333233366563346331613661363761346230353864323762 -31383565383836383039383832333366333634616564363135383030666263396135303062633233 -30613264646638383433353631623232613264343232376136376632343962396562383430346361 -35363336353830313663396531653831616332353833666338656463333936396332636435316338 -62356335363838363437663732623664643933666134626335623334633437366563353233333735 -33356365333131613363666336396236383539306361363939346536643665653338303330386530 -38393830393038623533613261663063343466386436633662313439663339353139613033626564 -37366333663335323264626633623266343536373665333164653230616333653938333838323464 -34613862636535393939663731653966353638346263336131306238663633343931666435396661 -31333965333862306366323431343032383665323963386666363637366431303235303338396632 -66373063663961336463396137376436633134316538353863623332626435343132366236636330 -36363736646663343831303462343032303632373730313265643739386139333536643263323363 -38616138633961646334373035623166376364326634643066383838333433363263623135623636 -31386233343438373532373338373137653934316663306337613630353636616531666130346430 -66663232613463373033623835663665353563316633363862323633633238643861383331643337 -33313439353661396439636130376336393534326566616330363162393136386630323539376562 -37663436636464613934366366633135396631353735626436393165393436383639653737363661 -36353161623262333264383839646564366338386137633638383564646364663836356634653931 -30373735633635333537633834613438373331366336643233356130343761313565663632633331 -32653239333161303739633435326163316235336365323965386338333162353939376635646365 -64663963653966393131366362303130653861326230643136646265363930316336393131313162 -61363761343066373933393235343461653365326261306566356432656639353163396265356165 -33376339373232613931643931376666356434383537316534666264623838396334343133376335 -38313639313462653236366531353663346534653238393730613035323738646165643335383639 -39313536343762393239346235366634636533616235643532383532346661363863383639396330 -33326333666632626134613530623766396333653539633936613636646462663764663139663063 -64323130353439366138633539646533393162303830656234613730636631663939343534326337 -39313934393735326531343665343630633638396237663030393333316239626361396466666433 -37613535396138643139306636396430336530313937393131653465316165353361303737356532 -33623534313865646635323261343637356164333966643330353737376330343465333266353932 -33306630393335653238336365623437616261343437386366613734666537346231373166356437 -64373235336361653738643031346333613362636163363430623561346466326663353130306339 -38623361653732356239366331663361376332653463393332316663303234383131356239326431 -61653464636664343636376164363335323032323632636162613735393439363733366464343261 -37626236383261666437396364626462376336303531653937306439386265656335633563393637 -32613238323935386131303039613636626561623831366365366462653431353436366562333938 -36376263323333356535366663623164373334393432373235333636323065313339353330646435 -38316239613163666239643161396633383838346639356537636535343738313433393638653264 -36346237663064386163366332333432333564643536623435303361303134663037303433623664 -39353737323366343839323938373362386635616136353162383732663735366231663066313933 -66386464353266343965316131366365326630393130373036656433363239346365393763353436 -37653636316235663239323535306636656537303133393363636437646166663131653864326432 -33643232393831346638653638633937393533333263633835633537396331386531366335386566 -38616332616136383566346336663033323138323665383965623439643663366531306164653437 -34646435393934636264343232343930333166656265306233323266626162393932306437303762 -33666234393833303262303434373261356434653931336534376436336664303732353763323433 -30396533336133383037613435666563346261383630656538333363386466616630666635656265 -62396266383766653439663237633964306230323437343334663435613666663138656438333432 -61623630656261323166333361383862373334313830356233333532303032366464333734643861 -66393938353133363730333261376538323139396664313734623633326630303033373233623039 -33636339346338386235366134336565386462383961383935633735393461393130383238353862 -33313262643838333135656531623135353830376531393237343739343036653133393832653266 -38376537346561333066636438306162396334353062316137613563396364323562383231653235 -38393566666437353734303632633536323433306364326233633131386337393033336232313930 -61326462656138666138623535396665393166393131393632356264333661656434343939323934 -32653164303132626538323138383138393466623932316261383235626338663963396365393734 -30623362313937363265376562383235326337363432633134656165306530356264623835323735 -64366566613965623531373263393939666636363936666137343937623233663963353134386332 -36643865373561326666376362376361613330376435313362326264313037303639646463643961 -30613330373465343337653762613639636230363337376263666362653235363863353939313833 -61333236326634383762343039323166373165393262353865336166643535313438346632396133 -39393436363065366336356262323964373964643861666162623334623666336661663232316434 -33383334623933316664313864303862616162333661356165633665343166626662626333323033 -31666430346235636539356562643763613232626537303637383434343930343130316132393763 -65656536666366376566646464373137623836366537636636643639313735643732306662653061 -30343362626431636631316336343135373165396561623535303063313635613530613565633039 -37346435636562393638656437373362313661343736303133303637613765633431616166373565 -39626631346332343266306163666330666466653035386461393339646238656366613462383331 -61653765336633643165316661646135613035333139663434643163356430666262626137626166 -64353436346132393033366232623833666265653439326433346431623864386439343236363534 -61333934363139313461626333353435303463613936303330653330363538303839613237616339 -65653034393866386363373637376136386138626335313465633862633663333364366133646138 -62333665316165333963316332316433383665653039303761613732313863343632663230396138 -32326564323462623263366530656435623261626363346565386534623734383030626532656539 -36383864343132613133313833366431346430366430363738626530303032623666316537356466 -61633361373437656637656335313336323864326435396233646239393466636535626538393630 -31383639626333373762353830333366396461653631363538313266653733633464373134636335 -63356330323137623861336465636437353133356562336166303138616366653033373935316138 -63326638386139376463396237323965303861323939303037663336356134393637616337633135 -63623839653162396261613962383037396662666439656665353638653466376561393463656538 -64633663343837353663396262346539393964333864386432643234306166363338303731366534 -63393664366336356361323466643965656661616530383538633539646562303961336664353865 -63646362636537313931633635313135663661376563396430386362343930636263346261303134 -64646262313430623038393230316464626237386531646164643464666161313036313231656135 -35396366396563623630623366383930366238353736336339636634613862386532313166396135 -63656236646439343930633034623066306237306666633165323863326337313235613865666361 -65323539386337326430346564383837363139653837386630393465316362333731383633396538 -62343432623365356138616431306139343063386234343032373932353263363261613231336539 -33306561633539303030356237383234346238316334613363313634613965633731623164396365 -35623930336664346130653361373365313730373764636134663438393133343237333066373335 -65636338343262383733373261353930346661613662363036363537653838353439393764343239 -38313136383238326530366665666431306335376262356539656435373861363838653832653937 -61316230343831363063383230383663353836346363396530326431653030383062373436653538 -61376362643534333764316135643864383736363433623739633739383830353536353133663534 -35346563353562353261386236653537666332643232343861356239623163666338613665623230 -34623731353861646266663163366634616134666630333865633562303831363961306433386361 -65633033303634653462663935643362366133306634373462356364316266363033663264646461 -35313438643964363337616464313733363864346231373033366636633533353138366166353737 -30653064336464356436373338303635343866383562313336646335373963333733326635393461 -65363165363435313034343666323766356530633734633364653432326133633931366230333564 -62333938653636663961656633383231393939313566646430633037323430633563366461363939 -65386237343530396331353663646665383164613338386632343831323465323035386165313036 -62323662353634393666313665336264303934373234306239333132373837366535633337636435 -64363365616666373762616334303765663039373230623862333933636564363361666465356331 -39346434323130616439316161373533376638366631653937306133623961336539366234633637 -66666239626537303363613365633133633236353033663431366462393663316637363131346534 -64393837633435656137373363666532626661363162613966383032336165626464306335373030 -62316364323430663139356664383631633232343565393635303234333034633064373636613264 -37646131336232346135663834373439366534366430306563356139653338353064386366616163 -32643832313539303734633036336438366639376330653031653666373034316135386565666133 -32336637623630613862383961663062383133346138343765393734316630393732353230653934 -65373363323837333535633038386563326434393330653663356261356363613863653739323531 -63383836616138366261306366653930643764313665613638303961616532313431373338646532 -34333866353737386163643030316331313539386663303764666464653237636138303633633638 -37393465626534323665313334383033386161636634653736336439393365333439323562323063 -61656139306639663364666430353465623230303062336261653466636462393437363465376566 -61333234346363383034306537326233643564653932346332643965303966363666613032316130 -39356361633365303935353566303364393634653633643730383436626531653162373534353935 -30373733323331626161636363336136646332326532393262316166373638623639306163653362 -64613631383266326566346133333431316266613330313039376438613237303662623861646362 -64376637643338343439363530346632643537663663393032363835396439643263343539653732 -31386163353165353864373332343537393462373962623839353163396161623039383531346665 -30633765306138373334323436663462633063303038336632326564363837306465616431643531 -62633661626336323938366261636437316330383736366134643737333637326534636637623463 -62636538636533626435366336313763346130306431613438353932323031396639616133623036 -61363030613738663036303931623230373434306566323261613330363533333664323665306439 -61666530333863303635323938316539363163646666393462363063356131613231396162323839 -63336363326437663533333334386635353064396664323437303366313865613835306265623963 -65653966363866306235313836356238623961616433363665323264653161366532376366663433 -63336636653039313834346462323233353162386633346633663361663237393461313035303037 -34663664366164633134353530613037376636393239303532323837313039306265373038386665 -33643135626534616130313337616638316432333334643331313839363039613334613034356336 -66616538353766353061663332386131343536663561643235636366363663306434366561343035 -34633034636233346331626230393630616561613339386266353035336432626139353665316432 -34666239323739643737666464656234663566616438313637653435363161363136363564613830 -63643236316339653666653234323965373434633561616262383233643332303863636539326636 -38316133396433373836326130373839633230313439633433326666623832633639313438613665 -34643931663237363861653762626539326166336533313437363762353364323939643839303431 -31393530323639366532613333633730626265306230346532393239643234663265613162383664 -65353432373036643535383833396562643631373863656266383734336233376231633462643563 -33323337383761363534336161383839393336646636643238346136303861643538356265396230 -63373263316361373830303033303937653761333035656666323835343230373336333264316139 -65383135346430353034333338663064356235636363313738366165333433636334373835353730 -63316364336132656363626137656338303332623739336630663135313632333035313864633239 -37326665376432326331616436376363636463373332313464323836663635393065656231653964 -37386133383231666536386132303039363464636331383634396663316665636430663434366437 -37656131343933313266363234323630386466383734343938343830376463353463306435373265 -39393831343734313437623533633435323937633937303339343766653634393534373266383439 -31643463666363613762303361393839633731623931323038656364353866626263656539393239 -33393633643137323438616432663465613435333439636164303535373336386535343337633631 -33643465626661646439303532646634343034363566336661376162653264383736653163333061 -61613938613430363737656130636131613538626439303834363034656565643438636637663863 -65316566343030336134396633343561636339376338656439383663376638663434393763633435 -36383465313064373931663063613438316633366233306238363737346262353864326261643730 -62616263383537623837626363316135313861623661653236396238613134323561353033643332 -30353934663836666134303762303064623334366538646132306534636230313930623263643565 -62623038616563636561643764393836656133326137623538633239663637393036663239386263 -39666262333830383031386464396339643831343730333864316337393936333364633865633736 -37616531336261646131343162376133316134366232623333666361373431303732653761663966 -63333136396633663562306236396130636433626464303538313335393563633364303561303933 -39303064346664666633643334393438616166663463626262396562343735333565633438653436 -36613833363734366433393734343064353937616134366166346231326131373530333063356637 -34336533363965616261663563616636663264343539313534613966626536326238386236366236 -39373063646139636634613063393261333638363238303436323466343538613233653739643431 -38383132633162333162316337336238396163333064353538626631613432363661643633396239 -34636334393538356661383266356333326335313730663565393164393363616566326336376637 -35626266613831643632316137343839333033393766383965303335333533623939323865653137 -66663366336663376631616435303766386237363462666537313034343063643333373566356561 -66306362663736303163373363623230336435373661323363653136313638623837653230303161 -66393136323233393735393231373938323234636365663661383631373730393764353065353537 -32376336653730373237323236366161306465356233386262383530396564346261316634626264 -35303831383866326132306261343432343338633332396330313438353532636239393530643663 -66326339666363666364343764363262343932303161313535313765613763656239623965623236 -36616433323634376232616366303364613031383636383766333735353838373762333666373830 -34393964323437343065326463343036613936633230633061323530386566646533376338323165 -36323064616330663739383230663863636237646139616635303932373130333634383037376166 -63343232636332303130306161633835306165626631643966343062356630643465323434346664 -65313739306163643862643237366433303637353163393835353964663365633139323835663564 -65653563323361366334633030363636633666393064323564316464386535356563623061613933 -32396630643564656332373662393762616566363461666166353865633835663131343266653839 -66396362613930636238306662383761616431313262316161636332656339383739383863376139 -35336337346630366235366364323465343266313038646431656630376562313938373033323534 -31373033616264373931343439633833653566323539346235363761376532373338323933623230 -34366433393432393532373065316161613564363831396462643132366534653365353736623663 -31323362363666613537303336643964353131643836363433373465656335623433626266306433 -36333034306162656661346663323564383836353031656138663365646330343231363434333938 -32626232333632663362656231636164646266313532326531363761313662613162383538353361 -61613762303338663064316133643932393261636162336538636233343136613364643762343764 -32313663393462376232383163663631316430636539316230653062346432373661386165666262 -31306130356238653735396565663165623735393865626464376166633461373161386538663030 -63323465343233383331323735626630376330323965323735333762363433336235393661366432 -61356236663362656435336533326664653939666534636630663239353366653832636634653666 -66663732363662333334346463333135653938343565613063396532376130396231346566363666 -65653566346337633131386662633262373539353533616336363336343964663531346333643137 -35316166636439363036656439333962366533376435373264363363316361346162636162323263 -39393164366663633133656630363266653235666137633133303837633064323632323938616666 -32336263326334613261653134636637656564353031663366613134633437636631376462383731 -61616231613566313332616234393539306335613831663936666239313338666534383665643762 -34663366653238303833623839306264613363643266383435316437643134326332363761366430 -65393064366432633730336430306135303730366435323736323963633562363762363332623330 -62386237303539303733643232383765386338666631646566383962663835393462636332666130 -32643635636630313363393533393438306163393430656465386234323536376132336364383939 -36616233393438663730623664613931663665346439393038343861333633626266633530306563 -62626333323162323533373439616461643438613936363637623130633634366563306563303936 -64663863636563306165666635373634623337353031363232373066656631353938386464626639 -62613132613261636230343133666461613131356534373036353039393539373865386535616164 -61303261613164353735386661353439623533363131393738663933303736386639653238633637 -33396561636238343934323233353761306262613933323530356564616561656161363562666338 -62333963383166333439333065333439623031336630373631623530633533373233366565306266 -35616434363539363763313831636235376432333066653039343462303139333166366437376439 -35363964393764366233393638643231323235646461363061653733663438633039313166303332 -32623763373964316434343532346666393438373137626263313761353130346238393734636163 -66653531383833323466373634393938353764353133353938626530393332313738343163633730 -62636564623931353838386337333066376561623261303861353338316330303065333634643433 -64333435653536333131366331333562323439383863313234336231616334333435623935666536 -63306565636437313235376531663938376265346163373537383164613230376131643261393961 -64366564366537303934366132623866333139616238366665383661393364363439663932366137 -31393639373362346535393766653537643461623334363833653331393738636535303164616362 -38633238646430346566336238666262353161303731303332626564653166323030666336643534 -64363135333762396134343835363533313030623137323262313030613534646366656632366130 -64306337373564626635663463653065643835633039616332386130353665303436636534383837 -36343265626132393365643462616430363538353535353535626637356232363936393131646464 -32383739303835653635666531323438643939633135323737333038303831613737616231646361 -33313631643832336666386336383061393765323134396136353064323736663965343231616237 -35666266626636336330313331626631313261333161643335653037343637323430303265303832 -64323832636164643430623933336137663661373864356539396630336139626538656534623437 -31316639613330356530656333393330653565323138663732663933356235376538613334343563 -37356662623061646461353161653363313861306632636666396430666539313137383966306666 -63613839363734303036633932653038626437623033353131313461323632356363356339393531 -37343638663062336266353531633939396132626632353131343832303838616262 +65653538383762666434326539386233633966623665643636663331636161393831663164363131 +3430393565643261633737643563613435616135316436370a323433346333353166323138633039 +61636234666263333333633036383139633362363432383135656531653862313230333337346438 +3062316463663761330a313562336530663064646636363362336637313362643733373430383539 +36363630323331373939633962333763613935396531373136306632343132346435666538303665 +38616563323438383032663161653365346363373032353234636538393764393734396365306261 +66633931343062383464333365373839343937633232646664623933356565343366366165303966 +39366266306438653630373063613862376561656130346166663739336633383865643261333230 +65653032643932373635616365363236396335643135613534656231333366636239376334333264 +38396631326631633761353535646265326466383739366164323133336437383937376435396335 +33333336386262386534643466653135323338373930386539636462643832333333323433323532 +65336130653133643361613366343433306638333537396131383338333666613636313862626234 +32396565336237383135326462376565323231633237323264336664396136613766663938326135 +39303738356432323163623462613539366338306438363065363235373139616234323765303566 +64343665366434616238663139363864353638636134333365636365633431333033303732313135 +62336532616635373264643530366536646562643662393964343764303666633935363539616331 +30306466383163393431353866373933616131366638386230363733316133376232613735356336 +37303962656366616536633264323234646161623037636533643334326138653935363835346337 +39623538386565353535386137643031336162363162326665616634353338373261653037613961 +32326563653439313834656563373338313966396339323965656162646239643361616465353137 +32356634383537656262383139376133633362626264313163653037326532616238353838303930 +31316534393936343762326363383263623730323537356138393330303039353231373831303565 +38333661343236623461316263313131303631376637303033316532303339373639653232383964 +35313662366166313865636663376337663230323436383233303865343761363964346662323762 +66303466366435373636373562326162353630663039653537666461613232633563373734356639 +33646636626465656262646230663036643365346362656134343264643034633835336331316233 +36613036663838646538363236333263633966303235316136303231346366653235613239313332 +66656231333661643462336631636430373735363239613130333262396535386131316339656334 +39343563623465393964313638666339383337333734303230366136303139613631313332313334 +65633864613139643365366232326338666666623536386165353939316336323038353338313166 +37333331623731633766323465316663366635363438323966306533613739613261396461656532 +37623932326632633938633238326663363334656235626163623739336365386361633333653563 +62376130626536313833336330633362336662393366313439373638396338373839643837393734 +62643235626334376461356330393630636462316138306234646636643933376234363935356132 +61386437353066613431396264363266613735396132666637626466653466373534333565383363 +31633565353438626530613830323335313037326666363332303334313036663166383338356665 +31666235383933643134393331616434353133636539663333376262343833376234306562636230 +35343563616432393637656431656331626265383435653165663932623665363830383431316432 +65366566356430643261613931326139636464613436643062356531653833626236386130316335 +31666162353432326331653535643335353036313463363664626335363234626265313331643161 +39396130613637646161343634613638393266383134343939303066653839363165623331643262 +32646362616134326232383330656439333039636461376564393664633861656164613733313664 +30616436373032343638646330376664626637386665326364636366666236383735653936373339 +66346664336638626364386630333338613634306532306164623138336438326534616637636333 +37623466633962356633663830663538366136393131303161393339656439613534346630396334 +39376233643764303536383266373565613662643431663666613830653561666363393232363935 +36386562643631323966616465343861363937333733373130623966643831326161646431656331 +35356262393038643336303332633838366561363566393061356237643063653066663063623763 +61376432393566313461396537633266326337366363616633376362623330366461653435633864 +63656663623363336136623031613364333936313630626131643864346535623364383934633062 +37636332633434316636616434633432336463323263323437323065383738633537336263653335 +38623961653062383866393230623734623837643734326131336461333366353036393538366235 +66363832333037336335323633646333623537636237373034393361363262353230633562323464 +38373734613834613431306539386332626461303537346338653739346432376362363064323031 +65303938396436633436303663393263326566336533373731313664346463623062613232316430 +64656665383139326266323662316632666165626135653230376162663637623830396130316436 +39363235303166616264383534303735353236393861396634303134663665336664636431626363 +63363139626334643933356637636564653766623234643135343165396430323938393931643332 +35363338323864356439323835323139666336303165653163303063333339326364313733333739 +38616461386639623439633061633162623866343065393037316136303764303935626162366461 +36326636316238633636366564393061313834303662623130383436376161383064366465323830 +36653938636330346265336432346266633663333963326663666635356430386131616636353832 +62323735623962616138303730653865363932393434636232323430303430386362353935313539 +34383565333533656537623931373762323063303561643163643333643964396561636362636465 +35656439356630613030393536356635633837373539333438316466366133373765643633383165 +62666534333938656662353365303065373634366239353435343166386635303339666338353635 +62623233316362633064656264616136343736343432323537353864343566633530353335363261 +66323830373863353463343030393835343039366365656337306130663363366130383766343037 +36303161363832366336363133343532356639356264346132323537373737613963663638373039 +36653539386338363136633534326336656337373939396366643266623335323734643463653763 +38623964363739336331383932316232356164393034646633316130623339306435613038306236 +61623932373838313164333130323838636531663932323334633961663530353334353761663134 +31326364323233646331326661373532353531393834666430646439616539643366373736333331 +63633939653065393261653832356561653463336639383638343932383364323432663237336165 +62663737353037306432383661386366373939646431313835306536653734613934346237303338 +62396333356666653061366631316235633531333839386530643030386136386535633135303261 +38646236643036336364663362636464626166663830393931633638653265373366303532646333 +39346463396436363736346134626637323461326236646332313465353664613839306538323830 +37396362656463336164656637343261343235373435353162353631393135643931343666326562 +31616636386237366164626162366232346239373361613162326430613531613562666430346435 +37396566373230353163313539306130353265653663326163616365396264386531343565393565 +35616165383866643061303735306164376133613631613039356565623037333636333533383235 +66636434373962306361323866336634656230633465323139633831653364303434313363643835 +63326139306237396364656366383439643532653231613863303939356135386339363530313231 +37373964653062373265643739653535383933353430396632363332336562303162333234386334 +65373539666638343736343633326264336230343836613466393965653266306264386430376163 +34326634313964323662373134356431653965323234383639333339303162313833646366613732 +37653364646233313261623935653165383531643933343637363364343832323162626237646361 +62626661313932613764386532626336633330396439646239363935663839636464613832393961 +39326237393466636263393037623833623935373537313563356566303639653238333434633435 +37623234666365666436306662313361353931643332373538396432366162353934306337636434 +35353239376432653666643038623764376335393264383739373632363233316533306261653866 +32326466656166623032353935363262643630353131666137323538383766613835303066383937 +63363662333036313634623063366331663935336362346536363437383663336532666132623235 +35303165653830656537333761353266366638353432333231613232616636363539353336626238 +30313233303530343634633838356265303161326531636137383935616463316231383231363331 +64393132643938303532326432303732656637393162643933653963623930353334343666613239 +61343837336433393631623732383664323332613762393563313165393635303039346539393337 +62663031643438383439356536316538396435336130333763656133303664616533383632303065 +62386233343437373664383636363832653836356162373836303531366332653339633833396464 +38383631393233386235383764356665623136323561333631386536353933306165666430366437 +36343461366261393235333834643762363037653430363330303239353531303832343538363164 +66623264643462326562613562636235383164323064666431396663653061316364393632383832 +39323634663364336634306463323166353030383265623333353235643530323834323037376631 +32393433343865306237316565633139643937303936346336383834393666306336353133333337 +35656164626233373530333938396464363661333965313139326537313832353262643764373861 +30353833383232373961666434353962646430613663386634316430373235633837663935326166 +65306362336431323839333234363162356532623536613236663535326661363330343131343830 +35616462663466373466613961373665643436303965356538333237353666666664363130383436 +33356565393337656230623164306332373839373533636161646433643932663766376264666235 +63306163633834386165336131336366613139663333333263343065303466653830626236313435 +66366536393338393031653739323836333461393434393664353239666231653839393733326661 +62656563613964356235336531316437343235363039646665366237633937343762303637306236 +30623264656134306562353432633965396137363061636339323333373831366533313833633737 +66363932343039326531313133313234303030653766323831653731323337313364643434623363 +63333662366531623665373638363733353230373130663862363334643432346665616461393533 +64386563616330656634386163303736386562623130336561613866303630353936613538386332 +37653139376637376534323761313239336135666233343766363039613031383933613134343630 +35303332303463373037353834383739333561623566366566303666323061636438663132303266 +64616237366261633531646431333638616330376564313761653966373634326530383738636465 +37373861623632363732353235366634333230653037663162316434343636663239303036346638 +63623534636166346630626166613335323262323066363337653735633266396434633738656561 +39633632303234356262616237306666386362363664343233323137366539663261653539343438 +65633239353533643137346465313264383566646531636162663464623630353262303038633136 +31623739316330303666333934303562616234663137333039633236663538646338326531303632 +35646462633761313461623463623137333636316537646166366330623935393035316234353065 +62313861643965643139646130396435323562326535346238353763353532323662633162353534 +35346261363536376336383761326239636232393831366633363237396431666333383866326534 +34333737336236653734343065333264336632656136663138393439353238643036623766616361 +30343564346361376664343765623161336665386561653039653337336362366332323463353532 +36303563636530303465396665386231333165356163313264373361643263343533346538623239 +63633534326236623433363934313063333731633933626239636661626530633166313263613732 +35653737376433303135616631306363366237613637343530626535333366656562626363636134 +32313936323338396366316637663537623739383230376334383162663434623731656532636534 +61646237636636643234326162393464326661386663386632353731636165343333303736646564 +66326263393337373736383531366666393334323839653765326235323766303533366630646233 +32366361666632623333363833343233303132646365633230626366353362663937663030353839 +31353432393139363366386231323263343037616334333239303466613132366636303533396564 +64313061353964653665376331393235663339333235393939373737343737613666633563376131 +63316538663337303866303964366532363139656534613864663238636139643962346231343366 +34383035376239306132653131633837343861626336396561386635623261386531333738663630 +35326530363632313661386133303731383266633330306135373134313363356166383863663862 +63346331626162623266333536393639646635633336323832313632333334373563353033643834 +38653638393337643263366232656539343464316639343937316236623732663166623836386537 +33386237393532366234366266303636386139363239333439373237353865323431313238393634 +65376665636666633833316530366263316630356661313432376662626333346133376432653265 +61623835386136313138306435386565663035613538633432356432656430356636373238666137 +32613662333333363464386634393164656164373931646337383832303139326437643134383461 +35396335346566303435646562356462373861623462643235333936626431306563396432386136 +32306265373439646664303261396235383333326537623733623664613238303635326236653166 +39623064396466393266663336376564316164313564626665386261616633383733646537323238 +35366363613239333837303134613032333035663835333833386333323638306437636133663934 +62343339656339663336653261663234343536633435343664326438326162323439316432626437 +65323730326435623065393432363961326462333731663664663762376138333937633466363138 +62613961353462313733326164656335383539613966333561623261313938313636353966653038 +31623335346263326566633662383431333763613561316435333130393033366432643233373834 +66643466323061653737353630633164356537663831613864613636613034396562316538656265 +36336664336135346234343030633339333436303232633038343363363561376461616633396465 +63333037393663343265316331353962366662613963633232333961613436333330323961323961 +64643731626464633732653637646330393134346630623466616438386539326331316162633138 +63316330656436653362326531656335343031333634636265336166633638373931366464623131 +34666563326534343037363638323533323637323937636631396236653163623961663064613036 +35346434383433323663366431373764386233366239613561653239666234623135323534313936 +65333630303465323561343133353137646530303838306663376463306333366431623262306261 +38373562666361303332646632616365306665656430363638613434323066323063646330643931 +32663033336266613632303163326237303032666364333266356332323765363766316537363639 +62653230333032346332646433343830333639393865306237643535346462303839306464373663 +63663735373035633233393466653737353264366566663335623664323863343639313262356164 +36393663363461646630623638303938383531386232323066366662376535656238653336646266 +39636164376234376131646361346131323761666533623636363638303039363465373735626234 +65316232613265383864636539663633623264303930346264343561343433643863643933663663 +36366131373530613436623331333939656361356133363134346633353537656362356539633835 +64363163313033663565333462646633626665366664343930303863353361333030643366316665 +36666130653035636666616362633865343338373662313065373965626330666539633762396564 +31383537613666663664313933363436623030663431306434346632623662366463333163663864 +66623762623835336562393664616435636265613862333765343666326163393935363563663332 +66363666646662623635353932656230656437393764303335373536383037383935333539626662 +33353831313765646538303035636366363036663632336432303832656564623634646631633264 +38316561383461366566336338323633613266333564626334643061613336363262336338316265 +34323337383464616337303734376437646235366663326235653036626533363233323365303862 +32663230363331323165623833306163666133343538376534613332363938313339313834356332 +31656531663966656234303762343035383131333533316336306433383532306633363635643964 +33643738373638376366336661626333656533303339303838306436363031663430393230326663 +39303738356563623432653264383261613266386136396330356165633133393938386466313631 +64346530343066383366626539656539393332303830356434393137313164356566623334386162 +31306338333635303034636561383730646562383939653637373331336230353161373339373133 +34356636346363343634633931376266393165396333393866396639353934376338636437643661 +31393932336264303536643537376563353230323565373433323361386562663962333363653762 +38316433343337323032303736626366313365326130666563386466326233376134366638373266 +34373139623136626437666165333865633834656632646237656466663835316166633466376630 +64363435393365303831653837626439303163373831363037323261353130393730353439333036 +64653534393637623139303964353662666333663939373866626161663765363736363830353936 +37633835353430366333366437333333353365363338346237633434326166653563396234303432 +61643434353131336566376463353136666563353339306335303765653132633936396339643236 +39373733346133393638653237363665353465663537333937316130396235666631643364376565 +34373065313963363535626235333135653430613135653663653833653665613636323537363732 +62373163643666356633303132656433373762636637373938633065396333353930353034356538 +39376532386534323333616566306236633030376635663730616632626238383231363361313231 +37376264353539326139356334626437343930663535373762383263623661636263356630346566 +35326535656133333337396531653630326130383263633938666666373035363464333865376463 +39323139616239373663333534353361393339373565323466366461613439666430393963616661 +62653232656562656534633666393962643431383437636165323934623433346339383935626237 +37623034666263356336353733353634653430666538326539316563653864363037666263313033 +35613136376566623632313634343530383064363231626164303534616364613561353863653466 +38323361623638653964363162626439343934343961616465643064626364613638643433323334 +33363965313039356133613765653836366633653036343033656434386563663131303732643362 +38323234376566393864333466373764373566616335653037626638373064353233353530313330 +66343431663732653364313134313831323737626564636265383763356664643164333036643236 +35306665633962663031373732363033383734323534393865373432663963383961386666373763 +64366363383531663366633031646364633435613939363131376632383636383730393131613365 +62653237613261666432663437636239356333353938393062376465393837386434336662363830 +30646462363031346234393930626136333132393666346266356164323431363263666663326165 +31376462353739663365323731636138666135623763613432333336656265636266323834316631 +64303866623966613536343838393462336664613535366534306531333836663665373431623331 +62383663643633613230326561663465656332656335656333333661343032653433376466373764 +37613130626462343731613233393136306566663330363030666437323235616333383165346661 +32306335333733636462393435346130303735626362613761366462393563643231623239383437 +35303230623830643364633332623431313439383737356364646166633566333833626261326136 +32626232633035643362376566383765323735316464326133613333643236363638643535383033 +35313734616466666665333665653436636439623266336234303662663765316435333135643738 +36343538373333363730616562636238336333333434313133356561643432653534306430323563 +37336333383162613032373735616266373163343937646538313834333465373130363133353338 +32343461366166316238343931383464643933326434386462313730616638383061303334383433 +66343035393562396132666331636637373062363138323763636637393664393634376563373262 +30613437326463663266343933663438323163626430366136653764663730363565393661303063 +30633732343232303564613338353466656162313333633566373665316235666136626531346634 +64353563356539326262343563633439376263323638343761353166623935343531653136633432 +39646161373061323264353838353932396536613139356465336463396664333365323631393965 +65343933306539326161363637323239626232383263386435653931626266663035623034323635 +61356132653764383332613962656664353763653666396133303734616538316239633966643137 +39663631313034623032646430303734383065303635653539353536346264333163393237626364 +36303033626334336163323536373833393133626534323765386235323733303831393461313961 +34326466396636343966363864376433356663663431663231633261313562613330373834303530 +61323632356164366132656564646232323563653864326637643039663539373537613464366137 +31306264303563323639343533316337373065383339343763363736636163383736373734363536 +33353866373030303934623764653363343262363231633763306232623435366264353536656636 +64386332363666313239316165316166393533626464656364343661636631373333613765636366 +63393132626137633833333631353235326563643534646365653333333262343063326137356134 +39636461663730656235663633613964353566373939383435366439613231653461313732346163 +39303934383532663638306666623937376631663837353662663438386135306236303862373062 +33356131343339386462393230386334666430396465306666306266616139306431386464333562 +32633261636633636265346164656236313830363033666262663965396263376331386335393330 +34666663353266343765316163623361643163663932326237363134363432653161613233366261 +34303137386564653231313630313562633366336236353339643338373037653066393530383636 +37386635613830393137353161323739306364373964353134313932666162333239386566306463 +31663863306439623636386232373836313736623365636335663462393465343265646136336465 +38666631626661343831643938353639616662326637346165363035376338313230336437373337 +34633833666661396665323332323062636466393431643461613866623431633131323939653434 +35353733633138653966663534623833306635313638663961393233373463363031653838343238 +63393138383464373630636562633037653130383136343836326539333739646361313562376436 +64613535613865343661333032643733336261353730303061326232366538303331623534353834 +39313865393933373936663261663363383736613130353637653337306130373735313165333231 +32323465663139646639396262306661666263356233346562333365386164663138386332646339 +62373039336433303961666436393563643837323864643031363038366537666333373462323933 +34306434316162666363303064353136363130383235646633636234363633383131633866313461 +34613961633164633938663430613638656563663336326235313734623935333830646362373735 +62303665303837613430373462323138316332356363396538323936666130373536663832396261 +38363264646431643936396363386230646337366265356432363732656230373131623164386337 +33323764313062323633646531336265626430393131303238653937336636343438326231383363 +66663432313530316638356262363639346433323765366261636430393936626534383563636332 +34616266383534336233616632636536666136313438373638353430323530616366376161623636 +31373139656363633461643966306538356334393733636235356537383639663730313031623332 +31306566323965356164356561643963313666306363396636316262386236353161346361646162 +61643038383831393736653535353534636566356338643666373563653334623061303434633637 +63636430623235633039623663316139396530333932643162666233653861373237326339383436 +33633938343237623338353931336166343665353662373038656163636361336430613838663936 +35613764353930303363336261386233626566633030633437623832643732636362663439373339 +30306433386537353166623233313266303638396664323139663561356537316137333234383831 +37646634663165646363333134653430346632346335356337343030373863326338396264366631 +30303362633535303631623463636462653662343462646465626539393833623232613064303839 +36363633613836343233376465303832363865636566633163363830353339333330613164343663 +30643438383937313334636566653333306533393635336135653334326362373830333162653732 +63383763646537643432623164353032636464303264666261306364396135393863666333303133 +65373663643234343165353034646163646364643330366235323232366163313832346666346432 +31663062383735366639353031633262653466626136383230376334656230353335333231633862 +34623062393130636661643236356536366534383033626662393834313431666635313065313336 +31326361326363343331333633643739303066383236316363623633656361383362613965363837 +33626433643761363262303965353330316336663966333166663932626135376338343961353035 +63326137656232633832376564653432346539636662646334353634353138363766636166316332 +66643864323338346135366139353634343562613330363635633165636335313233643034623064 +64323361636434633263393534386565326634616365313062613539616231353838366162383564 +32366164623331666566666663373836383465386235366334653663306330363438623466376463 +31316533386334633536353766356234383464333239616136386136613730383932623864613261 +31623731363164363032323364303338636262333633303131623366633165623836616165306331 +30303537653836636539643931646137623063663966373035623036613138653266646437323337 +65636466633930636566323837643765323033636339663935393731306634313261303434643339 +35393738663061373062643939626335306161616666613262356162643433323732383036653461 +33313336376162393165323066613966393062616534376433653336323931613637373862653863 +61326230366238343966633132386530333531336531656239356430643332393039386462313233 +39393535646366616164396139653531643637646666623739333034633465353036643161633233 +31653362363461646638346434353538346238303637373463393263623234616265303937366461 +65303032633739653037316563663261323234636233326534363239333933386331346233333563 +34613239343966336464336164666566363336626533646661613262353333633464373462643166 +30353631393236316238313062356439633765616137396363653533653436333535366465636464 +64663262393133393934663564626265363537313435336537393161646537616437376338656164 +34363636373061383731636136353761653639383130613236326430393165383765383131366533 +32363937623832366265643763386339326432623037326535643431656365316335343036376133 +30336264633863663033323732636330663066643838353933353135646138636335333838336131 +63393930356237613137643737346563343334646131316237366233343937643432656231366138 +34323364663964623832373434316433653161336165393362613561386161316336366435623335 +32653763626636303264636339613463356463333761623833646439326161663834303534353362 +30613032633136313338626335643036643266626130656533356465326166633462656635346562 +35353933346134636664396639313665366532336132376236616237376163386434333664386632 +65656632656339376330366564376563393137383435616561326631663363626534333430323135 +36613530373262323266373665646530623565316531643635363031383532666430316630666364 +31336133633238323039383332323232636531316663653835363364313631313038613136666431 +33383362613931333264663166626265343032303231623636613937393534326632636432666532 +61313936633265363561643134303962626435653638626261636566356463336562666637633366 +38626439653464343631336533663231343130623536636638333232656365306536306665623761 +38616634616537366337333734643736346635373633326464623962373432633163373039383065 +64323263326534336239643431343631663932623332386662656239623065336432303635386631 +33376563613834306235383233336530376537643939643433386435656535633162643139376363 +66373737623465666630653431333065363439303362666533646161653863313735363162373066 +65383835363630663438373735326465363738383961616466343066386661656162373566333437 +63386138323963323462663234373737313833356663656339376334626331356332333439393063 +34633466653436313464643639383832373138303630663132306666393434383931366563626337 +30663738333436396431383932316466623332616439363564363762633362646637633564613333 +61373933393064303532323335323030616632343761633630323637393439336632313066346564 +31396437393565366135386637633266653433313063376235306365343837333065316334383665 +64346139353035653262633065383436653366333966376263323166303664376462326439333930 +33383035633937366130363137643333303630656130653335623763636462653035343863653031 +61656432303965356234376235386666653631326433343663396639323832626166396565393531 +62613530386133323430346634643435386235643232383132386236666261663833613231303031 +33386339653262336135663362366435356163663166393063303833646632306438656338363564 +64363666343338333936356637393231333464343430626564666433303636316538623264636566 +30616331653561326539316134353762633765353461303465373332326265333261613466666334 +39643638363763356161383661323462393966363238356362376231303638653466333262363335 +36613731386232653532643365303566396561323863323532626564323263376663656566343633 +33646264356665623162623533353239613337376364376130653830633962303730613332333338 +38376564663366353130336666356563333835343565636364323536386262393538323162366636 +39393236386332353461373063666634333961616337376262313831363531393638316435663361 +63633732663330643566613831333036346162336266663639643532366233616330643534613533 +30346530336137363832396363306564366362333135653037613131623434323330383639383733 +36366164653631373630623836383266636562333030613337646330313939343038643939623062 +37626538626433326134633234613664613331396566363762383836633863613835303436383332 +38376434346466303532356261323830323565353132323434303439633831336130636531336562 +64303632356437316265376531373161346334636439363439336535393036313739363839613034 +32616238383666343033633738303237643631643937316136353362336133643065373830353366 +64353734623961336335346536663235373661353065366535633539313030366566363061323237 +64383164303566653263356663646334386266626536636263626331613938373337636465616362 +64633561373930643362356566623861613066366335316431656137626437326461303436343830 +30646336323733376536633734383537316265353465316437363033626438383266316131636334 +35373563646533386531303937626533366437333863356633626234396231323064333164636139 +39353565616337383263643830366432643761643836356631323165386236653330396465313764 +38313933653734623961343563353033376538643764363534326264626230393365643761343464 +33386436386565306135393066666266636665613931333334343132343263356663356366616536 +30376364623264336530333631393561326261306334386639303439316334376165636639343265 +39653931643933353062313034376636386635366239386331326661343436366561353031653933 +31386532396466383532636662656466346163386265366330316533353939613463306361396335 +31313934643037343064386466343630353735353266326131383830613230313337333566373138 +32383239323438373666303164386137626231653766643434656634386632643036636138623965 +38636263313764383339303033323531373066333065653664393938656333313935393336336364 +64306538643264333862643938343839633063353833303239643265366439343637656435336364 +31663031303563393137356362646532353431333239346339346439383365626634613165373366 +35656462356566646163303966386533346263346438613835373733363130636330396432626561 +37323730656338393530623461303866323165646233396135363730663137336533303037396637 +31333138366663366365306239653461326131353834636566323634353139643064643438646239 +34316562303037316131613363356432393362636363633737646365363039376635363832336530 +64663435316330656466656365393663316130653732666265623063313034366531383063616465 +36363233393039346530636238623564383538363666326237396163643564313162373736313636 +35303066663031313366333865313130646365343438373638313461323333343830663066613337 +33343261616665346336333336666238626566643062383961636234663562643062613630356361 +64366534313631623039346436623238383165363865643233656236626237626262393965343465 +38366462383538643765666565653164633537616233613538373839303065323938663437656561 +30373634343839666137656466383465663735336432326230616562626662613931386361636463 +61656634653935646566393537633631306238373262313565376432663239333561626232386162 +35323633346666366635336439313733653230396363333832663165343666376265343733303231 +36663939656234343039383833653965666661343365383133386333653338663564373836303431 +65396263663261376362323637646635373735383037323662373237643037346532393737316264 +37656432393365326230396662316664336339353539313232363262393536316332626637333264 +32303438333165373436343235363735663664633533323962623765623631626664663534353930 +33316538663632353463333135363662313536326362386431343635613431666566663136326339 +66643663653630643863323262346639626538636665636639353932316235653336663366376238 +66656639666365373632333139616437623230333666393532666130313737353437626565313535 +38646365356433353433393230326262626433366137316535336338306265343864353961376662 +38633732363832636234666335323631346432663633346232356362363139656633386464303734 +32663365313833383730353761303037643531366536656635623335343066653934616637343635 +34653863393262616434613265643962386365366536656436353065393363646365623266613937 +36636333653039313831616466353130633537303137613631656234393762393761343430663336 +33353634653163373636613633623539646165313237353037616638666135616632306630653838 +64376161356465643639323336623834616235323337346338336237303536663365326365393433 +62653734333662343165306661386564356362313864333366313564653263633461663737646638 +37323262306662366466353133396663313165613636656362353538646635613230316130386239 +36663162376666313236363332346463623531376632363832383465616165326166653039363137 +30373764653834626535303538353363363562316562356430643763646538333434333732376138 +30353232646165616237633634646462376666336337333861656666353761613731343134366431 +33653765323634666532336262666630336638373837616564396466383463323934363565613833 +64616135626431376564313261643934336632393439653961623831386665633834373363316363 +35313533323637663535323263373735343766616535313031396630643237343837643065393539 +31306639336636313732633139343066626134643463353234316239316435313230623132336539 +34366463643763363261393566393135633736383130393839366330643865323362313937383533 +63396334623262666335633931646237633165653864323639336330336565353165643563633334 +63353734646661663231623739616361306262366165303164343361386435383739623739303734 +38616636313332396235363465343165393564363938616439633166326236666433663437363436 +32623338616130663265623864343839663038313738303433393037386665373761323831666234 +38333965643231333432376565366532393665393530663231636466386636366262363839303330 +35326464386132373535323233666666346565333161396132336333303365643439356363623337 +66303238613662653462396361336565343366666433353236653332623861393637323864653266 +33393237333562623230616138616538343433343562613632386261363764666135373162383961 +63663361656237396535646530643833633632666235393333336261643131633732613462383163 +32663265393834656532323264313437326339356462616334653837623432666366383936303332 +33633162306339313535656136313064303230666635326433333165363866393130383434363133 +65343931633137366333313263336234626231316265646538393864393838333537636262366465 +63333536316637646164343037616630323531396564383330353433623133313633373061333035 +66376331353365366561666161643762663837613933353035613930323365353239323336626636 +66343734373236666430323633663462343066646131333336343265353638633166396130323937 +31393763333934623332666266393330393431343133633064626533336431336236663464363137 +30396435663734383736666331626339663736303034343633626665613464666632356265626131 +66373630643637383063343531653639656138393234366365633037303231353633316561346330 +37303964303832383333316336323736656434373830383131343830393335643638336432626238 +35336632356366396234303264323166303039366631313761333037303239316135386334633036 +32323330376364323531616339306264386633616434663963366231383362386438626165323638 +39383230343763656265636234623565323237363734646633636136353631303835653136616239 +39343030343061643935646133386433306533363466373932663537643435646234343163653864 +33653933323664646335333230303161636666643738363464636530326239323231636630326561 +39383533656239303430646162663339653637666636346165313932383734383630393966323038 +35666634366237626136613634383931306338646530343161346661356135373062633834336533 +31653739656662646131633161343365663638363863653337316134363866383337336439656632 +37306262396265636363393639396563343439313861643637313138653433333763376561666165 +36646166363866353362646165656639303335316236383639653935303661623066663539303736 +65666232613663333262643066326666353662303833656337633464646138643166663365346632 +61323939356237303636383037653539376265316333613838643431353463366562396137643564 +64373034353635643136346438396565616139376361646334376361633230313563393037383766 +38323033353332616162353132333566343336373831633939633231623036313235663065623661 +31636361633335356162316161346339353539383336393630306132616336316665336134313034 +37363430326264376136653433336564316337656463383233333561303563306465633166313461 +64376633646265663436636365366631613832313939666165643466376266616531346261373039 +30313661353330626335343663346462653438336436323134386335626264623266656436383639 +63326461343836376133343038393531663166616638316338393766303062633937393664356134 +30363163623935303133303936613561353765393138366138343539366666656465353138376130 +36613762613239356438323162666436666266613533356561396361303164303766646663393838 +30643831316562663765383462393561653931666136613262636138623461363738656466383934 +32613061346334363933636631353931633336353132653538653339346434376436646134643130 +62366465353264646438643030326638663332393666346530383931366234303030383538643034 +34393962643138376230383930336363393734326636633238623237313766623330356632393266 +31363666306334663061336133613262336333623830663262616239303731346138376263626132 +66356334356564376137386261353238353564316135326264623663666335323935303532643165 +30396265643631373636303532623765336539376164623866383964646233333464323665633064 +36616263643363306166346561626234316265633165396437393132383262363566326634363337 +65643734336461343535366336353662653563613934353339313232653266313830396133383061 +6333 diff --git a/inventory/10-custom b/inventory/10-custom index 88792965..28e9e714 100644 --- a/inventory/10-custom +++ b/inventory/10-custom @@ -7,16 +7,52 @@ [bastion] st01-mgmt-r01-u31 -#[network] -#st01-sw100g-r01-u36 -#st01-sw100g-r01-u37 -#st01-sw100g-r01-u41 -#st01-sw10g-r01-u38 -#st01-sw10g-r01-u39 -#st01-sw1g-r01-u32 -#st01-sw1g-r01-u33 -#st01-sw1g-r01-u42 -#st01-sw1g-r01-u47 -#st01-sw25g-r01-u34 -#st01-sw25g-r01-u35 -#st01-sw25g-r01-u40 +[network-switches] +st01-sw100g-r01-u36 +st01-sw100g-r01-u37 +st01-sw100g-r01-u41 +st01-sw10g-r01-u38 +st01-sw10g-r01-u39 +st01-sw1g-r01-u32 +st01-sw1g-r01-u33 +st01-sw1g-r01-u42 +st01-sw1g-r01-u47 +st01-sw25g-r01-u34 +st01-sw25g-r01-u35 +st01-sw25g-r01-u40 + +[dhcp-static-nodes] +st01-sw100g-r01-u36 +st01-sw100g-r01-u37 +st01-sw100g-r01-u41 +st01-sw10g-r01-u38 +st01-sw10g-r01-u39 +st01-sw1g-r01-u32 +st01-sw1g-r01-u33 +st01-sw1g-r01-u42 +st01-sw1g-r01-u47 +st01-sw25g-r01-u34 +st01-sw25g-r01-u35 +st01-sw25g-r01-u40 +st01-comp-r01-u09 +st01-comp-r01-u11 +st01-comp-r01-u13 +st01-comp-r01-u15 +st01-comp-r01-u17 +st01-comp-r01-u19 +st01-comp-r01-u21 +st01-comp-r01-u22 +st01-comp-r01-u23 +st01-comp-r01-u24 +st01-comp-r01-u25 +st01-comp-r01-u26 +st01-ctl-r01-u27 +st01-ctl-r01-u28 +st01-ctl-r01-u29 +st01-mgmt-r01-u30 +st01-mgmt-r01-u31 +st01-stor-r01-u01 +st01-stor-r01-u03 +st01-stor-r01-u05 +st01-stor-r01-u07 + diff --git a/inventory/20-roles b/inventory/20-roles index 36db1eb5..98ee1b12 100644 --- a/inventory/20-roles +++ b/inventory/20-roles @@ -76,6 +76,9 @@ st01-comp-r01-u19 # L3 routers, are placed on these nodes. This group has nothing # to do with the general network configuration. [network] +st01-comp-r01-u09 +st01-comp-r01-u11 +st01-comp-r01-u13 # Nodes that serve as controllers for Ceph, so things like the # Ceph Monitor service run here. diff --git a/inventory/99-overwrite b/inventory/99-overwrite index 60b8a581..8ffd4414 100644 --- a/inventory/99-overwrite +++ b/inventory/99-overwrite @@ -10,3 +10,12 @@ # [ceph-mds:children] # ceph-control + +# Put the ovn infrastructure on compute nodes because +# the st01-ctl-* hardware is to lame to support the cpu instruction +# set (grep avx /proc/cpuinfo) needed for ovn +[ovn-database:children] +network + +[all:children] +generic diff --git a/inventory/group_vars/all.yml b/inventory/group_vars/all.yml index 188aa6c2..e69de29b 100644 --- a/inventory/group_vars/all.yml +++ b/inventory/group_vars/all.yml @@ -1,23 +0,0 @@ - - -########################## -# chrony - -chrony_servers: - - st01-ctl-r01-u27 - - st01-ctl-r01-u28 - - st01-ctl-r01-u29 - - st01-mgmt-r01-u30 - - st01-mgmt-r01-u31 -chrony_allowed_subnets: - - 127.0.0.1/32 - - -motd_content: | - . - ____ ____ ____ _ _ - / ___| / ___/ ___| | | __ _ _ __ __| |___ ___ __ _ _ __ ___ - \___ \| | \___ \ | | / _` | '_ \ / _` / __|/ __/ _` | '_ \ / _ \ - ___) | |___ ___) | | |__| (_| | | | | (_| \__ \ (_| (_| | |_) | __/ - |____/ \____|____/ |_____\__,_|_| |_|\__,_|___/\___\__,_| .__/ \___| - |_| diff --git a/inventory/group_vars/ceph-resource.yml.disabled b/inventory/group_vars/ceph-resource.yml.disabled new file mode 100644 index 00000000..5dcc790d --- /dev/null +++ b/inventory/group_vars/ceph-resource.yml.disabled @@ -0,0 +1,37 @@ +# Put WAL and RocksDB on the same device +# https://docs.ceph.com/en/latest/rados/configuration/bluestore-config-ref/ +# DB devices make this possible because whenever a DB device is specified but an explicit WAL device is not, i +# the WAL will be implicitly colocated with the DB on the faster device. +ceph_db_devices: + nvme0n1: # 420 GB + num_osds: 6 + db_size: 70 GB + nvme1n1: # 420 GB + num_osds: 6 + db_size: 70 GB + +ceph_osd_devices: + sda: + db_pv: nvme0n1 + sdb: + db_pv: nvme0n1 + sdc: + db_pv: nvme0n1 + sdd: + db_pv: nvme0n1 + sde: + db_pv: nvme0n1 + sdf: + db_pv: nvme0n1 + sdg: + db_pv: nvme1n1 + sdh: + db_pv: nvme1n1 + sdi: + db_pv: nvme1n1 + sdj: + db_pv: nvme1n1 + sdk: + db_pv: nvme1n1 + sdl: + db_pv: nvme1n1 diff --git a/inventory/group_vars/control.yml b/inventory/group_vars/control.yml index f37ee854..9c363954 100644 --- a/inventory/group_vars/control.yml +++ b/inventory/group_vars/control.yml @@ -6,3 +6,18 @@ chrony_servers: - st01-mgmt-r01-u30 - st01-mgmt-r01-u31 +# NTP server options. +chrony_server_options: iburst + +# Configure Chrony to synchronize the hardware clock +chrony_sync_rtc: true + +# Chrony limits access to clients that are on certain subnets. Adjust the +# following subnets here to limit client access to chrony servers. +chrony_allowed_subnets: + - 10.10.21.0/24 + +# If set to true, chronyd will never open the server port and will operate +# strictly in a client-only mode. +chrony_bind_local_interfaces_only: false + diff --git a/inventory/group_vars/generic/ceph.yml b/inventory/group_vars/generic/ceph.yml new file mode 100644 index 00000000..36f91722 --- /dev/null +++ b/inventory/group_vars/generic/ceph.yml @@ -0,0 +1,25 @@ +os_tuning_params: + - { name: fs.file-max, value: 26234859 } + - { name: vm.zone_reclaim_mode, value: 0 } + - { name: vm.swappiness, value: 0 } + - { name: vm.min_free_kbytes, value: "{{ vm_min_free_kbytes }}" } + +openstack_cinder_rbd001_pool: + name: rbd001 + pg_num: "{{ openstack_pool_default_pg_num }}" + pgp_num: "{{ openstack_pool_default_pg_num }}" + rule_name: "replicated_rule" + min_size: "{{ openstack_pool_default_min_size }}" + application: "rbd" + +openstack_cinder_rgw001_pool: + name: rgw001 + pg_num: "{{ openstack_pool_default_pg_num }}" + pgp_num: "{{ openstack_pool_default_pg_num }}" + rule_name: "replicated_rule" + min_size: "{{ openstack_pool_default_min_size }}" + application: "rgw" + +openstack_pools_extra: + - "{{ openstack_cinder_rbd001_pool }}" + - "{{ openstack_cinder_rgw001_pool }}" diff --git a/inventory/group_vars/generic/chrony.yml b/inventory/group_vars/generic/chrony.yml new file mode 100644 index 00000000..8d26b933 --- /dev/null +++ b/inventory/group_vars/generic/chrony.yml @@ -0,0 +1,25 @@ + + +########################## +# chrony + +chrony_servers: + - st01-ctl-r01-u27 + - st01-ctl-r01-u28 + - st01-ctl-r01-u29 + - st01-mgmt-r01-u30 + - st01-mgmt-r01-u31 + + +chrony_allowed_subnets: + - 127.0.0.1/32 + + +motd_content: | + . + ____ ____ ____ _ _ + / ___| / ___/ ___| | | __ _ _ __ __| |___ ___ __ _ _ __ ___ + \___ \| | \___ \ | | / _` | '_ \ / _` / __|/ __/ _` | '_ \ / _ \ + ___) | |___ ___) | | |__| (_| | | | | (_| \__ \ (_| (_| | |_) | __/ + |____/ \____|____/ |_____\__,_|_| |_|\__,_|___/\___\__,_| .__/ \___| + |_| diff --git a/inventory/group_vars/generic/dhcpd.yml b/inventory/group_vars/generic/dhcpd.yml new file mode 100644 index 00000000..7b37f660 --- /dev/null +++ b/inventory/group_vars/generic/dhcpd.yml @@ -0,0 +1,12 @@ + +isc_dhcp_server_subnet_definition: + - description: "Managment Network" + config: | + subnet 10.10.23.0 netmask 255.255.255.0 { + range 10.10.23.240 10.10.23.250; + option routers {{ management_gw }}; + option broadcast-address 10.10.23.255; + option domain-name-servers {{ management_gw }}; + option ntp-servers {{ management_gw }}; + } + diff --git a/inventory/group_vars/generic/motd.yml b/inventory/group_vars/generic/motd.yml new file mode 100644 index 00000000..cbbb6eec --- /dev/null +++ b/inventory/group_vars/generic/motd.yml @@ -0,0 +1,10 @@ + + +motd_content: | + . + ____ ____ ____ _ _ + / ___| / ___/ ___| | | __ _ _ __ __| |___ ___ __ _ _ __ ___ + \___ \| | \___ \ | | / _` | '_ \ / _` / __|/ __/ _` | '_ \ / _ \ + ___) | |___ ___) | | |__| (_| | | | | (_| \__ \ (_| (_| | |_) | __/ + |____/ \____|____/ |_____\__,_|_| |_|\__,_|___/\___\__,_| .__/ \___| + |_| diff --git a/inventory/group_vars/manager.yml b/inventory/group_vars/manager.yml index 95818e3a..3b3c85e3 100644 --- a/inventory/group_vars/manager.yml +++ b/inventory/group_vars/manager.yml @@ -9,9 +9,8 @@ chrony_sync_rtc: true # Chrony limits access to clients that are on certain subnets. Adjust the # following subnets here to limit client access to chrony servers. chrony_allowed_subnets: - - 10/8 - - 192.168/16 - - 172.16/12 + - 10.10.21.0/24 + - 10.10.23.0/24 # If set to true, chronyd will never open the server port and will operate # strictly in a client-only mode. diff --git a/inventory/host_vars/servers-template.yml.j2 b/inventory/host_vars/servers-template.yml.j2 index 12db37e2..d55fc121 100644 --- a/inventory/host_vars/servers-template.yml.j2 +++ b/inventory/host_vars/servers-template.yml.j2 @@ -9,8 +9,12 @@ ansible_host: {{ node_ip_v4 }} device_model: {{ device_model }} internal_interface: dummy0 -internal_ip: {{ node_ip_v4 }} -mgmt_ip: {{ bmc_ip_v4 }} +network_interface: dummy0 +internal_address: {{ node_ip_v4 }} + +netdata_host_type: client + +mgmt_address: {{ bmc_ip_v4 }} mgmt_mac: {{ bmc_mac }} diff --git a/inventory/host_vars/st01-comp-r01-u09.yml b/inventory/host_vars/st01-comp-r01-u09/01_base.yml similarity index 84% rename from inventory/host_vars/st01-comp-r01-u09.yml rename to inventory/host_vars/st01-comp-r01-u09/01_base.yml index c08c30a9..2d53e78f 100644 --- a/inventory/host_vars/st01-comp-r01-u09.yml +++ b/inventory/host_vars/st01-comp-r01-u09/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.25 device_model: H12SSL-NT internal_interface: dummy0 -internal_ip: 10.10.21.25 -mgmt_ip: 10.10.23.25 +network_interface: dummy0 +internal_address: 10.10.21.25 + +netdata_host_type: client + +mgmt_address: 10.10.23.25 mgmt_mac: 3c:ec:ef:9f:e2:40 diff --git a/inventory/host_vars/st01-comp-r01-u11.yml b/inventory/host_vars/st01-comp-r01-u11/01_base.yml similarity index 84% rename from inventory/host_vars/st01-comp-r01-u11.yml rename to inventory/host_vars/st01-comp-r01-u11/01_base.yml index 534899ce..3aafa447 100644 --- a/inventory/host_vars/st01-comp-r01-u11.yml +++ b/inventory/host_vars/st01-comp-r01-u11/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.26 device_model: H12SSL-NT internal_interface: dummy0 -internal_ip: 10.10.21.26 -mgmt_ip: 10.10.23.26 +network_interface: dummy0 +internal_address: 10.10.21.26 + +netdata_host_type: client + +mgmt_address: 10.10.23.26 mgmt_mac: 3c:ec:ef:9f:e2:4e diff --git a/inventory/host_vars/st01-comp-r01-u13.yml b/inventory/host_vars/st01-comp-r01-u13/01_base.yml similarity index 84% rename from inventory/host_vars/st01-comp-r01-u13.yml rename to inventory/host_vars/st01-comp-r01-u13/01_base.yml index 704ac97f..eeb546ec 100644 --- a/inventory/host_vars/st01-comp-r01-u13.yml +++ b/inventory/host_vars/st01-comp-r01-u13/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.27 device_model: H12SSL-NT internal_interface: dummy0 -internal_ip: 10.10.21.27 -mgmt_ip: 10.10.23.27 +network_interface: dummy0 +internal_address: 10.10.21.27 + +netdata_host_type: client + +mgmt_address: 10.10.23.27 mgmt_mac: 3c:ec:ef:9f:e2:2f diff --git a/inventory/host_vars/st01-comp-r01-u15.yml b/inventory/host_vars/st01-comp-r01-u15/01_base.yml similarity index 84% rename from inventory/host_vars/st01-comp-r01-u15.yml rename to inventory/host_vars/st01-comp-r01-u15/01_base.yml index d3cff708..46aa484b 100644 --- a/inventory/host_vars/st01-comp-r01-u15.yml +++ b/inventory/host_vars/st01-comp-r01-u15/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.28 device_model: H12SSL-NT internal_interface: dummy0 -internal_ip: 10.10.21.28 -mgmt_ip: 10.10.23.28 +network_interface: dummy0 +internal_address: 10.10.21.28 + +netdata_host_type: client + +mgmt_address: 10.10.23.28 mgmt_mac: 3c:ec:ef:9f:e2:0c diff --git a/inventory/host_vars/st01-comp-r01-u17.yml b/inventory/host_vars/st01-comp-r01-u17/01_base.yml similarity index 84% rename from inventory/host_vars/st01-comp-r01-u17.yml rename to inventory/host_vars/st01-comp-r01-u17/01_base.yml index 72bcede9..bd50a7a4 100644 --- a/inventory/host_vars/st01-comp-r01-u17.yml +++ b/inventory/host_vars/st01-comp-r01-u17/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.29 device_model: H12SSL-NT internal_interface: dummy0 -internal_ip: 10.10.21.29 -mgmt_ip: 10.10.23.29 +network_interface: dummy0 +internal_address: 10.10.21.29 + +netdata_host_type: client + +mgmt_address: 10.10.23.29 mgmt_mac: 3c:ec:ef:9f:e1:d1 diff --git a/inventory/host_vars/st01-comp-r01-u19.yml b/inventory/host_vars/st01-comp-r01-u19/01_base.yml similarity index 84% rename from inventory/host_vars/st01-comp-r01-u19.yml rename to inventory/host_vars/st01-comp-r01-u19/01_base.yml index b07f8f2f..fa0d8e88 100644 --- a/inventory/host_vars/st01-comp-r01-u19.yml +++ b/inventory/host_vars/st01-comp-r01-u19/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.30 device_model: H12SSL-NT internal_interface: dummy0 -internal_ip: 10.10.21.30 -mgmt_ip: 10.10.23.30 +network_interface: dummy0 +internal_address: 10.10.21.30 + +netdata_host_type: client + +mgmt_address: 10.10.23.30 mgmt_mac: 3c:ec:ef:9f:e2:6b diff --git a/inventory/host_vars/st01-comp-r01-u21.yml b/inventory/host_vars/st01-comp-r01-u21/01_base.yml similarity index 84% rename from inventory/host_vars/st01-comp-r01-u21.yml rename to inventory/host_vars/st01-comp-r01-u21/01_base.yml index e05dc355..5690d2d6 100644 --- a/inventory/host_vars/st01-comp-r01-u21.yml +++ b/inventory/host_vars/st01-comp-r01-u21/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.15 device_model: ARS-110M-NR internal_interface: dummy0 -internal_ip: 10.10.21.15 -mgmt_ip: 10.10.23.15 +network_interface: dummy0 +internal_address: 10.10.21.15 + +netdata_host_type: client + +mgmt_address: 10.10.23.15 mgmt_mac: 7c:c2:55:86:36:6d diff --git a/inventory/host_vars/st01-comp-r01-u22.yml b/inventory/host_vars/st01-comp-r01-u22/01_base.yml similarity index 84% rename from inventory/host_vars/st01-comp-r01-u22.yml rename to inventory/host_vars/st01-comp-r01-u22/01_base.yml index 27b63835..7d603967 100644 --- a/inventory/host_vars/st01-comp-r01-u22.yml +++ b/inventory/host_vars/st01-comp-r01-u22/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.16 device_model: ARS-110M-NR internal_interface: dummy0 -internal_ip: 10.10.21.16 -mgmt_ip: 10.10.23.16 +network_interface: dummy0 +internal_address: 10.10.21.16 + +netdata_host_type: client + +mgmt_address: 10.10.23.16 mgmt_mac: 7c:c2:55:86:38:80 diff --git a/inventory/host_vars/st01-comp-r01-u23.yml b/inventory/host_vars/st01-comp-r01-u23/01_base.yml similarity index 84% rename from inventory/host_vars/st01-comp-r01-u23.yml rename to inventory/host_vars/st01-comp-r01-u23/01_base.yml index 276ff6a0..822255ac 100644 --- a/inventory/host_vars/st01-comp-r01-u23.yml +++ b/inventory/host_vars/st01-comp-r01-u23/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.17 device_model: ARS-110M-NR internal_interface: dummy0 -internal_ip: 10.10.21.17 -mgmt_ip: 10.10.23.17 +network_interface: dummy0 +internal_address: 10.10.21.17 + +netdata_host_type: client + +mgmt_address: 10.10.23.17 mgmt_mac: 7c:c2:55:81:4a:86 diff --git a/inventory/host_vars/st01-comp-r01-u24.yml b/inventory/host_vars/st01-comp-r01-u24/01_base.yml similarity index 84% rename from inventory/host_vars/st01-comp-r01-u24.yml rename to inventory/host_vars/st01-comp-r01-u24/01_base.yml index ad863cea..d4b0045f 100644 --- a/inventory/host_vars/st01-comp-r01-u24.yml +++ b/inventory/host_vars/st01-comp-r01-u24/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.18 device_model: ARS-110M-NR internal_interface: dummy0 -internal_ip: 10.10.21.18 -mgmt_ip: 10.10.23.18 +network_interface: dummy0 +internal_address: 10.10.21.18 + +netdata_host_type: client + +mgmt_address: 10.10.23.18 mgmt_mac: 7c:c2:55:86:36:cd diff --git a/inventory/host_vars/st01-comp-r01-u25.yml b/inventory/host_vars/st01-comp-r01-u25/01_base.yml similarity index 84% rename from inventory/host_vars/st01-comp-r01-u25.yml rename to inventory/host_vars/st01-comp-r01-u25/01_base.yml index d159153f..a8eb050b 100644 --- a/inventory/host_vars/st01-comp-r01-u25.yml +++ b/inventory/host_vars/st01-comp-r01-u25/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.19 device_model: ARS-110M-NR internal_interface: dummy0 -internal_ip: 10.10.21.19 -mgmt_ip: 10.10.23.19 +network_interface: dummy0 +internal_address: 10.10.21.19 + +netdata_host_type: client + +mgmt_address: 10.10.23.19 mgmt_mac: 7c:c2:55:86:36:c4 diff --git a/inventory/host_vars/st01-comp-r01-u26.yml b/inventory/host_vars/st01-comp-r01-u26/01_base.yml similarity index 84% rename from inventory/host_vars/st01-comp-r01-u26.yml rename to inventory/host_vars/st01-comp-r01-u26/01_base.yml index 4b4dfd5a..5b53adb8 100644 --- a/inventory/host_vars/st01-comp-r01-u26.yml +++ b/inventory/host_vars/st01-comp-r01-u26/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.20 device_model: ARS-110M-NR internal_interface: dummy0 -internal_ip: 10.10.21.20 -mgmt_ip: 10.10.23.20 +network_interface: dummy0 +internal_address: 10.10.21.20 + +netdata_host_type: client + +mgmt_address: 10.10.23.20 mgmt_mac: 7c:c2:55:81:8c:0b diff --git a/inventory/host_vars/st01-ctl-r01-u27.yml b/inventory/host_vars/st01-ctl-r01-u27/01_base.yml similarity index 84% rename from inventory/host_vars/st01-ctl-r01-u27.yml rename to inventory/host_vars/st01-ctl-r01-u27/01_base.yml index fe125d3f..2a6072fc 100644 --- a/inventory/host_vars/st01-ctl-r01-u27.yml +++ b/inventory/host_vars/st01-ctl-r01-u27/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.12 device_model: A2SDV-8C-LN8F internal_interface: dummy0 -internal_ip: 10.10.21.12 -mgmt_ip: 10.10.23.12 +network_interface: dummy0 +internal_address: 10.10.21.12 + +netdata_host_type: client + +mgmt_address: 10.10.23.12 mgmt_mac: 3c:ec:ef:5b:b5:b9 diff --git a/inventory/host_vars/st01-ctl-r01-u27/02_ceph.yml b/inventory/host_vars/st01-ctl-r01-u27/02_ceph.yml new file mode 100644 index 00000000..b7a90ebd --- /dev/null +++ b/inventory/host_vars/st01-ctl-r01-u27/02_ceph.yml @@ -0,0 +1,2 @@ +monitor_address: 10.10.21.12 +radosgw_address: 10.10.21.12 diff --git a/inventory/host_vars/st01-ctl-r01-u27/02_chrony.yml b/inventory/host_vars/st01-ctl-r01-u27/02_chrony.yml new file mode 100644 index 00000000..a525f097 --- /dev/null +++ b/inventory/host_vars/st01-ctl-r01-u27/02_chrony.yml @@ -0,0 +1,2 @@ + +chrony_bindaddresses: [ "{{ internal_address }}" ] diff --git a/inventory/host_vars/st01-ctl-r01-u28.yml b/inventory/host_vars/st01-ctl-r01-u28/01_base.yml similarity index 84% rename from inventory/host_vars/st01-ctl-r01-u28.yml rename to inventory/host_vars/st01-ctl-r01-u28/01_base.yml index c1d1b727..02c82a98 100644 --- a/inventory/host_vars/st01-ctl-r01-u28.yml +++ b/inventory/host_vars/st01-ctl-r01-u28/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.13 device_model: A2SDV-8C-LN8F internal_interface: dummy0 -internal_ip: 10.10.21.13 -mgmt_ip: 10.10.23.13 +network_interface: dummy0 +internal_address: 10.10.21.13 + +netdata_host_type: client + +mgmt_address: 10.10.23.13 mgmt_mac: 3c:ec:ef:5b:b5:bf diff --git a/inventory/host_vars/st01-ctl-r01-u28/02_ceph.yml b/inventory/host_vars/st01-ctl-r01-u28/02_ceph.yml new file mode 100644 index 00000000..0973e312 --- /dev/null +++ b/inventory/host_vars/st01-ctl-r01-u28/02_ceph.yml @@ -0,0 +1,3 @@ + +monitor_address: 10.10.21.13 +radosgw_address: 10.10.21.13 diff --git a/inventory/host_vars/st01-ctl-r01-u28/02_chrony.yml b/inventory/host_vars/st01-ctl-r01-u28/02_chrony.yml new file mode 100644 index 00000000..a525f097 --- /dev/null +++ b/inventory/host_vars/st01-ctl-r01-u28/02_chrony.yml @@ -0,0 +1,2 @@ + +chrony_bindaddresses: [ "{{ internal_address }}" ] diff --git a/inventory/host_vars/st01-ctl-r01-u29.yml b/inventory/host_vars/st01-ctl-r01-u29/01_base.yml similarity index 84% rename from inventory/host_vars/st01-ctl-r01-u29.yml rename to inventory/host_vars/st01-ctl-r01-u29/01_base.yml index 08198b1e..904269c2 100644 --- a/inventory/host_vars/st01-ctl-r01-u29.yml +++ b/inventory/host_vars/st01-ctl-r01-u29/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.14 device_model: A2SDV-8C-LN8F internal_interface: dummy0 -internal_ip: 10.10.21.14 -mgmt_ip: 10.10.23.14 +network_interface: dummy0 +internal_address: 10.10.21.14 + +netdata_host_type: client + +mgmt_address: 10.10.23.14 mgmt_mac: 3c:ec:ef:5b:b5:bb diff --git a/inventory/host_vars/st01-ctl-r01-u29/02_ceph.yml b/inventory/host_vars/st01-ctl-r01-u29/02_ceph.yml new file mode 100644 index 00000000..e18ac7bb --- /dev/null +++ b/inventory/host_vars/st01-ctl-r01-u29/02_ceph.yml @@ -0,0 +1,3 @@ + +monitor_address: 10.10.21.14 +radosgw_address: 10.10.21.14 diff --git a/inventory/host_vars/st01-ctl-r01-u29/02_chrony.yml b/inventory/host_vars/st01-ctl-r01-u29/02_chrony.yml new file mode 100644 index 00000000..a525f097 --- /dev/null +++ b/inventory/host_vars/st01-ctl-r01-u29/02_chrony.yml @@ -0,0 +1,2 @@ + +chrony_bindaddresses: [ "{{ internal_address }}" ] diff --git a/inventory/host_vars/st01-mgmt-r01-u30.yml b/inventory/host_vars/st01-mgmt-r01-u30.yml deleted file mode 100644 index 5f9a7576..00000000 --- a/inventory/host_vars/st01-mgmt-r01-u30.yml +++ /dev/null @@ -1,103 +0,0 @@ ---- -########################################################## -# ansible - - -inventory_generate_strategy: keep - -#External Usage -#ansible_host: 188.244.101.28 - -#Internal Usage -ansible_host: 192.168.104.43 - -########################################################## -# generic - -internal_interface: dummy0 -internal_ip: 10.10.21.10 -external_interface: eno2 -mgmt_interface: eno3 -mgmt_ip: 10.10.23.10 - - -########################################################## -# network - -network_type: netplan -network_ethernets: - dummy0: - addresses: - - 10.10.21.10/32 - - fd0c:cc24:75a0:1:10:10:21:10/128 - enp2s0f0np0: - mtu: 9100 - dhcp4: "no" - dhcp6: "no" - enp2s0f1np1: - mtu: 9100 - dhcp4: "no" - dhcp6: "no" - - # Access to mangement network - eno6: - addresses: - - "10.10.23.254/24" - # Internet Uplink - eno2: - addresses: - - "192.168.104.43/29" - nameservers: - addresses: - - 8.8.8.8 - - 9.9.9.9 - routes: - - to: default - via: 192.168.104.41 - mtu: 1500 - - # P2P Link to Switch st01-sw1g-r01-u47 - eno1: - addresses: - - "10.10.22.1/24" - - -# Bind Chrony to specific addresses -# NOTE: It is only possible to set at most -chrony_bindaddresses: [ "10.10.21.10" ] - - -motd_content: | - . - ____ ____ ____ _ _ - / ___| / ___/ ___| | | __ _ _ __ __| |___ ___ __ _ _ __ ___ - \___ \| | \___ \ | | / _` | '_ \ / _` / __|/ __/ _` | '_ \ / _ \ - ___) | |___ ___) | | |__| (_| | | | | (_| \__ \ (_| (_| | |_) | __/ - |____/ \____|____/ |_____\__,_|_| |_|\__,_|___/\___\__,_| .__/ \___| - |_| - _ _ _ - | |_ _ _ __ ___ _ __ | |__ ___ ___| |_ - _ | | | | | '_ ` _ \| '_ \| '_ \ / _ \/ __| __| - | |_| | |_| | | | | | | |_) | | | | (_) \__ \ |_ - \___/ \__,_|_| |_| |_| .__/|_| |_|\___/|___/\__| - |_| - - * Attach to a running screen session which provides access to the ttypS0..ttyS3 interfaces - or create automatically a new one - scs_serial_access - - 'CTLR + y, "' - select your terminal - - 'CTLR + y, :quit' - terminate screen entirely - - 'CTLR + y, :break' - send a break signal - * Restart all sessions - sudo kill -KILL $(pgrep -u root screen) - scs_serial_access - * Review console output - see /var/log/screen - - You can distribute OS Images using the folder ~/public_html (make file world readable). - Download it using the following URI: http://{{ internal_ip }}/~/ - - diff --git a/inventory/host_vars/st01-mgmt-r01-u30/00_def.yml b/inventory/host_vars/st01-mgmt-r01-u30/00_def.yml new file mode 100644 index 00000000..29378fec --- /dev/null +++ b/inventory/host_vars/st01-mgmt-r01-u30/00_def.yml @@ -0,0 +1,3 @@ +mgmt_interface: eno6 +external_interface: eno2 + diff --git a/inventory/host_vars/st01-mgmt-r01-u30/01_base.yml b/inventory/host_vars/st01-mgmt-r01-u30/01_base.yml new file mode 100644 index 00000000..ab6109f2 --- /dev/null +++ b/inventory/host_vars/st01-mgmt-r01-u30/01_base.yml @@ -0,0 +1,40 @@ +--- +########################################################## +# ansible + +ansible_host: 10.10.21.10 + +########################################################## +# generic + +device_model: A2SDV-4C-LN8F +internal_interface: dummy0 +network_interface: dummy0 +internal_address: 10.10.21.10 + +netdata_host_type: client + +mgmt_address: 10.10.23.10 +mgmt_mac: ac:1f:6b:5c:54:95 + + +########################################################## +# network + +network_type: netplan +network_ethernets: + dummy0: + addresses: + - 10.10.21.10/32 + - fd0c:cc24:75a0:1:10:10:21:10/128 + + enp2s0f0np0: + mtu: 9100 + dhcp4: "no" + dhcp6: "no" + + enp2s0f1np1: + mtu: 9100 + dhcp4: "no" + dhcp6: "no" + diff --git a/inventory/host_vars/st01-mgmt-r01-u30/02_chrony.yml b/inventory/host_vars/st01-mgmt-r01-u30/02_chrony.yml new file mode 100644 index 00000000..a525f097 --- /dev/null +++ b/inventory/host_vars/st01-mgmt-r01-u30/02_chrony.yml @@ -0,0 +1,2 @@ + +chrony_bindaddresses: [ "{{ internal_address }}" ] diff --git a/inventory/host_vars/st01-mgmt-r01-u30/03_motd.yml b/inventory/host_vars/st01-mgmt-r01-u30/03_motd.yml new file mode 100644 index 00000000..385021bf --- /dev/null +++ b/inventory/host_vars/st01-mgmt-r01-u30/03_motd.yml @@ -0,0 +1,34 @@ + +motd_content: | + --- + . + ____ ____ ____ _ _ + / ___| / ___/ ___| | | __ _ _ __ __| |___ ___ __ _ _ __ ___ + \___ \| | \___ \ | | / _` | '_ \ / _` / __|/ __/ _` | '_ \ / _ \ + ___) | |___ ___) | | |__| (_| | | | | (_| \__ \ (_| (_| | |_) | __/ + |____/ \____|____/ |_____\__,_|_| |_|\__,_|___/\___\__,_| .__/ \___| + |_| + _ _ _ + | |_ _ _ __ ___ _ __ | |__ ___ ___| |_ + _ | | | | | '_ ` _ \| '_ \| '_ \ / _ \/ __| __| + | |_| | |_| | | | | | | |_) | | | | (_) \__ \ |_ + \___/ \__,_|_| |_| |_| .__/|_| |_|\___/|___/\__| + |_| + + * Attach to a running screen session which provides access to the ttypS0..ttyS3 interfaces + or create automatically a new one + scs_serial_access + - 'CTLR + y, "' + select your terminal + - 'CTLR + y, :quit' + terminate screen entirely + - 'CTLR + y, :break' + send a break signal + * Restart all sessions + sudo kill -KILL $(pgrep -u root screen) + scs_serial_access + * Review console output + see /var/log/screen + + You can distribute OS Images using the folder ~/public_html (make file world readable). + Download it using the following URI: http://{{ internal_address }}/~/ diff --git a/inventory/host_vars/st01-mgmt-r01-u31.yml b/inventory/host_vars/st01-mgmt-r01-u31/01_base.yml similarity index 78% rename from inventory/host_vars/st01-mgmt-r01-u31.yml rename to inventory/host_vars/st01-mgmt-r01-u31/01_base.yml index b74454b5..0258c96d 100644 --- a/inventory/host_vars/st01-mgmt-r01-u31.yml +++ b/inventory/host_vars/st01-mgmt-r01-u31/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.11 device_model: A2SDV-4C-LN8F internal_interface: dummy0 -internal_ip: 10.10.21.11 -mgmt_ip: 10.10.23.11 +network_interface: dummy0 +internal_address: 10.10.21.11 + +netdata_host_type: client + +mgmt_address: 10.10.23.11 mgmt_mac: ac:1f:6b:5c:54:96 @@ -34,8 +38,3 @@ network_ethernets: dhcp4: "no" dhcp6: "no" -# Bind Chrony to specific addresses -# NOTE: It is only possible to set at most -chrony_bindaddresses: [ "10.10.21.11" ] - - diff --git a/inventory/host_vars/st01-mgmt-r01-u31/02_chrony.yml b/inventory/host_vars/st01-mgmt-r01-u31/02_chrony.yml new file mode 100644 index 00000000..a525f097 --- /dev/null +++ b/inventory/host_vars/st01-mgmt-r01-u31/02_chrony.yml @@ -0,0 +1,2 @@ + +chrony_bindaddresses: [ "{{ internal_address }}" ] diff --git a/inventory/host_vars/st01-stor-r01-u01.yml b/inventory/host_vars/st01-stor-r01-u01/01_base.yml similarity index 84% rename from inventory/host_vars/st01-stor-r01-u01.yml rename to inventory/host_vars/st01-stor-r01-u01/01_base.yml index 1f747185..fd716c7c 100644 --- a/inventory/host_vars/st01-stor-r01-u01.yml +++ b/inventory/host_vars/st01-stor-r01-u01/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.21 device_model: H12SSL-CT internal_interface: dummy0 -internal_ip: 10.10.21.21 -mgmt_ip: 10.10.23.21 +network_interface: dummy0 +internal_address: 10.10.21.21 + +netdata_host_type: client + +mgmt_address: 10.10.23.21 mgmt_mac: 3c:ec:ef:9e:d1:1a diff --git a/inventory/host_vars/st01-stor-r01-u01/10_ceph.yml b/inventory/host_vars/st01-stor-r01-u01/10_ceph.yml new file mode 100644 index 00000000..5a2472f9 --- /dev/null +++ b/inventory/host_vars/st01-stor-r01-u01/10_ceph.yml @@ -0,0 +1,100 @@ +--- +# +# This is Ceph LVM configuration for st01-stor-r01-u01 +# generated by ceph-configure-lvm-volumes playbook. +# +ceph_db_devices: + nvme0n1: + db_size: 70 GB + num_osds: 6 + vg_name: ceph-db-437ad889-53b0-5360-8f04-a07f7a816016 + nvme1n1: + db_size: 70 GB + num_osds: 6 + vg_name: ceph-db-5b82d65e-79bd-5bde-a9d4-63b343ace645 +ceph_osd_devices: + sda: + db_pv: nvme0n1 + osd_lvm_uuid: 48da42d8-1da4-5743-bede-6eeae7e1c0c4 + sdb: + db_pv: nvme0n1 + osd_lvm_uuid: a4d1d601-fdb8-5b1e-a7e4-ece48282e6fb + sdc: + db_pv: nvme0n1 + osd_lvm_uuid: 1612216e-8474-5a94-a7ce-17c962180efd + sdd: + db_pv: nvme0n1 + osd_lvm_uuid: a358707f-4f27-526f-87c4-a718d73c453f + sde: + db_pv: nvme0n1 + osd_lvm_uuid: a37f6f4e-1dff-5afb-a6c7-ff9bba1ed4c6 + sdf: + db_pv: nvme0n1 + osd_lvm_uuid: 6d315385-b30e-56a1-a146-fd621f641915 + sdg: + db_pv: nvme1n1 + osd_lvm_uuid: 5bbd6764-170c-51e8-a380-fb06a8891c51 + sdh: + db_pv: nvme1n1 + osd_lvm_uuid: 19d9c555-f429-548f-9b40-a3e0b106ffc7 + sdi: + db_pv: nvme1n1 + osd_lvm_uuid: 4923aafa-4bf4-5c0f-b63a-f42e8e4ea2f7 + sdj: + db_pv: nvme1n1 + osd_lvm_uuid: 64506b6f-487f-50e1-aef0-27a072156e78 + sdk: + db_pv: nvme1n1 + osd_lvm_uuid: 8851bcec-5fec-50e9-8b2a-96428f44bcd0 + sdl: + db_pv: nvme1n1 + osd_lvm_uuid: ef179bc8-ed45-58ad-b270-97313289471f +lvm_volumes: +- data: osd-block-48da42d8-1da4-5743-bede-6eeae7e1c0c4 + data_vg: ceph-48da42d8-1da4-5743-bede-6eeae7e1c0c4 + db: osd-db-48da42d8-1da4-5743-bede-6eeae7e1c0c4 + db_vg: ceph-db-437ad889-53b0-5360-8f04-a07f7a816016 +- data: osd-block-a4d1d601-fdb8-5b1e-a7e4-ece48282e6fb + data_vg: ceph-a4d1d601-fdb8-5b1e-a7e4-ece48282e6fb + db: osd-db-a4d1d601-fdb8-5b1e-a7e4-ece48282e6fb + db_vg: ceph-db-437ad889-53b0-5360-8f04-a07f7a816016 +- data: osd-block-1612216e-8474-5a94-a7ce-17c962180efd + data_vg: ceph-1612216e-8474-5a94-a7ce-17c962180efd + db: osd-db-1612216e-8474-5a94-a7ce-17c962180efd + db_vg: ceph-db-437ad889-53b0-5360-8f04-a07f7a816016 +- data: osd-block-a358707f-4f27-526f-87c4-a718d73c453f + data_vg: ceph-a358707f-4f27-526f-87c4-a718d73c453f + db: osd-db-a358707f-4f27-526f-87c4-a718d73c453f + db_vg: ceph-db-437ad889-53b0-5360-8f04-a07f7a816016 +- data: osd-block-a37f6f4e-1dff-5afb-a6c7-ff9bba1ed4c6 + data_vg: ceph-a37f6f4e-1dff-5afb-a6c7-ff9bba1ed4c6 + db: osd-db-a37f6f4e-1dff-5afb-a6c7-ff9bba1ed4c6 + db_vg: ceph-db-437ad889-53b0-5360-8f04-a07f7a816016 +- data: osd-block-6d315385-b30e-56a1-a146-fd621f641915 + data_vg: ceph-6d315385-b30e-56a1-a146-fd621f641915 + db: osd-db-6d315385-b30e-56a1-a146-fd621f641915 + db_vg: ceph-db-437ad889-53b0-5360-8f04-a07f7a816016 +- data: osd-block-5bbd6764-170c-51e8-a380-fb06a8891c51 + data_vg: ceph-5bbd6764-170c-51e8-a380-fb06a8891c51 + db: osd-db-5bbd6764-170c-51e8-a380-fb06a8891c51 + db_vg: ceph-db-5b82d65e-79bd-5bde-a9d4-63b343ace645 +- data: osd-block-19d9c555-f429-548f-9b40-a3e0b106ffc7 + data_vg: ceph-19d9c555-f429-548f-9b40-a3e0b106ffc7 + db: osd-db-19d9c555-f429-548f-9b40-a3e0b106ffc7 + db_vg: ceph-db-5b82d65e-79bd-5bde-a9d4-63b343ace645 +- data: osd-block-4923aafa-4bf4-5c0f-b63a-f42e8e4ea2f7 + data_vg: ceph-4923aafa-4bf4-5c0f-b63a-f42e8e4ea2f7 + db: osd-db-4923aafa-4bf4-5c0f-b63a-f42e8e4ea2f7 + db_vg: ceph-db-5b82d65e-79bd-5bde-a9d4-63b343ace645 +- data: osd-block-64506b6f-487f-50e1-aef0-27a072156e78 + data_vg: ceph-64506b6f-487f-50e1-aef0-27a072156e78 + db: osd-db-64506b6f-487f-50e1-aef0-27a072156e78 + db_vg: ceph-db-5b82d65e-79bd-5bde-a9d4-63b343ace645 +- data: osd-block-8851bcec-5fec-50e9-8b2a-96428f44bcd0 + data_vg: ceph-8851bcec-5fec-50e9-8b2a-96428f44bcd0 + db: osd-db-8851bcec-5fec-50e9-8b2a-96428f44bcd0 + db_vg: ceph-db-5b82d65e-79bd-5bde-a9d4-63b343ace645 +- data: osd-block-ef179bc8-ed45-58ad-b270-97313289471f + data_vg: ceph-ef179bc8-ed45-58ad-b270-97313289471f + db: osd-db-ef179bc8-ed45-58ad-b270-97313289471f + db_vg: ceph-db-5b82d65e-79bd-5bde-a9d4-63b343ace645 diff --git a/inventory/host_vars/st01-stor-r01-u03.yml b/inventory/host_vars/st01-stor-r01-u03/01_base.yml similarity index 84% rename from inventory/host_vars/st01-stor-r01-u03.yml rename to inventory/host_vars/st01-stor-r01-u03/01_base.yml index 7de855b0..1a501f51 100644 --- a/inventory/host_vars/st01-stor-r01-u03.yml +++ b/inventory/host_vars/st01-stor-r01-u03/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.22 device_model: H12SSL-CT internal_interface: dummy0 -internal_ip: 10.10.21.22 -mgmt_ip: 10.10.23.22 +network_interface: dummy0 +internal_address: 10.10.21.22 + +netdata_host_type: client + +mgmt_address: 10.10.23.22 mgmt_mac: 3c:ec:ef:94:94:f4 diff --git a/inventory/host_vars/st01-stor-r01-u03/10_ceph.yml b/inventory/host_vars/st01-stor-r01-u03/10_ceph.yml new file mode 100644 index 00000000..8e1e02c3 --- /dev/null +++ b/inventory/host_vars/st01-stor-r01-u03/10_ceph.yml @@ -0,0 +1,100 @@ +--- +# +# This is Ceph LVM configuration for st01-stor-r01-u03 +# generated by ceph-configure-lvm-volumes playbook. +# +ceph_db_devices: + nvme0n1: + db_size: 70 GB + num_osds: 6 + vg_name: ceph-db-c080d792-96ec-51b0-bb56-933db47c2967 + nvme1n1: + db_size: 70 GB + num_osds: 6 + vg_name: ceph-db-e7eb016b-5b69-50e9-ad86-33181ed93e19 +ceph_osd_devices: + sda: + db_pv: nvme0n1 + osd_lvm_uuid: 885f10b7-98f0-5bc4-a3f6-3436dc29e7fe + sdb: + db_pv: nvme0n1 + osd_lvm_uuid: f26f63f7-fec7-5b70-aa68-a8531d23a45b + sdc: + db_pv: nvme0n1 + osd_lvm_uuid: 823b8e75-03d8-5445-9448-4de63d1295c2 + sdd: + db_pv: nvme0n1 + osd_lvm_uuid: 067f424b-1e0f-57cc-a9ad-158715e3202f + sde: + db_pv: nvme0n1 + osd_lvm_uuid: 10022c60-3767-5a12-bb48-c2a1756b7136 + sdf: + db_pv: nvme0n1 + osd_lvm_uuid: 99b7f9eb-834b-56ec-8239-11a146b400bb + sdg: + db_pv: nvme1n1 + osd_lvm_uuid: ca4b0c9d-7c9c-5d5c-95fb-424d7a90f181 + sdh: + db_pv: nvme1n1 + osd_lvm_uuid: 81008c08-69e3-51fd-afee-1d431e0bd597 + sdi: + db_pv: nvme1n1 + osd_lvm_uuid: 58f66596-d991-5047-a3cd-63d00febc0e3 + sdj: + db_pv: nvme1n1 + osd_lvm_uuid: 47e10bbb-9a1b-58c0-b616-98b1128658ca + sdk: + db_pv: nvme1n1 + osd_lvm_uuid: f5f5712d-cb6e-5874-ba21-8791e2ca8b27 + sdl: + db_pv: nvme1n1 + osd_lvm_uuid: 5f31da2f-4cd1-57cc-b366-dccef866282b +lvm_volumes: +- data: osd-block-885f10b7-98f0-5bc4-a3f6-3436dc29e7fe + data_vg: ceph-885f10b7-98f0-5bc4-a3f6-3436dc29e7fe + db: osd-db-885f10b7-98f0-5bc4-a3f6-3436dc29e7fe + db_vg: ceph-db-c080d792-96ec-51b0-bb56-933db47c2967 +- data: osd-block-f26f63f7-fec7-5b70-aa68-a8531d23a45b + data_vg: ceph-f26f63f7-fec7-5b70-aa68-a8531d23a45b + db: osd-db-f26f63f7-fec7-5b70-aa68-a8531d23a45b + db_vg: ceph-db-c080d792-96ec-51b0-bb56-933db47c2967 +- data: osd-block-823b8e75-03d8-5445-9448-4de63d1295c2 + data_vg: ceph-823b8e75-03d8-5445-9448-4de63d1295c2 + db: osd-db-823b8e75-03d8-5445-9448-4de63d1295c2 + db_vg: ceph-db-c080d792-96ec-51b0-bb56-933db47c2967 +- data: osd-block-067f424b-1e0f-57cc-a9ad-158715e3202f + data_vg: ceph-067f424b-1e0f-57cc-a9ad-158715e3202f + db: osd-db-067f424b-1e0f-57cc-a9ad-158715e3202f + db_vg: ceph-db-c080d792-96ec-51b0-bb56-933db47c2967 +- data: osd-block-10022c60-3767-5a12-bb48-c2a1756b7136 + data_vg: ceph-10022c60-3767-5a12-bb48-c2a1756b7136 + db: osd-db-10022c60-3767-5a12-bb48-c2a1756b7136 + db_vg: ceph-db-c080d792-96ec-51b0-bb56-933db47c2967 +- data: osd-block-99b7f9eb-834b-56ec-8239-11a146b400bb + data_vg: ceph-99b7f9eb-834b-56ec-8239-11a146b400bb + db: osd-db-99b7f9eb-834b-56ec-8239-11a146b400bb + db_vg: ceph-db-c080d792-96ec-51b0-bb56-933db47c2967 +- data: osd-block-ca4b0c9d-7c9c-5d5c-95fb-424d7a90f181 + data_vg: ceph-ca4b0c9d-7c9c-5d5c-95fb-424d7a90f181 + db: osd-db-ca4b0c9d-7c9c-5d5c-95fb-424d7a90f181 + db_vg: ceph-db-e7eb016b-5b69-50e9-ad86-33181ed93e19 +- data: osd-block-81008c08-69e3-51fd-afee-1d431e0bd597 + data_vg: ceph-81008c08-69e3-51fd-afee-1d431e0bd597 + db: osd-db-81008c08-69e3-51fd-afee-1d431e0bd597 + db_vg: ceph-db-e7eb016b-5b69-50e9-ad86-33181ed93e19 +- data: osd-block-58f66596-d991-5047-a3cd-63d00febc0e3 + data_vg: ceph-58f66596-d991-5047-a3cd-63d00febc0e3 + db: osd-db-58f66596-d991-5047-a3cd-63d00febc0e3 + db_vg: ceph-db-e7eb016b-5b69-50e9-ad86-33181ed93e19 +- data: osd-block-47e10bbb-9a1b-58c0-b616-98b1128658ca + data_vg: ceph-47e10bbb-9a1b-58c0-b616-98b1128658ca + db: osd-db-47e10bbb-9a1b-58c0-b616-98b1128658ca + db_vg: ceph-db-e7eb016b-5b69-50e9-ad86-33181ed93e19 +- data: osd-block-f5f5712d-cb6e-5874-ba21-8791e2ca8b27 + data_vg: ceph-f5f5712d-cb6e-5874-ba21-8791e2ca8b27 + db: osd-db-f5f5712d-cb6e-5874-ba21-8791e2ca8b27 + db_vg: ceph-db-e7eb016b-5b69-50e9-ad86-33181ed93e19 +- data: osd-block-5f31da2f-4cd1-57cc-b366-dccef866282b + data_vg: ceph-5f31da2f-4cd1-57cc-b366-dccef866282b + db: osd-db-5f31da2f-4cd1-57cc-b366-dccef866282b + db_vg: ceph-db-e7eb016b-5b69-50e9-ad86-33181ed93e19 diff --git a/inventory/host_vars/st01-stor-r01-u05.yml b/inventory/host_vars/st01-stor-r01-u05/01_base.yml similarity index 84% rename from inventory/host_vars/st01-stor-r01-u05.yml rename to inventory/host_vars/st01-stor-r01-u05/01_base.yml index af08c0ec..be462d3d 100644 --- a/inventory/host_vars/st01-stor-r01-u05.yml +++ b/inventory/host_vars/st01-stor-r01-u05/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.23 device_model: H12SSL-CT internal_interface: dummy0 -internal_ip: 10.10.21.23 -mgmt_ip: 10.10.23.23 +network_interface: dummy0 +internal_address: 10.10.21.23 + +netdata_host_type: client + +mgmt_address: 10.10.23.23 mgmt_mac: 3c:ec:ef:9e:d0:9b diff --git a/inventory/host_vars/st01-stor-r01-u05/10_ceph.yml b/inventory/host_vars/st01-stor-r01-u05/10_ceph.yml new file mode 100644 index 00000000..8c6163b6 --- /dev/null +++ b/inventory/host_vars/st01-stor-r01-u05/10_ceph.yml @@ -0,0 +1,100 @@ +--- +# +# This is Ceph LVM configuration for st01-stor-r01-u05 +# generated by ceph-configure-lvm-volumes playbook. +# +ceph_db_devices: + nvme0n1: + db_size: 70 GB + num_osds: 6 + vg_name: ceph-db-d5f08521-5877-5458-8e57-0a82d02c1252 + nvme1n1: + db_size: 70 GB + num_osds: 6 + vg_name: ceph-db-02161bbd-a04f-5834-ad1a-4a32bb86be8c +ceph_osd_devices: + sda: + db_pv: nvme0n1 + osd_lvm_uuid: 0b0e29a0-1f71-5e2e-9a2d-0ee41e0a6ffe + sdb: + db_pv: nvme0n1 + osd_lvm_uuid: 0b523496-5a51-5184-a335-33c97be5570b + sdc: + db_pv: nvme0n1 + osd_lvm_uuid: c515d0ed-954a-5af8-b801-cc2f88011d8d + sdd: + db_pv: nvme0n1 + osd_lvm_uuid: b00f58ea-a5a2-5434-89e9-8d090e4a8601 + sde: + db_pv: nvme0n1 + osd_lvm_uuid: 3825b81d-5b85-5786-a03f-f634fb6f6ca2 + sdf: + db_pv: nvme0n1 + osd_lvm_uuid: 71125b85-1fc2-503c-b7c1-c6a82649e592 + sdg: + db_pv: nvme1n1 + osd_lvm_uuid: 596d78f9-7c4c-57c0-af6d-3e787153e18f + sdh: + db_pv: nvme1n1 + osd_lvm_uuid: 890f0f8b-512c-5e7c-8b24-4f83fd7c9d19 + sdi: + db_pv: nvme1n1 + osd_lvm_uuid: e94745c6-d008-5fca-8d1c-7b773ab82832 + sdj: + db_pv: nvme1n1 + osd_lvm_uuid: a6e4f0be-8dbd-50d5-8531-af2aee96db2e + sdk: + db_pv: nvme1n1 + osd_lvm_uuid: be4d43f3-48e2-5507-b634-95ef992af660 + sdl: + db_pv: nvme1n1 + osd_lvm_uuid: 6bc880ec-bdd8-5778-a6e9-0c739dec872e +lvm_volumes: +- data: osd-block-0b0e29a0-1f71-5e2e-9a2d-0ee41e0a6ffe + data_vg: ceph-0b0e29a0-1f71-5e2e-9a2d-0ee41e0a6ffe + db: osd-db-0b0e29a0-1f71-5e2e-9a2d-0ee41e0a6ffe + db_vg: ceph-db-d5f08521-5877-5458-8e57-0a82d02c1252 +- data: osd-block-0b523496-5a51-5184-a335-33c97be5570b + data_vg: ceph-0b523496-5a51-5184-a335-33c97be5570b + db: osd-db-0b523496-5a51-5184-a335-33c97be5570b + db_vg: ceph-db-d5f08521-5877-5458-8e57-0a82d02c1252 +- data: osd-block-c515d0ed-954a-5af8-b801-cc2f88011d8d + data_vg: ceph-c515d0ed-954a-5af8-b801-cc2f88011d8d + db: osd-db-c515d0ed-954a-5af8-b801-cc2f88011d8d + db_vg: ceph-db-d5f08521-5877-5458-8e57-0a82d02c1252 +- data: osd-block-b00f58ea-a5a2-5434-89e9-8d090e4a8601 + data_vg: ceph-b00f58ea-a5a2-5434-89e9-8d090e4a8601 + db: osd-db-b00f58ea-a5a2-5434-89e9-8d090e4a8601 + db_vg: ceph-db-d5f08521-5877-5458-8e57-0a82d02c1252 +- data: osd-block-3825b81d-5b85-5786-a03f-f634fb6f6ca2 + data_vg: ceph-3825b81d-5b85-5786-a03f-f634fb6f6ca2 + db: osd-db-3825b81d-5b85-5786-a03f-f634fb6f6ca2 + db_vg: ceph-db-d5f08521-5877-5458-8e57-0a82d02c1252 +- data: osd-block-71125b85-1fc2-503c-b7c1-c6a82649e592 + data_vg: ceph-71125b85-1fc2-503c-b7c1-c6a82649e592 + db: osd-db-71125b85-1fc2-503c-b7c1-c6a82649e592 + db_vg: ceph-db-d5f08521-5877-5458-8e57-0a82d02c1252 +- data: osd-block-596d78f9-7c4c-57c0-af6d-3e787153e18f + data_vg: ceph-596d78f9-7c4c-57c0-af6d-3e787153e18f + db: osd-db-596d78f9-7c4c-57c0-af6d-3e787153e18f + db_vg: ceph-db-02161bbd-a04f-5834-ad1a-4a32bb86be8c +- data: osd-block-890f0f8b-512c-5e7c-8b24-4f83fd7c9d19 + data_vg: ceph-890f0f8b-512c-5e7c-8b24-4f83fd7c9d19 + db: osd-db-890f0f8b-512c-5e7c-8b24-4f83fd7c9d19 + db_vg: ceph-db-02161bbd-a04f-5834-ad1a-4a32bb86be8c +- data: osd-block-e94745c6-d008-5fca-8d1c-7b773ab82832 + data_vg: ceph-e94745c6-d008-5fca-8d1c-7b773ab82832 + db: osd-db-e94745c6-d008-5fca-8d1c-7b773ab82832 + db_vg: ceph-db-02161bbd-a04f-5834-ad1a-4a32bb86be8c +- data: osd-block-a6e4f0be-8dbd-50d5-8531-af2aee96db2e + data_vg: ceph-a6e4f0be-8dbd-50d5-8531-af2aee96db2e + db: osd-db-a6e4f0be-8dbd-50d5-8531-af2aee96db2e + db_vg: ceph-db-02161bbd-a04f-5834-ad1a-4a32bb86be8c +- data: osd-block-be4d43f3-48e2-5507-b634-95ef992af660 + data_vg: ceph-be4d43f3-48e2-5507-b634-95ef992af660 + db: osd-db-be4d43f3-48e2-5507-b634-95ef992af660 + db_vg: ceph-db-02161bbd-a04f-5834-ad1a-4a32bb86be8c +- data: osd-block-6bc880ec-bdd8-5778-a6e9-0c739dec872e + data_vg: ceph-6bc880ec-bdd8-5778-a6e9-0c739dec872e + db: osd-db-6bc880ec-bdd8-5778-a6e9-0c739dec872e + db_vg: ceph-db-02161bbd-a04f-5834-ad1a-4a32bb86be8c diff --git a/inventory/host_vars/st01-stor-r01-u07.yml b/inventory/host_vars/st01-stor-r01-u07/01_base.yml similarity index 84% rename from inventory/host_vars/st01-stor-r01-u07.yml rename to inventory/host_vars/st01-stor-r01-u07/01_base.yml index 310a65b7..e644a881 100644 --- a/inventory/host_vars/st01-stor-r01-u07.yml +++ b/inventory/host_vars/st01-stor-r01-u07/01_base.yml @@ -9,8 +9,12 @@ ansible_host: 10.10.21.24 device_model: H12SSL-CT internal_interface: dummy0 -internal_ip: 10.10.21.24 -mgmt_ip: 10.10.23.24 +network_interface: dummy0 +internal_address: 10.10.21.24 + +netdata_host_type: client + +mgmt_address: 10.10.23.24 mgmt_mac: 3c:ec:ef:9b:12:cb diff --git a/inventory/host_vars/st01-stor-r01-u07/10_ceph.yml b/inventory/host_vars/st01-stor-r01-u07/10_ceph.yml new file mode 100644 index 00000000..121af91a --- /dev/null +++ b/inventory/host_vars/st01-stor-r01-u07/10_ceph.yml @@ -0,0 +1,100 @@ +--- +# +# This is Ceph LVM configuration for st01-stor-r01-u07 +# generated by ceph-configure-lvm-volumes playbook. +# +ceph_db_devices: + nvme0n1: + db_size: 70 GB + num_osds: 6 + vg_name: ceph-db-0ebeb369-76b4-576a-b68f-99fe3a9a2ecf + nvme1n1: + db_size: 70 GB + num_osds: 6 + vg_name: ceph-db-ed667b63-c561-56b7-bf4b-2f5f9101231e +ceph_osd_devices: + sda: + db_pv: nvme0n1 + osd_lvm_uuid: 04fcc81d-44ad-5f16-acd4-e46d73a86b41 + sdb: + db_pv: nvme0n1 + osd_lvm_uuid: 5021a5a7-e469-5e27-80f6-7a440189849e + sdc: + db_pv: nvme0n1 + osd_lvm_uuid: 9b048326-2acd-5b32-82a3-8d36b5a5d1b3 + sdd: + db_pv: nvme0n1 + osd_lvm_uuid: b07a1540-6cbf-5896-8cda-d13a219175fe + sde: + db_pv: nvme0n1 + osd_lvm_uuid: d0e4a550-4f45-5776-920a-08394d3d5276 + sdf: + db_pv: nvme0n1 + osd_lvm_uuid: 43e714aa-5096-52b4-8bd1-05498ab57242 + sdg: + db_pv: nvme1n1 + osd_lvm_uuid: e179a827-a684-56b2-9d47-942fd3369167 + sdh: + db_pv: nvme1n1 + osd_lvm_uuid: bfbe4bd7-4ca6-5c2e-af1f-26531716fca5 + sdi: + db_pv: nvme1n1 + osd_lvm_uuid: 3331dd53-d4b8-5a9f-8192-da3b66970803 + sdj: + db_pv: nvme1n1 + osd_lvm_uuid: f4a9e89b-fdf4-5b68-af39-50c26828c5f1 + sdk: + db_pv: nvme1n1 + osd_lvm_uuid: 6ba5873e-af34-5e97-92e4-042f914d7465 + sdl: + db_pv: nvme1n1 + osd_lvm_uuid: 6ad061ec-5462-506a-87ed-9f562f565e39 +lvm_volumes: +- data: osd-block-04fcc81d-44ad-5f16-acd4-e46d73a86b41 + data_vg: ceph-04fcc81d-44ad-5f16-acd4-e46d73a86b41 + db: osd-db-04fcc81d-44ad-5f16-acd4-e46d73a86b41 + db_vg: ceph-db-0ebeb369-76b4-576a-b68f-99fe3a9a2ecf +- data: osd-block-5021a5a7-e469-5e27-80f6-7a440189849e + data_vg: ceph-5021a5a7-e469-5e27-80f6-7a440189849e + db: osd-db-5021a5a7-e469-5e27-80f6-7a440189849e + db_vg: ceph-db-0ebeb369-76b4-576a-b68f-99fe3a9a2ecf +- data: osd-block-9b048326-2acd-5b32-82a3-8d36b5a5d1b3 + data_vg: ceph-9b048326-2acd-5b32-82a3-8d36b5a5d1b3 + db: osd-db-9b048326-2acd-5b32-82a3-8d36b5a5d1b3 + db_vg: ceph-db-0ebeb369-76b4-576a-b68f-99fe3a9a2ecf +- data: osd-block-b07a1540-6cbf-5896-8cda-d13a219175fe + data_vg: ceph-b07a1540-6cbf-5896-8cda-d13a219175fe + db: osd-db-b07a1540-6cbf-5896-8cda-d13a219175fe + db_vg: ceph-db-0ebeb369-76b4-576a-b68f-99fe3a9a2ecf +- data: osd-block-d0e4a550-4f45-5776-920a-08394d3d5276 + data_vg: ceph-d0e4a550-4f45-5776-920a-08394d3d5276 + db: osd-db-d0e4a550-4f45-5776-920a-08394d3d5276 + db_vg: ceph-db-0ebeb369-76b4-576a-b68f-99fe3a9a2ecf +- data: osd-block-43e714aa-5096-52b4-8bd1-05498ab57242 + data_vg: ceph-43e714aa-5096-52b4-8bd1-05498ab57242 + db: osd-db-43e714aa-5096-52b4-8bd1-05498ab57242 + db_vg: ceph-db-0ebeb369-76b4-576a-b68f-99fe3a9a2ecf +- data: osd-block-e179a827-a684-56b2-9d47-942fd3369167 + data_vg: ceph-e179a827-a684-56b2-9d47-942fd3369167 + db: osd-db-e179a827-a684-56b2-9d47-942fd3369167 + db_vg: ceph-db-ed667b63-c561-56b7-bf4b-2f5f9101231e +- data: osd-block-bfbe4bd7-4ca6-5c2e-af1f-26531716fca5 + data_vg: ceph-bfbe4bd7-4ca6-5c2e-af1f-26531716fca5 + db: osd-db-bfbe4bd7-4ca6-5c2e-af1f-26531716fca5 + db_vg: ceph-db-ed667b63-c561-56b7-bf4b-2f5f9101231e +- data: osd-block-3331dd53-d4b8-5a9f-8192-da3b66970803 + data_vg: ceph-3331dd53-d4b8-5a9f-8192-da3b66970803 + db: osd-db-3331dd53-d4b8-5a9f-8192-da3b66970803 + db_vg: ceph-db-ed667b63-c561-56b7-bf4b-2f5f9101231e +- data: osd-block-f4a9e89b-fdf4-5b68-af39-50c26828c5f1 + data_vg: ceph-f4a9e89b-fdf4-5b68-af39-50c26828c5f1 + db: osd-db-f4a9e89b-fdf4-5b68-af39-50c26828c5f1 + db_vg: ceph-db-ed667b63-c561-56b7-bf4b-2f5f9101231e +- data: osd-block-6ba5873e-af34-5e97-92e4-042f914d7465 + data_vg: ceph-6ba5873e-af34-5e97-92e4-042f914d7465 + db: osd-db-6ba5873e-af34-5e97-92e4-042f914d7465 + db_vg: ceph-db-ed667b63-c561-56b7-bf4b-2f5f9101231e +- data: osd-block-6ad061ec-5462-506a-87ed-9f562f565e39 + data_vg: ceph-6ad061ec-5462-506a-87ed-9f562f565e39 + db: osd-db-6ad061ec-5462-506a-87ed-9f562f565e39 + db_vg: ceph-db-ed667b63-c561-56b7-bf4b-2f5f9101231e diff --git a/inventory/host_vars/st01-sw100g-r01-u36.yml b/inventory/host_vars/st01-sw100g-r01-u36/01_base.yml similarity index 90% rename from inventory/host_vars/st01-sw100g-r01-u36.yml rename to inventory/host_vars/st01-sw100g-r01-u36/01_base.yml index 0d5cf227..fdc9f9bc 100644 --- a/inventory/host_vars/st01-sw100g-r01-u36.yml +++ b/inventory/host_vars/st01-sw100g-r01-u36/01_base.yml @@ -9,4 +9,5 @@ ansible_host: 10.10.23.110 device_model: 7726-32X-O-AC-B mgmt_mac: 90:2d:77:58:27:50 +mgmt_address: 10.10.23.110 serial_device: BCBRb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw100g-r01-u37.yml b/inventory/host_vars/st01-sw100g-r01-u37/01_base.yml similarity index 90% rename from inventory/host_vars/st01-sw100g-r01-u37.yml rename to inventory/host_vars/st01-sw100g-r01-u37/01_base.yml index 3c6fefe2..73694194 100644 --- a/inventory/host_vars/st01-sw100g-r01-u37.yml +++ b/inventory/host_vars/st01-sw100g-r01-u37/01_base.yml @@ -9,4 +9,5 @@ ansible_host: 10.10.23.109 device_model: 7726-32X-O-AC-B mgmt_mac: 90:2d:77:58:26:50 +mgmt_address: 10.10.23.109 serial_device: DEABb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw100g-r01-u41.yml b/inventory/host_vars/st01-sw100g-r01-u41/01_base.yml similarity index 90% rename from inventory/host_vars/st01-sw100g-r01-u41.yml rename to inventory/host_vars/st01-sw100g-r01-u41/01_base.yml index 795dad6d..62157158 100644 --- a/inventory/host_vars/st01-sw100g-r01-u41.yml +++ b/inventory/host_vars/st01-sw100g-r01-u41/01_base.yml @@ -9,4 +9,5 @@ ansible_host: 10.10.23.111 device_model: 7726-32X-O-AC-B mgmt_mac: 90:2d:77:58:28:50 +mgmt_address: 10.10.23.111 serial_device: EHCLb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw10g-r01-u38.yml b/inventory/host_vars/st01-sw10g-r01-u38/01_base.yml similarity index 90% rename from inventory/host_vars/st01-sw10g-r01-u38.yml rename to inventory/host_vars/st01-sw10g-r01-u38/01_base.yml index 54504514..407d695f 100644 --- a/inventory/host_vars/st01-sw10g-r01-u38.yml +++ b/inventory/host_vars/st01-sw10g-r01-u38/01_base.yml @@ -9,4 +9,5 @@ ansible_host: 10.10.23.105 device_model: 5835-54X-O-AC-B mgmt_mac: d0:77:ce:70:f3:06 +mgmt_address: 10.10.23.105 serial_device: CZABb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw10g-r01-u39.yml b/inventory/host_vars/st01-sw10g-r01-u39/01_base.yml similarity index 90% rename from inventory/host_vars/st01-sw10g-r01-u39.yml rename to inventory/host_vars/st01-sw10g-r01-u39/01_base.yml index 1c29a2ed..4591eb84 100644 --- a/inventory/host_vars/st01-sw10g-r01-u39.yml +++ b/inventory/host_vars/st01-sw10g-r01-u39/01_base.yml @@ -9,4 +9,5 @@ ansible_host: 10.10.23.104 device_model: 5835-54X-O-AC-B mgmt_mac: d0:77:ce:70:ee:06 +mgmt_address: 10.10.23.104 serial_device: DDABb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw1g-r01-u32.yml b/inventory/host_vars/st01-sw1g-r01-u32/01_base.yml similarity index 90% rename from inventory/host_vars/st01-sw1g-r01-u32.yml rename to inventory/host_vars/st01-sw1g-r01-u32/01_base.yml index 1a47c263..db45c973 100644 --- a/inventory/host_vars/st01-sw1g-r01-u32.yml +++ b/inventory/host_vars/st01-sw1g-r01-u32/01_base.yml @@ -9,4 +9,5 @@ ansible_host: 10.10.23.101 device_model: 4630-54TE-O-AC-B mgmt_mac: d0:77:ce:2b:3f:c4 +mgmt_address: 10.10.23.101 serial_device: DXBOb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw1g-r01-u33.yml b/inventory/host_vars/st01-sw1g-r01-u33/01_base.yml similarity index 90% rename from inventory/host_vars/st01-sw1g-r01-u33.yml rename to inventory/host_vars/st01-sw1g-r01-u33/01_base.yml index ab08cee7..c9797081 100644 --- a/inventory/host_vars/st01-sw1g-r01-u33.yml +++ b/inventory/host_vars/st01-sw1g-r01-u33/01_base.yml @@ -9,4 +9,5 @@ ansible_host: 10.10.23.100 device_model: 4630-54TE-O-AC-B mgmt_mac: d0:77:ce:2b:31:c4 +mgmt_address: 10.10.23.100 serial_device: AMBOb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw1g-r01-u42.yml b/inventory/host_vars/st01-sw1g-r01-u42/01_base.yml similarity index 90% rename from inventory/host_vars/st01-sw1g-r01-u42.yml rename to inventory/host_vars/st01-sw1g-r01-u42/01_base.yml index ad793a5b..545524b9 100644 --- a/inventory/host_vars/st01-sw1g-r01-u42.yml +++ b/inventory/host_vars/st01-sw1g-r01-u42/01_base.yml @@ -9,4 +9,5 @@ ansible_host: 10.10.23.103 device_model: 4630-54TE-O-AC-B mgmt_mac: d0:77:ce:2b:59:c4 +mgmt_address: 10.10.23.103 serial_device: EGBGb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw1g-r01-u47.yml b/inventory/host_vars/st01-sw1g-r01-u47/01_base.yml similarity index 90% rename from inventory/host_vars/st01-sw1g-r01-u47.yml rename to inventory/host_vars/st01-sw1g-r01-u47/01_base.yml index ae56a5bb..44047704 100644 --- a/inventory/host_vars/st01-sw1g-r01-u47.yml +++ b/inventory/host_vars/st01-sw1g-r01-u47/01_base.yml @@ -9,4 +9,5 @@ ansible_host: 10.10.22.102 device_model: 4630-54TE-O-AC-B mgmt_mac: d0:77:ce:2b:44:c4 +mgmt_address: 10.10.22.102 serial_device: EFBGb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw25g-r01-u34.yml b/inventory/host_vars/st01-sw25g-r01-u34/01_base.yml similarity index 90% rename from inventory/host_vars/st01-sw25g-r01-u34.yml rename to inventory/host_vars/st01-sw25g-r01-u34/01_base.yml index edf3bd25..678a1a8c 100644 --- a/inventory/host_vars/st01-sw25g-r01-u34.yml +++ b/inventory/host_vars/st01-sw25g-r01-u34/01_base.yml @@ -9,4 +9,5 @@ ansible_host: 10.10.23.107 device_model: 7326-56X-O-AC-B mgmt_mac: d0:77:ce:4b:b4:7a +mgmt_address: 10.10.23.107 serial_device: CGBSb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw25g-r01-u35.yml b/inventory/host_vars/st01-sw25g-r01-u35/01_base.yml similarity index 90% rename from inventory/host_vars/st01-sw25g-r01-u35.yml rename to inventory/host_vars/st01-sw25g-r01-u35/01_base.yml index 6eb04d98..a0fadf62 100644 --- a/inventory/host_vars/st01-sw25g-r01-u35.yml +++ b/inventory/host_vars/st01-sw25g-r01-u35/01_base.yml @@ -9,4 +9,5 @@ ansible_host: 10.10.23.108 device_model: 7326-56X-O-AC-B mgmt_mac: d0:77:ce:c1:63:80 +mgmt_address: 10.10.23.108 serial_device: BSAHb113318 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw25g-r01-u40.yml b/inventory/host_vars/st01-sw25g-r01-u40/01_base.yml similarity index 90% rename from inventory/host_vars/st01-sw25g-r01-u40.yml rename to inventory/host_vars/st01-sw25g-r01-u40/01_base.yml index fa963498..505c6d30 100644 --- a/inventory/host_vars/st01-sw25g-r01-u40.yml +++ b/inventory/host_vars/st01-sw25g-r01-u40/01_base.yml @@ -9,4 +9,5 @@ ansible_host: 10.10.23.106 device_model: 7326-56X-O-AC-B mgmt_mac: d0:77:ce:4b:b1:7a +mgmt_address: 10.10.23.106 serial_device: DIABb113318 \ No newline at end of file diff --git a/inventory/host_vars/switches-template.yml.j2 b/inventory/host_vars/switches-template.yml.j2 index 95ea805c..e283a777 100644 --- a/inventory/host_vars/switches-template.yml.j2 +++ b/inventory/host_vars/switches-template.yml.j2 @@ -9,4 +9,5 @@ ansible_host: {{ bmc_ip_v4 }} device_model: {{ device_model }} mgmt_mac: {{ bmc_mac }} +mgmt_address: {{ bmc_ip_v4 }} serial_device: {{ serial_device }} diff --git a/misc/manage/lib/global_helpers.py b/misc/manage/lib/global_helpers.py index 1e72182a..efd69a37 100644 --- a/misc/manage/lib/global_helpers.py +++ b/misc/manage/lib/global_helpers.py @@ -1,6 +1,5 @@ import logging import os -import time from datetime import datetime, timezone from typing import Tuple diff --git a/misc/manage/lib/helpers.py b/misc/manage/lib/helpers.py index 9afa9ef1..6dd86cca 100644 --- a/misc/manage/lib/helpers.py +++ b/misc/manage/lib/helpers.py @@ -1,3 +1,4 @@ +import argparse import functools import logging import os @@ -5,11 +6,9 @@ import subprocess import sys from enum import Enum - -import yaml from jinja2 import FileSystemLoader, Environment, StrictUndefined -from .global_helpers import get_ansible_host_inventory_dir +from .global_helpers import get_ansible_host_inventory_dir, get_basedir LOGGER = logging.getLogger() @@ -63,9 +62,21 @@ def regex_replace_in_file(file_path: str, replacements: list[tuple[str, str]]): with open(file_path, 'w') as file: file.write(modified_content) + class AnsibleInvertoryStrategy(str, Enum): - update = 'update' - keep = 'keep' + REPLACE = 'replace' + KEEP = 'keep' + + def __str__(self): + return self.value + +def ansible_inventory_strategy_type(arg_value: str): + try: + return AnsibleInvertoryStrategy[arg_value.upper()] + except KeyError: + raise argparse.ArgumentTypeError( + f"Invalid option: '{arg_value.upper}'. Valid options are: " + f"{', '.join(c.name.lower() for c in AnsibleInvertoryStrategy)}") def template_ansible_config(host_list: list[str], item_type: str, strategy: AnsibleInvertoryStrategy): @@ -76,22 +87,28 @@ def template_ansible_config(host_list: list[str], item_type: str, strategy: Ansi results_template = template_env.get_template(f"{item_type}-template.yml.j2") for host_name in host_list: - results_filename = f"{get_ansible_host_inventory_dir()}{host_name}.yml" + LOGGER.info(f"host: {host_name}, strategy {strategy}") + results_dir = f"{get_ansible_host_inventory_dir()}{host_name}/" + os.makedirs(results_dir, exist_ok=True) + + results_filename = f"{results_dir}/01_base.yml" results_filename = os.path.realpath(results_filename) + templated_string = results_template.render(host_data[host_name]) if os.path.exists(results_filename): with open(results_filename, 'r') as file: - if strategy: - if strategy == "keep": - LOGGER.warning(f"Not templating {host_name} inventory file {results_filename}, inventory_generate_strategy=keep") - continue - elif strategy == "update": - LOGGER.warning(f"Updating existing {host_name} file {results_filename}, inventory_generate_strategy=update") - with open(results_filename, 'w') as f_out: - f_out.write(templated_string) + if strategy is AnsibleInvertoryStrategy.KEEP: + LOGGER.warning( + f"Not templating {host_name} inventory file {results_filename}, inventory_generate_strategy=keep") + continue + elif strategy is AnsibleInvertoryStrategy.REPLACE: + LOGGER.warning( + f"Updating existing {host_name} file {results_filename}, inventory_generate_strategy=update") + with open(results_filename, 'w') as f_out: + f_out.write(templated_string) else: - LOGGER.error("inventory_generate_strategy not set") + LOGGER.error(f"inventory_generate_strategy invalid {strategy}") sys.exit(1) else: @@ -100,3 +117,29 @@ def template_ansible_config(host_list: list[str], item_type: str, strategy: Ansi results.write(templated_string) subprocess.run(f"git --no-pager diff {get_ansible_host_inventory_dir()}", shell=True) + + +def create_configs(host_list: list[str], config_type: str): + host_data = parse_configuration_data()[config_type] + + results_file = f"{get_basedir()}/config-snippets/ssh_config_scs_{config_type}" + LOGGER.info(f"writing {results_file}") + with open(results_file, 'w') as f_out: + for host_name in host_list: + LOGGER.info(f"** {host_name}") + + if 'bmc_ip_v4' in host_data[host_name]: + f_out.write(f"Host scs-{host_name}-bmc\n") + f_out.write(f" Hostname {host_data[host_name]['bmc_ip_v4']}\n") + + if host_data[host_name]["device_vendor"] == "Supermicro": + # Workaround for crappy supermicro boxes + f_out.write(f" HostKeyAlgorithms=+ssh-rsa\n") + + f_out.write(f" User {host_data[host_name]['bmc_username']}\n") + f_out.write(f"\n") + + if 'node_ip_v4' in host_data[host_name]: + f_out.write(f"Host scs-{host_name}\n") + f_out.write(f" Hostname {host_data[host_name]['node_ip_v4']}\n") + f_out.write(f"\n") diff --git a/misc/manage/lib/server_hardware.py b/misc/manage/lib/server_hardware.py index 039af95f..d5d8defc 100644 --- a/misc/manage/lib/server_hardware.py +++ b/misc/manage/lib/server_hardware.py @@ -228,11 +228,12 @@ def template_bmc_config(bmc_hosts: list[str]): def execute_sum(data: dict[str, str], cmd: str): + sum_log = "/tmp/sum" + os.makedirs(sum_log, mode=0o777, exist_ok=True) sum_connect = \ - f"{get_rundir()}/venv/sum/sum -i {data['bmc_ip_v4']} -u {data['bmc_username']} -p {data['bmc_password']}" + f"{get_rundir()}/venv/sum/sum --journal_path {sum_log} -i {data['bmc_ip_v4']} -u {data['bmc_username']} -p {data['bmc_password']}" command = f"{sum_connect} {cmd}" LOGGER.info("EXEC: >>>%s<<<", command.replace(data["bmc_password"], "REDACTED")) - p = subprocess.run(command, capture_output=True, shell=True, text=True) print("stdout: >>>%s<<<" % p.stdout.replace(data["bmc_password"], "REDACTED")) diff --git a/misc/manage/lib/server_model.py b/misc/manage/lib/server_model.py index ed229919..870ed0e3 100644 --- a/misc/manage/lib/server_model.py +++ b/misc/manage/lib/server_model.py @@ -31,11 +31,12 @@ def parse_configuration_data_servers(data) -> dict[str, dict[str, str]]: if m: password_dict[m.group("mac")] = {"username": m.group("username"), "password": m.group("password")} for docu_file_name in glob.glob(f"{get_server_documentation_dir()}/Supermicro_*.md"): - m = re.match(r".*/Supermicro_(..+).md", docu_file_name) + m = re.match(r".*/(.+)_(..+).md", docu_file_name) if not m: - LOGGER.error("Unable to parse machine type from filename") + LOGGER.error("Unable to parse vendor and machine type from filename") sys.exit(1) - machine_type = m.group(1) + machine_vendor = m.group(1) + machine_type = m.group(2) LOGGER.debug(f"loading data from: {docu_file_name}") interfaces: list[str] = [] @@ -61,6 +62,7 @@ def parse_configuration_data_servers(data) -> dict[str, dict[str, str]]: data[m.group("name")]["bmc_password"] = password_dict[m.group("bmc_mac")]["password"] data[m.group("name")]["bmc_username"] = password_dict[m.group("bmc_mac")]["username"] data[m.group("name")]["device_model"] = machine_type + data[m.group("name")]["device_vendor"] = machine_vendor data[m.group("name")]["interfaces"] = sorted(interfaces) for field in CONFIG_FIELDS_SERVERS: if field not in data[m.group("name")]: diff --git a/misc/manage/lib/server_operating_system.py b/misc/manage/lib/server_operating_system.py index e3766dd9..65ee4c04 100755 --- a/misc/manage/lib/server_operating_system.py +++ b/misc/manage/lib/server_operating_system.py @@ -222,24 +222,3 @@ def open_servers(host_list: list[str]): LOGGER.info(f"Password: {host_data[host_name]['bmc_password']}") # Supermciro BMC does not work with other browsers like "firefox" webbrowser.get("google-chrome").open(f"https://{host_data[host_name]['bmc_ip_v4']}", new=2) - - -def create_configs(host_list: list[str]): - host_data = parse_configuration_data()["servers"] - - results_file = f"{get_basedir()}/config-snippets/ssh_config_scs_servers" - LOGGER.info(f"writing {results_file}") - with open(results_file, 'w') as f_out: - for host_name in host_list: - LOGGER.info(f"** {host_name} / {host_data[host_name]['bmc_ip_v4']}") - - f_out.write(f"Host scs-bmc-{host_name}\n") - f_out.write(f" Hostname {host_data[host_name]['bmc_ip_v4']}\n") - # Workaround for crappy old supermicro boxes - f_out.write(f" HostKeyAlgorithms=+ssh-rsa\n") - f_out.write(f" User {host_data[host_name]['bmc_username']}\n") - f_out.write(f"\n") - - f_out.write(f"Host scs-node-{host_name}\n") - f_out.write(f" Hostname {host_data[host_name]['node_ip_v4']}\n") - f_out.write(f"\n") diff --git a/misc/manage/lib/switch_model.py b/misc/manage/lib/switch_model.py index 6d045505..f3137776 100644 --- a/misc/manage/lib/switch_model.py +++ b/misc/manage/lib/switch_model.py @@ -19,11 +19,12 @@ def parse_configuration_data_switches(data) -> dict[str, dict[str, str]]: data = {} for docu_file_name in glob.glob(f"{get_switch_documentation_dir()}/Edgecore_*.md"): - m = re.match(r".*/Edgecore_(..+).md", docu_file_name) + m = re.match(r".*/(.+?)_(..+).md", docu_file_name) if not m: LOGGER.error("Unable to parse machine type from filename") sys.exit(1) - switch_type = m.group(1) + switch_vendor = m.group(1) + switch_type = m.group(2) LOGGER.debug(f"loading data from: {docu_file_name}") with open(docu_file_name, 'r') as file: @@ -39,6 +40,7 @@ def parse_configuration_data_switches(data) -> dict[str, dict[str, str]]: line.strip()) if m: data[m.group("name")] = m.groupdict() + data[m.group("name")]["device_vendor"] = switch_vendor data[m.group("name")]["device_model"] = switch_type data[m.group("name")]["bmc_username"] = "admin" for field in CONFIG_FIELDS_SWITCHES: diff --git a/misc/manage/lib/switch_operating_system.py b/misc/manage/lib/switch_operating_system.py index ed84df32..4e367307 100644 --- a/misc/manage/lib/switch_operating_system.py +++ b/misc/manage/lib/switch_operating_system.py @@ -1,13 +1,9 @@ import json import logging -import os import subprocess import sys from enum import Enum -import yaml -from jinja2 import FileSystemLoader, Environment, StrictUndefined - from .global_helpers import get_device_configurations_dir, get_ansible_host_inventory_dir, shorten_string, \ get_string_with_formatted_timestamp, ask_for_confirmation, get_basedir from .helpers import parse_configuration_data, regex_replace_in_file @@ -120,27 +116,3 @@ def restore_config(bmc_hosts: list[str], filetype: CfgTypes): shell=True, ) - -def create_configs(host_list: list[str]): - host_data = parse_configuration_data()["switches"] - - results_file = f"{get_basedir()}/config-snippets/ssh_config_scs_switches" - LOGGER.info(f"writing {results_file}") - with open(results_file, 'w') as f_out: - for host_name in host_list: - LOGGER.info(f"** {host_name} / {host_data[host_name]['bmc_ip_v4']}") - f_out.write(f"Host scs-bmc-{host_name}\n") - f_out.write(f" Hostname {host_data[host_name]['bmc_ip_v4']}\n") - f_out.write(f" User {host_data[host_name]['bmc_username']}\n") - f_out.write(f"\n") - - results_file = f"{get_basedir()}/config-snippets/screenrc_config" - LOGGER.info(f"writing {results_file}") - with open(results_file, 'w') as f_out: - for host_name in host_list: - LOGGER.info(f"** {host_name} / {host_data[host_name]['serial_device']}") - f_out.write(f"Host scs-bmc-{host_name}\n") - f_out.write(f" Hostname {host_data[host_name]['bmc_ip_v4']}\n") - f_out.write(f" User {host_data[host_name]['bmc_username']}\n") - f_out.write(f"\n") - diff --git a/misc/manage/server_ctl.py b/misc/manage/server_ctl.py index 001792e4..d20498b7 100755 --- a/misc/manage/server_ctl.py +++ b/misc/manage/server_ctl.py @@ -5,8 +5,9 @@ from pprint import pprint from lib.server_operating_system import install_server, control_servers, open_servers, check_power_servers, \ - PowerActionTypes, create_configs -from lib.helpers import template_ansible_config + PowerActionTypes +from lib.helpers import template_ansible_config, AnsibleInvertoryStrategy, create_configs, \ + ansible_inventory_strategy_type from lib.server_hardware import template_bmc_config, backup_config, restore_config, CfgTypes from lib.global_helpers import setup_logging from lib.server_model import get_unique_servers @@ -62,7 +63,10 @@ default=None, help='A filter expression =') parser.add_argument('--verbose', '-v', action='store_true') -parser.add_argument('--ansible_inventory_update_strategy', type=str, default="keep") + +parser.add_argument('--ansible_inventory_update_strategy', + type=ansible_inventory_strategy_type, + choices=list(AnsibleInvertoryStrategy), default=AnsibleInvertoryStrategy.KEEP) args = parser.parse_args() @@ -101,6 +105,6 @@ sys.exit(0) if args.configs: - create_configs(get_unique_servers(args.node, False, args.filter)) + create_configs(get_unique_servers(args.node, False, args.filter), "servers") sys.exit(0) diff --git a/misc/manage/switch_ctl.py b/misc/manage/switch_ctl.py index 51fdb2f9..c0e0d87d 100755 --- a/misc/manage/switch_ctl.py +++ b/misc/manage/switch_ctl.py @@ -6,8 +6,9 @@ from lib.global_helpers import setup_logging from lib.switch_model import get_unique_switches -from lib.switch_operating_system import CfgTypes, backup_config, restore_config, create_configs -from lib.helpers import template_ansible_config +from lib.switch_operating_system import CfgTypes, backup_config, restore_config +from lib.helpers import template_ansible_config, AnsibleInvertoryStrategy, create_configs, \ + ansible_inventory_strategy_type parser = argparse.ArgumentParser( prog='Configure Switches') @@ -37,7 +38,10 @@ parser.add_argument('--filter', '-f', metavar='loglevel', type=str, default=None, help='A filter expression =') -parser.add_argument('--ansible_inventory_update_strategy', type=str, default="keep") +parser.add_argument('--ansible_inventory_update_strategy', + type=ansible_inventory_strategy_type, + choices=list(AnsibleInvertoryStrategy), default=AnsibleInvertoryStrategy.KEEP) + parser.add_argument('--verbose', '-v', action='store_true') args = parser.parse_args() @@ -55,7 +59,7 @@ restore_config(get_unique_switches(args.node, False, args.filter), args.restore_cfg) if args.configs: - create_configs(get_unique_switches(args.node, False, args.filter)) + create_configs(get_unique_switches(args.node, False, args.filter), "switches") if args.show: print() From 8d90857d7384d2e6dafd354bea5e25f282ad8661 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Fri, 28 Jun 2024 15:18:17 +0200 Subject: [PATCH 04/31] Upgrade 7 0 5 (#19) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Perform 7.0.5 Upgrade --------- Signed-off-by: Marc Schoechlin Signed-off-by: Marc Schöchlin --- environments/configuration.yml | 21 ++++++ environments/manager/configuration.yml | 4 +- environments/manager/images.yml | 14 ++-- environments/manager/run.sh | 6 +- environments/openstack/clouds.yml | 5 +- gilt.yml | 2 +- inventory/10-custom | 98 +++++++++++++------------- inventory/99-overwrite | 3 + inventory/group_vars/compute.yml | 1 + 9 files changed, 90 insertions(+), 64 deletions(-) create mode 100644 inventory/group_vars/compute.yml diff --git a/environments/configuration.yml b/environments/configuration.yml index 6d028383..16080cd4 100644 --- a/environments/configuration.yml +++ b/environments/configuration.yml @@ -1,4 +1,9 @@ --- + +########################################################## +# Global +traefik_enable: true + ########################################################## # proxy/client @@ -29,6 +34,8 @@ squid_tag: edge motd_show_ssh: true network_interface: dummy0 +osism_setup_gather_subset: custom + management_domain: mgmt.sovereignit.de management_gw: 10.10.23.254 @@ -129,6 +136,20 @@ user_list: groups: - docker - dialout + - name: "matofeder" + key: "github" + primary_group: dragon + uid: 45010 + groups: + - docker + - dialout + - name: "MatusJenca2" + key: "github" + primary_group: dragon + uid: 45011 + groups: + - docker + - dialout # yamllint disable rule:line-length operator_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC2wE2xiuO+i3qmDvu8kCCKX7U7H1diOICbWmR2UrKIxqWgcfWMQsT3WclotJKuVJuKIWyFD6ZNwwLuvC3RxVSqhCiWjqxg3jzJBj7/C1O3IYyLGTUl/x7Cky530lf/aj4wrwt3Ketk/4QNwgget2nCvOy0S2NDCJ3rL6oIUjdJekvRrFf9IbWeX8fqYYCoh1cYJWto1XYPnhMDAB/lqtjN1ssurLSKoJg/bUT7q/KkIvvA/BOR2NMqS0aGx+bKhdkeB22V/t75Ct8ymoCYk9+MTC9i/QX20Fi7835/W7Gl18J8NiO9ebaWyYbsxZ5klWXQa5EiLLBDZ82OR88G+0FjXp1Z3VG6FcpdYpW7sxrT21HEvWOnQACZCdlzwyBJ31id/LjDRhJU6BmZm0Sa9EOJNL8XVOUUzuoa0XL1mIVTsmLpUwqLSfw6Ditb+q4afFi0iYMe3JKOt+JmftvBgeQCjNUsCzk+Ny2j6dZKv2aeF5LOQZGRM3HzG39Gkir3q1zdWmCl4lc3QQBfr5ZcdAp+wQMFSgJAudKffO9kdDVNoyjgih7rD3E+JjJdhY9//WQEEBm2vfEqm7qqEQUAELd0JBCivJmOhUVH0rGbTrnkTBtLR4Au40W5aYaNQJ7+U3hTRrvpycSC1pUU3Wq3OXJd2FRDgKQJljQcpBw4V9j8GQ== diff --git a/environments/manager/configuration.yml b/environments/manager/configuration.yml index 0203bddb..a69e6b07 100644 --- a/environments/manager/configuration.yml +++ b/environments/manager/configuration.yml @@ -9,7 +9,7 @@ docker_registry_service: index.docker.io ########################## # versions -manager_version: 7.0.4 +manager_version: 7.0.5 ########################## @@ -64,4 +64,4 @@ configuration_git_protocol: ssh configuration_git_repository: SovereignCloudStack/hardware-landscape configuration_git_username: git -configuration_git_version: rollout-services +configuration_git_version: upgrade-7-0-5 diff --git a/environments/manager/images.yml b/environments/manager/images.yml index 5137d422..daa83a8e 100644 --- a/environments/manager/images.yml +++ b/environments/manager/images.yml @@ -19,14 +19,14 @@ nginx_image: "{{ docker_registry }}/library/nginx:{{ nginx_tag }}" phpmyadmin_tag: "5.2.1" phpmyadmin_image: "{{ docker_registry }}/phpmyadmin/phpmyadmin:{{ phpmyadmin_tag }}" -postgres_tag: "15.6-alpine" +postgres_tag: "15.7-alpine" postgres_image: "{{ docker_registry }}/library/postgres:{{ postgres_tag }}" postgres_upgrade_tag: "14-to-15" postgres_upgrade_image: "{{ docker_registry }}/tianon/postgres-upgrade:{{ postgres_upgrade_tag }}" -manager_redis_tag: "7.2.4-alpine" +manager_redis_tag: "7.2.5-alpine" manager_redis_image: "{{ docker_registry }}/library/redis:{{ manager_redis_tag }}" registry_tag: "2.8" @@ -35,22 +35,22 @@ registry_image: "{{ docker_registry }}/library/registry:{{ registry_tag }}" osism_ansible_tag: "{{ manager_version|default('latest') }}" osism_ansible_image: "{{ docker_registry_ansible|default('quay.io') }}/osism/osism-ansible:{{ osism_ansible_tag }}" -inventory_reconciler_tag: "7.0.4" +inventory_reconciler_tag: "7.0.5" inventory_reconciler_image: "{{ docker_registry_ansible }}/osism/inventory-reconciler:{{ inventory_reconciler_tag }}" -osism_tag: "0.20240503.1" +osism_tag: "0.20240524.0" osism_image: "{{ docker_registry_ansible }}/osism/osism:{{ osism_tag }}" -osism_netbox_tag: "0.20240503.1" +osism_netbox_tag: "0.20240524.0" osism_netbox_image: "{{ docker_registry_ansible }}/osism/osism-netbox:{{ osism_netbox_tag }}" -vault_tag: "1.16.0" +vault_tag: "1.16.2" vault_image: "{{ docker_registry }}/hashicorp/vault:{{ vault_tag }}" -traefik_tag: "2.11.0" +traefik_tag: "2.11.3" traefik_image: "{{ docker_registry }}/library/traefik:{{ traefik_tag }}" # image tag depends on CEPH_VERSION or OPENSTACK_VERSION diff --git a/environments/manager/run.sh b/environments/manager/run.sh index 197d44ef..dc879399 100755 --- a/environments/manager/run.sh +++ b/environments/manager/run.sh @@ -2,9 +2,9 @@ # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN -ANSIBLE_COLLECTION_COMMONS_VERSION=${ANSIBLE_COLLECTION_COMMONS_VERSION:-v0.20240503.0} -ANSIBLE_COLLECTION_SERVICES_VERSION=${ANSIBLE_COLLECTION_SERVICES_VERSION:-v0.20240503.0} -ANSIBLE_PLAYBOOKS_MANAGER_VERSION=${ANSIBLE_PLAYBOOKS_MANAGER_VERSION:-v0.20240503.0} +ANSIBLE_COLLECTION_COMMONS_VERSION=${ANSIBLE_COLLECTION_COMMONS_VERSION:-v0.20240524.0} +ANSIBLE_COLLECTION_SERVICES_VERSION=${ANSIBLE_COLLECTION_SERVICES_VERSION:-v0.20240524.0} +ANSIBLE_PLAYBOOKS_MANAGER_VERSION=${ANSIBLE_PLAYBOOKS_MANAGER_VERSION:-v0.20240524.0} ANSIBLE_COLLECTION_COMMONS_SOURCE=${ANSIBLE_COLLECTION_COMMONS_SOURCE:-git+https://github.com/osism/ansible-collection-commons} ANSIBLE_COLLECTION_SERVICES_SOURCE=${ANSIBLE_COLLECTION_SERVICES_SOURCE:-git+https://github.com/osism/ansible-collection-services} diff --git a/environments/openstack/clouds.yml b/environments/openstack/clouds.yml index 7730a852..566fac01 100644 --- a/environments/openstack/clouds.yml +++ b/environments/openstack/clouds.yml @@ -13,8 +13,9 @@ clouds: auth: username: octavia project_name: service - auth_url: https://api.int1.landscape.sovereignit.de:5000/v3 + #auth_url: https://api.int1.landscape.sovereignit.de:5000/v3 + auth_url: http://api.int1.landscape.sovereignit.de:5000/v3 project_domain_name: default user_domain_name: default - cacert: /etc/ssl/certs/ca-certificates.crt + #cacert: /etc/ssl/certs/ca-certificates.crt identity_api_version: 3 diff --git a/gilt.yml b/gilt.yml index 8fa88545..a12ad4c0 100644 --- a/gilt.yml +++ b/gilt.yml @@ -1,6 +1,6 @@ --- - git: https://github.com/osism/cfg-generics.git - version: v0.20240503.0 + version: v0.20240524.0 files: - src: gilt.yml dst: ./gilt.yml diff --git a/inventory/10-custom b/inventory/10-custom index 28e9e714..c0e055a0 100644 --- a/inventory/10-custom +++ b/inventory/10-custom @@ -7,52 +7,52 @@ [bastion] st01-mgmt-r01-u31 -[network-switches] -st01-sw100g-r01-u36 -st01-sw100g-r01-u37 -st01-sw100g-r01-u41 -st01-sw10g-r01-u38 -st01-sw10g-r01-u39 -st01-sw1g-r01-u32 -st01-sw1g-r01-u33 -st01-sw1g-r01-u42 -st01-sw1g-r01-u47 -st01-sw25g-r01-u34 -st01-sw25g-r01-u35 -st01-sw25g-r01-u40 - -[dhcp-static-nodes] -st01-sw100g-r01-u36 -st01-sw100g-r01-u37 -st01-sw100g-r01-u41 -st01-sw10g-r01-u38 -st01-sw10g-r01-u39 -st01-sw1g-r01-u32 -st01-sw1g-r01-u33 -st01-sw1g-r01-u42 -st01-sw1g-r01-u47 -st01-sw25g-r01-u34 -st01-sw25g-r01-u35 -st01-sw25g-r01-u40 -st01-comp-r01-u09 -st01-comp-r01-u11 -st01-comp-r01-u13 -st01-comp-r01-u15 -st01-comp-r01-u17 -st01-comp-r01-u19 -st01-comp-r01-u21 -st01-comp-r01-u22 -st01-comp-r01-u23 -st01-comp-r01-u24 -st01-comp-r01-u25 -st01-comp-r01-u26 -st01-ctl-r01-u27 -st01-ctl-r01-u28 -st01-ctl-r01-u29 -st01-mgmt-r01-u30 -st01-mgmt-r01-u31 -st01-stor-r01-u01 -st01-stor-r01-u03 -st01-stor-r01-u05 -st01-stor-r01-u07 - +#[network-switches] +#st01-sw100g-r01-u36 +#st01-sw100g-r01-u37 +#st01-sw100g-r01-u41 +#st01-sw10g-r01-u38 +#st01-sw10g-r01-u39 +#st01-sw1g-r01-u32 +#st01-sw1g-r01-u33 +#st01-sw1g-r01-u42 +#st01-sw1g-r01-u47 +#st01-sw25g-r01-u34 +#st01-sw25g-r01-u35 +#st01-sw25g-r01-u40 +# +#[dhcp-static-nodes] +#st01-sw100g-r01-u36 +#st01-sw100g-r01-u37 +#st01-sw100g-r01-u41 +#st01-sw10g-r01-u38 +#st01-sw10g-r01-u39 +#st01-sw1g-r01-u32 +#st01-sw1g-r01-u33 +#st01-sw1g-r01-u42 +#st01-sw1g-r01-u47 +#st01-sw25g-r01-u34 +#st01-sw25g-r01-u35 +#st01-sw25g-r01-u40 +#st01-comp-r01-u09 +#st01-comp-r01-u11 +#st01-comp-r01-u13 +#st01-comp-r01-u15 +#st01-comp-r01-u17 +#st01-comp-r01-u19 +#st01-comp-r01-u21 +#st01-comp-r01-u22 +#st01-comp-r01-u23 +#st01-comp-r01-u24 +#st01-comp-r01-u25 +#st01-comp-r01-u26 +#st01-ctl-r01-u27 +#st01-ctl-r01-u28 +#st01-ctl-r01-u29 +#st01-mgmt-r01-u30 +#st01-mgmt-r01-u31 +#st01-stor-r01-u01 +#st01-stor-r01-u03 +#st01-stor-r01-u05 +#st01-stor-r01-u07 +# diff --git a/inventory/99-overwrite b/inventory/99-overwrite index 8ffd4414..b303abed 100644 --- a/inventory/99-overwrite +++ b/inventory/99-overwrite @@ -17,5 +17,8 @@ [ovn-database:children] network +[octavia:children] +network + [all:children] generic diff --git a/inventory/group_vars/compute.yml b/inventory/group_vars/compute.yml new file mode 100644 index 00000000..7af81f06 --- /dev/null +++ b/inventory/group_vars/compute.yml @@ -0,0 +1 @@ +nova_backend: default From aa4f124148735eb0b6bd76705e425118c8cd6d29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Fri, 5 Jul 2024 13:18:39 +0200 Subject: [PATCH 05/31] WIP: rework 7.0.5 (#20) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - bugfix frr backups - improve documentation - add ASNs to inventory files and documentation - add proxy configuration for kubernetes - improve dns configuration - use generic group for custom plays - add a automatic NFT rule for the managers - add scs bash profile - ceph setup - add wireguard installation/profiles - split network configuration --------- Signed-off-by: Marc Schöchlin Signed-off-by: Marc Schöchlin --- ...630-54TE-O-AC-B_st01-sw1g-r01-u32_frr.conf | 9 +- ...630-54TE-O-AC-B_st01-sw1g-r01-u33_frr.conf | 9 +- ...630-54TE-O-AC-B_st01-sw1g-r01-u42_frr.conf | 9 +- ...630-54TE-O-AC-B_st01-sw1g-r01-u47_frr.conf | 9 +- ...835-54X-O-AC-B_st01-sw10g-r01-u38_frr.conf | 366 +++++++- ...835-54X-O-AC-B_st01-sw10g-r01-u39_frr.conf | 371 +++++++- ...326-56X-O-AC-B_st01-sw25g-r01-u34_frr.conf | 59 +- ...326-56X-O-AC-B_st01-sw25g-r01-u35_frr.conf | 53 +- ...326-56X-O-AC-B_st01-sw25g-r01-u40_frr.conf | 382 +++++++- ...26-32X-O-AC-B_st01-sw100g-r01-u36_frr.conf | 45 +- ...26-32X-O-AC-B_st01-sw100g-r01-u37_frr.conf | 45 +- ...26-32X-O-AC-B_st01-sw100g-r01-u41_frr.conf | 231 ++++- documentation/System_Network_Wireing.md | 2 +- documentation/System_Networks.md | 12 + documentation/System_Runbooks.md | 45 +- documentation/assets/Network_Setup.drawio.svg | 2 +- .../network/Edgecore_4630-54TE-O-AC-B.md | 13 +- .../network/Edgecore_5835-54X-O-AC-B.md | 9 +- .../network/Edgecore_7326-56X-O-AC-B.md | 10 +- .../network/Edgecore_7726-32X-O-AC-B.md | 10 +- .../servers/Supermicro_A2SDV-4C-LN8F.md | 9 +- .../servers/Supermicro_A2SDV-8C-LN8F.md | 11 +- .../devices/servers/Supermicro_ARS-110M-NR.md | 18 +- .../devices/servers/Supermicro_H12SSL-CT.md | 12 +- .../devices/servers/Supermicro_H12SSL-NT.md | 16 +- environments/.vault_pass | 0 environments/configuration.yml | 39 +- .../custom/playbook-scs_all_nodes.yml | 2 +- .../custom/playbook-scs_check_ntp.yml | 2 +- environments/custom/playbook-scs_infra.yml | 9 +- .../custom/playbook-scs_set_time_initial.yml | 2 +- environments/custom/playbook-test.yml | 2 +- .../files/scripts/scs_add_nftables_rules.sh | 41 + .../files/scripts/scs_check_chrony.sh | 36 + .../files/scripts/scs_fix_permissions.sh | 14 + .../files/scripts/scs_profile.sh | 83 ++ .../files/scripts/scs_remove_ceph_vgs.sh | 23 + .../roles/scs-landscape-nodes/tasks/main.yml | 2 +- .../scs-landscape-nodes/tasks/packages.yml | 6 +- .../scs-landscape-nodes/tasks/scripts.yml | 41 +- environments/manager/configuration.yml | 2 +- environments/secrets.yml | 872 +++++++++--------- inventory/10-custom | 99 +- inventory/99-overwrite | 4 + inventory/group_vars/all.yml | 1 + inventory/group_vars/generic/10_ceph.yml | 25 + inventory/group_vars/generic/11_chrony.yml | 15 + inventory/group_vars/generic/12_dhcpd.yml | 12 + inventory/group_vars/generic/13_motd.yml | 10 + .../group_vars/generic/14_resolvconf.yml | 11 + inventory/group_vars/manager.yml | 5 + inventory/group_vars/wireguard.yml | 15 + inventory/host_vars/servers-template.yml.j2 | 10 +- .../host_vars/st01-comp-r01-u09/01_base.yml | 10 +- .../host_vars/st01-comp-r01-u11/01_base.yml | 10 +- .../host_vars/st01-comp-r01-u13/01_base.yml | 10 +- .../host_vars/st01-comp-r01-u15/01_base.yml | 10 +- .../host_vars/st01-comp-r01-u17/01_base.yml | 10 +- .../host_vars/st01-comp-r01-u19/01_base.yml | 10 +- .../host_vars/st01-comp-r01-u21/01_base.yml | 10 +- .../host_vars/st01-comp-r01-u22/01_base.yml | 10 +- .../host_vars/st01-comp-r01-u23/01_base.yml | 10 +- .../host_vars/st01-comp-r01-u24/01_base.yml | 10 +- .../host_vars/st01-comp-r01-u25/01_base.yml | 10 +- .../host_vars/st01-comp-r01-u26/01_base.yml | 10 +- .../host_vars/st01-ctl-r01-u27/01_base.yml | 10 +- .../host_vars/st01-ctl-r01-u28/01_base.yml | 10 +- .../host_vars/st01-ctl-r01-u29/01_base.yml | 10 +- .../host_vars/st01-mgmt-r01-u30/00_def.yml | 23 + .../host_vars/st01-mgmt-r01-u30/01_base.yml | 10 +- .../host_vars/st01-mgmt-r01-u30/03_motd.yml | 1 - .../st01-mgmt-r01-u30/04_wireguard.yml | 4 + .../st01-mgmt-r01-u30/05_network_extra.yml | 5 + .../host_vars/st01-mgmt-r01-u31/00_def.yml | 22 + .../host_vars/st01-mgmt-r01-u31/01_base.yml | 10 +- .../st01-mgmt-r01-u31/04_wireguard.yml | 4 + .../st01-mgmt-r01-u31/05_network_extra.yml | 5 + .../host_vars/st01-stor-r01-u01/01_base.yml | 10 +- .../host_vars/st01-stor-r01-u03/01_base.yml | 10 +- .../host_vars/st01-stor-r01-u05/01_base.yml | 10 +- .../host_vars/st01-stor-r01-u07/01_base.yml | 10 +- .../host_vars/st01-sw100g-r01-u36/01_base.yml | 3 +- .../host_vars/st01-sw100g-r01-u37/01_base.yml | 3 +- .../host_vars/st01-sw25g-r01-u34/01_base.yml | 3 +- .../host_vars/st01-sw25g-r01-u35/01_base.yml | 3 +- inventory/host_vars/switches-template.yml.j2 | 1 + misc/manage/include.sh | 0 misc/manage/lib/helpers.py | 7 +- misc/manage/lib/server_hardware.py | 27 +- misc/manage/lib/server_model.py | 1 + misc/manage/lib/server_operating_system.py | 0 misc/manage/lib/switch_model.py | 1 + misc/manage/lib/switch_operating_system.py | 66 +- misc/manage/server_ctl.py | 9 +- misc/manage/switch_ctl.py | 8 +- 95 files changed, 2874 insertions(+), 672 deletions(-) mode change 100755 => 100644 environments/.vault_pass create mode 100755 environments/custom/roles/scs-landscape-nodes/files/scripts/scs_add_nftables_rules.sh create mode 100755 environments/custom/roles/scs-landscape-nodes/files/scripts/scs_check_chrony.sh create mode 100755 environments/custom/roles/scs-landscape-nodes/files/scripts/scs_fix_permissions.sh create mode 100755 environments/custom/roles/scs-landscape-nodes/files/scripts/scs_profile.sh create mode 100755 environments/custom/roles/scs-landscape-nodes/files/scripts/scs_remove_ceph_vgs.sh create mode 100644 inventory/group_vars/generic/10_ceph.yml create mode 100644 inventory/group_vars/generic/11_chrony.yml create mode 100644 inventory/group_vars/generic/12_dhcpd.yml create mode 100644 inventory/group_vars/generic/13_motd.yml create mode 100644 inventory/group_vars/generic/14_resolvconf.yml create mode 100644 inventory/group_vars/wireguard.yml create mode 100644 inventory/host_vars/st01-mgmt-r01-u30/04_wireguard.yml create mode 100644 inventory/host_vars/st01-mgmt-r01-u30/05_network_extra.yml create mode 100644 inventory/host_vars/st01-mgmt-r01-u31/00_def.yml create mode 100644 inventory/host_vars/st01-mgmt-r01-u31/04_wireguard.yml create mode 100644 inventory/host_vars/st01-mgmt-r01-u31/05_network_extra.yml mode change 100644 => 100755 misc/manage/include.sh mode change 100755 => 100644 misc/manage/lib/server_operating_system.py mode change 100755 => 100644 misc/manage/server_ctl.py mode change 100755 => 100644 misc/manage/switch_ctl.py diff --git a/device_configurations/network/4630-54TE-O-AC-B_st01-sw1g-r01-u32_frr.conf b/device_configurations/network/4630-54TE-O-AC-B_st01-sw1g-r01-u32_frr.conf index 979258dd..c5377a2f 100644 --- a/device_configurations/network/4630-54TE-O-AC-B_st01-sw1g-r01-u32_frr.conf +++ b/device_configurations/network/4630-54TE-O-AC-B_st01-sw1g-r01-u32_frr.conf @@ -1 +1,8 @@ -!frr version 8.1frr defaults traditionalhostname st01-sw1g-r01-u32service integrated-vtysh-config!end \ No newline at end of file +! +frr version 8.1 +frr defaults traditional +hostname st01-sw1g-r01-u32 +service integrated-vtysh-config +! +end + diff --git a/device_configurations/network/4630-54TE-O-AC-B_st01-sw1g-r01-u33_frr.conf b/device_configurations/network/4630-54TE-O-AC-B_st01-sw1g-r01-u33_frr.conf index 1e386674..c9257d3f 100644 --- a/device_configurations/network/4630-54TE-O-AC-B_st01-sw1g-r01-u33_frr.conf +++ b/device_configurations/network/4630-54TE-O-AC-B_st01-sw1g-r01-u33_frr.conf @@ -1 +1,8 @@ -!frr version 8.1frr defaults traditionalhostname st01-sw1g-r01-u33service integrated-vtysh-config!end \ No newline at end of file +! +frr version 8.1 +frr defaults traditional +hostname st01-sw1g-r01-u33 +service integrated-vtysh-config +! +end + diff --git a/device_configurations/network/4630-54TE-O-AC-B_st01-sw1g-r01-u42_frr.conf b/device_configurations/network/4630-54TE-O-AC-B_st01-sw1g-r01-u42_frr.conf index 2e5cb895..dbbf86c1 100644 --- a/device_configurations/network/4630-54TE-O-AC-B_st01-sw1g-r01-u42_frr.conf +++ b/device_configurations/network/4630-54TE-O-AC-B_st01-sw1g-r01-u42_frr.conf @@ -1 +1,8 @@ -!frr version 8.1frr defaults traditionalhostname st01-sw1g-r01-u42service integrated-vtysh-config!end \ No newline at end of file +! +frr version 8.1 +frr defaults traditional +hostname st01-sw1g-r01-u42 +service integrated-vtysh-config +! +end + diff --git a/device_configurations/network/4630-54TE-O-AC-B_st01-sw1g-r01-u47_frr.conf b/device_configurations/network/4630-54TE-O-AC-B_st01-sw1g-r01-u47_frr.conf index 6702b310..805f8c53 100644 --- a/device_configurations/network/4630-54TE-O-AC-B_st01-sw1g-r01-u47_frr.conf +++ b/device_configurations/network/4630-54TE-O-AC-B_st01-sw1g-r01-u47_frr.conf @@ -1 +1,8 @@ -!frr version 8.1frr defaults traditionalhostname st01-sw1g-r01-u47service integrated-vtysh-config!end \ No newline at end of file +! +frr version 8.1 +frr defaults traditional +hostname st01-sw1g-r01-u47 +service integrated-vtysh-config +! +end + diff --git a/device_configurations/network/5835-54X-O-AC-B_st01-sw10g-r01-u38_frr.conf b/device_configurations/network/5835-54X-O-AC-B_st01-sw10g-r01-u38_frr.conf index e690b65c..ada13546 100644 --- a/device_configurations/network/5835-54X-O-AC-B_st01-sw10g-r01-u38_frr.conf +++ b/device_configurations/network/5835-54X-O-AC-B_st01-sw10g-r01-u38_frr.conf @@ -1 +1,365 @@ -!frr version 8.5.1frr defaults traditionalhostname st01-sw10g-r01-u38log syslog informationallog facility local4fpm address 127.0.0.1no fpm use-next-hop-groupsagentxno service integrated-vtysh-config!password zebraenable password zebra!router bgp 65100 bgp router-id 10.1.0.1 bgp suppress-fib-pending bgp log-neighbor-changes no bgp ebgp-requires-policy no bgp default ipv4-unicast bgp bestpath as-path multipath-relax neighbor PEER_V4 peer-group neighbor PEER_V6 peer-group neighbor 10.0.0.1 remote-as 65200 neighbor 10.0.0.1 peer-group PEER_V4 neighbor 10.0.0.1 description ARISTA01T2 neighbor 10.0.0.1 timers connect 10 neighbor 10.0.0.3 remote-as 65200 neighbor 10.0.0.3 peer-group PEER_V4 neighbor 10.0.0.3 description ARISTA02T2 neighbor 10.0.0.3 timers connect 10 neighbor 10.0.0.5 remote-as 65200 neighbor 10.0.0.5 peer-group PEER_V4 neighbor 10.0.0.5 description ARISTA03T2 neighbor 10.0.0.5 timers connect 10 neighbor 10.0.0.7 remote-as 65200 neighbor 10.0.0.7 peer-group PEER_V4 neighbor 10.0.0.7 description ARISTA04T2 neighbor 10.0.0.7 timers connect 10 neighbor 10.0.0.9 remote-as 65200 neighbor 10.0.0.9 peer-group PEER_V4 neighbor 10.0.0.9 description ARISTA05T2 neighbor 10.0.0.9 timers connect 10 neighbor 10.0.0.11 remote-as 65200 neighbor 10.0.0.11 peer-group PEER_V4 neighbor 10.0.0.11 description ARISTA06T2 neighbor 10.0.0.11 timers connect 10 neighbor 10.0.0.13 remote-as 65200 neighbor 10.0.0.13 peer-group PEER_V4 neighbor 10.0.0.13 description ARISTA07T2 neighbor 10.0.0.13 timers connect 10 neighbor 10.0.0.15 remote-as 65200 neighbor 10.0.0.15 peer-group PEER_V4 neighbor 10.0.0.15 description ARISTA08T2 neighbor 10.0.0.15 timers connect 10 neighbor 10.0.0.17 remote-as 65200 neighbor 10.0.0.17 peer-group PEER_V4 neighbor 10.0.0.17 description ARISTA09T2 neighbor 10.0.0.17 timers connect 10 neighbor 10.0.0.19 remote-as 65200 neighbor 10.0.0.19 peer-group PEER_V4 neighbor 10.0.0.19 description ARISTA10T2 neighbor 10.0.0.19 timers connect 10 neighbor 10.0.0.21 remote-as 65200 neighbor 10.0.0.21 peer-group PEER_V4 neighbor 10.0.0.21 description ARISTA11T2 neighbor 10.0.0.21 timers connect 10 neighbor 10.0.0.23 remote-as 65200 neighbor 10.0.0.23 peer-group PEER_V4 neighbor 10.0.0.23 description ARISTA12T2 neighbor 10.0.0.23 timers connect 10 neighbor 10.0.0.25 remote-as 65200 neighbor 10.0.0.25 peer-group PEER_V4 neighbor 10.0.0.25 description ARISTA13T2 neighbor 10.0.0.25 timers connect 10 neighbor 10.0.0.27 remote-as 65200 neighbor 10.0.0.27 peer-group PEER_V4 neighbor 10.0.0.27 description ARISTA14T2 neighbor 10.0.0.27 timers connect 10 neighbor 10.0.0.29 remote-as 65200 neighbor 10.0.0.29 peer-group PEER_V4 neighbor 10.0.0.29 description ARISTA15T2 neighbor 10.0.0.29 timers connect 10 neighbor 10.0.0.31 remote-as 65200 neighbor 10.0.0.31 peer-group PEER_V4 neighbor 10.0.0.31 description ARISTA16T2 neighbor 10.0.0.31 timers connect 10 neighbor 10.0.0.33 remote-as 65200 neighbor 10.0.0.33 peer-group PEER_V4 neighbor 10.0.0.33 description ARISTA17T2 neighbor 10.0.0.33 timers connect 10 neighbor 10.0.0.35 remote-as 65200 neighbor 10.0.0.35 peer-group PEER_V4 neighbor 10.0.0.35 description ARISTA18T2 neighbor 10.0.0.35 timers connect 10 neighbor 10.0.0.37 remote-as 65200 neighbor 10.0.0.37 peer-group PEER_V4 neighbor 10.0.0.37 description ARISTA19T2 neighbor 10.0.0.37 timers connect 10 neighbor 10.0.0.39 remote-as 65200 neighbor 10.0.0.39 peer-group PEER_V4 neighbor 10.0.0.39 description ARISTA20T2 neighbor 10.0.0.39 timers connect 10 neighbor 10.0.0.41 remote-as 65200 neighbor 10.0.0.41 peer-group PEER_V4 neighbor 10.0.0.41 description ARISTA21T2 neighbor 10.0.0.41 timers connect 10 neighbor 10.0.0.43 remote-as 65200 neighbor 10.0.0.43 peer-group PEER_V4 neighbor 10.0.0.43 description ARISTA22T2 neighbor 10.0.0.43 timers connect 10 neighbor 10.0.0.45 remote-as 65200 neighbor 10.0.0.45 peer-group PEER_V4 neighbor 10.0.0.45 description ARISTA23T2 neighbor 10.0.0.45 timers connect 10 neighbor 10.0.0.47 remote-as 65200 neighbor 10.0.0.47 peer-group PEER_V4 neighbor 10.0.0.47 description ARISTA24T2 neighbor 10.0.0.47 timers connect 10 neighbor 10.0.0.49 remote-as 65200 neighbor 10.0.0.49 peer-group PEER_V4 neighbor 10.0.0.49 description ARISTA25T2 neighbor 10.0.0.49 timers connect 10 neighbor 10.0.0.51 remote-as 65200 neighbor 10.0.0.51 peer-group PEER_V4 neighbor 10.0.0.51 description ARISTA26T2 neighbor 10.0.0.51 timers connect 10 neighbor 10.0.0.53 remote-as 65200 neighbor 10.0.0.53 peer-group PEER_V4 neighbor 10.0.0.53 description ARISTA27T2 neighbor 10.0.0.53 timers connect 10 neighbor 10.0.0.55 remote-as 64001 neighbor 10.0.0.55 peer-group PEER_V4 neighbor 10.0.0.55 description ARISTA01T0 neighbor 10.0.0.55 timers connect 10 neighbor 10.0.0.57 remote-as 64002 neighbor 10.0.0.57 peer-group PEER_V4 neighbor 10.0.0.57 description ARISTA02T0 neighbor 10.0.0.57 timers connect 10 neighbor 10.0.0.59 remote-as 64003 neighbor 10.0.0.59 peer-group PEER_V4 neighbor 10.0.0.59 description ARISTA03T0 neighbor 10.0.0.59 timers connect 10 neighbor 10.0.0.61 remote-as 64004 neighbor 10.0.0.61 peer-group PEER_V4 neighbor 10.0.0.61 description ARISTA04T0 neighbor 10.0.0.61 timers connect 10 neighbor 10.0.0.63 remote-as 64005 neighbor 10.0.0.63 peer-group PEER_V4 neighbor 10.0.0.63 description ARISTA05T0 neighbor 10.0.0.63 timers connect 10 neighbor 10.0.0.65 remote-as 64006 neighbor 10.0.0.65 peer-group PEER_V4 neighbor 10.0.0.65 description ARISTA06T0 neighbor 10.0.0.65 timers connect 10 neighbor 10.0.0.67 remote-as 64007 neighbor 10.0.0.67 peer-group PEER_V4 neighbor 10.0.0.67 description ARISTA07T0 neighbor 10.0.0.67 timers connect 10 neighbor 10.0.0.69 remote-as 64008 neighbor 10.0.0.69 peer-group PEER_V4 neighbor 10.0.0.69 description ARISTA08T0 neighbor 10.0.0.69 timers connect 10 neighbor 10.0.0.71 remote-as 64009 neighbor 10.0.0.71 peer-group PEER_V4 neighbor 10.0.0.71 description ARISTA09T0 neighbor 10.0.0.71 timers connect 10 neighbor 10.0.0.73 remote-as 64010 neighbor 10.0.0.73 peer-group PEER_V4 neighbor 10.0.0.73 description ARISTA10T0 neighbor 10.0.0.73 timers connect 10 neighbor 10.0.0.75 remote-as 64011 neighbor 10.0.0.75 peer-group PEER_V4 neighbor 10.0.0.75 description ARISTA11T0 neighbor 10.0.0.75 timers connect 10 neighbor 10.0.0.77 remote-as 64012 neighbor 10.0.0.77 peer-group PEER_V4 neighbor 10.0.0.77 description ARISTA12T0 neighbor 10.0.0.77 timers connect 10 neighbor 10.0.0.79 remote-as 64013 neighbor 10.0.0.79 peer-group PEER_V4 neighbor 10.0.0.79 description ARISTA13T0 neighbor 10.0.0.79 timers connect 10 neighbor 10.0.0.81 remote-as 64014 neighbor 10.0.0.81 peer-group PEER_V4 neighbor 10.0.0.81 description ARISTA14T0 neighbor 10.0.0.81 timers connect 10 neighbor 10.0.0.83 remote-as 64015 neighbor 10.0.0.83 peer-group PEER_V4 neighbor 10.0.0.83 description ARISTA15T0 neighbor 10.0.0.83 timers connect 10 neighbor 10.0.0.85 remote-as 64016 neighbor 10.0.0.85 peer-group PEER_V4 neighbor 10.0.0.85 description ARISTA16T0 neighbor 10.0.0.85 timers connect 10 neighbor 10.0.0.87 remote-as 64017 neighbor 10.0.0.87 peer-group PEER_V4 neighbor 10.0.0.87 description ARISTA17T0 neighbor 10.0.0.87 timers connect 10 neighbor 10.0.0.89 remote-as 64018 neighbor 10.0.0.89 peer-group PEER_V4 neighbor 10.0.0.89 description ARISTA18T0 neighbor 10.0.0.89 timers connect 10 neighbor 10.0.0.91 remote-as 64019 neighbor 10.0.0.91 peer-group PEER_V4 neighbor 10.0.0.91 description ARISTA19T0 neighbor 10.0.0.91 timers connect 10 neighbor 10.0.0.93 remote-as 64020 neighbor 10.0.0.93 peer-group PEER_V4 neighbor 10.0.0.93 description ARISTA20T0 neighbor 10.0.0.93 timers connect 10 neighbor 10.0.0.95 remote-as 64021 neighbor 10.0.0.95 peer-group PEER_V4 neighbor 10.0.0.95 description ARISTA21T0 neighbor 10.0.0.95 timers connect 10 neighbor 10.0.0.97 remote-as 64022 neighbor 10.0.0.97 peer-group PEER_V4 neighbor 10.0.0.97 description ARISTA22T0 neighbor 10.0.0.97 timers connect 10 neighbor 10.0.0.99 remote-as 64023 neighbor 10.0.0.99 peer-group PEER_V4 neighbor 10.0.0.99 description ARISTA23T0 neighbor 10.0.0.99 timers connect 10 neighbor 10.0.0.101 remote-as 64024 neighbor 10.0.0.101 peer-group PEER_V4 neighbor 10.0.0.101 description ARISTA24T0 neighbor 10.0.0.101 timers connect 10 neighbor 10.0.0.105 remote-as 64026 neighbor 10.0.0.105 peer-group PEER_V4 neighbor 10.0.0.105 description ARISTA26T0 neighbor 10.0.0.105 timers connect 10 neighbor 10.0.0.107 remote-as 64027 neighbor 10.0.0.107 peer-group PEER_V4 neighbor 10.0.0.107 description ARISTA27T0 neighbor 10.0.0.107 timers connect 10 ! address-family ipv4 unicast network 10.1.0.1/32 neighbor PEER_V4 soft-reconfiguration inbound neighbor PEER_V4 route-map FROM_BGP_PEER_V4 in neighbor PEER_V4 route-map TO_BGP_PEER_V4 out neighbor 10.0.0.1 activate neighbor 10.0.0.3 activate neighbor 10.0.0.5 activate neighbor 10.0.0.7 activate neighbor 10.0.0.9 activate neighbor 10.0.0.11 activate neighbor 10.0.0.13 activate neighbor 10.0.0.15 activate neighbor 10.0.0.17 activate neighbor 10.0.0.19 activate neighbor 10.0.0.21 activate neighbor 10.0.0.23 activate neighbor 10.0.0.25 activate neighbor 10.0.0.27 activate neighbor 10.0.0.29 activate neighbor 10.0.0.31 activate neighbor 10.0.0.33 activate neighbor 10.0.0.35 activate neighbor 10.0.0.37 activate neighbor 10.0.0.39 activate neighbor 10.0.0.41 activate neighbor 10.0.0.43 activate neighbor 10.0.0.45 activate neighbor 10.0.0.47 activate neighbor 10.0.0.49 activate neighbor 10.0.0.51 activate neighbor 10.0.0.53 activate neighbor 10.0.0.55 activate neighbor 10.0.0.57 activate neighbor 10.0.0.59 activate neighbor 10.0.0.61 activate neighbor 10.0.0.63 activate neighbor 10.0.0.65 activate neighbor 10.0.0.67 activate neighbor 10.0.0.69 activate neighbor 10.0.0.71 activate neighbor 10.0.0.73 activate neighbor 10.0.0.75 activate neighbor 10.0.0.77 activate neighbor 10.0.0.79 activate neighbor 10.0.0.81 activate neighbor 10.0.0.83 activate neighbor 10.0.0.85 activate neighbor 10.0.0.87 activate neighbor 10.0.0.89 activate neighbor 10.0.0.91 activate neighbor 10.0.0.93 activate neighbor 10.0.0.95 activate neighbor 10.0.0.97 activate neighbor 10.0.0.99 activate neighbor 10.0.0.101 activate neighbor 10.0.0.105 activate neighbor 10.0.0.107 activate maximum-paths 64 exit-address-family ! address-family ipv6 unicast neighbor PEER_V6 soft-reconfiguration inbound neighbor PEER_V6 route-map FROM_BGP_PEER_V6 in neighbor PEER_V6 route-map TO_BGP_PEER_V6 out maximum-paths 64 exit-address-familyexit!ip prefix-list PL_LoopbackV4 seq 5 permit 10.1.0.1/32!bgp community-list standard allow_list_default_community seq 5 permit no-exportbgp community-list standard allow_list_default_community seq 10 permit 5060:12345!route-map ALLOW_LIST_DEPLOYMENT_ID_0_V4 permit 65535 set community 5060:12345 additiveexit!route-map ALLOW_LIST_DEPLOYMENT_ID_0_V6 permit 65535 set community 5060:12345 additiveexit!route-map FROM_BGP_PEER_V4 permit 10 call ALLOW_LIST_DEPLOYMENT_ID_0_V4 on-match nextexit!route-map FROM_BGP_PEER_V4 permit 11 match community allow_list_default_communityexit!route-map FROM_BGP_PEER_V4 permit 100exit!route-map FROM_BGP_PEER_V6 permit 1 on-match next set ipv6 next-hop prefer-globalexit!route-map FROM_BGP_PEER_V6 permit 10 call ALLOW_LIST_DEPLOYMENT_ID_0_V6 on-match nextexit!route-map FROM_BGP_PEER_V6 permit 11 match community allow_list_default_communityexit!route-map FROM_BGP_PEER_V6 permit 100exit!route-map TO_BGP_PEER_V4 permit 100exit!route-map TO_BGP_PEER_V6 permit 100exit!route-map RM_SET_SRC permit 10 set src 10.1.0.1exit!ip nht resolve-via-default!ipv6 nht resolve-via-default!ip protocol bgp route-map RM_SET_SRC!end \ No newline at end of file +! +frr version 8.5.1 +frr defaults traditional +hostname st01-sw10g-r01-u38 +log syslog informational +log facility local4 +fpm address 127.0.0.1 +no fpm use-next-hop-groups +agentx +no service integrated-vtysh-config +! +password zebra +enable password zebra +! +router bgp 65100 + bgp router-id 10.1.0.1 + bgp suppress-fib-pending + bgp log-neighbor-changes + no bgp ebgp-requires-policy + no bgp default ipv4-unicast + bgp bestpath as-path multipath-relax + neighbor PEER_V4 peer-group + neighbor PEER_V6 peer-group + neighbor 10.0.0.1 remote-as 65200 + neighbor 10.0.0.1 peer-group PEER_V4 + neighbor 10.0.0.1 description ARISTA01T2 + neighbor 10.0.0.1 timers connect 10 + neighbor 10.0.0.3 remote-as 65200 + neighbor 10.0.0.3 peer-group PEER_V4 + neighbor 10.0.0.3 description ARISTA02T2 + neighbor 10.0.0.3 timers connect 10 + neighbor 10.0.0.5 remote-as 65200 + neighbor 10.0.0.5 peer-group PEER_V4 + neighbor 10.0.0.5 description ARISTA03T2 + neighbor 10.0.0.5 timers connect 10 + neighbor 10.0.0.7 remote-as 65200 + neighbor 10.0.0.7 peer-group PEER_V4 + neighbor 10.0.0.7 description ARISTA04T2 + neighbor 10.0.0.7 timers connect 10 + neighbor 10.0.0.9 remote-as 65200 + neighbor 10.0.0.9 peer-group PEER_V4 + neighbor 10.0.0.9 description ARISTA05T2 + neighbor 10.0.0.9 timers connect 10 + neighbor 10.0.0.11 remote-as 65200 + neighbor 10.0.0.11 peer-group PEER_V4 + neighbor 10.0.0.11 description ARISTA06T2 + neighbor 10.0.0.11 timers connect 10 + neighbor 10.0.0.13 remote-as 65200 + neighbor 10.0.0.13 peer-group PEER_V4 + neighbor 10.0.0.13 description ARISTA07T2 + neighbor 10.0.0.13 timers connect 10 + neighbor 10.0.0.15 remote-as 65200 + neighbor 10.0.0.15 peer-group PEER_V4 + neighbor 10.0.0.15 description ARISTA08T2 + neighbor 10.0.0.15 timers connect 10 + neighbor 10.0.0.17 remote-as 65200 + neighbor 10.0.0.17 peer-group PEER_V4 + neighbor 10.0.0.17 description ARISTA09T2 + neighbor 10.0.0.17 timers connect 10 + neighbor 10.0.0.19 remote-as 65200 + neighbor 10.0.0.19 peer-group PEER_V4 + neighbor 10.0.0.19 description ARISTA10T2 + neighbor 10.0.0.19 timers connect 10 + neighbor 10.0.0.21 remote-as 65200 + neighbor 10.0.0.21 peer-group PEER_V4 + neighbor 10.0.0.21 description ARISTA11T2 + neighbor 10.0.0.21 timers connect 10 + neighbor 10.0.0.23 remote-as 65200 + neighbor 10.0.0.23 peer-group PEER_V4 + neighbor 10.0.0.23 description ARISTA12T2 + neighbor 10.0.0.23 timers connect 10 + neighbor 10.0.0.25 remote-as 65200 + neighbor 10.0.0.25 peer-group PEER_V4 + neighbor 10.0.0.25 description ARISTA13T2 + neighbor 10.0.0.25 timers connect 10 + neighbor 10.0.0.27 remote-as 65200 + neighbor 10.0.0.27 peer-group PEER_V4 + neighbor 10.0.0.27 description ARISTA14T2 + neighbor 10.0.0.27 timers connect 10 + neighbor 10.0.0.29 remote-as 65200 + neighbor 10.0.0.29 peer-group PEER_V4 + neighbor 10.0.0.29 description ARISTA15T2 + neighbor 10.0.0.29 timers connect 10 + neighbor 10.0.0.31 remote-as 65200 + neighbor 10.0.0.31 peer-group PEER_V4 + neighbor 10.0.0.31 description ARISTA16T2 + neighbor 10.0.0.31 timers connect 10 + neighbor 10.0.0.33 remote-as 65200 + neighbor 10.0.0.33 peer-group PEER_V4 + neighbor 10.0.0.33 description ARISTA17T2 + neighbor 10.0.0.33 timers connect 10 + neighbor 10.0.0.35 remote-as 65200 + neighbor 10.0.0.35 peer-group PEER_V4 + neighbor 10.0.0.35 description ARISTA18T2 + neighbor 10.0.0.35 timers connect 10 + neighbor 10.0.0.37 remote-as 65200 + neighbor 10.0.0.37 peer-group PEER_V4 + neighbor 10.0.0.37 description ARISTA19T2 + neighbor 10.0.0.37 timers connect 10 + neighbor 10.0.0.39 remote-as 65200 + neighbor 10.0.0.39 peer-group PEER_V4 + neighbor 10.0.0.39 description ARISTA20T2 + neighbor 10.0.0.39 timers connect 10 + neighbor 10.0.0.41 remote-as 65200 + neighbor 10.0.0.41 peer-group PEER_V4 + neighbor 10.0.0.41 description ARISTA21T2 + neighbor 10.0.0.41 timers connect 10 + neighbor 10.0.0.43 remote-as 65200 + neighbor 10.0.0.43 peer-group PEER_V4 + neighbor 10.0.0.43 description ARISTA22T2 + neighbor 10.0.0.43 timers connect 10 + neighbor 10.0.0.45 remote-as 65200 + neighbor 10.0.0.45 peer-group PEER_V4 + neighbor 10.0.0.45 description ARISTA23T2 + neighbor 10.0.0.45 timers connect 10 + neighbor 10.0.0.47 remote-as 65200 + neighbor 10.0.0.47 peer-group PEER_V4 + neighbor 10.0.0.47 description ARISTA24T2 + neighbor 10.0.0.47 timers connect 10 + neighbor 10.0.0.49 remote-as 65200 + neighbor 10.0.0.49 peer-group PEER_V4 + neighbor 10.0.0.49 description ARISTA25T2 + neighbor 10.0.0.49 timers connect 10 + neighbor 10.0.0.51 remote-as 65200 + neighbor 10.0.0.51 peer-group PEER_V4 + neighbor 10.0.0.51 description ARISTA26T2 + neighbor 10.0.0.51 timers connect 10 + neighbor 10.0.0.53 remote-as 65200 + neighbor 10.0.0.53 peer-group PEER_V4 + neighbor 10.0.0.53 description ARISTA27T2 + neighbor 10.0.0.53 timers connect 10 + neighbor 10.0.0.55 remote-as 64001 + neighbor 10.0.0.55 peer-group PEER_V4 + neighbor 10.0.0.55 description ARISTA01T0 + neighbor 10.0.0.55 timers connect 10 + neighbor 10.0.0.57 remote-as 64002 + neighbor 10.0.0.57 peer-group PEER_V4 + neighbor 10.0.0.57 description ARISTA02T0 + neighbor 10.0.0.57 timers connect 10 + neighbor 10.0.0.59 remote-as 64003 + neighbor 10.0.0.59 peer-group PEER_V4 + neighbor 10.0.0.59 description ARISTA03T0 + neighbor 10.0.0.59 timers connect 10 + neighbor 10.0.0.61 remote-as 64004 + neighbor 10.0.0.61 peer-group PEER_V4 + neighbor 10.0.0.61 description ARISTA04T0 + neighbor 10.0.0.61 timers connect 10 + neighbor 10.0.0.63 remote-as 64005 + neighbor 10.0.0.63 peer-group PEER_V4 + neighbor 10.0.0.63 description ARISTA05T0 + neighbor 10.0.0.63 timers connect 10 + neighbor 10.0.0.65 remote-as 64006 + neighbor 10.0.0.65 peer-group PEER_V4 + neighbor 10.0.0.65 description ARISTA06T0 + neighbor 10.0.0.65 timers connect 10 + neighbor 10.0.0.67 remote-as 64007 + neighbor 10.0.0.67 peer-group PEER_V4 + neighbor 10.0.0.67 description ARISTA07T0 + neighbor 10.0.0.67 timers connect 10 + neighbor 10.0.0.69 remote-as 64008 + neighbor 10.0.0.69 peer-group PEER_V4 + neighbor 10.0.0.69 description ARISTA08T0 + neighbor 10.0.0.69 timers connect 10 + neighbor 10.0.0.71 remote-as 64009 + neighbor 10.0.0.71 peer-group PEER_V4 + neighbor 10.0.0.71 description ARISTA09T0 + neighbor 10.0.0.71 timers connect 10 + neighbor 10.0.0.73 remote-as 64010 + neighbor 10.0.0.73 peer-group PEER_V4 + neighbor 10.0.0.73 description ARISTA10T0 + neighbor 10.0.0.73 timers connect 10 + neighbor 10.0.0.75 remote-as 64011 + neighbor 10.0.0.75 peer-group PEER_V4 + neighbor 10.0.0.75 description ARISTA11T0 + neighbor 10.0.0.75 timers connect 10 + neighbor 10.0.0.77 remote-as 64012 + neighbor 10.0.0.77 peer-group PEER_V4 + neighbor 10.0.0.77 description ARISTA12T0 + neighbor 10.0.0.77 timers connect 10 + neighbor 10.0.0.79 remote-as 64013 + neighbor 10.0.0.79 peer-group PEER_V4 + neighbor 10.0.0.79 description ARISTA13T0 + neighbor 10.0.0.79 timers connect 10 + neighbor 10.0.0.81 remote-as 64014 + neighbor 10.0.0.81 peer-group PEER_V4 + neighbor 10.0.0.81 description ARISTA14T0 + neighbor 10.0.0.81 timers connect 10 + neighbor 10.0.0.83 remote-as 64015 + neighbor 10.0.0.83 peer-group PEER_V4 + neighbor 10.0.0.83 description ARISTA15T0 + neighbor 10.0.0.83 timers connect 10 + neighbor 10.0.0.85 remote-as 64016 + neighbor 10.0.0.85 peer-group PEER_V4 + neighbor 10.0.0.85 description ARISTA16T0 + neighbor 10.0.0.85 timers connect 10 + neighbor 10.0.0.87 remote-as 64017 + neighbor 10.0.0.87 peer-group PEER_V4 + neighbor 10.0.0.87 description ARISTA17T0 + neighbor 10.0.0.87 timers connect 10 + neighbor 10.0.0.89 remote-as 64018 + neighbor 10.0.0.89 peer-group PEER_V4 + neighbor 10.0.0.89 description ARISTA18T0 + neighbor 10.0.0.89 timers connect 10 + neighbor 10.0.0.91 remote-as 64019 + neighbor 10.0.0.91 peer-group PEER_V4 + neighbor 10.0.0.91 description ARISTA19T0 + neighbor 10.0.0.91 timers connect 10 + neighbor 10.0.0.93 remote-as 64020 + neighbor 10.0.0.93 peer-group PEER_V4 + neighbor 10.0.0.93 description ARISTA20T0 + neighbor 10.0.0.93 timers connect 10 + neighbor 10.0.0.95 remote-as 64021 + neighbor 10.0.0.95 peer-group PEER_V4 + neighbor 10.0.0.95 description ARISTA21T0 + neighbor 10.0.0.95 timers connect 10 + neighbor 10.0.0.97 remote-as 64022 + neighbor 10.0.0.97 peer-group PEER_V4 + neighbor 10.0.0.97 description ARISTA22T0 + neighbor 10.0.0.97 timers connect 10 + neighbor 10.0.0.99 remote-as 64023 + neighbor 10.0.0.99 peer-group PEER_V4 + neighbor 10.0.0.99 description ARISTA23T0 + neighbor 10.0.0.99 timers connect 10 + neighbor 10.0.0.101 remote-as 64024 + neighbor 10.0.0.101 peer-group PEER_V4 + neighbor 10.0.0.101 description ARISTA24T0 + neighbor 10.0.0.101 timers connect 10 + neighbor 10.0.0.105 remote-as 64026 + neighbor 10.0.0.105 peer-group PEER_V4 + neighbor 10.0.0.105 description ARISTA26T0 + neighbor 10.0.0.105 timers connect 10 + neighbor 10.0.0.107 remote-as 64027 + neighbor 10.0.0.107 peer-group PEER_V4 + neighbor 10.0.0.107 description ARISTA27T0 + neighbor 10.0.0.107 timers connect 10 + ! + address-family ipv4 unicast + network 10.1.0.1/32 + neighbor PEER_V4 soft-reconfiguration inbound + neighbor PEER_V4 route-map FROM_BGP_PEER_V4 in + neighbor PEER_V4 route-map TO_BGP_PEER_V4 out + neighbor 10.0.0.1 activate + neighbor 10.0.0.3 activate + neighbor 10.0.0.5 activate + neighbor 10.0.0.7 activate + neighbor 10.0.0.9 activate + neighbor 10.0.0.11 activate + neighbor 10.0.0.13 activate + neighbor 10.0.0.15 activate + neighbor 10.0.0.17 activate + neighbor 10.0.0.19 activate + neighbor 10.0.0.21 activate + neighbor 10.0.0.23 activate + neighbor 10.0.0.25 activate + neighbor 10.0.0.27 activate + neighbor 10.0.0.29 activate + neighbor 10.0.0.31 activate + neighbor 10.0.0.33 activate + neighbor 10.0.0.35 activate + neighbor 10.0.0.37 activate + neighbor 10.0.0.39 activate + neighbor 10.0.0.41 activate + neighbor 10.0.0.43 activate + neighbor 10.0.0.45 activate + neighbor 10.0.0.47 activate + neighbor 10.0.0.49 activate + neighbor 10.0.0.51 activate + neighbor 10.0.0.53 activate + neighbor 10.0.0.55 activate + neighbor 10.0.0.57 activate + neighbor 10.0.0.59 activate + neighbor 10.0.0.61 activate + neighbor 10.0.0.63 activate + neighbor 10.0.0.65 activate + neighbor 10.0.0.67 activate + neighbor 10.0.0.69 activate + neighbor 10.0.0.71 activate + neighbor 10.0.0.73 activate + neighbor 10.0.0.75 activate + neighbor 10.0.0.77 activate + neighbor 10.0.0.79 activate + neighbor 10.0.0.81 activate + neighbor 10.0.0.83 activate + neighbor 10.0.0.85 activate + neighbor 10.0.0.87 activate + neighbor 10.0.0.89 activate + neighbor 10.0.0.91 activate + neighbor 10.0.0.93 activate + neighbor 10.0.0.95 activate + neighbor 10.0.0.97 activate + neighbor 10.0.0.99 activate + neighbor 10.0.0.101 activate + neighbor 10.0.0.105 activate + neighbor 10.0.0.107 activate + maximum-paths 64 + exit-address-family + ! + address-family ipv6 unicast + neighbor PEER_V6 soft-reconfiguration inbound + neighbor PEER_V6 route-map FROM_BGP_PEER_V6 in + neighbor PEER_V6 route-map TO_BGP_PEER_V6 out + maximum-paths 64 + exit-address-family +exit +! +ip prefix-list PL_LoopbackV4 seq 5 permit 10.1.0.1/32 +! +bgp community-list standard allow_list_default_community seq 5 permit no-export +bgp community-list standard allow_list_default_community seq 10 permit 5060:12345 +! +route-map ALLOW_LIST_DEPLOYMENT_ID_0_V4 permit 65535 + set community 5060:12345 additive +exit +! +route-map ALLOW_LIST_DEPLOYMENT_ID_0_V6 permit 65535 + set community 5060:12345 additive +exit +! +route-map FROM_BGP_PEER_V4 permit 10 + call ALLOW_LIST_DEPLOYMENT_ID_0_V4 + on-match next +exit +! +route-map FROM_BGP_PEER_V4 permit 11 + match community allow_list_default_community +exit +! +route-map FROM_BGP_PEER_V4 permit 100 +exit +! +route-map FROM_BGP_PEER_V6 permit 1 + on-match next + set ipv6 next-hop prefer-global +exit +! +route-map FROM_BGP_PEER_V6 permit 10 + call ALLOW_LIST_DEPLOYMENT_ID_0_V6 + on-match next +exit +! +route-map FROM_BGP_PEER_V6 permit 11 + match community allow_list_default_community +exit +! +route-map FROM_BGP_PEER_V6 permit 100 +exit +! +route-map TO_BGP_PEER_V4 permit 100 +exit +! +route-map TO_BGP_PEER_V6 permit 100 +exit +! +route-map RM_SET_SRC permit 10 + set src 10.1.0.1 +exit +! +ip nht resolve-via-default +! +ipv6 nht resolve-via-default +! +ip protocol bgp route-map RM_SET_SRC +! +end + diff --git a/device_configurations/network/5835-54X-O-AC-B_st01-sw10g-r01-u39_frr.conf b/device_configurations/network/5835-54X-O-AC-B_st01-sw10g-r01-u39_frr.conf index 5b74bb06..3f3b4b06 100644 --- a/device_configurations/network/5835-54X-O-AC-B_st01-sw10g-r01-u39_frr.conf +++ b/device_configurations/network/5835-54X-O-AC-B_st01-sw10g-r01-u39_frr.conf @@ -1 +1,370 @@ -!frr version 8.5.1frr defaults traditionalhostname st01-sw10g-r01-u39log syslog informationallog facility local4fpm address 127.0.0.1no fpm use-next-hop-groupsagentxno service integrated-vtysh-config!password zebraenable password zebra!router bgp 65100 bgp router-id 10.1.0.1 bgp suppress-fib-pending bgp log-neighbor-changes no bgp ebgp-requires-policy no bgp default ipv4-unicast bgp bestpath as-path multipath-relax neighbor PEER_V4 peer-group neighbor PEER_V6 peer-group neighbor 10.0.0.1 remote-as 65200 neighbor 10.0.0.1 peer-group PEER_V4 neighbor 10.0.0.1 description ARISTA01T2 neighbor 10.0.0.1 timers connect 10 neighbor 10.0.0.3 remote-as 65200 neighbor 10.0.0.3 peer-group PEER_V4 neighbor 10.0.0.3 description ARISTA02T2 neighbor 10.0.0.3 timers connect 10 neighbor 10.0.0.5 remote-as 65200 neighbor 10.0.0.5 peer-group PEER_V4 neighbor 10.0.0.5 description ARISTA03T2 neighbor 10.0.0.5 timers connect 10 neighbor 10.0.0.7 remote-as 65200 neighbor 10.0.0.7 peer-group PEER_V4 neighbor 10.0.0.7 description ARISTA04T2 neighbor 10.0.0.7 timers connect 10 neighbor 10.0.0.9 remote-as 65200 neighbor 10.0.0.9 peer-group PEER_V4 neighbor 10.0.0.9 description ARISTA05T2 neighbor 10.0.0.9 timers connect 10 neighbor 10.0.0.11 remote-as 65200 neighbor 10.0.0.11 peer-group PEER_V4 neighbor 10.0.0.11 description ARISTA06T2 neighbor 10.0.0.11 timers connect 10 neighbor 10.0.0.13 remote-as 65200 neighbor 10.0.0.13 peer-group PEER_V4 neighbor 10.0.0.13 description ARISTA07T2 neighbor 10.0.0.13 timers connect 10 neighbor 10.0.0.15 remote-as 65200 neighbor 10.0.0.15 peer-group PEER_V4 neighbor 10.0.0.15 description ARISTA08T2 neighbor 10.0.0.15 timers connect 10 neighbor 10.0.0.17 remote-as 65200 neighbor 10.0.0.17 peer-group PEER_V4 neighbor 10.0.0.17 description ARISTA09T2 neighbor 10.0.0.17 timers connect 10 neighbor 10.0.0.19 remote-as 65200 neighbor 10.0.0.19 peer-group PEER_V4 neighbor 10.0.0.19 description ARISTA10T2 neighbor 10.0.0.19 timers connect 10 neighbor 10.0.0.21 remote-as 65200 neighbor 10.0.0.21 peer-group PEER_V4 neighbor 10.0.0.21 description ARISTA11T2 neighbor 10.0.0.21 timers connect 10 neighbor 10.0.0.23 remote-as 65200 neighbor 10.0.0.23 peer-group PEER_V4 neighbor 10.0.0.23 description ARISTA12T2 neighbor 10.0.0.23 timers connect 10 neighbor 10.0.0.25 remote-as 65200 neighbor 10.0.0.25 peer-group PEER_V4 neighbor 10.0.0.25 description ARISTA13T2 neighbor 10.0.0.25 timers connect 10 neighbor 10.0.0.27 remote-as 65200 neighbor 10.0.0.27 peer-group PEER_V4 neighbor 10.0.0.27 description ARISTA14T2 neighbor 10.0.0.27 timers connect 10 neighbor 10.0.0.29 remote-as 65200 neighbor 10.0.0.29 peer-group PEER_V4 neighbor 10.0.0.29 description ARISTA15T2 neighbor 10.0.0.29 timers connect 10 neighbor 10.0.0.31 remote-as 65200 neighbor 10.0.0.31 peer-group PEER_V4 neighbor 10.0.0.31 description ARISTA16T2 neighbor 10.0.0.31 timers connect 10 neighbor 10.0.0.33 remote-as 65200 neighbor 10.0.0.33 peer-group PEER_V4 neighbor 10.0.0.33 description ARISTA17T2 neighbor 10.0.0.33 timers connect 10 neighbor 10.0.0.35 remote-as 65200 neighbor 10.0.0.35 peer-group PEER_V4 neighbor 10.0.0.35 description ARISTA18T2 neighbor 10.0.0.35 timers connect 10 neighbor 10.0.0.37 remote-as 65200 neighbor 10.0.0.37 peer-group PEER_V4 neighbor 10.0.0.37 description ARISTA19T2 neighbor 10.0.0.37 timers connect 10 neighbor 10.0.0.39 remote-as 65200 neighbor 10.0.0.39 peer-group PEER_V4 neighbor 10.0.0.39 description ARISTA20T2 neighbor 10.0.0.39 timers connect 10 neighbor 10.0.0.41 remote-as 65200 neighbor 10.0.0.41 peer-group PEER_V4 neighbor 10.0.0.41 description ARISTA21T2 neighbor 10.0.0.41 timers connect 10 neighbor 10.0.0.43 remote-as 65200 neighbor 10.0.0.43 peer-group PEER_V4 neighbor 10.0.0.43 description ARISTA22T2 neighbor 10.0.0.43 timers connect 10 neighbor 10.0.0.45 remote-as 65200 neighbor 10.0.0.45 peer-group PEER_V4 neighbor 10.0.0.45 description ARISTA23T2 neighbor 10.0.0.45 timers connect 10 neighbor 10.0.0.47 remote-as 65200 neighbor 10.0.0.47 peer-group PEER_V4 neighbor 10.0.0.47 description ARISTA24T2 neighbor 10.0.0.47 timers connect 10 neighbor 10.0.0.49 remote-as 65200 neighbor 10.0.0.49 peer-group PEER_V4 neighbor 10.0.0.49 description ARISTA25T2 neighbor 10.0.0.49 timers connect 10 neighbor 10.0.0.51 remote-as 65200 neighbor 10.0.0.51 peer-group PEER_V4 neighbor 10.0.0.51 description ARISTA26T2 neighbor 10.0.0.51 timers connect 10 neighbor 10.0.0.53 remote-as 65200 neighbor 10.0.0.53 peer-group PEER_V4 neighbor 10.0.0.53 description ARISTA27T2 neighbor 10.0.0.53 timers connect 10 neighbor 10.0.0.55 remote-as 64001 neighbor 10.0.0.55 peer-group PEER_V4 neighbor 10.0.0.55 description ARISTA01T0 neighbor 10.0.0.55 timers connect 10 neighbor 10.0.0.57 remote-as 64002 neighbor 10.0.0.57 peer-group PEER_V4 neighbor 10.0.0.57 description ARISTA02T0 neighbor 10.0.0.57 timers connect 10 neighbor 10.0.0.59 remote-as 64003 neighbor 10.0.0.59 peer-group PEER_V4 neighbor 10.0.0.59 description ARISTA03T0 neighbor 10.0.0.59 timers connect 10 neighbor 10.0.0.61 remote-as 64004 neighbor 10.0.0.61 peer-group PEER_V4 neighbor 10.0.0.61 description ARISTA04T0 neighbor 10.0.0.61 timers connect 10 neighbor 10.0.0.63 remote-as 64005 neighbor 10.0.0.63 peer-group PEER_V4 neighbor 10.0.0.63 description ARISTA05T0 neighbor 10.0.0.63 timers connect 10 neighbor 10.0.0.65 remote-as 64006 neighbor 10.0.0.65 peer-group PEER_V4 neighbor 10.0.0.65 description ARISTA06T0 neighbor 10.0.0.65 timers connect 10 neighbor 10.0.0.67 remote-as 64007 neighbor 10.0.0.67 peer-group PEER_V4 neighbor 10.0.0.67 description ARISTA07T0 neighbor 10.0.0.67 timers connect 10 neighbor 10.0.0.69 remote-as 64008 neighbor 10.0.0.69 peer-group PEER_V4 neighbor 10.0.0.69 description ARISTA08T0 neighbor 10.0.0.69 timers connect 10 neighbor 10.0.0.71 remote-as 64009 neighbor 10.0.0.71 peer-group PEER_V4 neighbor 10.0.0.71 description ARISTA09T0 neighbor 10.0.0.71 timers connect 10 neighbor 10.0.0.73 remote-as 64010 neighbor 10.0.0.73 peer-group PEER_V4 neighbor 10.0.0.73 description ARISTA10T0 neighbor 10.0.0.73 timers connect 10 neighbor 10.0.0.75 remote-as 64011 neighbor 10.0.0.75 peer-group PEER_V4 neighbor 10.0.0.75 description ARISTA11T0 neighbor 10.0.0.75 timers connect 10 neighbor 10.0.0.77 remote-as 64012 neighbor 10.0.0.77 peer-group PEER_V4 neighbor 10.0.0.77 description ARISTA12T0 neighbor 10.0.0.77 timers connect 10 neighbor 10.0.0.79 remote-as 64013 neighbor 10.0.0.79 peer-group PEER_V4 neighbor 10.0.0.79 description ARISTA13T0 neighbor 10.0.0.79 timers connect 10 neighbor 10.0.0.81 remote-as 64014 neighbor 10.0.0.81 peer-group PEER_V4 neighbor 10.0.0.81 description ARISTA14T0 neighbor 10.0.0.81 timers connect 10 neighbor 10.0.0.83 remote-as 64015 neighbor 10.0.0.83 peer-group PEER_V4 neighbor 10.0.0.83 description ARISTA15T0 neighbor 10.0.0.83 timers connect 10 neighbor 10.0.0.85 remote-as 64016 neighbor 10.0.0.85 peer-group PEER_V4 neighbor 10.0.0.85 description ARISTA16T0 neighbor 10.0.0.85 timers connect 10 neighbor 10.0.0.87 remote-as 64017 neighbor 10.0.0.87 peer-group PEER_V4 neighbor 10.0.0.87 description ARISTA17T0 neighbor 10.0.0.87 timers connect 10 neighbor 10.0.0.89 remote-as 64018 neighbor 10.0.0.89 peer-group PEER_V4 neighbor 10.0.0.89 description ARISTA18T0 neighbor 10.0.0.89 timers connect 10 neighbor 10.0.0.91 remote-as 64019 neighbor 10.0.0.91 peer-group PEER_V4 neighbor 10.0.0.91 description ARISTA19T0 neighbor 10.0.0.91 timers connect 10 neighbor 10.0.0.93 remote-as 64020 neighbor 10.0.0.93 peer-group PEER_V4 neighbor 10.0.0.93 description ARISTA20T0 neighbor 10.0.0.93 timers connect 10 neighbor 10.0.0.95 remote-as 64021 neighbor 10.0.0.95 peer-group PEER_V4 neighbor 10.0.0.95 description ARISTA21T0 neighbor 10.0.0.95 timers connect 10 neighbor 10.0.0.97 remote-as 64022 neighbor 10.0.0.97 peer-group PEER_V4 neighbor 10.0.0.97 description ARISTA22T0 neighbor 10.0.0.97 timers connect 10 neighbor 10.0.0.99 remote-as 64023 neighbor 10.0.0.99 peer-group PEER_V4 neighbor 10.0.0.99 description ARISTA23T0 neighbor 10.0.0.99 timers connect 10 neighbor 10.0.0.101 remote-as 64024 neighbor 10.0.0.101 peer-group PEER_V4 neighbor 10.0.0.101 description ARISTA24T0 neighbor 10.0.0.101 timers connect 10 neighbor 10.0.0.103 remote-as 64025 neighbor 10.0.0.103 peer-group PEER_V4 neighbor 10.0.0.103 description ARISTA25T0 neighbor 10.0.0.103 timers connect 10 neighbor 10.0.0.105 remote-as 64026 neighbor 10.0.0.105 peer-group PEER_V4 neighbor 10.0.0.105 description ARISTA26T0 neighbor 10.0.0.105 timers connect 10 neighbor 10.0.0.107 remote-as 64027 neighbor 10.0.0.107 peer-group PEER_V4 neighbor 10.0.0.107 description ARISTA27T0 neighbor 10.0.0.107 timers connect 10 ! address-family ipv4 unicast network 10.1.0.1/32 neighbor PEER_V4 soft-reconfiguration inbound neighbor PEER_V4 route-map FROM_BGP_PEER_V4 in neighbor PEER_V4 route-map TO_BGP_PEER_V4 out neighbor 10.0.0.1 activate neighbor 10.0.0.3 activate neighbor 10.0.0.5 activate neighbor 10.0.0.7 activate neighbor 10.0.0.9 activate neighbor 10.0.0.11 activate neighbor 10.0.0.13 activate neighbor 10.0.0.15 activate neighbor 10.0.0.17 activate neighbor 10.0.0.19 activate neighbor 10.0.0.21 activate neighbor 10.0.0.23 activate neighbor 10.0.0.25 activate neighbor 10.0.0.27 activate neighbor 10.0.0.29 activate neighbor 10.0.0.31 activate neighbor 10.0.0.33 activate neighbor 10.0.0.35 activate neighbor 10.0.0.37 activate neighbor 10.0.0.39 activate neighbor 10.0.0.41 activate neighbor 10.0.0.43 activate neighbor 10.0.0.45 activate neighbor 10.0.0.47 activate neighbor 10.0.0.49 activate neighbor 10.0.0.51 activate neighbor 10.0.0.53 activate neighbor 10.0.0.55 activate neighbor 10.0.0.57 activate neighbor 10.0.0.59 activate neighbor 10.0.0.61 activate neighbor 10.0.0.63 activate neighbor 10.0.0.65 activate neighbor 10.0.0.67 activate neighbor 10.0.0.69 activate neighbor 10.0.0.71 activate neighbor 10.0.0.73 activate neighbor 10.0.0.75 activate neighbor 10.0.0.77 activate neighbor 10.0.0.79 activate neighbor 10.0.0.81 activate neighbor 10.0.0.83 activate neighbor 10.0.0.85 activate neighbor 10.0.0.87 activate neighbor 10.0.0.89 activate neighbor 10.0.0.91 activate neighbor 10.0.0.93 activate neighbor 10.0.0.95 activate neighbor 10.0.0.97 activate neighbor 10.0.0.99 activate neighbor 10.0.0.101 activate neighbor 10.0.0.103 activate neighbor 10.0.0.105 activate neighbor 10.0.0.107 activate maximum-paths 64 exit-address-family ! address-family ipv6 unicast neighbor PEER_V6 soft-reconfiguration inbound neighbor PEER_V6 route-map FROM_BGP_PEER_V6 in neighbor PEER_V6 route-map TO_BGP_PEER_V6 out maximum-paths 64 exit-address-familyexit!ip prefix-list PL_LoopbackV4 seq 5 permit 10.1.0.1/32!bgp community-list standard allow_list_default_community seq 5 permit no-exportbgp community-list standard allow_list_default_community seq 10 permit 5060:12345!route-map ALLOW_LIST_DEPLOYMENT_ID_0_V4 permit 65535 set community 5060:12345 additiveexit!route-map ALLOW_LIST_DEPLOYMENT_ID_0_V6 permit 65535 set community 5060:12345 additiveexit!route-map FROM_BGP_PEER_V4 permit 10 call ALLOW_LIST_DEPLOYMENT_ID_0_V4 on-match nextexit!route-map FROM_BGP_PEER_V4 permit 11 match community allow_list_default_communityexit!route-map FROM_BGP_PEER_V4 permit 100exit!route-map FROM_BGP_PEER_V6 permit 1 on-match next set ipv6 next-hop prefer-globalexit!route-map FROM_BGP_PEER_V6 permit 10 call ALLOW_LIST_DEPLOYMENT_ID_0_V6 on-match nextexit!route-map FROM_BGP_PEER_V6 permit 11 match community allow_list_default_communityexit!route-map FROM_BGP_PEER_V6 permit 100exit!route-map TO_BGP_PEER_V4 permit 100exit!route-map TO_BGP_PEER_V6 permit 100exit!route-map RM_SET_SRC permit 10 set src 10.1.0.1exit!ip nht resolve-via-default!ipv6 nht resolve-via-default!ip protocol bgp route-map RM_SET_SRC!end \ No newline at end of file +! +frr version 8.5.1 +frr defaults traditional +hostname st01-sw10g-r01-u39 +log syslog informational +log facility local4 +fpm address 127.0.0.1 +no fpm use-next-hop-groups +agentx +no service integrated-vtysh-config +! +password zebra +enable password zebra +! +router bgp 65100 + bgp router-id 10.1.0.1 + bgp suppress-fib-pending + bgp log-neighbor-changes + no bgp ebgp-requires-policy + no bgp default ipv4-unicast + bgp bestpath as-path multipath-relax + neighbor PEER_V4 peer-group + neighbor PEER_V6 peer-group + neighbor 10.0.0.1 remote-as 65200 + neighbor 10.0.0.1 peer-group PEER_V4 + neighbor 10.0.0.1 description ARISTA01T2 + neighbor 10.0.0.1 timers connect 10 + neighbor 10.0.0.3 remote-as 65200 + neighbor 10.0.0.3 peer-group PEER_V4 + neighbor 10.0.0.3 description ARISTA02T2 + neighbor 10.0.0.3 timers connect 10 + neighbor 10.0.0.5 remote-as 65200 + neighbor 10.0.0.5 peer-group PEER_V4 + neighbor 10.0.0.5 description ARISTA03T2 + neighbor 10.0.0.5 timers connect 10 + neighbor 10.0.0.7 remote-as 65200 + neighbor 10.0.0.7 peer-group PEER_V4 + neighbor 10.0.0.7 description ARISTA04T2 + neighbor 10.0.0.7 timers connect 10 + neighbor 10.0.0.9 remote-as 65200 + neighbor 10.0.0.9 peer-group PEER_V4 + neighbor 10.0.0.9 description ARISTA05T2 + neighbor 10.0.0.9 timers connect 10 + neighbor 10.0.0.11 remote-as 65200 + neighbor 10.0.0.11 peer-group PEER_V4 + neighbor 10.0.0.11 description ARISTA06T2 + neighbor 10.0.0.11 timers connect 10 + neighbor 10.0.0.13 remote-as 65200 + neighbor 10.0.0.13 peer-group PEER_V4 + neighbor 10.0.0.13 description ARISTA07T2 + neighbor 10.0.0.13 timers connect 10 + neighbor 10.0.0.15 remote-as 65200 + neighbor 10.0.0.15 peer-group PEER_V4 + neighbor 10.0.0.15 description ARISTA08T2 + neighbor 10.0.0.15 timers connect 10 + neighbor 10.0.0.17 remote-as 65200 + neighbor 10.0.0.17 peer-group PEER_V4 + neighbor 10.0.0.17 description ARISTA09T2 + neighbor 10.0.0.17 timers connect 10 + neighbor 10.0.0.19 remote-as 65200 + neighbor 10.0.0.19 peer-group PEER_V4 + neighbor 10.0.0.19 description ARISTA10T2 + neighbor 10.0.0.19 timers connect 10 + neighbor 10.0.0.21 remote-as 65200 + neighbor 10.0.0.21 peer-group PEER_V4 + neighbor 10.0.0.21 description ARISTA11T2 + neighbor 10.0.0.21 timers connect 10 + neighbor 10.0.0.23 remote-as 65200 + neighbor 10.0.0.23 peer-group PEER_V4 + neighbor 10.0.0.23 description ARISTA12T2 + neighbor 10.0.0.23 timers connect 10 + neighbor 10.0.0.25 remote-as 65200 + neighbor 10.0.0.25 peer-group PEER_V4 + neighbor 10.0.0.25 description ARISTA13T2 + neighbor 10.0.0.25 timers connect 10 + neighbor 10.0.0.27 remote-as 65200 + neighbor 10.0.0.27 peer-group PEER_V4 + neighbor 10.0.0.27 description ARISTA14T2 + neighbor 10.0.0.27 timers connect 10 + neighbor 10.0.0.29 remote-as 65200 + neighbor 10.0.0.29 peer-group PEER_V4 + neighbor 10.0.0.29 description ARISTA15T2 + neighbor 10.0.0.29 timers connect 10 + neighbor 10.0.0.31 remote-as 65200 + neighbor 10.0.0.31 peer-group PEER_V4 + neighbor 10.0.0.31 description ARISTA16T2 + neighbor 10.0.0.31 timers connect 10 + neighbor 10.0.0.33 remote-as 65200 + neighbor 10.0.0.33 peer-group PEER_V4 + neighbor 10.0.0.33 description ARISTA17T2 + neighbor 10.0.0.33 timers connect 10 + neighbor 10.0.0.35 remote-as 65200 + neighbor 10.0.0.35 peer-group PEER_V4 + neighbor 10.0.0.35 description ARISTA18T2 + neighbor 10.0.0.35 timers connect 10 + neighbor 10.0.0.37 remote-as 65200 + neighbor 10.0.0.37 peer-group PEER_V4 + neighbor 10.0.0.37 description ARISTA19T2 + neighbor 10.0.0.37 timers connect 10 + neighbor 10.0.0.39 remote-as 65200 + neighbor 10.0.0.39 peer-group PEER_V4 + neighbor 10.0.0.39 description ARISTA20T2 + neighbor 10.0.0.39 timers connect 10 + neighbor 10.0.0.41 remote-as 65200 + neighbor 10.0.0.41 peer-group PEER_V4 + neighbor 10.0.0.41 description ARISTA21T2 + neighbor 10.0.0.41 timers connect 10 + neighbor 10.0.0.43 remote-as 65200 + neighbor 10.0.0.43 peer-group PEER_V4 + neighbor 10.0.0.43 description ARISTA22T2 + neighbor 10.0.0.43 timers connect 10 + neighbor 10.0.0.45 remote-as 65200 + neighbor 10.0.0.45 peer-group PEER_V4 + neighbor 10.0.0.45 description ARISTA23T2 + neighbor 10.0.0.45 timers connect 10 + neighbor 10.0.0.47 remote-as 65200 + neighbor 10.0.0.47 peer-group PEER_V4 + neighbor 10.0.0.47 description ARISTA24T2 + neighbor 10.0.0.47 timers connect 10 + neighbor 10.0.0.49 remote-as 65200 + neighbor 10.0.0.49 peer-group PEER_V4 + neighbor 10.0.0.49 description ARISTA25T2 + neighbor 10.0.0.49 timers connect 10 + neighbor 10.0.0.51 remote-as 65200 + neighbor 10.0.0.51 peer-group PEER_V4 + neighbor 10.0.0.51 description ARISTA26T2 + neighbor 10.0.0.51 timers connect 10 + neighbor 10.0.0.53 remote-as 65200 + neighbor 10.0.0.53 peer-group PEER_V4 + neighbor 10.0.0.53 description ARISTA27T2 + neighbor 10.0.0.53 timers connect 10 + neighbor 10.0.0.55 remote-as 64001 + neighbor 10.0.0.55 peer-group PEER_V4 + neighbor 10.0.0.55 description ARISTA01T0 + neighbor 10.0.0.55 timers connect 10 + neighbor 10.0.0.57 remote-as 64002 + neighbor 10.0.0.57 peer-group PEER_V4 + neighbor 10.0.0.57 description ARISTA02T0 + neighbor 10.0.0.57 timers connect 10 + neighbor 10.0.0.59 remote-as 64003 + neighbor 10.0.0.59 peer-group PEER_V4 + neighbor 10.0.0.59 description ARISTA03T0 + neighbor 10.0.0.59 timers connect 10 + neighbor 10.0.0.61 remote-as 64004 + neighbor 10.0.0.61 peer-group PEER_V4 + neighbor 10.0.0.61 description ARISTA04T0 + neighbor 10.0.0.61 timers connect 10 + neighbor 10.0.0.63 remote-as 64005 + neighbor 10.0.0.63 peer-group PEER_V4 + neighbor 10.0.0.63 description ARISTA05T0 + neighbor 10.0.0.63 timers connect 10 + neighbor 10.0.0.65 remote-as 64006 + neighbor 10.0.0.65 peer-group PEER_V4 + neighbor 10.0.0.65 description ARISTA06T0 + neighbor 10.0.0.65 timers connect 10 + neighbor 10.0.0.67 remote-as 64007 + neighbor 10.0.0.67 peer-group PEER_V4 + neighbor 10.0.0.67 description ARISTA07T0 + neighbor 10.0.0.67 timers connect 10 + neighbor 10.0.0.69 remote-as 64008 + neighbor 10.0.0.69 peer-group PEER_V4 + neighbor 10.0.0.69 description ARISTA08T0 + neighbor 10.0.0.69 timers connect 10 + neighbor 10.0.0.71 remote-as 64009 + neighbor 10.0.0.71 peer-group PEER_V4 + neighbor 10.0.0.71 description ARISTA09T0 + neighbor 10.0.0.71 timers connect 10 + neighbor 10.0.0.73 remote-as 64010 + neighbor 10.0.0.73 peer-group PEER_V4 + neighbor 10.0.0.73 description ARISTA10T0 + neighbor 10.0.0.73 timers connect 10 + neighbor 10.0.0.75 remote-as 64011 + neighbor 10.0.0.75 peer-group PEER_V4 + neighbor 10.0.0.75 description ARISTA11T0 + neighbor 10.0.0.75 timers connect 10 + neighbor 10.0.0.77 remote-as 64012 + neighbor 10.0.0.77 peer-group PEER_V4 + neighbor 10.0.0.77 description ARISTA12T0 + neighbor 10.0.0.77 timers connect 10 + neighbor 10.0.0.79 remote-as 64013 + neighbor 10.0.0.79 peer-group PEER_V4 + neighbor 10.0.0.79 description ARISTA13T0 + neighbor 10.0.0.79 timers connect 10 + neighbor 10.0.0.81 remote-as 64014 + neighbor 10.0.0.81 peer-group PEER_V4 + neighbor 10.0.0.81 description ARISTA14T0 + neighbor 10.0.0.81 timers connect 10 + neighbor 10.0.0.83 remote-as 64015 + neighbor 10.0.0.83 peer-group PEER_V4 + neighbor 10.0.0.83 description ARISTA15T0 + neighbor 10.0.0.83 timers connect 10 + neighbor 10.0.0.85 remote-as 64016 + neighbor 10.0.0.85 peer-group PEER_V4 + neighbor 10.0.0.85 description ARISTA16T0 + neighbor 10.0.0.85 timers connect 10 + neighbor 10.0.0.87 remote-as 64017 + neighbor 10.0.0.87 peer-group PEER_V4 + neighbor 10.0.0.87 description ARISTA17T0 + neighbor 10.0.0.87 timers connect 10 + neighbor 10.0.0.89 remote-as 64018 + neighbor 10.0.0.89 peer-group PEER_V4 + neighbor 10.0.0.89 description ARISTA18T0 + neighbor 10.0.0.89 timers connect 10 + neighbor 10.0.0.91 remote-as 64019 + neighbor 10.0.0.91 peer-group PEER_V4 + neighbor 10.0.0.91 description ARISTA19T0 + neighbor 10.0.0.91 timers connect 10 + neighbor 10.0.0.93 remote-as 64020 + neighbor 10.0.0.93 peer-group PEER_V4 + neighbor 10.0.0.93 description ARISTA20T0 + neighbor 10.0.0.93 timers connect 10 + neighbor 10.0.0.95 remote-as 64021 + neighbor 10.0.0.95 peer-group PEER_V4 + neighbor 10.0.0.95 description ARISTA21T0 + neighbor 10.0.0.95 timers connect 10 + neighbor 10.0.0.97 remote-as 64022 + neighbor 10.0.0.97 peer-group PEER_V4 + neighbor 10.0.0.97 description ARISTA22T0 + neighbor 10.0.0.97 timers connect 10 + neighbor 10.0.0.99 remote-as 64023 + neighbor 10.0.0.99 peer-group PEER_V4 + neighbor 10.0.0.99 description ARISTA23T0 + neighbor 10.0.0.99 timers connect 10 + neighbor 10.0.0.101 remote-as 64024 + neighbor 10.0.0.101 peer-group PEER_V4 + neighbor 10.0.0.101 description ARISTA24T0 + neighbor 10.0.0.101 timers connect 10 + neighbor 10.0.0.103 remote-as 64025 + neighbor 10.0.0.103 peer-group PEER_V4 + neighbor 10.0.0.103 description ARISTA25T0 + neighbor 10.0.0.103 timers connect 10 + neighbor 10.0.0.105 remote-as 64026 + neighbor 10.0.0.105 peer-group PEER_V4 + neighbor 10.0.0.105 description ARISTA26T0 + neighbor 10.0.0.105 timers connect 10 + neighbor 10.0.0.107 remote-as 64027 + neighbor 10.0.0.107 peer-group PEER_V4 + neighbor 10.0.0.107 description ARISTA27T0 + neighbor 10.0.0.107 timers connect 10 + ! + address-family ipv4 unicast + network 10.1.0.1/32 + neighbor PEER_V4 soft-reconfiguration inbound + neighbor PEER_V4 route-map FROM_BGP_PEER_V4 in + neighbor PEER_V4 route-map TO_BGP_PEER_V4 out + neighbor 10.0.0.1 activate + neighbor 10.0.0.3 activate + neighbor 10.0.0.5 activate + neighbor 10.0.0.7 activate + neighbor 10.0.0.9 activate + neighbor 10.0.0.11 activate + neighbor 10.0.0.13 activate + neighbor 10.0.0.15 activate + neighbor 10.0.0.17 activate + neighbor 10.0.0.19 activate + neighbor 10.0.0.21 activate + neighbor 10.0.0.23 activate + neighbor 10.0.0.25 activate + neighbor 10.0.0.27 activate + neighbor 10.0.0.29 activate + neighbor 10.0.0.31 activate + neighbor 10.0.0.33 activate + neighbor 10.0.0.35 activate + neighbor 10.0.0.37 activate + neighbor 10.0.0.39 activate + neighbor 10.0.0.41 activate + neighbor 10.0.0.43 activate + neighbor 10.0.0.45 activate + neighbor 10.0.0.47 activate + neighbor 10.0.0.49 activate + neighbor 10.0.0.51 activate + neighbor 10.0.0.53 activate + neighbor 10.0.0.55 activate + neighbor 10.0.0.57 activate + neighbor 10.0.0.59 activate + neighbor 10.0.0.61 activate + neighbor 10.0.0.63 activate + neighbor 10.0.0.65 activate + neighbor 10.0.0.67 activate + neighbor 10.0.0.69 activate + neighbor 10.0.0.71 activate + neighbor 10.0.0.73 activate + neighbor 10.0.0.75 activate + neighbor 10.0.0.77 activate + neighbor 10.0.0.79 activate + neighbor 10.0.0.81 activate + neighbor 10.0.0.83 activate + neighbor 10.0.0.85 activate + neighbor 10.0.0.87 activate + neighbor 10.0.0.89 activate + neighbor 10.0.0.91 activate + neighbor 10.0.0.93 activate + neighbor 10.0.0.95 activate + neighbor 10.0.0.97 activate + neighbor 10.0.0.99 activate + neighbor 10.0.0.101 activate + neighbor 10.0.0.103 activate + neighbor 10.0.0.105 activate + neighbor 10.0.0.107 activate + maximum-paths 64 + exit-address-family + ! + address-family ipv6 unicast + neighbor PEER_V6 soft-reconfiguration inbound + neighbor PEER_V6 route-map FROM_BGP_PEER_V6 in + neighbor PEER_V6 route-map TO_BGP_PEER_V6 out + maximum-paths 64 + exit-address-family +exit +! +ip prefix-list PL_LoopbackV4 seq 5 permit 10.1.0.1/32 +! +bgp community-list standard allow_list_default_community seq 5 permit no-export +bgp community-list standard allow_list_default_community seq 10 permit 5060:12345 +! +route-map ALLOW_LIST_DEPLOYMENT_ID_0_V4 permit 65535 + set community 5060:12345 additive +exit +! +route-map ALLOW_LIST_DEPLOYMENT_ID_0_V6 permit 65535 + set community 5060:12345 additive +exit +! +route-map FROM_BGP_PEER_V4 permit 10 + call ALLOW_LIST_DEPLOYMENT_ID_0_V4 + on-match next +exit +! +route-map FROM_BGP_PEER_V4 permit 11 + match community allow_list_default_community +exit +! +route-map FROM_BGP_PEER_V4 permit 100 +exit +! +route-map FROM_BGP_PEER_V6 permit 1 + on-match next + set ipv6 next-hop prefer-global +exit +! +route-map FROM_BGP_PEER_V6 permit 10 + call ALLOW_LIST_DEPLOYMENT_ID_0_V6 + on-match next +exit +! +route-map FROM_BGP_PEER_V6 permit 11 + match community allow_list_default_community +exit +! +route-map FROM_BGP_PEER_V6 permit 100 +exit +! +route-map TO_BGP_PEER_V4 permit 100 +exit +! +route-map TO_BGP_PEER_V6 permit 100 +exit +! +route-map RM_SET_SRC permit 10 + set src 10.1.0.1 +exit +! +ip nht resolve-via-default +! +ipv6 nht resolve-via-default +! +ip protocol bgp route-map RM_SET_SRC +! +end + diff --git a/device_configurations/network/7326-56X-O-AC-B_st01-sw25g-r01-u34_frr.conf b/device_configurations/network/7326-56X-O-AC-B_st01-sw25g-r01-u34_frr.conf index 74d9628b..272e0cac 100644 --- a/device_configurations/network/7326-56X-O-AC-B_st01-sw25g-r01-u34_frr.conf +++ b/device_configurations/network/7326-56X-O-AC-B_st01-sw25g-r01-u34_frr.conf @@ -1 +1,58 @@ -!frr version 8.1frr defaults traditionalhostname st01-sw25g-r01-u34service integrated-vtysh-config!router bgp 65404 bgp router-id 10.10.21.4 bgp log-neighbor-changes bgp always-compare-med no bgp ebgp-requires-policy neighbor core peer-group neighbor core remote-as 65501 neighbor server peer-group neighbor server remote-as external neighbor Ethernet72 interface peer-group core neighbor Ethernet76 interface peer-group core neighbor Ethernet0 interface peer-group server neighbor Ethernet1 interface peer-group server neighbor Ethernet2 interface peer-group server neighbor Ethernet4 interface peer-group server neighbor Ethernet5 interface peer-group server neighbor Ethernet38 interface peer-group server neighbor Ethernet39 interface peer-group server neighbor Ethernet40 interface peer-group server neighbor Ethernet41 interface peer-group server neighbor Ethernet42 interface peer-group server neighbor Ethernet43 interface peer-group server neighbor Ethernet44 interface peer-group server neighbor Ethernet45 interface peer-group server neighbor Ethernet46 interface peer-group server neighbor Ethernet47 interface peer-group server ! address-family ipv4 unicast network 10.10.21.4/32 exit-address-family ! address-family ipv6 unicast network fd0c:cc24:75a0:1:10:10:21:4/128 neighbor core activate neighbor server activate exit-address-familyexit!route-map RM_SET_SRC6 permit 10 set src fd0c:cc24:75a0:1:10:10:21:4exit!route-map RM_SET_SRC permit 10 set src 10.10.21.4exit!ip protocol bgp route-map RM_SET_SRC!ipv6 protocol bgp route-map RM_SET_SRC6!end \ No newline at end of file +! +frr version 8.1 +frr defaults traditional +hostname st01-sw25g-r01-u34 +service integrated-vtysh-config +! +router bgp 65404 + bgp router-id 10.10.21.4 + bgp log-neighbor-changes + bgp always-compare-med + no bgp ebgp-requires-policy + neighbor core peer-group + neighbor core remote-as 65501 + neighbor server peer-group + neighbor server remote-as external + neighbor Ethernet72 interface peer-group core + neighbor Ethernet76 interface peer-group core + neighbor Ethernet0 interface peer-group server + neighbor Ethernet1 interface peer-group server + neighbor Ethernet2 interface peer-group server + neighbor Ethernet4 interface peer-group server + neighbor Ethernet5 interface peer-group server + neighbor Ethernet38 interface peer-group server + neighbor Ethernet39 interface peer-group server + neighbor Ethernet40 interface peer-group server + neighbor Ethernet41 interface peer-group server + neighbor Ethernet42 interface peer-group server + neighbor Ethernet43 interface peer-group server + neighbor Ethernet44 interface peer-group server + neighbor Ethernet45 interface peer-group server + neighbor Ethernet46 interface peer-group server + neighbor Ethernet47 interface peer-group server + ! + address-family ipv4 unicast + network 10.10.21.4/32 + exit-address-family + ! + address-family ipv6 unicast + network fd0c:cc24:75a0:1:10:10:21:4/128 + neighbor core activate + neighbor server activate + exit-address-family +exit +! +route-map RM_SET_SRC6 permit 10 + set src fd0c:cc24:75a0:1:10:10:21:4 +exit +! +route-map RM_SET_SRC permit 10 + set src 10.10.21.4 +exit +! +ip protocol bgp route-map RM_SET_SRC +! +ipv6 protocol bgp route-map RM_SET_SRC6 +! +end + diff --git a/device_configurations/network/7326-56X-O-AC-B_st01-sw25g-r01-u35_frr.conf b/device_configurations/network/7326-56X-O-AC-B_st01-sw25g-r01-u35_frr.conf index 0862dea7..9db57dac 100644 --- a/device_configurations/network/7326-56X-O-AC-B_st01-sw25g-r01-u35_frr.conf +++ b/device_configurations/network/7326-56X-O-AC-B_st01-sw25g-r01-u35_frr.conf @@ -1 +1,52 @@ -!frr version 8.1frr defaults traditionalhostname st01-sw25g-r01-u35service integrated-vtysh-config!router bgp 65405 bgp router-id 10.10.21.5 bgp log-neighbor-changes bgp always-compare-med no bgp ebgp-requires-policy neighbor core peer-group neighbor core remote-as 65501 neighbor server peer-group neighbor server remote-as external neighbor Ethernet72 interface peer-group core neighbor Ethernet76 interface peer-group core neighbor Ethernet0 interface peer-group server neighbor Ethernet1 interface peer-group server neighbor Ethernet2 interface peer-group server neighbor Ethernet4 interface peer-group server neighbor Ethernet5 interface peer-group server neighbor Ethernet41 interface peer-group server neighbor Ethernet42 interface peer-group server neighbor Ethernet43 interface peer-group server neighbor Ethernet47 interface peer-group server ! address-family ipv4 unicast network 10.10.21.5/32 exit-address-family ! address-family ipv6 unicast network fd0c:cc24:75a0:1:10:10:21:5/128 neighbor core activate neighbor server activate exit-address-familyexit!route-map RM_SET_SRC6 permit 10 set src fd0c:cc24:75a0:1:10:10:21:5exit!route-map RM_SET_SRC permit 10 set src 10.10.21.5exit!ip protocol bgp route-map RM_SET_SRC!ipv6 protocol bgp route-map RM_SET_SRC6!end \ No newline at end of file +! +frr version 8.1 +frr defaults traditional +hostname st01-sw25g-r01-u35 +service integrated-vtysh-config +! +router bgp 65405 + bgp router-id 10.10.21.5 + bgp log-neighbor-changes + bgp always-compare-med + no bgp ebgp-requires-policy + neighbor core peer-group + neighbor core remote-as 65501 + neighbor server peer-group + neighbor server remote-as external + neighbor Ethernet72 interface peer-group core + neighbor Ethernet76 interface peer-group core + neighbor Ethernet0 interface peer-group server + neighbor Ethernet1 interface peer-group server + neighbor Ethernet2 interface peer-group server + neighbor Ethernet4 interface peer-group server + neighbor Ethernet5 interface peer-group server + neighbor Ethernet41 interface peer-group server + neighbor Ethernet42 interface peer-group server + neighbor Ethernet43 interface peer-group server + neighbor Ethernet47 interface peer-group server + ! + address-family ipv4 unicast + network 10.10.21.5/32 + exit-address-family + ! + address-family ipv6 unicast + network fd0c:cc24:75a0:1:10:10:21:5/128 + neighbor core activate + neighbor server activate + exit-address-family +exit +! +route-map RM_SET_SRC6 permit 10 + set src fd0c:cc24:75a0:1:10:10:21:5 +exit +! +route-map RM_SET_SRC permit 10 + set src 10.10.21.5 +exit +! +ip protocol bgp route-map RM_SET_SRC +! +ipv6 protocol bgp route-map RM_SET_SRC6 +! +end + diff --git a/device_configurations/network/7326-56X-O-AC-B_st01-sw25g-r01-u40_frr.conf b/device_configurations/network/7326-56X-O-AC-B_st01-sw25g-r01-u40_frr.conf index e9c4c213..75f9c1b0 100644 --- a/device_configurations/network/7326-56X-O-AC-B_st01-sw25g-r01-u40_frr.conf +++ b/device_configurations/network/7326-56X-O-AC-B_st01-sw25g-r01-u40_frr.conf @@ -1 +1,381 @@ -!frr version 8.5.1frr defaults traditionalhostname soniclog syslog informationallog facility local4fpm address 127.0.0.1no fpm use-next-hop-groupsagentxhostname st01-sw25g-r01-u40no service integrated-vtysh-config!password zebraenable password zebra!router bgp 65100 bgp router-id 10.1.0.1 bgp suppress-fib-pending bgp log-neighbor-changes no bgp ebgp-requires-policy no bgp default ipv4-unicast bgp bestpath as-path multipath-relax neighbor PEER_V4 peer-group neighbor PEER_V6 peer-group neighbor 10.0.0.1 remote-as 65200 neighbor 10.0.0.1 peer-group PEER_V4 neighbor 10.0.0.1 description ARISTA01T2 neighbor 10.0.0.1 timers connect 10 neighbor 10.0.0.3 remote-as 65200 neighbor 10.0.0.3 peer-group PEER_V4 neighbor 10.0.0.3 description ARISTA02T2 neighbor 10.0.0.3 timers connect 10 neighbor 10.0.0.5 remote-as 65200 neighbor 10.0.0.5 peer-group PEER_V4 neighbor 10.0.0.5 description ARISTA03T2 neighbor 10.0.0.5 timers connect 10 neighbor 10.0.0.7 remote-as 65200 neighbor 10.0.0.7 peer-group PEER_V4 neighbor 10.0.0.7 description ARISTA04T2 neighbor 10.0.0.7 timers connect 10 neighbor 10.0.0.9 remote-as 65200 neighbor 10.0.0.9 peer-group PEER_V4 neighbor 10.0.0.9 description ARISTA05T2 neighbor 10.0.0.9 timers connect 10 neighbor 10.0.0.11 remote-as 65200 neighbor 10.0.0.11 peer-group PEER_V4 neighbor 10.0.0.11 description ARISTA06T2 neighbor 10.0.0.11 timers connect 10 neighbor 10.0.0.13 remote-as 65200 neighbor 10.0.0.13 peer-group PEER_V4 neighbor 10.0.0.13 description ARISTA07T2 neighbor 10.0.0.13 timers connect 10 neighbor 10.0.0.15 remote-as 65200 neighbor 10.0.0.15 peer-group PEER_V4 neighbor 10.0.0.15 description ARISTA08T2 neighbor 10.0.0.15 timers connect 10 neighbor 10.0.0.17 remote-as 65200 neighbor 10.0.0.17 peer-group PEER_V4 neighbor 10.0.0.17 description ARISTA09T2 neighbor 10.0.0.17 timers connect 10 neighbor 10.0.0.19 remote-as 65200 neighbor 10.0.0.19 peer-group PEER_V4 neighbor 10.0.0.19 description ARISTA10T2 neighbor 10.0.0.19 timers connect 10 neighbor 10.0.0.21 remote-as 65200 neighbor 10.0.0.21 peer-group PEER_V4 neighbor 10.0.0.21 description ARISTA11T2 neighbor 10.0.0.21 timers connect 10 neighbor 10.0.0.23 remote-as 65200 neighbor 10.0.0.23 peer-group PEER_V4 neighbor 10.0.0.23 description ARISTA12T2 neighbor 10.0.0.23 timers connect 10 neighbor 10.0.0.25 remote-as 65200 neighbor 10.0.0.25 peer-group PEER_V4 neighbor 10.0.0.25 description ARISTA13T2 neighbor 10.0.0.25 timers connect 10 neighbor 10.0.0.27 remote-as 65200 neighbor 10.0.0.27 peer-group PEER_V4 neighbor 10.0.0.27 description ARISTA14T2 neighbor 10.0.0.27 timers connect 10 neighbor 10.0.0.29 remote-as 65200 neighbor 10.0.0.29 peer-group PEER_V4 neighbor 10.0.0.29 description ARISTA15T2 neighbor 10.0.0.29 timers connect 10 neighbor 10.0.0.31 remote-as 65200 neighbor 10.0.0.31 peer-group PEER_V4 neighbor 10.0.0.31 description ARISTA16T2 neighbor 10.0.0.31 timers connect 10 neighbor 10.0.0.33 remote-as 65200 neighbor 10.0.0.33 peer-group PEER_V4 neighbor 10.0.0.33 description ARISTA17T2 neighbor 10.0.0.33 timers connect 10 neighbor 10.0.0.35 remote-as 65200 neighbor 10.0.0.35 peer-group PEER_V4 neighbor 10.0.0.35 description ARISTA18T2 neighbor 10.0.0.35 timers connect 10 neighbor 10.0.0.37 remote-as 65200 neighbor 10.0.0.37 peer-group PEER_V4 neighbor 10.0.0.37 description ARISTA19T2 neighbor 10.0.0.37 timers connect 10 neighbor 10.0.0.39 remote-as 65200 neighbor 10.0.0.39 peer-group PEER_V4 neighbor 10.0.0.39 description ARISTA20T2 neighbor 10.0.0.39 timers connect 10 neighbor 10.0.0.41 remote-as 65200 neighbor 10.0.0.41 peer-group PEER_V4 neighbor 10.0.0.41 description ARISTA21T2 neighbor 10.0.0.41 timers connect 10 neighbor 10.0.0.43 remote-as 65200 neighbor 10.0.0.43 peer-group PEER_V4 neighbor 10.0.0.43 description ARISTA22T2 neighbor 10.0.0.43 timers connect 10 neighbor 10.0.0.45 remote-as 65200 neighbor 10.0.0.45 peer-group PEER_V4 neighbor 10.0.0.45 description ARISTA23T2 neighbor 10.0.0.45 timers connect 10 neighbor 10.0.0.47 remote-as 65200 neighbor 10.0.0.47 peer-group PEER_V4 neighbor 10.0.0.47 description ARISTA24T2 neighbor 10.0.0.47 timers connect 10 neighbor 10.0.0.49 remote-as 65200 neighbor 10.0.0.49 peer-group PEER_V4 neighbor 10.0.0.49 description ARISTA25T2 neighbor 10.0.0.49 timers connect 10 neighbor 10.0.0.51 remote-as 65200 neighbor 10.0.0.51 peer-group PEER_V4 neighbor 10.0.0.51 description ARISTA26T2 neighbor 10.0.0.51 timers connect 10 neighbor 10.0.0.53 remote-as 65200 neighbor 10.0.0.53 peer-group PEER_V4 neighbor 10.0.0.53 description ARISTA27T2 neighbor 10.0.0.53 timers connect 10 neighbor 10.0.0.55 remote-as 65200 neighbor 10.0.0.55 peer-group PEER_V4 neighbor 10.0.0.55 description ARISTA28T2 neighbor 10.0.0.55 timers connect 10 neighbor 10.0.0.57 remote-as 64001 neighbor 10.0.0.57 peer-group PEER_V4 neighbor 10.0.0.57 description ARISTA01T0 neighbor 10.0.0.57 timers connect 10 neighbor 10.0.0.59 remote-as 64002 neighbor 10.0.0.59 peer-group PEER_V4 neighbor 10.0.0.59 description ARISTA02T0 neighbor 10.0.0.59 timers connect 10 neighbor 10.0.0.61 remote-as 64003 neighbor 10.0.0.61 peer-group PEER_V4 neighbor 10.0.0.61 description ARISTA03T0 neighbor 10.0.0.61 timers connect 10 neighbor 10.0.0.63 remote-as 64004 neighbor 10.0.0.63 peer-group PEER_V4 neighbor 10.0.0.63 description ARISTA04T0 neighbor 10.0.0.63 timers connect 10 neighbor 10.0.0.65 remote-as 64005 neighbor 10.0.0.65 peer-group PEER_V4 neighbor 10.0.0.65 description ARISTA05T0 neighbor 10.0.0.65 timers connect 10 neighbor 10.0.0.67 remote-as 64006 neighbor 10.0.0.67 peer-group PEER_V4 neighbor 10.0.0.67 description ARISTA06T0 neighbor 10.0.0.67 timers connect 10 neighbor 10.0.0.69 remote-as 64007 neighbor 10.0.0.69 peer-group PEER_V4 neighbor 10.0.0.69 description ARISTA07T0 neighbor 10.0.0.69 timers connect 10 neighbor 10.0.0.71 remote-as 64008 neighbor 10.0.0.71 peer-group PEER_V4 neighbor 10.0.0.71 description ARISTA08T0 neighbor 10.0.0.71 timers connect 10 neighbor 10.0.0.73 remote-as 64009 neighbor 10.0.0.73 peer-group PEER_V4 neighbor 10.0.0.73 description ARISTA09T0 neighbor 10.0.0.73 timers connect 10 neighbor 10.0.0.75 remote-as 64010 neighbor 10.0.0.75 peer-group PEER_V4 neighbor 10.0.0.75 description ARISTA10T0 neighbor 10.0.0.75 timers connect 10 neighbor 10.0.0.77 remote-as 64011 neighbor 10.0.0.77 peer-group PEER_V4 neighbor 10.0.0.77 description ARISTA11T0 neighbor 10.0.0.77 timers connect 10 neighbor 10.0.0.79 remote-as 64012 neighbor 10.0.0.79 peer-group PEER_V4 neighbor 10.0.0.79 description ARISTA12T0 neighbor 10.0.0.79 timers connect 10 neighbor 10.0.0.81 remote-as 64013 neighbor 10.0.0.81 peer-group PEER_V4 neighbor 10.0.0.81 description ARISTA13T0 neighbor 10.0.0.81 timers connect 10 neighbor 10.0.0.83 remote-as 64014 neighbor 10.0.0.83 peer-group PEER_V4 neighbor 10.0.0.83 description ARISTA14T0 neighbor 10.0.0.83 timers connect 10 neighbor 10.0.0.85 remote-as 64015 neighbor 10.0.0.85 peer-group PEER_V4 neighbor 10.0.0.85 description ARISTA15T0 neighbor 10.0.0.85 timers connect 10 neighbor 10.0.0.87 remote-as 64016 neighbor 10.0.0.87 peer-group PEER_V4 neighbor 10.0.0.87 description ARISTA16T0 neighbor 10.0.0.87 timers connect 10 neighbor 10.0.0.89 remote-as 64017 neighbor 10.0.0.89 peer-group PEER_V4 neighbor 10.0.0.89 description ARISTA17T0 neighbor 10.0.0.89 timers connect 10 neighbor 10.0.0.91 remote-as 64018 neighbor 10.0.0.91 peer-group PEER_V4 neighbor 10.0.0.91 description ARISTA18T0 neighbor 10.0.0.91 timers connect 10 neighbor 10.0.0.93 remote-as 64019 neighbor 10.0.0.93 peer-group PEER_V4 neighbor 10.0.0.93 description ARISTA19T0 neighbor 10.0.0.93 timers connect 10 neighbor 10.0.0.95 remote-as 64020 neighbor 10.0.0.95 peer-group PEER_V4 neighbor 10.0.0.95 description ARISTA20T0 neighbor 10.0.0.95 timers connect 10 neighbor 10.0.0.97 remote-as 64021 neighbor 10.0.0.97 peer-group PEER_V4 neighbor 10.0.0.97 description ARISTA21T0 neighbor 10.0.0.97 timers connect 10 neighbor 10.0.0.99 remote-as 64022 neighbor 10.0.0.99 peer-group PEER_V4 neighbor 10.0.0.99 description ARISTA22T0 neighbor 10.0.0.99 timers connect 10 neighbor 10.0.0.101 remote-as 64023 neighbor 10.0.0.101 peer-group PEER_V4 neighbor 10.0.0.101 description ARISTA23T0 neighbor 10.0.0.101 timers connect 10 neighbor 10.0.0.103 remote-as 64024 neighbor 10.0.0.103 peer-group PEER_V4 neighbor 10.0.0.103 description ARISTA24T0 neighbor 10.0.0.103 timers connect 10 neighbor 10.0.0.105 remote-as 64025 neighbor 10.0.0.105 peer-group PEER_V4 neighbor 10.0.0.105 description ARISTA25T0 neighbor 10.0.0.105 timers connect 10 neighbor 10.0.0.107 remote-as 64026 neighbor 10.0.0.107 peer-group PEER_V4 neighbor 10.0.0.107 description ARISTA26T0 neighbor 10.0.0.107 timers connect 10 neighbor 10.0.0.109 remote-as 64027 neighbor 10.0.0.109 peer-group PEER_V4 neighbor 10.0.0.109 description ARISTA27T0 neighbor 10.0.0.109 timers connect 10 neighbor 10.0.0.111 remote-as 64028 neighbor 10.0.0.111 peer-group PEER_V4 neighbor 10.0.0.111 description ARISTA28T0 neighbor 10.0.0.111 timers connect 10 ! address-family ipv4 unicast network 10.1.0.1/32 neighbor PEER_V4 soft-reconfiguration inbound neighbor PEER_V4 route-map FROM_BGP_PEER_V4 in neighbor PEER_V4 route-map TO_BGP_PEER_V4 out neighbor 10.0.0.1 activate neighbor 10.0.0.3 activate neighbor 10.0.0.5 activate neighbor 10.0.0.7 activate neighbor 10.0.0.9 activate neighbor 10.0.0.11 activate neighbor 10.0.0.13 activate neighbor 10.0.0.15 activate neighbor 10.0.0.17 activate neighbor 10.0.0.19 activate neighbor 10.0.0.21 activate neighbor 10.0.0.23 activate neighbor 10.0.0.25 activate neighbor 10.0.0.27 activate neighbor 10.0.0.29 activate neighbor 10.0.0.31 activate neighbor 10.0.0.33 activate neighbor 10.0.0.35 activate neighbor 10.0.0.37 activate neighbor 10.0.0.39 activate neighbor 10.0.0.41 activate neighbor 10.0.0.43 activate neighbor 10.0.0.45 activate neighbor 10.0.0.47 activate neighbor 10.0.0.49 activate neighbor 10.0.0.51 activate neighbor 10.0.0.53 activate neighbor 10.0.0.55 activate neighbor 10.0.0.57 activate neighbor 10.0.0.59 activate neighbor 10.0.0.61 activate neighbor 10.0.0.63 activate neighbor 10.0.0.65 activate neighbor 10.0.0.67 activate neighbor 10.0.0.69 activate neighbor 10.0.0.71 activate neighbor 10.0.0.73 activate neighbor 10.0.0.75 activate neighbor 10.0.0.77 activate neighbor 10.0.0.79 activate neighbor 10.0.0.81 activate neighbor 10.0.0.83 activate neighbor 10.0.0.85 activate neighbor 10.0.0.87 activate neighbor 10.0.0.89 activate neighbor 10.0.0.91 activate neighbor 10.0.0.93 activate neighbor 10.0.0.95 activate neighbor 10.0.0.97 activate neighbor 10.0.0.99 activate neighbor 10.0.0.101 activate neighbor 10.0.0.103 activate neighbor 10.0.0.105 activate neighbor 10.0.0.107 activate neighbor 10.0.0.109 activate neighbor 10.0.0.111 activate maximum-paths 64 exit-address-family ! address-family ipv6 unicast neighbor PEER_V6 soft-reconfiguration inbound neighbor PEER_V6 route-map FROM_BGP_PEER_V6 in neighbor PEER_V6 route-map TO_BGP_PEER_V6 out maximum-paths 64 exit-address-familyexit!ip prefix-list PL_LoopbackV4 seq 5 permit 10.1.0.1/32!bgp community-list standard allow_list_default_community seq 5 permit no-exportbgp community-list standard allow_list_default_community seq 10 permit 5060:12345!route-map ALLOW_LIST_DEPLOYMENT_ID_0_V4 permit 65535 set community 5060:12345 additiveexit!route-map ALLOW_LIST_DEPLOYMENT_ID_0_V6 permit 65535 set community 5060:12345 additiveexit!route-map FROM_BGP_PEER_V4 permit 10 call ALLOW_LIST_DEPLOYMENT_ID_0_V4 on-match nextexit!route-map FROM_BGP_PEER_V4 permit 11 match community allow_list_default_communityexit!route-map FROM_BGP_PEER_V4 permit 100exit!route-map FROM_BGP_PEER_V6 permit 1 on-match next set ipv6 next-hop prefer-globalexit!route-map FROM_BGP_PEER_V6 permit 10 call ALLOW_LIST_DEPLOYMENT_ID_0_V6 on-match nextexit!route-map FROM_BGP_PEER_V6 permit 11 match community allow_list_default_communityexit!route-map FROM_BGP_PEER_V6 permit 100exit!route-map TO_BGP_PEER_V4 permit 100exit!route-map TO_BGP_PEER_V6 permit 100exit!route-map RM_SET_SRC permit 10 set src 10.1.0.1exit!ip nht resolve-via-default!ipv6 nht resolve-via-default!ip protocol bgp route-map RM_SET_SRC!end \ No newline at end of file +! +frr version 8.5.1 +frr defaults traditional +hostname sonic +log syslog informational +log facility local4 +fpm address 127.0.0.1 +no fpm use-next-hop-groups +agentx +hostname st01-sw25g-r01-u40 +no service integrated-vtysh-config +! +password zebra +enable password zebra +! +router bgp 65100 + bgp router-id 10.1.0.1 + bgp suppress-fib-pending + bgp log-neighbor-changes + no bgp ebgp-requires-policy + no bgp default ipv4-unicast + bgp bestpath as-path multipath-relax + neighbor PEER_V4 peer-group + neighbor PEER_V6 peer-group + neighbor 10.0.0.1 remote-as 65200 + neighbor 10.0.0.1 peer-group PEER_V4 + neighbor 10.0.0.1 description ARISTA01T2 + neighbor 10.0.0.1 timers connect 10 + neighbor 10.0.0.3 remote-as 65200 + neighbor 10.0.0.3 peer-group PEER_V4 + neighbor 10.0.0.3 description ARISTA02T2 + neighbor 10.0.0.3 timers connect 10 + neighbor 10.0.0.5 remote-as 65200 + neighbor 10.0.0.5 peer-group PEER_V4 + neighbor 10.0.0.5 description ARISTA03T2 + neighbor 10.0.0.5 timers connect 10 + neighbor 10.0.0.7 remote-as 65200 + neighbor 10.0.0.7 peer-group PEER_V4 + neighbor 10.0.0.7 description ARISTA04T2 + neighbor 10.0.0.7 timers connect 10 + neighbor 10.0.0.9 remote-as 65200 + neighbor 10.0.0.9 peer-group PEER_V4 + neighbor 10.0.0.9 description ARISTA05T2 + neighbor 10.0.0.9 timers connect 10 + neighbor 10.0.0.11 remote-as 65200 + neighbor 10.0.0.11 peer-group PEER_V4 + neighbor 10.0.0.11 description ARISTA06T2 + neighbor 10.0.0.11 timers connect 10 + neighbor 10.0.0.13 remote-as 65200 + neighbor 10.0.0.13 peer-group PEER_V4 + neighbor 10.0.0.13 description ARISTA07T2 + neighbor 10.0.0.13 timers connect 10 + neighbor 10.0.0.15 remote-as 65200 + neighbor 10.0.0.15 peer-group PEER_V4 + neighbor 10.0.0.15 description ARISTA08T2 + neighbor 10.0.0.15 timers connect 10 + neighbor 10.0.0.17 remote-as 65200 + neighbor 10.0.0.17 peer-group PEER_V4 + neighbor 10.0.0.17 description ARISTA09T2 + neighbor 10.0.0.17 timers connect 10 + neighbor 10.0.0.19 remote-as 65200 + neighbor 10.0.0.19 peer-group PEER_V4 + neighbor 10.0.0.19 description ARISTA10T2 + neighbor 10.0.0.19 timers connect 10 + neighbor 10.0.0.21 remote-as 65200 + neighbor 10.0.0.21 peer-group PEER_V4 + neighbor 10.0.0.21 description ARISTA11T2 + neighbor 10.0.0.21 timers connect 10 + neighbor 10.0.0.23 remote-as 65200 + neighbor 10.0.0.23 peer-group PEER_V4 + neighbor 10.0.0.23 description ARISTA12T2 + neighbor 10.0.0.23 timers connect 10 + neighbor 10.0.0.25 remote-as 65200 + neighbor 10.0.0.25 peer-group PEER_V4 + neighbor 10.0.0.25 description ARISTA13T2 + neighbor 10.0.0.25 timers connect 10 + neighbor 10.0.0.27 remote-as 65200 + neighbor 10.0.0.27 peer-group PEER_V4 + neighbor 10.0.0.27 description ARISTA14T2 + neighbor 10.0.0.27 timers connect 10 + neighbor 10.0.0.29 remote-as 65200 + neighbor 10.0.0.29 peer-group PEER_V4 + neighbor 10.0.0.29 description ARISTA15T2 + neighbor 10.0.0.29 timers connect 10 + neighbor 10.0.0.31 remote-as 65200 + neighbor 10.0.0.31 peer-group PEER_V4 + neighbor 10.0.0.31 description ARISTA16T2 + neighbor 10.0.0.31 timers connect 10 + neighbor 10.0.0.33 remote-as 65200 + neighbor 10.0.0.33 peer-group PEER_V4 + neighbor 10.0.0.33 description ARISTA17T2 + neighbor 10.0.0.33 timers connect 10 + neighbor 10.0.0.35 remote-as 65200 + neighbor 10.0.0.35 peer-group PEER_V4 + neighbor 10.0.0.35 description ARISTA18T2 + neighbor 10.0.0.35 timers connect 10 + neighbor 10.0.0.37 remote-as 65200 + neighbor 10.0.0.37 peer-group PEER_V4 + neighbor 10.0.0.37 description ARISTA19T2 + neighbor 10.0.0.37 timers connect 10 + neighbor 10.0.0.39 remote-as 65200 + neighbor 10.0.0.39 peer-group PEER_V4 + neighbor 10.0.0.39 description ARISTA20T2 + neighbor 10.0.0.39 timers connect 10 + neighbor 10.0.0.41 remote-as 65200 + neighbor 10.0.0.41 peer-group PEER_V4 + neighbor 10.0.0.41 description ARISTA21T2 + neighbor 10.0.0.41 timers connect 10 + neighbor 10.0.0.43 remote-as 65200 + neighbor 10.0.0.43 peer-group PEER_V4 + neighbor 10.0.0.43 description ARISTA22T2 + neighbor 10.0.0.43 timers connect 10 + neighbor 10.0.0.45 remote-as 65200 + neighbor 10.0.0.45 peer-group PEER_V4 + neighbor 10.0.0.45 description ARISTA23T2 + neighbor 10.0.0.45 timers connect 10 + neighbor 10.0.0.47 remote-as 65200 + neighbor 10.0.0.47 peer-group PEER_V4 + neighbor 10.0.0.47 description ARISTA24T2 + neighbor 10.0.0.47 timers connect 10 + neighbor 10.0.0.49 remote-as 65200 + neighbor 10.0.0.49 peer-group PEER_V4 + neighbor 10.0.0.49 description ARISTA25T2 + neighbor 10.0.0.49 timers connect 10 + neighbor 10.0.0.51 remote-as 65200 + neighbor 10.0.0.51 peer-group PEER_V4 + neighbor 10.0.0.51 description ARISTA26T2 + neighbor 10.0.0.51 timers connect 10 + neighbor 10.0.0.53 remote-as 65200 + neighbor 10.0.0.53 peer-group PEER_V4 + neighbor 10.0.0.53 description ARISTA27T2 + neighbor 10.0.0.53 timers connect 10 + neighbor 10.0.0.55 remote-as 65200 + neighbor 10.0.0.55 peer-group PEER_V4 + neighbor 10.0.0.55 description ARISTA28T2 + neighbor 10.0.0.55 timers connect 10 + neighbor 10.0.0.57 remote-as 64001 + neighbor 10.0.0.57 peer-group PEER_V4 + neighbor 10.0.0.57 description ARISTA01T0 + neighbor 10.0.0.57 timers connect 10 + neighbor 10.0.0.59 remote-as 64002 + neighbor 10.0.0.59 peer-group PEER_V4 + neighbor 10.0.0.59 description ARISTA02T0 + neighbor 10.0.0.59 timers connect 10 + neighbor 10.0.0.61 remote-as 64003 + neighbor 10.0.0.61 peer-group PEER_V4 + neighbor 10.0.0.61 description ARISTA03T0 + neighbor 10.0.0.61 timers connect 10 + neighbor 10.0.0.63 remote-as 64004 + neighbor 10.0.0.63 peer-group PEER_V4 + neighbor 10.0.0.63 description ARISTA04T0 + neighbor 10.0.0.63 timers connect 10 + neighbor 10.0.0.65 remote-as 64005 + neighbor 10.0.0.65 peer-group PEER_V4 + neighbor 10.0.0.65 description ARISTA05T0 + neighbor 10.0.0.65 timers connect 10 + neighbor 10.0.0.67 remote-as 64006 + neighbor 10.0.0.67 peer-group PEER_V4 + neighbor 10.0.0.67 description ARISTA06T0 + neighbor 10.0.0.67 timers connect 10 + neighbor 10.0.0.69 remote-as 64007 + neighbor 10.0.0.69 peer-group PEER_V4 + neighbor 10.0.0.69 description ARISTA07T0 + neighbor 10.0.0.69 timers connect 10 + neighbor 10.0.0.71 remote-as 64008 + neighbor 10.0.0.71 peer-group PEER_V4 + neighbor 10.0.0.71 description ARISTA08T0 + neighbor 10.0.0.71 timers connect 10 + neighbor 10.0.0.73 remote-as 64009 + neighbor 10.0.0.73 peer-group PEER_V4 + neighbor 10.0.0.73 description ARISTA09T0 + neighbor 10.0.0.73 timers connect 10 + neighbor 10.0.0.75 remote-as 64010 + neighbor 10.0.0.75 peer-group PEER_V4 + neighbor 10.0.0.75 description ARISTA10T0 + neighbor 10.0.0.75 timers connect 10 + neighbor 10.0.0.77 remote-as 64011 + neighbor 10.0.0.77 peer-group PEER_V4 + neighbor 10.0.0.77 description ARISTA11T0 + neighbor 10.0.0.77 timers connect 10 + neighbor 10.0.0.79 remote-as 64012 + neighbor 10.0.0.79 peer-group PEER_V4 + neighbor 10.0.0.79 description ARISTA12T0 + neighbor 10.0.0.79 timers connect 10 + neighbor 10.0.0.81 remote-as 64013 + neighbor 10.0.0.81 peer-group PEER_V4 + neighbor 10.0.0.81 description ARISTA13T0 + neighbor 10.0.0.81 timers connect 10 + neighbor 10.0.0.83 remote-as 64014 + neighbor 10.0.0.83 peer-group PEER_V4 + neighbor 10.0.0.83 description ARISTA14T0 + neighbor 10.0.0.83 timers connect 10 + neighbor 10.0.0.85 remote-as 64015 + neighbor 10.0.0.85 peer-group PEER_V4 + neighbor 10.0.0.85 description ARISTA15T0 + neighbor 10.0.0.85 timers connect 10 + neighbor 10.0.0.87 remote-as 64016 + neighbor 10.0.0.87 peer-group PEER_V4 + neighbor 10.0.0.87 description ARISTA16T0 + neighbor 10.0.0.87 timers connect 10 + neighbor 10.0.0.89 remote-as 64017 + neighbor 10.0.0.89 peer-group PEER_V4 + neighbor 10.0.0.89 description ARISTA17T0 + neighbor 10.0.0.89 timers connect 10 + neighbor 10.0.0.91 remote-as 64018 + neighbor 10.0.0.91 peer-group PEER_V4 + neighbor 10.0.0.91 description ARISTA18T0 + neighbor 10.0.0.91 timers connect 10 + neighbor 10.0.0.93 remote-as 64019 + neighbor 10.0.0.93 peer-group PEER_V4 + neighbor 10.0.0.93 description ARISTA19T0 + neighbor 10.0.0.93 timers connect 10 + neighbor 10.0.0.95 remote-as 64020 + neighbor 10.0.0.95 peer-group PEER_V4 + neighbor 10.0.0.95 description ARISTA20T0 + neighbor 10.0.0.95 timers connect 10 + neighbor 10.0.0.97 remote-as 64021 + neighbor 10.0.0.97 peer-group PEER_V4 + neighbor 10.0.0.97 description ARISTA21T0 + neighbor 10.0.0.97 timers connect 10 + neighbor 10.0.0.99 remote-as 64022 + neighbor 10.0.0.99 peer-group PEER_V4 + neighbor 10.0.0.99 description ARISTA22T0 + neighbor 10.0.0.99 timers connect 10 + neighbor 10.0.0.101 remote-as 64023 + neighbor 10.0.0.101 peer-group PEER_V4 + neighbor 10.0.0.101 description ARISTA23T0 + neighbor 10.0.0.101 timers connect 10 + neighbor 10.0.0.103 remote-as 64024 + neighbor 10.0.0.103 peer-group PEER_V4 + neighbor 10.0.0.103 description ARISTA24T0 + neighbor 10.0.0.103 timers connect 10 + neighbor 10.0.0.105 remote-as 64025 + neighbor 10.0.0.105 peer-group PEER_V4 + neighbor 10.0.0.105 description ARISTA25T0 + neighbor 10.0.0.105 timers connect 10 + neighbor 10.0.0.107 remote-as 64026 + neighbor 10.0.0.107 peer-group PEER_V4 + neighbor 10.0.0.107 description ARISTA26T0 + neighbor 10.0.0.107 timers connect 10 + neighbor 10.0.0.109 remote-as 64027 + neighbor 10.0.0.109 peer-group PEER_V4 + neighbor 10.0.0.109 description ARISTA27T0 + neighbor 10.0.0.109 timers connect 10 + neighbor 10.0.0.111 remote-as 64028 + neighbor 10.0.0.111 peer-group PEER_V4 + neighbor 10.0.0.111 description ARISTA28T0 + neighbor 10.0.0.111 timers connect 10 + ! + address-family ipv4 unicast + network 10.1.0.1/32 + neighbor PEER_V4 soft-reconfiguration inbound + neighbor PEER_V4 route-map FROM_BGP_PEER_V4 in + neighbor PEER_V4 route-map TO_BGP_PEER_V4 out + neighbor 10.0.0.1 activate + neighbor 10.0.0.3 activate + neighbor 10.0.0.5 activate + neighbor 10.0.0.7 activate + neighbor 10.0.0.9 activate + neighbor 10.0.0.11 activate + neighbor 10.0.0.13 activate + neighbor 10.0.0.15 activate + neighbor 10.0.0.17 activate + neighbor 10.0.0.19 activate + neighbor 10.0.0.21 activate + neighbor 10.0.0.23 activate + neighbor 10.0.0.25 activate + neighbor 10.0.0.27 activate + neighbor 10.0.0.29 activate + neighbor 10.0.0.31 activate + neighbor 10.0.0.33 activate + neighbor 10.0.0.35 activate + neighbor 10.0.0.37 activate + neighbor 10.0.0.39 activate + neighbor 10.0.0.41 activate + neighbor 10.0.0.43 activate + neighbor 10.0.0.45 activate + neighbor 10.0.0.47 activate + neighbor 10.0.0.49 activate + neighbor 10.0.0.51 activate + neighbor 10.0.0.53 activate + neighbor 10.0.0.55 activate + neighbor 10.0.0.57 activate + neighbor 10.0.0.59 activate + neighbor 10.0.0.61 activate + neighbor 10.0.0.63 activate + neighbor 10.0.0.65 activate + neighbor 10.0.0.67 activate + neighbor 10.0.0.69 activate + neighbor 10.0.0.71 activate + neighbor 10.0.0.73 activate + neighbor 10.0.0.75 activate + neighbor 10.0.0.77 activate + neighbor 10.0.0.79 activate + neighbor 10.0.0.81 activate + neighbor 10.0.0.83 activate + neighbor 10.0.0.85 activate + neighbor 10.0.0.87 activate + neighbor 10.0.0.89 activate + neighbor 10.0.0.91 activate + neighbor 10.0.0.93 activate + neighbor 10.0.0.95 activate + neighbor 10.0.0.97 activate + neighbor 10.0.0.99 activate + neighbor 10.0.0.101 activate + neighbor 10.0.0.103 activate + neighbor 10.0.0.105 activate + neighbor 10.0.0.107 activate + neighbor 10.0.0.109 activate + neighbor 10.0.0.111 activate + maximum-paths 64 + exit-address-family + ! + address-family ipv6 unicast + neighbor PEER_V6 soft-reconfiguration inbound + neighbor PEER_V6 route-map FROM_BGP_PEER_V6 in + neighbor PEER_V6 route-map TO_BGP_PEER_V6 out + maximum-paths 64 + exit-address-family +exit +! +ip prefix-list PL_LoopbackV4 seq 5 permit 10.1.0.1/32 +! +bgp community-list standard allow_list_default_community seq 5 permit no-export +bgp community-list standard allow_list_default_community seq 10 permit 5060:12345 +! +route-map ALLOW_LIST_DEPLOYMENT_ID_0_V4 permit 65535 + set community 5060:12345 additive +exit +! +route-map ALLOW_LIST_DEPLOYMENT_ID_0_V6 permit 65535 + set community 5060:12345 additive +exit +! +route-map FROM_BGP_PEER_V4 permit 10 + call ALLOW_LIST_DEPLOYMENT_ID_0_V4 + on-match next +exit +! +route-map FROM_BGP_PEER_V4 permit 11 + match community allow_list_default_community +exit +! +route-map FROM_BGP_PEER_V4 permit 100 +exit +! +route-map FROM_BGP_PEER_V6 permit 1 + on-match next + set ipv6 next-hop prefer-global +exit +! +route-map FROM_BGP_PEER_V6 permit 10 + call ALLOW_LIST_DEPLOYMENT_ID_0_V6 + on-match next +exit +! +route-map FROM_BGP_PEER_V6 permit 11 + match community allow_list_default_community +exit +! +route-map FROM_BGP_PEER_V6 permit 100 +exit +! +route-map TO_BGP_PEER_V4 permit 100 +exit +! +route-map TO_BGP_PEER_V6 permit 100 +exit +! +route-map RM_SET_SRC permit 10 + set src 10.1.0.1 +exit +! +ip nht resolve-via-default +! +ipv6 nht resolve-via-default +! +ip protocol bgp route-map RM_SET_SRC +! +end + diff --git a/device_configurations/network/7726-32X-O-AC-B_st01-sw100g-r01-u36_frr.conf b/device_configurations/network/7726-32X-O-AC-B_st01-sw100g-r01-u36_frr.conf index 1a1fe2fd..dc5180ac 100644 --- a/device_configurations/network/7726-32X-O-AC-B_st01-sw100g-r01-u36_frr.conf +++ b/device_configurations/network/7726-32X-O-AC-B_st01-sw100g-r01-u36_frr.conf @@ -1 +1,44 @@ -!frr version 8.1frr defaults traditionalhostname st01-sw100g-r01-u36service integrated-vtysh-config!router bgp 65501 bgp router-id 10.10.21.6 bgp log-neighbor-changes bgp always-compare-med no bgp ebgp-requires-policy neighbor leaf peer-group neighbor leaf remote-as external neighbor Ethernet104 interface peer-group leaf neighbor Ethernet108 interface peer-group leaf neighbor Ethernet112 interface peer-group leaf neighbor Ethernet116 interface peer-group leaf neighbor PortChannel1 interface remote-as 65501 ! address-family ipv4 unicast network 10.10.21.6/32 exit-address-family ! address-family ipv6 unicast network fd0c:cc24:75a0:1:10:10:21:6/128 neighbor leaf activate neighbor PortChannel1 activate exit-address-familyexit!route-map RM_SET_SRC6 permit 10 set src fd0c:cc24:75a0:1:10:10:21:6exit!route-map RM_SET_SRC permit 10 set src 10.10.21.6exit!ip protocol bgp route-map RM_SET_SRC!ipv6 protocol bgp route-map RM_SET_SRC6!end \ No newline at end of file +! +frr version 8.1 +frr defaults traditional +hostname st01-sw100g-r01-u36 +service integrated-vtysh-config +! +router bgp 65501 + bgp router-id 10.10.21.6 + bgp log-neighbor-changes + bgp always-compare-med + no bgp ebgp-requires-policy + neighbor leaf peer-group + neighbor leaf remote-as external + neighbor Ethernet104 interface peer-group leaf + neighbor Ethernet108 interface peer-group leaf + neighbor Ethernet112 interface peer-group leaf + neighbor Ethernet116 interface peer-group leaf + neighbor PortChannel1 interface remote-as 65501 + ! + address-family ipv4 unicast + network 10.10.21.6/32 + exit-address-family + ! + address-family ipv6 unicast + network fd0c:cc24:75a0:1:10:10:21:6/128 + neighbor leaf activate + neighbor PortChannel1 activate + exit-address-family +exit +! +route-map RM_SET_SRC6 permit 10 + set src fd0c:cc24:75a0:1:10:10:21:6 +exit +! +route-map RM_SET_SRC permit 10 + set src 10.10.21.6 +exit +! +ip protocol bgp route-map RM_SET_SRC +! +ipv6 protocol bgp route-map RM_SET_SRC6 +! +end + diff --git a/device_configurations/network/7726-32X-O-AC-B_st01-sw100g-r01-u37_frr.conf b/device_configurations/network/7726-32X-O-AC-B_st01-sw100g-r01-u37_frr.conf index 02f081ef..bd9cb3c6 100644 --- a/device_configurations/network/7726-32X-O-AC-B_st01-sw100g-r01-u37_frr.conf +++ b/device_configurations/network/7726-32X-O-AC-B_st01-sw100g-r01-u37_frr.conf @@ -1 +1,44 @@ -!frr version 8.1frr defaults traditionalhostname st01-sw100g-r01-u37service integrated-vtysh-config!router bgp 65501 bgp router-id 10.10.21.7 bgp log-neighbor-changes bgp always-compare-med no bgp ebgp-requires-policy neighbor leaf peer-group neighbor leaf remote-as external neighbor Ethernet104 interface peer-group leaf neighbor Ethernet108 interface peer-group leaf neighbor Ethernet112 interface peer-group leaf neighbor Ethernet116 interface peer-group leaf neighbor PortChannel1 interface remote-as 65501 ! address-family ipv4 unicast network 10.10.21.7/32 exit-address-family ! address-family ipv6 unicast network fd0c:cc24:75a0:1:10:10:21:7/128 neighbor leaf activate neighbor PortChannel1 activate exit-address-familyexit!route-map RM_SET_SRC6 permit 10 set src fd0c:cc24:75a0:1:10:10:21:7exit!route-map RM_SET_SRC permit 10 set src 10.10.21.7exit!ip protocol bgp route-map RM_SET_SRC!ipv6 protocol bgp route-map RM_SET_SRC6!end \ No newline at end of file +! +frr version 8.1 +frr defaults traditional +hostname st01-sw100g-r01-u37 +service integrated-vtysh-config +! +router bgp 65501 + bgp router-id 10.10.21.7 + bgp log-neighbor-changes + bgp always-compare-med + no bgp ebgp-requires-policy + neighbor leaf peer-group + neighbor leaf remote-as external + neighbor Ethernet104 interface peer-group leaf + neighbor Ethernet108 interface peer-group leaf + neighbor Ethernet112 interface peer-group leaf + neighbor Ethernet116 interface peer-group leaf + neighbor PortChannel1 interface remote-as 65501 + ! + address-family ipv4 unicast + network 10.10.21.7/32 + exit-address-family + ! + address-family ipv6 unicast + network fd0c:cc24:75a0:1:10:10:21:7/128 + neighbor leaf activate + neighbor PortChannel1 activate + exit-address-family +exit +! +route-map RM_SET_SRC6 permit 10 + set src fd0c:cc24:75a0:1:10:10:21:7 +exit +! +route-map RM_SET_SRC permit 10 + set src 10.10.21.7 +exit +! +ip protocol bgp route-map RM_SET_SRC +! +ipv6 protocol bgp route-map RM_SET_SRC6 +! +end + diff --git a/device_configurations/network/7726-32X-O-AC-B_st01-sw100g-r01-u41_frr.conf b/device_configurations/network/7726-32X-O-AC-B_st01-sw100g-r01-u41_frr.conf index befa7c57..947a88ce 100644 --- a/device_configurations/network/7726-32X-O-AC-B_st01-sw100g-r01-u41_frr.conf +++ b/device_configurations/network/7726-32X-O-AC-B_st01-sw100g-r01-u41_frr.conf @@ -1 +1,230 @@ -!frr version 8.5.1frr defaults traditionalhostname st01-sw100g-r01-u41log syslog informationallog facility local4fpm address 127.0.0.1no fpm use-next-hop-groupsagentxno service integrated-vtysh-config!password zebraenable password zebra!router bgp 65100 bgp router-id 10.1.0.1 bgp suppress-fib-pending bgp log-neighbor-changes no bgp ebgp-requires-policy no bgp default ipv4-unicast bgp bestpath as-path multipath-relax neighbor PEER_V4 peer-group neighbor PEER_V6 peer-group neighbor 10.0.0.1 remote-as 65200 neighbor 10.0.0.1 peer-group PEER_V4 neighbor 10.0.0.1 description ARISTA01T2 neighbor 10.0.0.1 timers connect 10 neighbor 10.0.0.3 remote-as 65200 neighbor 10.0.0.3 peer-group PEER_V4 neighbor 10.0.0.3 description ARISTA02T2 neighbor 10.0.0.3 timers connect 10 neighbor 10.0.0.5 remote-as 65200 neighbor 10.0.0.5 peer-group PEER_V4 neighbor 10.0.0.5 description ARISTA03T2 neighbor 10.0.0.5 timers connect 10 neighbor 10.0.0.7 remote-as 65200 neighbor 10.0.0.7 peer-group PEER_V4 neighbor 10.0.0.7 description ARISTA04T2 neighbor 10.0.0.7 timers connect 10 neighbor 10.0.0.9 remote-as 65200 neighbor 10.0.0.9 peer-group PEER_V4 neighbor 10.0.0.9 description ARISTA05T2 neighbor 10.0.0.9 timers connect 10 neighbor 10.0.0.11 remote-as 65200 neighbor 10.0.0.11 peer-group PEER_V4 neighbor 10.0.0.11 description ARISTA06T2 neighbor 10.0.0.11 timers connect 10 neighbor 10.0.0.13 remote-as 65200 neighbor 10.0.0.13 peer-group PEER_V4 neighbor 10.0.0.13 description ARISTA07T2 neighbor 10.0.0.13 timers connect 10 neighbor 10.0.0.15 remote-as 65200 neighbor 10.0.0.15 peer-group PEER_V4 neighbor 10.0.0.15 description ARISTA08T2 neighbor 10.0.0.15 timers connect 10 neighbor 10.0.0.17 remote-as 65200 neighbor 10.0.0.17 peer-group PEER_V4 neighbor 10.0.0.17 description ARISTA09T2 neighbor 10.0.0.17 timers connect 10 neighbor 10.0.0.19 remote-as 65200 neighbor 10.0.0.19 peer-group PEER_V4 neighbor 10.0.0.19 description ARISTA10T2 neighbor 10.0.0.19 timers connect 10 neighbor 10.0.0.21 remote-as 65200 neighbor 10.0.0.21 peer-group PEER_V4 neighbor 10.0.0.21 description ARISTA11T2 neighbor 10.0.0.21 timers connect 10 neighbor 10.0.0.23 remote-as 65200 neighbor 10.0.0.23 peer-group PEER_V4 neighbor 10.0.0.23 description ARISTA12T2 neighbor 10.0.0.23 timers connect 10 neighbor 10.0.0.25 remote-as 65200 neighbor 10.0.0.25 peer-group PEER_V4 neighbor 10.0.0.25 description ARISTA13T2 neighbor 10.0.0.25 timers connect 10 neighbor 10.0.0.27 remote-as 65200 neighbor 10.0.0.27 peer-group PEER_V4 neighbor 10.0.0.27 description ARISTA14T2 neighbor 10.0.0.27 timers connect 10 neighbor 10.0.0.29 remote-as 65200 neighbor 10.0.0.29 peer-group PEER_V4 neighbor 10.0.0.29 description ARISTA15T2 neighbor 10.0.0.29 timers connect 10 neighbor 10.0.0.31 remote-as 65200 neighbor 10.0.0.31 peer-group PEER_V4 neighbor 10.0.0.31 description ARISTA16T2 neighbor 10.0.0.31 timers connect 10 neighbor 10.0.0.33 remote-as 64001 neighbor 10.0.0.33 peer-group PEER_V4 neighbor 10.0.0.33 description ARISTA01T0 neighbor 10.0.0.33 timers connect 10 neighbor 10.0.0.35 remote-as 64002 neighbor 10.0.0.35 peer-group PEER_V4 neighbor 10.0.0.35 description ARISTA02T0 neighbor 10.0.0.35 timers connect 10 neighbor 10.0.0.37 remote-as 64003 neighbor 10.0.0.37 peer-group PEER_V4 neighbor 10.0.0.37 description ARISTA03T0 neighbor 10.0.0.37 timers connect 10 neighbor 10.0.0.39 remote-as 64004 neighbor 10.0.0.39 peer-group PEER_V4 neighbor 10.0.0.39 description ARISTA04T0 neighbor 10.0.0.39 timers connect 10 neighbor 10.0.0.41 remote-as 64005 neighbor 10.0.0.41 peer-group PEER_V4 neighbor 10.0.0.41 description ARISTA05T0 neighbor 10.0.0.41 timers connect 10 neighbor 10.0.0.43 remote-as 64006 neighbor 10.0.0.43 peer-group PEER_V4 neighbor 10.0.0.43 description ARISTA06T0 neighbor 10.0.0.43 timers connect 10 neighbor 10.0.0.45 remote-as 64007 neighbor 10.0.0.45 peer-group PEER_V4 neighbor 10.0.0.45 description ARISTA07T0 neighbor 10.0.0.45 timers connect 10 neighbor 10.0.0.47 remote-as 64008 neighbor 10.0.0.47 peer-group PEER_V4 neighbor 10.0.0.47 description ARISTA08T0 neighbor 10.0.0.47 timers connect 10 neighbor 10.0.0.53 remote-as 64011 neighbor 10.0.0.53 peer-group PEER_V4 neighbor 10.0.0.53 description ARISTA11T0 neighbor 10.0.0.53 timers connect 10 neighbor 10.0.0.55 remote-as 64012 neighbor 10.0.0.55 peer-group PEER_V4 neighbor 10.0.0.55 description ARISTA12T0 neighbor 10.0.0.55 timers connect 10 ! address-family ipv4 unicast network 10.1.0.1/32 neighbor PEER_V4 soft-reconfiguration inbound neighbor PEER_V4 route-map FROM_BGP_PEER_V4 in neighbor PEER_V4 route-map TO_BGP_PEER_V4 out neighbor 10.0.0.1 activate neighbor 10.0.0.3 activate neighbor 10.0.0.5 activate neighbor 10.0.0.7 activate neighbor 10.0.0.9 activate neighbor 10.0.0.11 activate neighbor 10.0.0.13 activate neighbor 10.0.0.15 activate neighbor 10.0.0.17 activate neighbor 10.0.0.19 activate neighbor 10.0.0.21 activate neighbor 10.0.0.23 activate neighbor 10.0.0.25 activate neighbor 10.0.0.27 activate neighbor 10.0.0.29 activate neighbor 10.0.0.31 activate neighbor 10.0.0.33 activate neighbor 10.0.0.35 activate neighbor 10.0.0.37 activate neighbor 10.0.0.39 activate neighbor 10.0.0.41 activate neighbor 10.0.0.43 activate neighbor 10.0.0.45 activate neighbor 10.0.0.47 activate neighbor 10.0.0.53 activate neighbor 10.0.0.55 activate maximum-paths 64 exit-address-family ! address-family ipv6 unicast neighbor PEER_V6 soft-reconfiguration inbound neighbor PEER_V6 route-map FROM_BGP_PEER_V6 in neighbor PEER_V6 route-map TO_BGP_PEER_V6 out maximum-paths 64 exit-address-familyexit!ip prefix-list PL_LoopbackV4 seq 5 permit 10.1.0.1/32!bgp community-list standard allow_list_default_community seq 5 permit no-exportbgp community-list standard allow_list_default_community seq 10 permit 5060:12345!route-map ALLOW_LIST_DEPLOYMENT_ID_0_V4 permit 65535 set community 5060:12345 additiveexit!route-map ALLOW_LIST_DEPLOYMENT_ID_0_V6 permit 65535 set community 5060:12345 additiveexit!route-map FROM_BGP_PEER_V4 permit 10 call ALLOW_LIST_DEPLOYMENT_ID_0_V4 on-match nextexit!route-map FROM_BGP_PEER_V4 permit 11 match community allow_list_default_communityexit!route-map FROM_BGP_PEER_V4 permit 100exit!route-map FROM_BGP_PEER_V6 permit 1 on-match next set ipv6 next-hop prefer-globalexit!route-map FROM_BGP_PEER_V6 permit 10 call ALLOW_LIST_DEPLOYMENT_ID_0_V6 on-match nextexit!route-map FROM_BGP_PEER_V6 permit 11 match community allow_list_default_communityexit!route-map FROM_BGP_PEER_V6 permit 100exit!route-map TO_BGP_PEER_V4 permit 100exit!route-map TO_BGP_PEER_V6 permit 100exit!route-map RM_SET_SRC permit 10 set src 10.1.0.1exit!ip nht resolve-via-default!ipv6 nht resolve-via-default!ip protocol bgp route-map RM_SET_SRC!end \ No newline at end of file +! +frr version 8.5.1 +frr defaults traditional +hostname st01-sw100g-r01-u41 +log syslog informational +log facility local4 +fpm address 127.0.0.1 +no fpm use-next-hop-groups +agentx +no service integrated-vtysh-config +! +password zebra +enable password zebra +! +router bgp 65100 + bgp router-id 10.1.0.1 + bgp suppress-fib-pending + bgp log-neighbor-changes + no bgp ebgp-requires-policy + no bgp default ipv4-unicast + bgp bestpath as-path multipath-relax + neighbor PEER_V4 peer-group + neighbor PEER_V6 peer-group + neighbor 10.0.0.1 remote-as 65200 + neighbor 10.0.0.1 peer-group PEER_V4 + neighbor 10.0.0.1 description ARISTA01T2 + neighbor 10.0.0.1 timers connect 10 + neighbor 10.0.0.3 remote-as 65200 + neighbor 10.0.0.3 peer-group PEER_V4 + neighbor 10.0.0.3 description ARISTA02T2 + neighbor 10.0.0.3 timers connect 10 + neighbor 10.0.0.5 remote-as 65200 + neighbor 10.0.0.5 peer-group PEER_V4 + neighbor 10.0.0.5 description ARISTA03T2 + neighbor 10.0.0.5 timers connect 10 + neighbor 10.0.0.7 remote-as 65200 + neighbor 10.0.0.7 peer-group PEER_V4 + neighbor 10.0.0.7 description ARISTA04T2 + neighbor 10.0.0.7 timers connect 10 + neighbor 10.0.0.9 remote-as 65200 + neighbor 10.0.0.9 peer-group PEER_V4 + neighbor 10.0.0.9 description ARISTA05T2 + neighbor 10.0.0.9 timers connect 10 + neighbor 10.0.0.11 remote-as 65200 + neighbor 10.0.0.11 peer-group PEER_V4 + neighbor 10.0.0.11 description ARISTA06T2 + neighbor 10.0.0.11 timers connect 10 + neighbor 10.0.0.13 remote-as 65200 + neighbor 10.0.0.13 peer-group PEER_V4 + neighbor 10.0.0.13 description ARISTA07T2 + neighbor 10.0.0.13 timers connect 10 + neighbor 10.0.0.15 remote-as 65200 + neighbor 10.0.0.15 peer-group PEER_V4 + neighbor 10.0.0.15 description ARISTA08T2 + neighbor 10.0.0.15 timers connect 10 + neighbor 10.0.0.17 remote-as 65200 + neighbor 10.0.0.17 peer-group PEER_V4 + neighbor 10.0.0.17 description ARISTA09T2 + neighbor 10.0.0.17 timers connect 10 + neighbor 10.0.0.19 remote-as 65200 + neighbor 10.0.0.19 peer-group PEER_V4 + neighbor 10.0.0.19 description ARISTA10T2 + neighbor 10.0.0.19 timers connect 10 + neighbor 10.0.0.21 remote-as 65200 + neighbor 10.0.0.21 peer-group PEER_V4 + neighbor 10.0.0.21 description ARISTA11T2 + neighbor 10.0.0.21 timers connect 10 + neighbor 10.0.0.23 remote-as 65200 + neighbor 10.0.0.23 peer-group PEER_V4 + neighbor 10.0.0.23 description ARISTA12T2 + neighbor 10.0.0.23 timers connect 10 + neighbor 10.0.0.25 remote-as 65200 + neighbor 10.0.0.25 peer-group PEER_V4 + neighbor 10.0.0.25 description ARISTA13T2 + neighbor 10.0.0.25 timers connect 10 + neighbor 10.0.0.27 remote-as 65200 + neighbor 10.0.0.27 peer-group PEER_V4 + neighbor 10.0.0.27 description ARISTA14T2 + neighbor 10.0.0.27 timers connect 10 + neighbor 10.0.0.29 remote-as 65200 + neighbor 10.0.0.29 peer-group PEER_V4 + neighbor 10.0.0.29 description ARISTA15T2 + neighbor 10.0.0.29 timers connect 10 + neighbor 10.0.0.31 remote-as 65200 + neighbor 10.0.0.31 peer-group PEER_V4 + neighbor 10.0.0.31 description ARISTA16T2 + neighbor 10.0.0.31 timers connect 10 + neighbor 10.0.0.33 remote-as 64001 + neighbor 10.0.0.33 peer-group PEER_V4 + neighbor 10.0.0.33 description ARISTA01T0 + neighbor 10.0.0.33 timers connect 10 + neighbor 10.0.0.35 remote-as 64002 + neighbor 10.0.0.35 peer-group PEER_V4 + neighbor 10.0.0.35 description ARISTA02T0 + neighbor 10.0.0.35 timers connect 10 + neighbor 10.0.0.37 remote-as 64003 + neighbor 10.0.0.37 peer-group PEER_V4 + neighbor 10.0.0.37 description ARISTA03T0 + neighbor 10.0.0.37 timers connect 10 + neighbor 10.0.0.39 remote-as 64004 + neighbor 10.0.0.39 peer-group PEER_V4 + neighbor 10.0.0.39 description ARISTA04T0 + neighbor 10.0.0.39 timers connect 10 + neighbor 10.0.0.41 remote-as 64005 + neighbor 10.0.0.41 peer-group PEER_V4 + neighbor 10.0.0.41 description ARISTA05T0 + neighbor 10.0.0.41 timers connect 10 + neighbor 10.0.0.43 remote-as 64006 + neighbor 10.0.0.43 peer-group PEER_V4 + neighbor 10.0.0.43 description ARISTA06T0 + neighbor 10.0.0.43 timers connect 10 + neighbor 10.0.0.45 remote-as 64007 + neighbor 10.0.0.45 peer-group PEER_V4 + neighbor 10.0.0.45 description ARISTA07T0 + neighbor 10.0.0.45 timers connect 10 + neighbor 10.0.0.47 remote-as 64008 + neighbor 10.0.0.47 peer-group PEER_V4 + neighbor 10.0.0.47 description ARISTA08T0 + neighbor 10.0.0.47 timers connect 10 + neighbor 10.0.0.53 remote-as 64011 + neighbor 10.0.0.53 peer-group PEER_V4 + neighbor 10.0.0.53 description ARISTA11T0 + neighbor 10.0.0.53 timers connect 10 + neighbor 10.0.0.55 remote-as 64012 + neighbor 10.0.0.55 peer-group PEER_V4 + neighbor 10.0.0.55 description ARISTA12T0 + neighbor 10.0.0.55 timers connect 10 + ! + address-family ipv4 unicast + network 10.1.0.1/32 + neighbor PEER_V4 soft-reconfiguration inbound + neighbor PEER_V4 route-map FROM_BGP_PEER_V4 in + neighbor PEER_V4 route-map TO_BGP_PEER_V4 out + neighbor 10.0.0.1 activate + neighbor 10.0.0.3 activate + neighbor 10.0.0.5 activate + neighbor 10.0.0.7 activate + neighbor 10.0.0.9 activate + neighbor 10.0.0.11 activate + neighbor 10.0.0.13 activate + neighbor 10.0.0.15 activate + neighbor 10.0.0.17 activate + neighbor 10.0.0.19 activate + neighbor 10.0.0.21 activate + neighbor 10.0.0.23 activate + neighbor 10.0.0.25 activate + neighbor 10.0.0.27 activate + neighbor 10.0.0.29 activate + neighbor 10.0.0.31 activate + neighbor 10.0.0.33 activate + neighbor 10.0.0.35 activate + neighbor 10.0.0.37 activate + neighbor 10.0.0.39 activate + neighbor 10.0.0.41 activate + neighbor 10.0.0.43 activate + neighbor 10.0.0.45 activate + neighbor 10.0.0.47 activate + neighbor 10.0.0.53 activate + neighbor 10.0.0.55 activate + maximum-paths 64 + exit-address-family + ! + address-family ipv6 unicast + neighbor PEER_V6 soft-reconfiguration inbound + neighbor PEER_V6 route-map FROM_BGP_PEER_V6 in + neighbor PEER_V6 route-map TO_BGP_PEER_V6 out + maximum-paths 64 + exit-address-family +exit +! +ip prefix-list PL_LoopbackV4 seq 5 permit 10.1.0.1/32 +! +bgp community-list standard allow_list_default_community seq 5 permit no-export +bgp community-list standard allow_list_default_community seq 10 permit 5060:12345 +! +route-map ALLOW_LIST_DEPLOYMENT_ID_0_V4 permit 65535 + set community 5060:12345 additive +exit +! +route-map ALLOW_LIST_DEPLOYMENT_ID_0_V6 permit 65535 + set community 5060:12345 additive +exit +! +route-map FROM_BGP_PEER_V4 permit 10 + call ALLOW_LIST_DEPLOYMENT_ID_0_V4 + on-match next +exit +! +route-map FROM_BGP_PEER_V4 permit 11 + match community allow_list_default_community +exit +! +route-map FROM_BGP_PEER_V4 permit 100 +exit +! +route-map FROM_BGP_PEER_V6 permit 1 + on-match next + set ipv6 next-hop prefer-global +exit +! +route-map FROM_BGP_PEER_V6 permit 10 + call ALLOW_LIST_DEPLOYMENT_ID_0_V6 + on-match next +exit +! +route-map FROM_BGP_PEER_V6 permit 11 + match community allow_list_default_community +exit +! +route-map FROM_BGP_PEER_V6 permit 100 +exit +! +route-map TO_BGP_PEER_V4 permit 100 +exit +! +route-map TO_BGP_PEER_V6 permit 100 +exit +! +route-map RM_SET_SRC permit 10 + set src 10.1.0.1 +exit +! +ip nht resolve-via-default +! +ipv6 nht resolve-via-default +! +ip protocol bgp route-map RM_SET_SRC +! +end + diff --git a/documentation/System_Network_Wireing.md b/documentation/System_Network_Wireing.md index 7bab6ecf..95a3ff70 100644 --- a/documentation/System_Network_Wireing.md +++ b/documentation/System_Network_Wireing.md @@ -44,7 +44,7 @@ | st01-sw1g-r01-u47 | Ethernet3 | st01-sw1g-r01-u32 | Ethernet0 | RJ45/1GBE | SPINE-UPSTREAM2 | | | | st01-sw1g-r01-u47 | Ethernet4 | st01-sw1g-r01-u33 | eth0 | RJ45/1GBE | OOB-MGMT | | | | st01-sw1g-r01-u47 | Ethernet5 | st01-sw1g-r01-u33 | Ethernet0 | RJ45/1GBE | SPINE-UPSTREAM2 | | | -| st01-sw1g-r01-u47 | Ethernet9 | st01-mgmt-r01-u30 | eno3 | RJ45/1GBE | OOB-MGMT | | | +| st01-sw1g-r01-u47 | Ethernet9 | st01-mgmt-r01-u30 | eno6 | RJ45/1GBE | OOB-MGMT | | | | Source | SPort | Destination | DPort | Linktype | Connection Group | IdentGroup | Description | |----------------------|---------------|---------------------|---------------|--------------|------------------|------------|----------------------------------| diff --git a/documentation/System_Networks.md b/documentation/System_Networks.md index 4b00911c..a2316e58 100644 --- a/documentation/System_Networks.md +++ b/documentation/System_Networks.md @@ -14,6 +14,18 @@ Domain nameing scheme: .landscape.sovereignit.de | mgmt | 10.10.23.0/24 | 10.10.23.1 | 23 | Out of band access for switches and servers | | lab | 10.10.24.0/24 | 10.10.24.1 | 24 | Lab Node Network | +## Reserved Adress Ranges + +The following list describes all dynamic adress ranges. +The containing ips are not statically assigned to a particular host. + +| Networkname | From | To | Description | +|---------------|---------------------|------------------|-----------------------------------------------------------| +| prod1 | 10.10.21.200 | 10.10.21.201 | Openstack API Endpoints | +| prod1 | 10.10.21.202 | 10.10.21.202 | Loadbalancer URLs, Kubernetes, Static | +| prod1 | 10.10.21.220 | 10.10.21.239 | Loadbalancer URLs, Kubernetes, Dynamic | +| mgmt | 10.10.21.240 | 10.10.21.250 | DHCP range for deployments | + ## Port Forwarding Access diff --git a/documentation/System_Runbooks.md b/documentation/System_Runbooks.md index 43e2c518..b6029fc5 100644 --- a/documentation/System_Runbooks.md +++ b/documentation/System_Runbooks.md @@ -1,10 +1,49 @@ # Runbooks of the Hardware Landscape -# Manage Access to Landscape +# How to get access -* Edit [environments/configuration.yml](../environments/configuration.yml) -* Rollout changes +# Manage SSH Access and Adminstrative Permissions + +* Clone repository and create PR +* User: Edit [environments/configuration.yml](../environments/configuration.yml) + * Add new users in `user_list` section + * Actively remove users by adding them in the `user_delete +* Admin: Rollout changes ``` + ssh scs-manager osism apply user osism apply operator ``` + +# Manage VPN Access + +* User: Clone repository and create PR +* User: Generate a keypair localally and add the public key + ``` + VPN_KEYDIR="${HOME}/.vpn/scs_hardware_landscape" + mkdir -m 0700 -p "${VPN_KEYDIR?The wireguard keydir}" + wg genkey | tee "${VPN_KEYDIR?}/wireguard_private.key" | wg pubkey > "${VPN_KEYDIR?}/wireguard_public.key" + echo "${VPN_KEYDIR?}" + cat ${VPN_KEYDIR?}/wireguard_public.key + ``` +* User: Edit [../inventory/group_vars/all.yml](../inventory/group_vars/all.yml) in section ``wireguard_users`` + * Add username (same as github handle) + * Add public key to user entry + * Remove outdated users +* Admin: Rollout changes + ``` + ssh scs-manager + osism apply wireguard -l manager + ``` +* User: Download config from the homedir of the managers and ad private key + ``` + VPN_KEYDIR="${HOME}/.vpn/scs_hardware_landscape" + scp scs-manager:wg0-*.conf ${VPN_KEYDIR?}/wg.conf + sed -i "~s,CHANGEME.*,$(cat ${VPN_KEYDIR?}/wireguard_private.key)," "${VPN_KEYDIR?}/wg.conf" + ``` +* User: Start/stop connection + ``` + sudo wg-quick up "${VPN_KEYDIR?}/wg.conf" + sudo wg-quick down "${VPN_KEYDIR?}/wg.conf" + ``` + diff --git a/documentation/assets/Network_Setup.drawio.svg b/documentation/assets/Network_Setup.drawio.svg index 5334c39e..0fe96a1b 100644 --- a/documentation/assets/Network_Setup.drawio.svg +++ b/documentation/assets/Network_Setup.drawio.svg @@ -1,4 +1,4 @@ -
100G
T25,T26
100G
T25,T26
st01-sw100g-r01-u36 (7726-32X-O-AC-B / 100G)
100G
T25,T26
100G
T25,T26
st01-sw100g-r01-u37 (7726-32X-O-AC-B / 100G)
25G
100G
Routed
100G
Routed
st01-sw25g-r01-u34 (7326-56X-O-AC-B / 25G)
100G
Routed
100G
Routed
st01-sw25g-r01-u35 (7326-56X-O-AC-B / 25G)
st01-sw10g-r01-u39 (5835-54X-O-AC-B / 10G)
100G
100G
100G
st01-sw10g-r01-u38 (5835-54X-O-AC-B / 10G)
1G
T23,T25,T26
1G
U23
1G
U23
st01-sw1g-r01-u32 (4630-54TE-O-AC-B / 1G)
1G
T23,T25,T26
1G
U23
1G
U23
st01-sw1g-r01-u33 (4630-54TE-O-AC-B / 1G)
Cloud Nodes
Cloud Nodes
Cloud Nodes
Production
25G
Routed
25G
Routed
1G (Uplink)
1G
1G
1G
U23
st01-sw1g-r01-u47 (4630-54TE-O-AC-B, 1G)
1G
st01-sw1g-r01-u42 (4630-54TE-O-AC-B / 1G)
JH Router
Serial Port
Access
Switches
st01-gw-r01-u46 (JH Jumpnode, 1G)
100G
100G
U26
1G
T26
st01-sw100g-r01-u41 (7726-32X-O-AC-B / 100G)
st01-sw25g-r01-u40 (7326-56X-O-AC-B / 25G)
100G
100G
100G
U26
1G
5 * 1G
U23
Test Host
Test Host
Test Nodes
(do not exist yet)
25G
25G
LAB ENVIRONMENT
PRODUCTIVE ENVIRONMENT
DATACENTER / RACK INFRASTRUCTURE
1G
T23,T24,
T25,T26
Aggregate the drawing of network connections (only for a better overview in the drawing)
Out of band LAN link
(direct connection to the OOB interfaces, the square is the managment port)
A regular network link
st01-sw10g-r01-u38 (4630-54TE-O-AC-B / 1G)
Network Switch
<hostname> (<Hardware Type> / <most performant network interface speed>)
(color of node provides a impression of the switch type)
1G
U23
1G
U23
st01-ctl-r01-u23 (H12SSL-CT, 25G)
System Node
<hostname> (<Hardware Type> / <most performant network interface speed>)
1G
1G
1G
U23
1G Uplink
1G
U23
25G
Routed
25G
Routed
st01-mgmt-r01-u30
(A2SDV-4C-LN8F / 25G)
Network connection with 1GBIT
and tagged VLAN23 and 25
Network connection with 25GBIT
and untagged VLAN24
1G
T23,T25
25G
U24
25G
Routed
Network connection with 25 GBIT
without VLANs, iBGP routed
"Virtual" Rack
2*100G
Routed
Port
Channel
1G
U23
Disabled
Links
"Virtual" Spine Rack
25G
Network connection with 25 GBIT
without VLANs
\ No newline at end of file +
100G
T25,T26
100G
T25,T26
st01-sw100g-r01-u36 (7726-32X-O-AC-B / 100G)
AS 65501
100G
T25,T26
100G
T25,T26
st01-sw100g-r01-u37 (7726-32X-O-AC-B / 100G)
AS 65501
25G
100G
Routed
100G
Routed
st01-sw25g-r01-u34 (7326-56X-O-AC-B / 25G)
AS 65404
100G
Routed
100G
Routed
st01-sw25g-r01-u35 (7326-56X-O-AC-B / 25G)
AS 65405
st01-sw10g-r01-u39 (5835-54X-O-AC-B / 10G)
100G
100G
100G
st01-sw10g-r01-u38 (5835-54X-O-AC-B / 10G)
1G
T23,T25,T26
1G
U23
1G
U23
st01-sw1g-r01-u32 (4630-54TE-O-AC-B / 1G)
1G
T23,T25,T26
1G
U23
1G
U23
st01-sw1g-r01-u33 (4630-54TE-O-AC-B / 1G)
Cloud Nodes
Cloud Nodes
st01-{comp,ctl, stor,mgmt}-r01-u??
AS 42100210??
25G
Routed
25G
Routed
1G (Uplink)
1G
1G
1G
U23
st01-sw1g-r01-u47 (4630-54TE-O-AC-B, 1G)
1G
st01-sw1g-r01-u42 (4630-54TE-O-AC-B / 1G)
JH Router
Serial Port
Access
Switches
st01-gw-r01-u46 (JH Jumpnode, 1G)
100G
100G
U26
1G
T26
st01-sw100g-r01-u41 (7726-32X-O-AC-B / 100G)
st01-sw25g-r01-u40 (7326-56X-O-AC-B / 25G)
100G
100G
100G
U26
1G
5 * 1G
U23
Test Host
Test Host
Test Nodes
(do not exist yet)
25G
25G
LAB ENVIRONMENT
PRODUCTIVE ENVIRONMENT
DATACENTER / RACK INFRASTRUCTURE
1G
T23,T24,
T25,T26
Aggregate the drawing of network connections (only for a better overview in the drawing)
Out of band LAN link
(direct connection to the OOB interfaces, the square is the managment port)
A regular network link
st01-sw10g-r01-u38 (4630-54TE-O-AC-B / 1G)
AS 65004
Network Switch
<hostname> (<Hardware Type> / <most performant network interface speed>)
(color of node provides a impression of the switch type)
<BGP Autonomous System>
1G
U23
1G
U23
st01-ctl-r01-u23 (H12SSL-CT, 25G)
AS 4210021011
System Node
<hostname> (<Hardware Type> / <most performant network interface speed>)
<BGP Autonomous System>
1G
1G
1G
U23
1G Uplink
1G
U23
25G
Routed
25G
Routed
st01-mgmt-r01-u30
(A2SDV-4C-LN8F / 25G)
AS 4210021010
Network connection with 1GBIT
and tagged VLAN23 and 25
Network connection with 25GBIT
and untagged VLAN24
1G
T23,T25
25G
U24
25G
Routed
Network connection with 25 GBIT
without VLANs, iBGP routed
"Virtual" Rack
2*100G
Routed
Port
Channel
1G
U23
Disabled
Links
"Virtual" Spine Rack
25G
Network connection with 25 GBIT
without VLANs
\ No newline at end of file diff --git a/documentation/devices/network/Edgecore_4630-54TE-O-AC-B.md b/documentation/devices/network/Edgecore_4630-54TE-O-AC-B.md index 9a9d54c9..52fb0756 100644 --- a/documentation/devices/network/Edgecore_4630-54TE-O-AC-B.md +++ b/documentation/devices/network/Edgecore_4630-54TE-O-AC-B.md @@ -15,10 +15,9 @@ # Hardware Overview -| Name | Serial Number | OS-Flavor | Delivery date | Management IPs/VXLANs | MGMT MAC | Serial | Comments | -|---------------------|-----------------|------------|---------------|-----------------------|-------------------|-------------|---------------------------------| -| st01-sw1g-r01-u33 | 463054TE2315074 | Enterprise | 2023-10-12 | 10.10.23.100 | d0:77:ce:2b:31:c4 | AMBOb113318 | production, mgmt | -| st01-sw1g-r01-u32 | 463054TE2315088 | Enterprise | 2023-10-12 | 10.10.23.101 | d0:77:ce:2b:3f:c4 | DXBOb113318 | Production, mgmt | -| st01-sw1g-r01-u47 | 463054TE2315093 | Enterprise | 2023-10-12 | 10.10.22.102 | d0:77:ce:2b:44:c4 | EFBGb113318 | datacenter, not final | -| st01-sw1g-r01-u42 | 463054TE2315114 | Enterprise | 2023-10-12 | 10.10.23.103 | d0:77:ce:2b:59:c4 | EGBGb113318 | lab, mgmt | - +| Name | Serial Number | OS-Flavor | Delivery date | Management IPs/VXLANs | MGMT MAC | ASN | Serial | Comments | +|---------------------|-----------------|------------|---------------|-----------------------|-------------------|-------|-------------|---------------------------------| +| st01-sw1g-r01-u33 | 463054TE2315074 | Enterprise | 2023-10-12 | 10.10.23.100 | d0:77:ce:2b:31:c4 | NONE | AMBOb113318 | production, mgmt | +| st01-sw1g-r01-u32 | 463054TE2315088 | Enterprise | 2023-10-12 | 10.10.23.101 | d0:77:ce:2b:3f:c4 | NONE | DXBOb113318 | Production, mgmt | +| st01-sw1g-r01-u47 | 463054TE2315093 | Enterprise | 2023-10-12 | 10.10.22.102 | d0:77:ce:2b:44:c4 | NONE | EFBGb113318 | datacenter, not final | +| st01-sw1g-r01-u42 | 463054TE2315114 | Enterprise | 2023-10-12 | 10.10.23.103 | d0:77:ce:2b:59:c4 | NONE | EGBGb113318 | lab, mgmt | diff --git a/documentation/devices/network/Edgecore_5835-54X-O-AC-B.md b/documentation/devices/network/Edgecore_5835-54X-O-AC-B.md index 27861842..769dec9b 100644 --- a/documentation/devices/network/Edgecore_5835-54X-O-AC-B.md +++ b/documentation/devices/network/Edgecore_5835-54X-O-AC-B.md @@ -14,7 +14,8 @@ # Hardware Overview -| Name | Serial Number | OS-Flavor | Delivery date | Management IPs/VXLANs | MGMT MAC | Serial | Comments | -|---------------------|-----------------|------------|---------------|-----------------------|-------------------|-------------|---------------------------------| -| st01-sw10g-r01-u39 | 583554X2319015 | Community | 2023-10-12 | 10.10.23.104 | d0:77:ce:70:ee:06 | DDABb113318 | sw04, lab, leaf | -| st01-sw10g-r01-u38 | 583554X2319020 | Community | 2023-10-12 | 10.10.23.105 | d0:77:ce:70:f3:06 | CZABb113318 | sw05, lab, leaf | +| Name | Serial Number | OS-Flavor | Delivery date | Management IPs/VXLANs | MGMT MAC | ASN | Serial | Comments | +|---------------------|-----------------|------------|---------------|-----------------------|-------------------|-------|-------------|---------------------------------| +| st01-sw10g-r01-u39 | 583554X2319015 | Community | 2023-10-12 | 10.10.23.104 | d0:77:ce:70:ee:06 | NONE | DDABb113318 | sw04, lab, leaf | +| st01-sw10g-r01-u38 | 583554X2319020 | Community | 2023-10-12 | 10.10.23.105 | d0:77:ce:70:f3:06 | NONE | CZABb113318 | sw05, lab, leaf | + diff --git a/documentation/devices/network/Edgecore_7326-56X-O-AC-B.md b/documentation/devices/network/Edgecore_7326-56X-O-AC-B.md index 1c67d06c..babca1d3 100644 --- a/documentation/devices/network/Edgecore_7326-56X-O-AC-B.md +++ b/documentation/devices/network/Edgecore_7326-56X-O-AC-B.md @@ -15,9 +15,9 @@ # Hardware Overview -| Name | Serial Number | OS-Flavor | Delivery date | Management IPs/VXLANs | MGMT MAC | Serial | Comments | -|---------------------|-----------------|------------|---------------|-----------------------|-------------------|-------------|--------------------------------| -| st01-sw25g-r01-u40 | 732656X2317026 | Community | 2023-10-12 | 10.10.23.106 | d0:77:ce:4b:b1:7a | DIABb113318 | sw06, lab, leaf | -| st01-sw25g-r01-u34 | 732656X2317029 | Community | 2023-10-12 | 10.10.23.107 | d0:77:ce:4b:b4:7a | CGBSb113318 | sw07, production, leaf | -| st01-sw25g-r01-u35 | 732656X2324021 | Community | 2023-10-12 | 10.10.23.108 | d0:77:ce:c1:63:80 | BSAHb113318 | sw08, production, leaf | +| Name | Serial Number | OS-Flavor | Delivery date | Management IPs/VXLANs | MGMT MAC | ASN | Serial | Comments | +|---------------------|-----------------|------------|---------------|-----------------------|-------------------|-------|-------------|--------------------------------| +| st01-sw25g-r01-u40 | 732656X2317026 | Community | 2023-10-12 | 10.10.23.106 | d0:77:ce:4b:b1:7a | NONE | DIABb113318 | sw06, lab, leaf | +| st01-sw25g-r01-u34 | 732656X2317029 | Community | 2023-10-12 | 10.10.23.107 | d0:77:ce:4b:b4:7a | 65504 | CGBSb113318 | sw07, production, leaf | +| st01-sw25g-r01-u35 | 732656X2324021 | Community | 2023-10-12 | 10.10.23.108 | d0:77:ce:c1:63:80 | 65505 | BSAHb113318 | sw08, production, leaf | diff --git a/documentation/devices/network/Edgecore_7726-32X-O-AC-B.md b/documentation/devices/network/Edgecore_7726-32X-O-AC-B.md index 36361af1..2bb399bf 100644 --- a/documentation/devices/network/Edgecore_7726-32X-O-AC-B.md +++ b/documentation/devices/network/Edgecore_7726-32X-O-AC-B.md @@ -14,8 +14,8 @@ # Hardware Overview -| Name | Serial Number | OS-Flavor | Delivery date | Management IPs/VXLANs | MGMT MAC | Serial | Comments | -|----------------------|-----------------|------------|---------------|-----------------------|-------------------|-------------|--------------------------------| -| st01-sw100g-r01-u37 | 772632X2333075 | Community | 2023-10-12 | 10.10.23.109 | 90:2d:77:58:26:50 | DEABb113318 | sw09, production, spine | -| st01-sw100g-r01-u36 | 772632X2333076 | Community | 2023-10-12 | 10.10.23.110 | 90:2d:77:58:27:50 | BCBRb113318 | sw10, production, spine | -| st01-sw100g-r01-u41 | 772632X2333077 | Community | 2023-10-12 | 10.10.23.111 | 90:2d:77:58:28:50 | EHCLb113318 | sw11, lab spine | +| Name | Serial Number | OS-Flavor | Delivery date | Management IPs/VXLANs | MGMT MAC | ASN | Serial | Comments | +|----------------------|-----------------|------------|---------------|-----------------------|-------------------|-------|-------------|--------------------------------| +| st01-sw100g-r01-u37 | 772632X2333075 | Community | 2023-10-12 | 10.10.23.109 | 90:2d:77:58:26:50 | 65501 | DEABb113318 | sw09, production, spine | +| st01-sw100g-r01-u36 | 772632X2333076 | Community | 2023-10-12 | 10.10.23.110 | 90:2d:77:58:27:50 | 65501 | BCBRb113318 | sw10, production, spine | +| st01-sw100g-r01-u41 | 772632X2333077 | Community | 2023-10-12 | 10.10.23.111 | 90:2d:77:58:28:50 | NONE | EHCLb113318 | sw11, lab spine | diff --git a/documentation/devices/servers/Supermicro_A2SDV-4C-LN8F.md b/documentation/devices/servers/Supermicro_A2SDV-4C-LN8F.md index 41454c24..8deb0177 100644 --- a/documentation/devices/servers/Supermicro_A2SDV-4C-LN8F.md +++ b/documentation/devices/servers/Supermicro_A2SDV-4C-LN8F.md @@ -27,8 +27,7 @@ # Hardware Overview -| Name | Serial Number | Delivery date | Management IP | ☰ | MGMT MAC | Node IPv4 | Node IPv6 | Comments | -|-------------------|---------------|---------------|----------------|--------------------------|-------------------|-------------|------------------------------|----------------------------| -| st01-mgmt-r01-u30 | 231205-BTO | 2023-11-29 | 10.10.23.10 | [☰](https://10.10.23.10) | ac:1f:6b:5c:54:95 | 10.10.21.10 | fd0c:cc24:75a0:1:10:10:21:10 | | -| st01-mgmt-r01-u31 | 231204-BTO | 2023-11-29 | 10.10.23.11 | [☰](https://10.10.23.11) | ac:1f:6b:5c:54:96 | 10.10.21.11 | fd0c:cc24:75a0:1:10:10:21:11 | | - +| Name | Serial Number | Delivery date | Management IP | ☰ | MGMT MAC | ASN | Node IPv4 | Node IPv6 | Comments | +|-------------------|---------------|---------------|----------------|--------------------------|-------------------|------------|-------------|------------------------------|----------------------------| +| st01-mgmt-r01-u30 | 231205-BTO | 2023-11-29 | 10.10.23.10 | [☰](https://10.10.23.10) | ac:1f:6b:5c:54:95 | 4210021010 | 10.10.21.10 | fd0c:cc24:75a0:1:10:10:21:10 | | +| st01-mgmt-r01-u31 | 231204-BTO | 2023-11-29 | 10.10.23.11 | [☰](https://10.10.23.11) | ac:1f:6b:5c:54:96 | 4210021011 | 10.10.21.11 | fd0c:cc24:75a0:1:10:10:21:11 | | diff --git a/documentation/devices/servers/Supermicro_A2SDV-8C-LN8F.md b/documentation/devices/servers/Supermicro_A2SDV-8C-LN8F.md index 327812b5..36c6e594 100644 --- a/documentation/devices/servers/Supermicro_A2SDV-8C-LN8F.md +++ b/documentation/devices/servers/Supermicro_A2SDV-8C-LN8F.md @@ -32,9 +32,8 @@ # Hardware Overview -| Name | Serial Number | Delivery date | Management IP | ☰ | MGMT MAC | Node IPv4 | Node IPv6 | Comments | -|------------------|---------------|---------------|----------------|--------------------------|-------------------|-------------|------------------------------|---------------------------------| -| st01-ctl-r01-u27 | 231206-BTO | 2023-11-29 | 10.10.23.12 | [☰](https://10.10.23.12) | 3c:ec:ef:5b:b5:b9 | 10.10.21.12 | fd0c:cc24:75a0:1:10:10:21:12 | | -| st01-ctl-r01-u28 | 231207-BTO | 2023-11-29 | 10.10.23.13 | [☰](https://10.10.23.13) | 3c:ec:ef:5b:b5:bf | 10.10.21.13 | fd0c:cc24:75a0:1:10:10:21:13 | | -| st01-ctl-r01-u29 | 231208-BTO | 2023-11-29 | 10.10.23.14 | [☰](https://10.10.23.14) | 3c:ec:ef:5b:b5:bb | 10.10.21.14 | fd0c:cc24:75a0:1:10:10:21:14 | | - +| Name | Serial Number | Delivery date | Management IP | ☰ | MGMT MAC | ASN | Node IPv4 | Node IPv6 | Comments | +|------------------|---------------|---------------|----------------|--------------------------|-------------------|------------|-------------|------------------------------|---------------------------------| +| st01-ctl-r01-u27 | 231206-BTO | 2023-11-29 | 10.10.23.12 | [☰](https://10.10.23.12) | 3c:ec:ef:5b:b5:b9 | 4210021012 | 10.10.21.12 | fd0c:cc24:75a0:1:10:10:21:12 | | +| st01-ctl-r01-u28 | 231207-BTO | 2023-11-29 | 10.10.23.13 | [☰](https://10.10.23.13) | 3c:ec:ef:5b:b5:bf | 4210021013 | 10.10.21.13 | fd0c:cc24:75a0:1:10:10:21:13 | | +| st01-ctl-r01-u29 | 231208-BTO | 2023-11-29 | 10.10.23.14 | [☰](https://10.10.23.14) | 3c:ec:ef:5b:b5:bb | 4210021014 | 10.10.21.14 | fd0c:cc24:75a0:1:10:10:21:14 | | diff --git a/documentation/devices/servers/Supermicro_ARS-110M-NR.md b/documentation/devices/servers/Supermicro_ARS-110M-NR.md index f4e8dac0..748759ee 100644 --- a/documentation/devices/servers/Supermicro_ARS-110M-NR.md +++ b/documentation/devices/servers/Supermicro_ARS-110M-NR.md @@ -36,13 +36,11 @@ # Hardware Overview -| Name | Serial Number | Delivery date | Management IP | ☰ | MGMT MAC | Node IPv4 | Node IPv6 | Comments | -|---------------------------|-----------------|---------------|----------------|--------------------------|-------------------|-------------|------------------------------|---------------------------------| -| st01-comp-r01-u21 | 240073-BTO | 2024-01-26 | 10.10.23.15 | [☰](https://10.10.23.15) | 7c:c2:55:86:36:6d | 10.10.21.15 | fd0c:cc24:75a0:1:10:10:21:15 | up to mac "7c:c2:55:86:36:6f" | -| st01-comp-r01-u22 | 240072-BTO | 2024-01-26 | 10.10.23.16 | [☰](https://10.10.23.16) | 7c:c2:55:86:38:80 | 10.10.21.16 | fd0c:cc24:75a0:1:10:10:21:16 | up to mac "7c:c2:55:86:38:82" | -| st01-comp-r01-u23 | 240071-BTO | 2024-01-26 | 10.10.23.17 | [☰](https://10.10.23.17) | 7c:c2:55:81:4a:86 | 10.10.21.17 | fd0c:cc24:75a0:1:10:10:21:17 | label does not provide that | -| st01-comp-r01-u24 | 240070-BTO | 2024-01-26 | 10.10.23.18 | [☰](https://10.10.23.18) | 7c:c2:55:86:36:cd | 10.10.21.18 | fd0c:cc24:75a0:1:10:10:21:18 | up to mac "7c:c2:55:86:36:cf" | -| st01-comp-r01-u25 | 240069-BTO | 2024-01-26 | 10.10.23.19 | [☰](https://10.10.23.19) | 7c:c2:55:86:36:c4 | 10.10.21.19 | fd0c:cc24:75a0:1:10:10:21:19 | up to mac "7c:c2:55:86:36:c6" | -| st01-comp-r01-u26 | 240068-BTO | 2024-01-26 | 10.10.23.20 | [☰](https://10.10.23.20) | 7c:c2:55:81:8c:0b | 10.10.21.20 | fd0c:cc24:75a0:1:10:10:21:20 | up to mac "7c:c2:55:81:8c:0d" | - - +| Name | Serial Number | Delivery date | Management IP | ☰ | MGMT MAC | ASN | Node IPv4 | Node IPv6 | Comments | +|---------------------------|-----------------|---------------|----------------|--------------------------|-------------------|------------|-------------|------------------------------|---------------------------------| +| st01-comp-r01-u21 | 240073-BTO | 2024-01-26 | 10.10.23.15 | [☰](https://10.10.23.15) | 7c:c2:55:86:36:6d | 4210021015 | 10.10.21.15 | fd0c:cc24:75a0:1:10:10:21:15 | up to mac "7c:c2:55:86:36:6f" | +| st01-comp-r01-u22 | 240072-BTO | 2024-01-26 | 10.10.23.16 | [☰](https://10.10.23.16) | 7c:c2:55:86:38:80 | 4210021016 | 10.10.21.16 | fd0c:cc24:75a0:1:10:10:21:16 | up to mac "7c:c2:55:86:38:82" | +| st01-comp-r01-u23 | 240071-BTO | 2024-01-26 | 10.10.23.17 | [☰](https://10.10.23.17) | 7c:c2:55:81:4a:86 | 4210021017 | 10.10.21.17 | fd0c:cc24:75a0:1:10:10:21:17 | label does not provide that | +| st01-comp-r01-u24 | 240070-BTO | 2024-01-26 | 10.10.23.18 | [☰](https://10.10.23.18) | 7c:c2:55:86:36:cd | 4210021018 | 10.10.21.18 | fd0c:cc24:75a0:1:10:10:21:18 | up to mac "7c:c2:55:86:36:cf" | +| st01-comp-r01-u25 | 240069-BTO | 2024-01-26 | 10.10.23.19 | [☰](https://10.10.23.19) | 7c:c2:55:86:36:c4 | 4210021019 | 10.10.21.19 | fd0c:cc24:75a0:1:10:10:21:19 | up to mac "7c:c2:55:86:36:c6" | +| st01-comp-r01-u26 | 240068-BTO | 2024-01-26 | 10.10.23.20 | [☰](https://10.10.23.20) | 7c:c2:55:81:8c:0b | 4210021020 | 10.10.21.20 | fd0c:cc24:75a0:1:10:10:21:20 | up to mac "7c:c2:55:81:8c:0d" | diff --git a/documentation/devices/servers/Supermicro_H12SSL-CT.md b/documentation/devices/servers/Supermicro_H12SSL-CT.md index 8c61305c..498ca874 100644 --- a/documentation/devices/servers/Supermicro_H12SSL-CT.md +++ b/documentation/devices/servers/Supermicro_H12SSL-CT.md @@ -28,9 +28,9 @@ # Hardware Overview -| Name | Serial Number | Delivery date | Management IPs | ☰ | MGMT MAC | Node IPv4 | Node IPv6 | Comments | -|---------------------------|-----------------|---------------|----------------|--------------------------|-------------------|-------------|------------------------------|-------------------------------------| -| st01-stor-r01-u01 | 231212-BTO | 2023-11-27 | 10.10.23.21 | [☰](https://10.10.23.21) | 3c:ec:ef:9e:d1:1a | 10.10.21.21 | fd0c:cc24:75a0:1:10:10:21:21 | | -| st01-stor-r01-u03 | 231211-BTO | 2023-11-27 | 10.10.23.22 | [☰](https://10.10.23.22) | 3c:ec:ef:94:94:f4 | 10.10.21.22 | fd0c:cc24:75a0:1:10:10:21:22 | | -| st01-stor-r01-u05 | 231210-BTO | 2023-11-27 | 10.10.23.23 | [☰](https://10.10.23.23) | 3c:ec:ef:9e:d0:9b | 10.10.21.23 | fd0c:cc24:75a0:1:10:10:21:23 | | -| st01-stor-r01-u07 | 231209-BTO | 2023-11-27 | 10.10.23.24 | [☰](https://10.10.23.24) | 3c:ec:ef:9b:12:cb | 10.10.21.24 | fd0c:cc24:75a0:1:10:10:21:24 | | +| Name | Serial Number | Delivery date | Management IPs | ☰ | MGMT MAC | ASN | Node IPv4 | Node IPv6 | Comments | +|---------------------------|-----------------|---------------|----------------|--------------------------|-------------------|------------|-------------|------------------------------|-------------------------------------| +| st01-stor-r01-u01 | 231212-BTO | 2023-11-27 | 10.10.23.21 | [☰](https://10.10.23.21) | 3c:ec:ef:9e:d1:1a | 4210021021 | 10.10.21.21 | fd0c:cc24:75a0:1:10:10:21:21 | | +| st01-stor-r01-u03 | 231211-BTO | 2023-11-27 | 10.10.23.22 | [☰](https://10.10.23.22) | 3c:ec:ef:94:94:f4 | 4210021022 | 10.10.21.22 | fd0c:cc24:75a0:1:10:10:21:22 | | +| st01-stor-r01-u05 | 231210-BTO | 2023-11-27 | 10.10.23.23 | [☰](https://10.10.23.23) | 3c:ec:ef:9e:d0:9b | 4210021023 | 10.10.21.23 | fd0c:cc24:75a0:1:10:10:21:23 | | +| st01-stor-r01-u07 | 231209-BTO | 2023-11-27 | 10.10.23.24 | [☰](https://10.10.23.24) | 3c:ec:ef:9b:12:cb | 4210021024 | 10.10.21.24 | fd0c:cc24:75a0:1:10:10:21:24 | | diff --git a/documentation/devices/servers/Supermicro_H12SSL-NT.md b/documentation/devices/servers/Supermicro_H12SSL-NT.md index a6b68627..ac776262 100644 --- a/documentation/devices/servers/Supermicro_H12SSL-NT.md +++ b/documentation/devices/servers/Supermicro_H12SSL-NT.md @@ -28,11 +28,11 @@ # Hardware Overview -| Name | Serial Number | Delivery date | Management IP | ☰ | MGMT MAC | Node IPv4 | Node IPv6 | Comments | -|---------------------------|-----------------|---------------|----------------|--------------------------|--------------------|-------------|-----------|------------------|---------------------------------| -| st01-comp-r01-u09 | 231214-BTO | 2023-11-27 | 10.10.23.25 | [☰](https://10.10.23.25) | 3c:ec:ef:9f:e2:40 | 10.10.21.25 | fd0c:cc24:75a0:1:10:10:21:25 | | -| st01-comp-r01-u11 | 231215-BTO | 2023-11-27 | 10.10.23.26 | [☰](https://10.10.23.26) | 3c:ec:ef:9f:e2:4e | 10.10.21.26 | fd0c:cc24:75a0:1:10:10:21:26 | | -| st01-comp-r01-u13 | 231218-BTO | 2023-11-27 | 10.10.23.27 | [☰](https://10.10.23.27) | 3c:ec:ef:9f:e2:2f | 10.10.21.27 | fd0c:cc24:75a0:1:10:10:21:27 | | -| st01-comp-r01-u15 | 231216-BTO | 2023-11-27 | 10.10.23.28 | [☰](https://10.10.23.28) | 3c:ec:ef:9f:e2:0c | 10.10.21.28 | fd0c:cc24:75a0:1:10:10:21:28 | | -| st01-comp-r01-u17 | 231217-BTO | 2023-11-27 | 10.10.23.29 | [☰](https://10.10.23.29) | 3c:ec:ef:9f:e1:d1 | 10.10.21.29 | fd0c:cc24:75a0:1:10:10:21:29 | | -| st01-comp-r01-u19 | 231213-BTO | 2023-11-27 | 10.10.23.30 | [☰](https://10.10.23.30) | 3c:ec:ef:9f:e2:6b | 10.10.21.30 | fd0c:cc24:75a0:1:10:10:21:30 | | +| Name | Serial Number | Delivery date | Management IP | ☰ | MGMT MAC | ASN | Node IPv4 | Node IPv6 | Comments | +|---------------------------|-----------------|---------------|----------------|--------------------------|--------------------|------------|-------------|-----------|------------------|---------------------------------| +| st01-comp-r01-u09 | 231214-BTO | 2023-11-27 | 10.10.23.25 | [☰](https://10.10.23.25) | 3c:ec:ef:9f:e2:40 | 4210021025 | 10.10.21.25 | fd0c:cc24:75a0:1:10:10:21:25 | | +| st01-comp-r01-u11 | 231215-BTO | 2023-11-27 | 10.10.23.26 | [☰](https://10.10.23.26) | 3c:ec:ef:9f:e2:4e | 4210021026 | 10.10.21.26 | fd0c:cc24:75a0:1:10:10:21:26 | | +| st01-comp-r01-u13 | 231218-BTO | 2023-11-27 | 10.10.23.27 | [☰](https://10.10.23.27) | 3c:ec:ef:9f:e2:2f | 4210021027 | 10.10.21.27 | fd0c:cc24:75a0:1:10:10:21:27 | | +| st01-comp-r01-u15 | 231216-BTO | 2023-11-27 | 10.10.23.28 | [☰](https://10.10.23.28) | 3c:ec:ef:9f:e2:0c | 4210021028 | 10.10.21.28 | fd0c:cc24:75a0:1:10:10:21:28 | | +| st01-comp-r01-u17 | 231217-BTO | 2023-11-27 | 10.10.23.29 | [☰](https://10.10.23.29) | 3c:ec:ef:9f:e1:d1 | 4210021029 | 10.10.21.29 | fd0c:cc24:75a0:1:10:10:21:29 | | +| st01-comp-r01-u19 | 231213-BTO | 2023-11-27 | 10.10.23.30 | [☰](https://10.10.23.30) | 3c:ec:ef:9f:e2:6b | 4210021030 | 10.10.21.30 | fd0c:cc24:75a0:1:10:10:21:30 | | diff --git a/environments/.vault_pass b/environments/.vault_pass old mode 100755 new mode 100644 diff --git a/environments/configuration.yml b/environments/configuration.yml index 16080cd4..ee2f710d 100644 --- a/environments/configuration.yml +++ b/environments/configuration.yml @@ -13,10 +13,16 @@ docker_proxy_http: "http://{{ groups['manager'][0] }}:8888" docker_proxy_https: "http://{{ groups['manager'][0] }}:8888" # apt -proxy_proxies: +proxy_proxies: http: "http://{{ groups['manager'][0] }}:8888" https: "http://{{ groups['manager'][0] }}:8888" +# Needed by the Kubernetes Play +proxy_env: + HTTP_PROXY: "http://{{ groups['manager'][0] }}:8888" + HTTPS_PROXY: "http://{{ groups['manager'][0] }}:8888" + NO_PROXY: "*.int1.landscape.sovereignit.de,*.landscape.sovereignit.de,10.10.21.0/24" + ########################################################## # proxy/server @@ -34,7 +40,9 @@ squid_tag: edge motd_show_ssh: true network_interface: dummy0 -osism_setup_gather_subset: custom +#osism_setup_gather_subset: +# - "!network-switches" +# - "!dhcp-static-nodes" management_domain: mgmt.sovereignit.de management_gw: 10.10.23.254 @@ -49,6 +57,13 @@ dnscrypt_cloaks: - "api-int.int1.landscape.sovereignit.de 10.10.21.200" - "api.int1.landscape.sovereignit.de 10.10.21.201" +############################ +# kubernetes - K3s configuration +apiserver_endpoint: "10.10.21.202" +metal_lb_ip_range: "10.10.21.220-10.10.21.239" + +#metal_lb_type: "frr" +#metal_lb_mode: "bgp" ########################## # docker @@ -62,11 +77,15 @@ operator_user: dragon operator_groups: [ "dragon", "adm", "sudo", "docker", "dialout" ] user_sudoers_type: "user" +# Do not add users here, because they are deleted enirely +# please add state=absent to the users to be deleted in user_list to +# have proper numeric uid management and to not delete relevant files +# If you really want to delete a user add remove=true and force=true to the user. user_delete: - - name: "osism" + - "osism" user_list: - # The user gets a password because this is sometimes useful on the bmc console + # The user gets a password because this is sometimes useful on the bmc console # for debugging in exceptional problem situations where "dragon" is not usable. # (i.e. extremly high load, sudo configuration and file system status of /home) # The system will not provide root login by ssh. @@ -98,6 +117,7 @@ user_list: key: "github" primary_group: dragon uid: 45004 + #state: absent groups: - docker - dialout @@ -105,6 +125,7 @@ user_list: key: "github" primary_group: dragon uid: 45005 + #state: absent groups: - docker - dialout @@ -163,16 +184,6 @@ operator_authorized_keys: - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDTMjccqOa268YWdqAhP9awmMtjey/MK92gl+IwpQbxxsEW/HM/EKPGQnF0+7lD6G1W2IqJnFTM5fgWjAmIfzGeR3ySjJDlaQtZdiMHk5YR7VrgRot0odlGZpkkkJnK88xDVYqkq3xmJx39DTF8sKxfWThc1eu5c7Ws7hIvDCvFu4I5w+iPB4R2eycw//A1q3hutagyghJAXad46PgBmu1kODwQG3+sPqNyb4ruh0ODDbSlBZ1XIW4TgaYce5tR8ABlVvASafhZOw3CNK9rThhU4IG3IHvqCsGax269WrIGvSWIkI4EKjvFAEyshOcBsGwjaxm9GxrJLBLpyMVds/Rn3vu4JmupJJFHnWtEyQY6pd77TKyatRcZFjDXrGTPtiHCaMLG49RXvoeHIebjPB3bHqVWJSK5c81oSQwPZTxze5jY2LQOHmpBQ6D2l+5lkzgTQiF3EL7gD6m5Wweht++gQHJ+PnsCkaMZzoT1VdIGrzMO6Tf4O1WTQGkuD/9YtaM=" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIACLmNpHitBkZGVbWAFxZjUATNvLjSktAKwokFIQ9Z1k" -########################## -# resolvconf - -resolvconf_nameserver: - - 10.10.21.10 - - 10.10.21.11 - - 8.8.8.8 - - 9.9.9.9 -resolvconf_search: int1.landscape.sovereignit.de - ########################## # hosts diff --git a/environments/custom/playbook-scs_all_nodes.yml b/environments/custom/playbook-scs_all_nodes.yml index af819c84..9c90bf77 100644 --- a/environments/custom/playbook-scs_all_nodes.yml +++ b/environments/custom/playbook-scs_all_nodes.yml @@ -1,6 +1,6 @@ --- - name: Assign roles to all hosts - hosts: all + hosts: generic become: true roles: - scs-landscape-nodes diff --git a/environments/custom/playbook-scs_check_ntp.yml b/environments/custom/playbook-scs_check_ntp.yml index 3cb06d36..78b11ee8 100644 --- a/environments/custom/playbook-scs_check_ntp.yml +++ b/environments/custom/playbook-scs_check_ntp.yml @@ -1,6 +1,6 @@ --- - name: Check the state of all ntp daemons - hosts: all + hosts: generic gather_facts: no become: yes tasks: diff --git a/environments/custom/playbook-scs_infra.yml b/environments/custom/playbook-scs_infra.yml index 983aee7e..0d5a1fce 100644 --- a/environments/custom/playbook-scs_infra.yml +++ b/environments/custom/playbook-scs_infra.yml @@ -11,12 +11,17 @@ - scs-mgr-httpd - scs-mgr-tinyproxy - scs-dnscrypt + - wireguard - name: Assign roles to bastion hosts - hosts: bastion + hosts: manager-infra become: true roles: - - osism.services.squid - osism.commons.motd - scs-landscape-nodes + - scs-mgr-dhcpd + - scs-landscape-nodes + - scs-mgr-tinyproxy + - scs-dnscrypt + - wireguard diff --git a/environments/custom/playbook-scs_set_time_initial.yml b/environments/custom/playbook-scs_set_time_initial.yml index 38b3773a..25dfb7f4 100644 --- a/environments/custom/playbook-scs_set_time_initial.yml +++ b/environments/custom/playbook-scs_set_time_initial.yml @@ -1,6 +1,6 @@ --- - name: Synchronize date/time across remote hosts for an inital installation - hosts: all + hosts: generic gather_facts: no become: yes tasks: diff --git a/environments/custom/playbook-test.yml b/environments/custom/playbook-test.yml index cd78751d..715b607a 100644 --- a/environments/custom/playbook-test.yml +++ b/environments/custom/playbook-test.yml @@ -3,5 +3,5 @@ hosts: manager become: false roles: - - scs-mgr-dhcpd + - scs-landscape-nodes diff --git a/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_add_nftables_rules.sh b/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_add_nftables_rules.sh new file mode 100755 index 00000000..c6802ce7 --- /dev/null +++ b/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_add_nftables_rules.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +add_rule(){ + local POS_WANTED="$1" + local RULE="$2" + local RULE_MARKER="$3" + local RULE_EXISTS="false" + local OUTDATED_RULES_HANDLES="" + + while read RULE_HANDL POS; + do + if ( [ "$POS" = "${POS_WANTED}" ] && [ "$1" != "force" ] );then + RULE_EXISTS="true" + else + OUTDATED_RULES_HANDLES="$RULE_HANDL $OUTDATED_RULES_HANDLES" + fi + done < <(nft -a list chain nat POSTROUTING|awk -v "marker=$RULE_MARKER" ' + BEGIN{ pos=-1; } + $0 ~ marker {printf("%s %s\n",$(NF),pos); } + /# handle [0-9][0-9]*/{ pos++; }' + ) + + if ( [ "$FORCE" = "force" ] || [ "$RULE_EXISTS" != "true" ] );then + echo "adding rule to position ${POS_WANTED}"|logger -s -t scs_add_netfilter_rules + nft insert rule "ip nat POSTROUTING position ${POS_WANTED} limit rate 30/minute log prefix $RULE_MARKER $RULE" + else + echo "rule already on position ${POS_WANTED}"|logger -s -t scs_add_netfilter_rules + fi + + + for RULE_HANDL in $OUTDATED_RULES_HANDLES; + do + echo "removing handle $RULE_HANDL"|logger -s -t scs_add_netfilter_rules + nft delete rule nat POSTROUTING handle $RULE_HANDL + done +} + +FORCE="${1:-add}" + +add_rule 0 'ip saddr { 172.31.100.0/23, 10.10.1.0/24 } ip daddr 10.10.21.0/24 snat to 10.10.21.10' SCS-MASQINT +add_rule 1 'ip saddr { 172.31.100.0/23, 10.10.1.0/24 } ip daddr 10.10.23.0/24 snat to 10.10.23.254' SCS_MASQMGMT diff --git a/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_check_chrony.sh b/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_check_chrony.sh new file mode 100755 index 00000000..42de3fe6 --- /dev/null +++ b/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_check_chrony.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +if [ -z "$2" ];then + echo "$0 min_servers diff_in_sec" + exit 1 +fi + +min_servers="${1:-3}" +max_diff="${2:-0.01}" + +result="$(chronyc tracking 2>&1)" +ret="$?" +if [ "$ret" != "0" ];then + echo "ERROR: >>>$result<<<" >&2 + exit 1 +fi + +chronyc -c tracking|awk -F, -v "diff_in_sec=${max_diff}" '{abs_val = ($5 >= 0) ? $5 : -$5; if (abs_val > diff_in_sec){exit 1}else{exit 0}}' +ret="$?" +if [ "$ret" != "0" ];then + echo "ERROR: time diff to high (>$max_diff)" >&2 + chronyc tracking >&2 + exit 2 +fi + +chronyc -c sources|awk -F, -v "min_servers=$min_servers" '$2 ~ /\+|*/ {count=count+1}END{if (count >= min_servers){exit 0}else{exit 1}}' +ret="$?" +if [ "$ret" != "0" ];then + echo "ERROR: not enough active servers (<$min_servers)" >&2 + chronyc sources >&2 + exit 2 +fi + +echo "OK" +exit 1 + diff --git a/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_fix_permissions.sh b/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_fix_permissions.sh new file mode 100755 index 00000000..4bcca6b0 --- /dev/null +++ b/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_fix_permissions.sh @@ -0,0 +1,14 @@ +#!/bin/bash +set -x + +fix_perm(){ + sudo find $1 -type d -exec chmod 770 {} + + sudo find $1 -type f -exec chmod 660 {} + + sudo find $1 -type f \( -name "*.sh" -or -name "*_ctl" -or -path "*/venv/bin/*" \) -exec chmod 770 {} + + sudo find $1 -exec chown dragon:dragon {} + +} + +fix_perm /usr/local/scripts +fix_perm /opt/configuration +git config --global --add safe.directory /opt/configuration + diff --git a/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_profile.sh b/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_profile.sh new file mode 100755 index 00000000..c279ae6b --- /dev/null +++ b/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_profile.sh @@ -0,0 +1,83 @@ +umask 0007 + + +__lazy_load_completion(){ + if [ "$1" = "kubectl" ] && ! type -t __start_kubectl &>/dev/null ;then + logger -t bashrc "init kubectl completion" + source <(kubectl completion bash) + elif [ "$1" = "stern" ] && ! type -t __start_stern &>/dev/null ;then + logger -t bashrc "init stern completion" + source <(stern --completion=bash) + elif [ "$1" = "helm" ] && ! type -t __start_helm &>/dev/null ;then + logger -t bashrc "init helm completion" + source <(helm completion bash) + fi +} + + +KUBE_CONFIG_HASH="" +KUBE_CONFIG_PROMPT="" + +get_prompt_kubernetes(){ + + local kube_config="$HOME/.kube/config" + if ! (type -a kubectl &>/dev/null) || ! [[ -f $kube_config ]] ;then + return 0 + fi + + local kube_current_config_hash="$(md5sum "$kube_config")" + + if [[ -z "$KUBE_CONFIG_HASH" ]] || [[ "$KUBE_CONFIG_HASH" != "$kube_current_config_hash" ]];then + local kube_access_current="$(kubectl config view --minify --output 'jsonpath={.current-context}%s{..namespace}' 2>/dev/null)" + if [[ "${kube_access_current}" =~ 'prod' ]];then + KUBE_CONFIG_PROMPT="$(printf " $kube_access_current" "🔥")" + else + KUBE_CONFIG_PROMPT="$(printf " $kube_access_current" "⚡")" + fi + export KUBE_CONFIG_PROMPT + export KUBE_CONFIG_HASH="$kube_current_config_hash" + fi + echo -n "$KUBE_CONFIG_PROMPT" +} + +get_git_prompt(){ + local the_branch="$(git branch 2>/dev/null | awk '/^\*/{print $2}')" + if [[ -n "$the_branch" ]];then + echo -e -n "\\E[3m [${the_branch}] \\E[23m "; + fi +} + + +get_error_prompt(){ + local code="$1" + if [[ $code != 0 ]];then + printf '\e[1;31m%-6s\e[m' "ERR $code" + fi +} + + +if [ -f "${KUBECONFIG:-$HOME/.kube/config}" ] && (type -t kubectl &>/dev/null) ;then + complete -F __lazy_load_completion kubectl +fi + +if type -t stern &>/dev/null;then + #source <(stern --completion=bash) + complete -F __lazy_load_completion stern +fi + +if type -t helm &>/dev/null;then + #source <(helm completion bash) + complete -F __lazy_load_completion helm +fi + + + +if [[ "${TERM}" =~ xterm|linux ]];then + export PS1='$(get_error_prompt $?)\[\e[32m\]\u@\H(\D{%Y-%m-%d} \t)\[\e[31m\]$(get_prompt_kubernetes)\[\e[33m\] \w\[\e[0m\]$(get_git_prompt) \n\$ \[\e]2;\H \w\a\]' +fi + +if [ -d /opt/configuration ];then + cd /opt/configuration +fi + +export PATH="/usr/local/scripts:$PATH" diff --git a/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_remove_ceph_vgs.sh b/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_remove_ceph_vgs.sh new file mode 100755 index 00000000..190c0098 --- /dev/null +++ b/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_remove_ceph_vgs.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +for vg in $(vgs | awk '$1 ~ /^ceph-/ {print $1}'); do + echo "** VOLUME GROUP ${vg}" + echo + echo "Deactivate all logical volumes in the volume group ${vg}" + + lvchange -an ${vg} + if [ "$?" != "0" ];then + echo "NOT SUCCESFUL" + exit 1 + fi + + echo "Remove all logical volumes in the volume group ${vg}" + for lv in $(lvs --noheadings -o lv_name ${vg}); do + echo " -> Remove volume ${vg}/${lv}" + lvremove -f ${vg}/${lv} + done + + echo "Remove the volume group ${vg}" + vgremove -f ${vg} +done + diff --git a/environments/custom/roles/scs-landscape-nodes/tasks/main.yml b/environments/custom/roles/scs-landscape-nodes/tasks/main.yml index b72ebac4..a26e10f3 100644 --- a/environments/custom/roles/scs-landscape-nodes/tasks/main.yml +++ b/environments/custom/roles/scs-landscape-nodes/tasks/main.yml @@ -1,7 +1,7 @@ - name: Setup Manager include_tasks: "{{ item }}" loop: + - scripts.yml - vim.yml - packages.yml - - scripts.yml diff --git a/environments/custom/roles/scs-landscape-nodes/tasks/packages.yml b/environments/custom/roles/scs-landscape-nodes/tasks/packages.yml index dbe65611..5fc572f5 100644 --- a/environments/custom/roles/scs-landscape-nodes/tasks/packages.yml +++ b/environments/custom/roles/scs-landscape-nodes/tasks/packages.yml @@ -1,11 +1,9 @@ --- # https://www.brendangregg.com/blog/2024-03-24/linux-crisis-tools.html -- name: Update the apt package index - apt: - update_cache: yes - - name: Install required packages + become: true apt: + update_cache: yes name: - procps - util-linux diff --git a/environments/custom/roles/scs-landscape-nodes/tasks/scripts.yml b/environments/custom/roles/scs-landscape-nodes/tasks/scripts.yml index 82064c61..e1048214 100644 --- a/environments/custom/roles/scs-landscape-nodes/tasks/scripts.yml +++ b/environments/custom/roles/scs-landscape-nodes/tasks/scripts.yml @@ -1,30 +1,29 @@ -- name: Create ceph wrapper - when: "'ceph-control' in group_names" - tags: scripts - copy: - dest: /usr/local/bin/ceph - mode: 0755 - owner: root - group: users - content: | - #!/bin/bash - - CONTAINER_ID=$(docker ps --filter "name=ceph-mon-" --format \{\{.ID\}\} | head -n 1) - - if [ -z "$CONTAINER_ID" ]; then - echo "No container found with a name starting with 'ceph-mon-'." - exit 1 - fi - - docker exec -it "$CONTAINER_ID" /usr/bin/ceph --cluster ceph $@ +- name: Remove ceph wrapper + become: yes + file: + path: /usr/local/bin/ceph + state: absent - name: Synchronize all scs helper scripts - become: false + become: yes tags: scripts synchronize: src: "{{ role_path }}/files/scripts/" - dest: /home/dragon/scripts + dest: /usr/local/scripts owner: false delete: true dirs: true +- name: Set permisssions for /usr/local/scripts and /opt/configuration + become: yes + shell: | + /bin/bash /usr/local/scripts/scs_fix_permissions.sh + args: + executable: /bin/bash + +- name: Create symbolic link to scs profile + become: yes + file: + src: /usr/local/scripts/scs_profile.sh + dest: /etc/profile.d/Z99-scs-env.sh + state: link diff --git a/environments/manager/configuration.yml b/environments/manager/configuration.yml index a69e6b07..810eea4a 100644 --- a/environments/manager/configuration.yml +++ b/environments/manager/configuration.yml @@ -64,4 +64,4 @@ configuration_git_protocol: ssh configuration_git_repository: SovereignCloudStack/hardware-landscape configuration_git_username: git -configuration_git_version: upgrade-7-0-5 +configuration_git_version: rework-post7-0-5 diff --git a/environments/secrets.yml b/environments/secrets.yml index 706c506f..9b509a1a 100644 --- a/environments/secrets.yml +++ b/environments/secrets.yml @@ -1,442 +1,432 @@ $ANSIBLE_VAULT;1.1;AES256 -65653538383762666434326539386233633966623665643636663331636161393831663164363131 -3430393565643261633737643563613435616135316436370a323433346333353166323138633039 -61636234666263333333633036383139633362363432383135656531653862313230333337346438 -3062316463663761330a313562336530663064646636363362336637313362643733373430383539 -36363630323331373939633962333763613935396531373136306632343132346435666538303665 -38616563323438383032663161653365346363373032353234636538393764393734396365306261 -66633931343062383464333365373839343937633232646664623933356565343366366165303966 -39366266306438653630373063613862376561656130346166663739336633383865643261333230 -65653032643932373635616365363236396335643135613534656231333366636239376334333264 -38396631326631633761353535646265326466383739366164323133336437383937376435396335 -33333336386262386534643466653135323338373930386539636462643832333333323433323532 -65336130653133643361613366343433306638333537396131383338333666613636313862626234 -32396565336237383135326462376565323231633237323264336664396136613766663938326135 -39303738356432323163623462613539366338306438363065363235373139616234323765303566 -64343665366434616238663139363864353638636134333365636365633431333033303732313135 -62336532616635373264643530366536646562643662393964343764303666633935363539616331 -30306466383163393431353866373933616131366638386230363733316133376232613735356336 -37303962656366616536633264323234646161623037636533643334326138653935363835346337 -39623538386565353535386137643031336162363162326665616634353338373261653037613961 -32326563653439313834656563373338313966396339323965656162646239643361616465353137 -32356634383537656262383139376133633362626264313163653037326532616238353838303930 -31316534393936343762326363383263623730323537356138393330303039353231373831303565 -38333661343236623461316263313131303631376637303033316532303339373639653232383964 -35313662366166313865636663376337663230323436383233303865343761363964346662323762 -66303466366435373636373562326162353630663039653537666461613232633563373734356639 -33646636626465656262646230663036643365346362656134343264643034633835336331316233 -36613036663838646538363236333263633966303235316136303231346366653235613239313332 -66656231333661643462336631636430373735363239613130333262396535386131316339656334 -39343563623465393964313638666339383337333734303230366136303139613631313332313334 -65633864613139643365366232326338666666623536386165353939316336323038353338313166 -37333331623731633766323465316663366635363438323966306533613739613261396461656532 -37623932326632633938633238326663363334656235626163623739336365386361633333653563 -62376130626536313833336330633362336662393366313439373638396338373839643837393734 -62643235626334376461356330393630636462316138306234646636643933376234363935356132 -61386437353066613431396264363266613735396132666637626466653466373534333565383363 -31633565353438626530613830323335313037326666363332303334313036663166383338356665 -31666235383933643134393331616434353133636539663333376262343833376234306562636230 -35343563616432393637656431656331626265383435653165663932623665363830383431316432 -65366566356430643261613931326139636464613436643062356531653833626236386130316335 -31666162353432326331653535643335353036313463363664626335363234626265313331643161 -39396130613637646161343634613638393266383134343939303066653839363165623331643262 -32646362616134326232383330656439333039636461376564393664633861656164613733313664 -30616436373032343638646330376664626637386665326364636366666236383735653936373339 -66346664336638626364386630333338613634306532306164623138336438326534616637636333 -37623466633962356633663830663538366136393131303161393339656439613534346630396334 -39376233643764303536383266373565613662643431663666613830653561666363393232363935 -36386562643631323966616465343861363937333733373130623966643831326161646431656331 -35356262393038643336303332633838366561363566393061356237643063653066663063623763 -61376432393566313461396537633266326337366363616633376362623330366461653435633864 -63656663623363336136623031613364333936313630626131643864346535623364383934633062 -37636332633434316636616434633432336463323263323437323065383738633537336263653335 -38623961653062383866393230623734623837643734326131336461333366353036393538366235 -66363832333037336335323633646333623537636237373034393361363262353230633562323464 -38373734613834613431306539386332626461303537346338653739346432376362363064323031 -65303938396436633436303663393263326566336533373731313664346463623062613232316430 -64656665383139326266323662316632666165626135653230376162663637623830396130316436 -39363235303166616264383534303735353236393861396634303134663665336664636431626363 -63363139626334643933356637636564653766623234643135343165396430323938393931643332 -35363338323864356439323835323139666336303165653163303063333339326364313733333739 -38616461386639623439633061633162623866343065393037316136303764303935626162366461 -36326636316238633636366564393061313834303662623130383436376161383064366465323830 -36653938636330346265336432346266633663333963326663666635356430386131616636353832 -62323735623962616138303730653865363932393434636232323430303430386362353935313539 -34383565333533656537623931373762323063303561643163643333643964396561636362636465 -35656439356630613030393536356635633837373539333438316466366133373765643633383165 -62666534333938656662353365303065373634366239353435343166386635303339666338353635 -62623233316362633064656264616136343736343432323537353864343566633530353335363261 -66323830373863353463343030393835343039366365656337306130663363366130383766343037 -36303161363832366336363133343532356639356264346132323537373737613963663638373039 -36653539386338363136633534326336656337373939396366643266623335323734643463653763 -38623964363739336331383932316232356164393034646633316130623339306435613038306236 -61623932373838313164333130323838636531663932323334633961663530353334353761663134 -31326364323233646331326661373532353531393834666430646439616539643366373736333331 -63633939653065393261653832356561653463336639383638343932383364323432663237336165 -62663737353037306432383661386366373939646431313835306536653734613934346237303338 -62396333356666653061366631316235633531333839386530643030386136386535633135303261 -38646236643036336364663362636464626166663830393931633638653265373366303532646333 -39346463396436363736346134626637323461326236646332313465353664613839306538323830 -37396362656463336164656637343261343235373435353162353631393135643931343666326562 -31616636386237366164626162366232346239373361613162326430613531613562666430346435 -37396566373230353163313539306130353265653663326163616365396264386531343565393565 -35616165383866643061303735306164376133613631613039356565623037333636333533383235 -66636434373962306361323866336634656230633465323139633831653364303434313363643835 -63326139306237396364656366383439643532653231613863303939356135386339363530313231 -37373964653062373265643739653535383933353430396632363332336562303162333234386334 -65373539666638343736343633326264336230343836613466393965653266306264386430376163 -34326634313964323662373134356431653965323234383639333339303162313833646366613732 -37653364646233313261623935653165383531643933343637363364343832323162626237646361 -62626661313932613764386532626336633330396439646239363935663839636464613832393961 -39326237393466636263393037623833623935373537313563356566303639653238333434633435 -37623234666365666436306662313361353931643332373538396432366162353934306337636434 -35353239376432653666643038623764376335393264383739373632363233316533306261653866 -32326466656166623032353935363262643630353131666137323538383766613835303066383937 -63363662333036313634623063366331663935336362346536363437383663336532666132623235 -35303165653830656537333761353266366638353432333231613232616636363539353336626238 -30313233303530343634633838356265303161326531636137383935616463316231383231363331 -64393132643938303532326432303732656637393162643933653963623930353334343666613239 -61343837336433393631623732383664323332613762393563313165393635303039346539393337 -62663031643438383439356536316538396435336130333763656133303664616533383632303065 -62386233343437373664383636363832653836356162373836303531366332653339633833396464 -38383631393233386235383764356665623136323561333631386536353933306165666430366437 -36343461366261393235333834643762363037653430363330303239353531303832343538363164 -66623264643462326562613562636235383164323064666431396663653061316364393632383832 -39323634663364336634306463323166353030383265623333353235643530323834323037376631 -32393433343865306237316565633139643937303936346336383834393666306336353133333337 -35656164626233373530333938396464363661333965313139326537313832353262643764373861 -30353833383232373961666434353962646430613663386634316430373235633837663935326166 -65306362336431323839333234363162356532623536613236663535326661363330343131343830 -35616462663466373466613961373665643436303965356538333237353666666664363130383436 -33356565393337656230623164306332373839373533636161646433643932663766376264666235 -63306163633834386165336131336366613139663333333263343065303466653830626236313435 -66366536393338393031653739323836333461393434393664353239666231653839393733326661 -62656563613964356235336531316437343235363039646665366237633937343762303637306236 -30623264656134306562353432633965396137363061636339323333373831366533313833633737 -66363932343039326531313133313234303030653766323831653731323337313364643434623363 -63333662366531623665373638363733353230373130663862363334643432346665616461393533 -64386563616330656634386163303736386562623130336561613866303630353936613538386332 -37653139376637376534323761313239336135666233343766363039613031383933613134343630 -35303332303463373037353834383739333561623566366566303666323061636438663132303266 -64616237366261633531646431333638616330376564313761653966373634326530383738636465 -37373861623632363732353235366634333230653037663162316434343636663239303036346638 -63623534636166346630626166613335323262323066363337653735633266396434633738656561 -39633632303234356262616237306666386362363664343233323137366539663261653539343438 -65633239353533643137346465313264383566646531636162663464623630353262303038633136 -31623739316330303666333934303562616234663137333039633236663538646338326531303632 -35646462633761313461623463623137333636316537646166366330623935393035316234353065 -62313861643965643139646130396435323562326535346238353763353532323662633162353534 -35346261363536376336383761326239636232393831366633363237396431666333383866326534 -34333737336236653734343065333264336632656136663138393439353238643036623766616361 -30343564346361376664343765623161336665386561653039653337336362366332323463353532 -36303563636530303465396665386231333165356163313264373361643263343533346538623239 -63633534326236623433363934313063333731633933626239636661626530633166313263613732 -35653737376433303135616631306363366237613637343530626535333366656562626363636134 -32313936323338396366316637663537623739383230376334383162663434623731656532636534 -61646237636636643234326162393464326661386663386632353731636165343333303736646564 -66326263393337373736383531366666393334323839653765326235323766303533366630646233 -32366361666632623333363833343233303132646365633230626366353362663937663030353839 -31353432393139363366386231323263343037616334333239303466613132366636303533396564 -64313061353964653665376331393235663339333235393939373737343737613666633563376131 -63316538663337303866303964366532363139656534613864663238636139643962346231343366 -34383035376239306132653131633837343861626336396561386635623261386531333738663630 -35326530363632313661386133303731383266633330306135373134313363356166383863663862 -63346331626162623266333536393639646635633336323832313632333334373563353033643834 -38653638393337643263366232656539343464316639343937316236623732663166623836386537 -33386237393532366234366266303636386139363239333439373237353865323431313238393634 -65376665636666633833316530366263316630356661313432376662626333346133376432653265 -61623835386136313138306435386565663035613538633432356432656430356636373238666137 -32613662333333363464386634393164656164373931646337383832303139326437643134383461 -35396335346566303435646562356462373861623462643235333936626431306563396432386136 -32306265373439646664303261396235383333326537623733623664613238303635326236653166 -39623064396466393266663336376564316164313564626665386261616633383733646537323238 -35366363613239333837303134613032333035663835333833386333323638306437636133663934 -62343339656339663336653261663234343536633435343664326438326162323439316432626437 -65323730326435623065393432363961326462333731663664663762376138333937633466363138 -62613961353462313733326164656335383539613966333561623261313938313636353966653038 -31623335346263326566633662383431333763613561316435333130393033366432643233373834 -66643466323061653737353630633164356537663831613864613636613034396562316538656265 -36336664336135346234343030633339333436303232633038343363363561376461616633396465 -63333037393663343265316331353962366662613963633232333961613436333330323961323961 -64643731626464633732653637646330393134346630623466616438386539326331316162633138 -63316330656436653362326531656335343031333634636265336166633638373931366464623131 -34666563326534343037363638323533323637323937636631396236653163623961663064613036 -35346434383433323663366431373764386233366239613561653239666234623135323534313936 -65333630303465323561343133353137646530303838306663376463306333366431623262306261 -38373562666361303332646632616365306665656430363638613434323066323063646330643931 -32663033336266613632303163326237303032666364333266356332323765363766316537363639 -62653230333032346332646433343830333639393865306237643535346462303839306464373663 -63663735373035633233393466653737353264366566663335623664323863343639313262356164 -36393663363461646630623638303938383531386232323066366662376535656238653336646266 -39636164376234376131646361346131323761666533623636363638303039363465373735626234 -65316232613265383864636539663633623264303930346264343561343433643863643933663663 -36366131373530613436623331333939656361356133363134346633353537656362356539633835 -64363163313033663565333462646633626665366664343930303863353361333030643366316665 -36666130653035636666616362633865343338373662313065373965626330666539633762396564 -31383537613666663664313933363436623030663431306434346632623662366463333163663864 -66623762623835336562393664616435636265613862333765343666326163393935363563663332 -66363666646662623635353932656230656437393764303335373536383037383935333539626662 -33353831313765646538303035636366363036663632336432303832656564623634646631633264 -38316561383461366566336338323633613266333564626334643061613336363262336338316265 -34323337383464616337303734376437646235366663326235653036626533363233323365303862 -32663230363331323165623833306163666133343538376534613332363938313339313834356332 -31656531663966656234303762343035383131333533316336306433383532306633363635643964 -33643738373638376366336661626333656533303339303838306436363031663430393230326663 -39303738356563623432653264383261613266386136396330356165633133393938386466313631 -64346530343066383366626539656539393332303830356434393137313164356566623334386162 -31306338333635303034636561383730646562383939653637373331336230353161373339373133 -34356636346363343634633931376266393165396333393866396639353934376338636437643661 -31393932336264303536643537376563353230323565373433323361386562663962333363653762 -38316433343337323032303736626366313365326130666563386466326233376134366638373266 -34373139623136626437666165333865633834656632646237656466663835316166633466376630 -64363435393365303831653837626439303163373831363037323261353130393730353439333036 -64653534393637623139303964353662666333663939373866626161663765363736363830353936 -37633835353430366333366437333333353365363338346237633434326166653563396234303432 -61643434353131336566376463353136666563353339306335303765653132633936396339643236 -39373733346133393638653237363665353465663537333937316130396235666631643364376565 -34373065313963363535626235333135653430613135653663653833653665613636323537363732 -62373163643666356633303132656433373762636637373938633065396333353930353034356538 -39376532386534323333616566306236633030376635663730616632626238383231363361313231 -37376264353539326139356334626437343930663535373762383263623661636263356630346566 -35326535656133333337396531653630326130383263633938666666373035363464333865376463 -39323139616239373663333534353361393339373565323466366461613439666430393963616661 -62653232656562656534633666393962643431383437636165323934623433346339383935626237 -37623034666263356336353733353634653430666538326539316563653864363037666263313033 -35613136376566623632313634343530383064363231626164303534616364613561353863653466 -38323361623638653964363162626439343934343961616465643064626364613638643433323334 -33363965313039356133613765653836366633653036343033656434386563663131303732643362 -38323234376566393864333466373764373566616335653037626638373064353233353530313330 -66343431663732653364313134313831323737626564636265383763356664643164333036643236 -35306665633962663031373732363033383734323534393865373432663963383961386666373763 -64366363383531663366633031646364633435613939363131376632383636383730393131613365 -62653237613261666432663437636239356333353938393062376465393837386434336662363830 -30646462363031346234393930626136333132393666346266356164323431363263666663326165 -31376462353739663365323731636138666135623763613432333336656265636266323834316631 -64303866623966613536343838393462336664613535366534306531333836663665373431623331 -62383663643633613230326561663465656332656335656333333661343032653433376466373764 -37613130626462343731613233393136306566663330363030666437323235616333383165346661 -32306335333733636462393435346130303735626362613761366462393563643231623239383437 -35303230623830643364633332623431313439383737356364646166633566333833626261326136 -32626232633035643362376566383765323735316464326133613333643236363638643535383033 -35313734616466666665333665653436636439623266336234303662663765316435333135643738 -36343538373333363730616562636238336333333434313133356561643432653534306430323563 -37336333383162613032373735616266373163343937646538313834333465373130363133353338 -32343461366166316238343931383464643933326434386462313730616638383061303334383433 -66343035393562396132666331636637373062363138323763636637393664393634376563373262 -30613437326463663266343933663438323163626430366136653764663730363565393661303063 -30633732343232303564613338353466656162313333633566373665316235666136626531346634 -64353563356539326262343563633439376263323638343761353166623935343531653136633432 -39646161373061323264353838353932396536613139356465336463396664333365323631393965 -65343933306539326161363637323239626232383263386435653931626266663035623034323635 -61356132653764383332613962656664353763653666396133303734616538316239633966643137 -39663631313034623032646430303734383065303635653539353536346264333163393237626364 -36303033626334336163323536373833393133626534323765386235323733303831393461313961 -34326466396636343966363864376433356663663431663231633261313562613330373834303530 -61323632356164366132656564646232323563653864326637643039663539373537613464366137 -31306264303563323639343533316337373065383339343763363736636163383736373734363536 -33353866373030303934623764653363343262363231633763306232623435366264353536656636 -64386332363666313239316165316166393533626464656364343661636631373333613765636366 -63393132626137633833333631353235326563643534646365653333333262343063326137356134 -39636461663730656235663633613964353566373939383435366439613231653461313732346163 -39303934383532663638306666623937376631663837353662663438386135306236303862373062 -33356131343339386462393230386334666430396465306666306266616139306431386464333562 -32633261636633636265346164656236313830363033666262663965396263376331386335393330 -34666663353266343765316163623361643163663932326237363134363432653161613233366261 -34303137386564653231313630313562633366336236353339643338373037653066393530383636 -37386635613830393137353161323739306364373964353134313932666162333239386566306463 -31663863306439623636386232373836313736623365636335663462393465343265646136336465 -38666631626661343831643938353639616662326637346165363035376338313230336437373337 -34633833666661396665323332323062636466393431643461613866623431633131323939653434 -35353733633138653966663534623833306635313638663961393233373463363031653838343238 -63393138383464373630636562633037653130383136343836326539333739646361313562376436 -64613535613865343661333032643733336261353730303061326232366538303331623534353834 -39313865393933373936663261663363383736613130353637653337306130373735313165333231 -32323465663139646639396262306661666263356233346562333365386164663138386332646339 -62373039336433303961666436393563643837323864643031363038366537666333373462323933 -34306434316162666363303064353136363130383235646633636234363633383131633866313461 -34613961633164633938663430613638656563663336326235313734623935333830646362373735 -62303665303837613430373462323138316332356363396538323936666130373536663832396261 -38363264646431643936396363386230646337366265356432363732656230373131623164386337 -33323764313062323633646531336265626430393131303238653937336636343438326231383363 -66663432313530316638356262363639346433323765366261636430393936626534383563636332 -34616266383534336233616632636536666136313438373638353430323530616366376161623636 -31373139656363633461643966306538356334393733636235356537383639663730313031623332 -31306566323965356164356561643963313666306363396636316262386236353161346361646162 -61643038383831393736653535353534636566356338643666373563653334623061303434633637 -63636430623235633039623663316139396530333932643162666233653861373237326339383436 -33633938343237623338353931336166343665353662373038656163636361336430613838663936 -35613764353930303363336261386233626566633030633437623832643732636362663439373339 -30306433386537353166623233313266303638396664323139663561356537316137333234383831 -37646634663165646363333134653430346632346335356337343030373863326338396264366631 -30303362633535303631623463636462653662343462646465626539393833623232613064303839 -36363633613836343233376465303832363865636566633163363830353339333330613164343663 -30643438383937313334636566653333306533393635336135653334326362373830333162653732 -63383763646537643432623164353032636464303264666261306364396135393863666333303133 -65373663643234343165353034646163646364643330366235323232366163313832346666346432 -31663062383735366639353031633262653466626136383230376334656230353335333231633862 -34623062393130636661643236356536366534383033626662393834313431666635313065313336 -31326361326363343331333633643739303066383236316363623633656361383362613965363837 -33626433643761363262303965353330316336663966333166663932626135376338343961353035 -63326137656232633832376564653432346539636662646334353634353138363766636166316332 -66643864323338346135366139353634343562613330363635633165636335313233643034623064 -64323361636434633263393534386565326634616365313062613539616231353838366162383564 -32366164623331666566666663373836383465386235366334653663306330363438623466376463 -31316533386334633536353766356234383464333239616136386136613730383932623864613261 -31623731363164363032323364303338636262333633303131623366633165623836616165306331 -30303537653836636539643931646137623063663966373035623036613138653266646437323337 -65636466633930636566323837643765323033636339663935393731306634313261303434643339 -35393738663061373062643939626335306161616666613262356162643433323732383036653461 -33313336376162393165323066613966393062616534376433653336323931613637373862653863 -61326230366238343966633132386530333531336531656239356430643332393039386462313233 -39393535646366616164396139653531643637646666623739333034633465353036643161633233 -31653362363461646638346434353538346238303637373463393263623234616265303937366461 -65303032633739653037316563663261323234636233326534363239333933386331346233333563 -34613239343966336464336164666566363336626533646661613262353333633464373462643166 -30353631393236316238313062356439633765616137396363653533653436333535366465636464 -64663262393133393934663564626265363537313435336537393161646537616437376338656164 -34363636373061383731636136353761653639383130613236326430393165383765383131366533 -32363937623832366265643763386339326432623037326535643431656365316335343036376133 -30336264633863663033323732636330663066643838353933353135646138636335333838336131 -63393930356237613137643737346563343334646131316237366233343937643432656231366138 -34323364663964623832373434316433653161336165393362613561386161316336366435623335 -32653763626636303264636339613463356463333761623833646439326161663834303534353362 -30613032633136313338626335643036643266626130656533356465326166633462656635346562 -35353933346134636664396639313665366532336132376236616237376163386434333664386632 -65656632656339376330366564376563393137383435616561326631663363626534333430323135 -36613530373262323266373665646530623565316531643635363031383532666430316630666364 -31336133633238323039383332323232636531316663653835363364313631313038613136666431 -33383362613931333264663166626265343032303231623636613937393534326632636432666532 -61313936633265363561643134303962626435653638626261636566356463336562666637633366 -38626439653464343631336533663231343130623536636638333232656365306536306665623761 -38616634616537366337333734643736346635373633326464623962373432633163373039383065 -64323263326534336239643431343631663932623332386662656239623065336432303635386631 -33376563613834306235383233336530376537643939643433386435656535633162643139376363 -66373737623465666630653431333065363439303362666533646161653863313735363162373066 -65383835363630663438373735326465363738383961616466343066386661656162373566333437 -63386138323963323462663234373737313833356663656339376334626331356332333439393063 -34633466653436313464643639383832373138303630663132306666393434383931366563626337 -30663738333436396431383932316466623332616439363564363762633362646637633564613333 -61373933393064303532323335323030616632343761633630323637393439336632313066346564 -31396437393565366135386637633266653433313063376235306365343837333065316334383665 -64346139353035653262633065383436653366333966376263323166303664376462326439333930 -33383035633937366130363137643333303630656130653335623763636462653035343863653031 -61656432303965356234376235386666653631326433343663396639323832626166396565393531 -62613530386133323430346634643435386235643232383132386236666261663833613231303031 -33386339653262336135663362366435356163663166393063303833646632306438656338363564 -64363666343338333936356637393231333464343430626564666433303636316538623264636566 -30616331653561326539316134353762633765353461303465373332326265333261613466666334 -39643638363763356161383661323462393966363238356362376231303638653466333262363335 -36613731386232653532643365303566396561323863323532626564323263376663656566343633 -33646264356665623162623533353239613337376364376130653830633962303730613332333338 -38376564663366353130336666356563333835343565636364323536386262393538323162366636 -39393236386332353461373063666634333961616337376262313831363531393638316435663361 -63633732663330643566613831333036346162336266663639643532366233616330643534613533 -30346530336137363832396363306564366362333135653037613131623434323330383639383733 -36366164653631373630623836383266636562333030613337646330313939343038643939623062 -37626538626433326134633234613664613331396566363762383836633863613835303436383332 -38376434346466303532356261323830323565353132323434303439633831336130636531336562 -64303632356437316265376531373161346334636439363439336535393036313739363839613034 -32616238383666343033633738303237643631643937316136353362336133643065373830353366 -64353734623961336335346536663235373661353065366535633539313030366566363061323237 -64383164303566653263356663646334386266626536636263626331613938373337636465616362 -64633561373930643362356566623861613066366335316431656137626437326461303436343830 -30646336323733376536633734383537316265353465316437363033626438383266316131636334 -35373563646533386531303937626533366437333863356633626234396231323064333164636139 -39353565616337383263643830366432643761643836356631323165386236653330396465313764 -38313933653734623961343563353033376538643764363534326264626230393365643761343464 -33386436386565306135393066666266636665613931333334343132343263356663356366616536 -30376364623264336530333631393561326261306334386639303439316334376165636639343265 -39653931643933353062313034376636386635366239386331326661343436366561353031653933 -31386532396466383532636662656466346163386265366330316533353939613463306361396335 -31313934643037343064386466343630353735353266326131383830613230313337333566373138 -32383239323438373666303164386137626231653766643434656634386632643036636138623965 -38636263313764383339303033323531373066333065653664393938656333313935393336336364 -64306538643264333862643938343839633063353833303239643265366439343637656435336364 -31663031303563393137356362646532353431333239346339346439383365626634613165373366 -35656462356566646163303966386533346263346438613835373733363130636330396432626561 -37323730656338393530623461303866323165646233396135363730663137336533303037396637 -31333138366663366365306239653461326131353834636566323634353139643064643438646239 -34316562303037316131613363356432393362636363633737646365363039376635363832336530 -64663435316330656466656365393663316130653732666265623063313034366531383063616465 -36363233393039346530636238623564383538363666326237396163643564313162373736313636 -35303066663031313366333865313130646365343438373638313461323333343830663066613337 -33343261616665346336333336666238626566643062383961636234663562643062613630356361 -64366534313631623039346436623238383165363865643233656236626237626262393965343465 -38366462383538643765666565653164633537616233613538373839303065323938663437656561 -30373634343839666137656466383465663735336432326230616562626662613931386361636463 -61656634653935646566393537633631306238373262313565376432663239333561626232386162 -35323633346666366635336439313733653230396363333832663165343666376265343733303231 -36663939656234343039383833653965666661343365383133386333653338663564373836303431 -65396263663261376362323637646635373735383037323662373237643037346532393737316264 -37656432393365326230396662316664336339353539313232363262393536316332626637333264 -32303438333165373436343235363735663664633533323962623765623631626664663534353930 -33316538663632353463333135363662313536326362386431343635613431666566663136326339 -66643663653630643863323262346639626538636665636639353932316235653336663366376238 -66656639666365373632333139616437623230333666393532666130313737353437626565313535 -38646365356433353433393230326262626433366137316535336338306265343864353961376662 -38633732363832636234666335323631346432663633346232356362363139656633386464303734 -32663365313833383730353761303037643531366536656635623335343066653934616637343635 -34653863393262616434613265643962386365366536656436353065393363646365623266613937 -36636333653039313831616466353130633537303137613631656234393762393761343430663336 -33353634653163373636613633623539646165313237353037616638666135616632306630653838 -64376161356465643639323336623834616235323337346338336237303536663365326365393433 -62653734333662343165306661386564356362313864333366313564653263633461663737646638 -37323262306662366466353133396663313165613636656362353538646635613230316130386239 -36663162376666313236363332346463623531376632363832383465616165326166653039363137 -30373764653834626535303538353363363562316562356430643763646538333434333732376138 -30353232646165616237633634646462376666336337333861656666353761613731343134366431 -33653765323634666532336262666630336638373837616564396466383463323934363565613833 -64616135626431376564313261643934336632393439653961623831386665633834373363316363 -35313533323637663535323263373735343766616535313031396630643237343837643065393539 -31306639336636313732633139343066626134643463353234316239316435313230623132336539 -34366463643763363261393566393135633736383130393839366330643865323362313937383533 -63396334623262666335633931646237633165653864323639336330336565353165643563633334 -63353734646661663231623739616361306262366165303164343361386435383739623739303734 -38616636313332396235363465343165393564363938616439633166326236666433663437363436 -32623338616130663265623864343839663038313738303433393037386665373761323831666234 -38333965643231333432376565366532393665393530663231636466386636366262363839303330 -35326464386132373535323233666666346565333161396132336333303365643439356363623337 -66303238613662653462396361336565343366666433353236653332623861393637323864653266 -33393237333562623230616138616538343433343562613632386261363764666135373162383961 -63663361656237396535646530643833633632666235393333336261643131633732613462383163 -32663265393834656532323264313437326339356462616334653837623432666366383936303332 -33633162306339313535656136313064303230666635326433333165363866393130383434363133 -65343931633137366333313263336234626231316265646538393864393838333537636262366465 -63333536316637646164343037616630323531396564383330353433623133313633373061333035 -66376331353365366561666161643762663837613933353035613930323365353239323336626636 -66343734373236666430323633663462343066646131333336343265353638633166396130323937 -31393763333934623332666266393330393431343133633064626533336431336236663464363137 -30396435663734383736666331626339663736303034343633626665613464666632356265626131 -66373630643637383063343531653639656138393234366365633037303231353633316561346330 -37303964303832383333316336323736656434373830383131343830393335643638336432626238 -35336632356366396234303264323166303039366631313761333037303239316135386334633036 -32323330376364323531616339306264386633616434663963366231383362386438626165323638 -39383230343763656265636234623565323237363734646633636136353631303835653136616239 -39343030343061643935646133386433306533363466373932663537643435646234343163653864 -33653933323664646335333230303161636666643738363464636530326239323231636630326561 -39383533656239303430646162663339653637666636346165313932383734383630393966323038 -35666634366237626136613634383931306338646530343161346661356135373062633834336533 -31653739656662646131633161343365663638363863653337316134363866383337336439656632 -37306262396265636363393639396563343439313861643637313138653433333763376561666165 -36646166363866353362646165656639303335316236383639653935303661623066663539303736 -65666232613663333262643066326666353662303833656337633464646138643166663365346632 -61323939356237303636383037653539376265316333613838643431353463366562396137643564 -64373034353635643136346438396565616139376361646334376361633230313563393037383766 -38323033353332616162353132333566343336373831633939633231623036313235663065623661 -31636361633335356162316161346339353539383336393630306132616336316665336134313034 -37363430326264376136653433336564316337656463383233333561303563306465633166313461 -64376633646265663436636365366631613832313939666165643466376266616531346261373039 -30313661353330626335343663346462653438336436323134386335626264623266656436383639 -63326461343836376133343038393531663166616638316338393766303062633937393664356134 -30363163623935303133303936613561353765393138366138343539366666656465353138376130 -36613762613239356438323162666436666266613533356561396361303164303766646663393838 -30643831316562663765383462393561653931666136613262636138623461363738656466383934 -32613061346334363933636631353931633336353132653538653339346434376436646134643130 -62366465353264646438643030326638663332393666346530383931366234303030383538643034 -34393962643138376230383930336363393734326636633238623237313766623330356632393266 -31363666306334663061336133613262336333623830663262616239303731346138376263626132 -66356334356564376137386261353238353564316135326264623663666335323935303532643165 -30396265643631373636303532623765336539376164623866383964646233333464323665633064 -36616263643363306166346561626234316265633165396437393132383262363566326634363337 -65643734336461343535366336353662653563613934353339313232653266313830396133383061 -6333 +36326134623334373933336137343439663137346264323131663330653839613739366637646136 +6134633165636465326132386632353261376438313738650a613666633765316336623865656464 +66386637373536616339303564666565376233356337366438623065336131383636373761386466 +6262323736643739380a383063646333363730353930643137613636666238626138383564663738 +62653363636535376366363235326236653762393835643666666436326138343037373061363836 +30363038313338393966383739373934376635636631623735333830666435396464393863636661 +33666335353335366235623766343766366565643466363034643164663738633834356538373265 +62633634633034313638303933653233623332326233623231313538623937643534363731306139 +39653535623232633264643733373666386631343863376163366362333630383736306264323435 +38323334396135313461366363643035366662653632373062636537356566393538323061306666 +35353564656664336231373131613831393662623537306236646363376535373934636363323230 +62366261613661303065363761366261656539313464343162363736386162396233353339383262 +39333132323266353739633835653464386530313433636437636463626165313763613935323130 +38316263303437666231353364333065306664666435666232343262323137326135613433303138 +38613031373661623562326462396162326462353934356631613736333431313339386136373335 +31393131663833373565326661656231316336393764636438386234666438393839393731316135 +66343338656439663732353565663063346637326435393062663139383366313734313835313862 +63376135616436356361666239343232613438656339626136656566616262663065633232623739 +66353838653038383432336361636230303339616639306161356134623230356232326434616231 +32396234643638633337623162623536326231353261663665613335653937383866343434303338 +61313232636263383065656666353937626131663266663035623032663863343962653732633962 +61663866373862363836336164623663313730393863336365353938336435623032346363363134 +32356165636635623130386664623962636232646366343033643931343137393436336266666566 +61613132633636306631396365343937383832366363616233363930646530326464323437313839 +34383066616464333861616339366236636434303332363762613331356333646639663236346238 +64626662323766313466323932656139643235373139343434336337396138363362393931386230 +61356338616231386264613266663537306330393361376335373335663264303265383937663139 +33646464333730333936333535353032303734363431386464366435643039656531636138626137 +35363733346433666637336466333438343133323032353961383835356466343361666233626338 +63643738383334373037646537646132363639346639636331383239383132636261643163386132 +65363065663935306662343731346661646562303662303437383839303035313764386438623834 +66336139313331643938316530623566333861363462623966336133636564316565383736643763 +32626135353339383662326363303735313837623437363061643235316263663665636131653639 +33336666313237623064663564323232303165623633373463333431326262316534373330653861 +63386363636361353964313531643465346432623464616232396137363435653262333933623662 +35663261646337336562663361613866316334643239623439386233663538383563373261383933 +32646437316566316539363664326636653835316336663964373538383236303937656661643936 +65363565316561633730656334666661326264323034613436366437383065643430353564393639 +62663363393736396562623665303233356639393234316433373831393562373531396562623438 +35383761303535393561343661663932666266383637646464343133393433393233333938646564 +63636334343235643631613634393332666338386465306638336362623562666266303833343039 +63653561646537613933386230643264613833376330373866653937626331343233363165333030 +66383436613864623937373633633235346163333830306564383562396438353237383531643163 +61323265343066366264656335356665306331346561396665653063303664353266333464353064 +62623735656265633661396234363365616661303933663863643830613430303738363334333436 +62353066313730366238643830313636653066653161333130323063653062356137646433313633 +37636265313536353533623930643131633966363764323836323162656632396661373139333839 +33666239643764653236373064653037386532303265336562336136366262656364383534366430 +38316534303838323337316463656663353566613738383433633161643564353536616466313036 +33316561613938353566303933643532326630663437373439373365363765626362656533326539 +34393334386434643363663563633538356639323238636535366536333939666262376137343062 +39666466303766393239623061663137326430656465636235343061653461353264633966353366 +32303430633532653437376362336663333165393062376264613930336461336433316234396633 +38623163656564356366303430396663306666666631323134383864313639373835656662356233 +37623331363163636466666663616633346538636135376562633837653239343037356465326363 +37633630346238646632326433393264386464343833353530396532613666313138393732633536 +62653962386163666463363736656533623265373038376465366362323736306564313062663036 +63306465316533366638363434316538626637613237323334633833666563336334383333333536 +38346432666466396330636536623964306439386435623432643565313439333231613133353163 +39373838303665373563303433346630363738313365666231383764343031363664316639386630 +65333436383362303262343538623463363133363239333634653861323163326336663336666533 +37373333336166386233393438643132346539376262383266653562303037396538633163353538 +35363831323937306262653837383565343462373332666436306335636132383661653238393039 +63636333383366613065376430663331323062656134383031333164633739356562373762616238 +61363239613737396434383662303864623661663730616132326239383930326162616131306563 +33353362336431386465623364383932336438373235313439353431333365363933633136333664 +33303930643931663830613930343137346433396266663439626638323332616639366131306636 +34343932663363323765386264666665393231656639353562393335313032396637376233613030 +61353762623037663533363733333134666132623866333736346239396333653430646165346365 +37386461313330616336323961346232323061323564373064656566663337663139633938303533 +39393235323234666239643833616237663964646533323362636561633034653162346465386632 +63316261616435343332613331313732633638363733323435343233636439383766613563663236 +34373635613563333263353533333033636533323731633661633661613738373433623165303130 +64343939633139383165623065383836303234633866623865633762633032663661623961663334 +39613963303834306235383332643663653331353034326637323331366438373264613131623337 +37663363316161623734666265333039336333346233646236366137666431643431393261656630 +35323038343566313463373034313961613861363239393131353362663565303534353262313463 +32313232303462373834363730376637653065303265306439316339643564626363386665646639 +30336361363739383931633030646361623866653462353962643162393537623339633966636330 +39306639623638343665633262613063643338616564653064333034623261316563366164376665 +31313463313033306434623732376464343634326330326263643464646135386539343433356465 +61646531313739376532383063343431303338376161373436653833303830666361393830626636 +38383661306436396438646130343433353834396534333834393264366134393032643938613938 +33393066346661343137393161643861356164356561333464666530616234366161666238643630 +33306238346233666365636433363266646432393534313765663563376533313035356162303630 +34333137313465323735393763316361323462633337623732316536653832393238366361626230 +35336239663632333262383464663930326438633264633663366661613731336430656337313537 +65343034353463396137373163353337633561656466383361383238643333333161386636653738 +38323861646366323538643864623931306562373962613436656461313732363439303063626130 +65613762633331353732383465653438623866373264376338653132303961633837656463623464 +61666632643964326561326533366461333833623166633763356235623763336338353865303934 +65343962643666323235386461316635386633316430316633376134363538653437323363313631 +62343262613635383365356363303535333331666335356439613830626431623130356661626532 +31666661666461623039376437646334663936356365303230376330353661393438623634393635 +35663136626635373438643065306164633166316131623834373633633931383264383366373465 +30303731623864313635633737356266386133343062646531343136333463343133303961386330 +62323631303530613837343166376235636465383831343331323930663835616561653033656133 +65343564333632346634663561373630623064326331356165333834393664396563323735396162 +31383534353131303338336432373736306438366565313837303663323631626239323763323065 +66386134376337653335383730633762313236363039356266346165646230376531626237386131 +39643366653236363265633661383563343032333830643030333139663339643032623137373266 +65646436333435613737303465353937353936373437393666336133643237653031343932613937 +66643432376162363133646539343866663165633130326638303263313930336233333835373964 +34633731656635316665343730643430643536636634363737336365356532623032393732643132 +31336330316633343661623964613565303263636534396433626566666236336564633532396264 +33643837653533356265623939396237326336326531373664626339366634346363316634383135 +64343034633966363766613462313331333231323934643833386337323863386663666430336461 +37373434353861663234643035393534363234363435633465656566636362343435376231656664 +64323639336533623537353862663764343230613132386637306432643431626563666339313530 +38333533353334643331353331623130613861316361356538316538623864313737626235343538 +62613132663362613665663661373532663336306461653033356539346531613263616237366362 +39373235303465343131633230303338633334626235353733376465366661653766363962306637 +32336466303535653064323230626365636165646431373364346434613730336263386634613739 +36666265393138363233616365363333303733373735636261306163616333616465633937643766 +38653763626438663662386237366239313231616563333039353633376661336434343963333236 +32363639623132303730653065393736383031316661373835363237623631323337626138373434 +38303637663634653663353933373337656262643132336466326337326536383132333732363838 +39376333376166363461643637383138656365373833383865323435313065383230623736623562 +34613933303463366437373639306633353962326530663965313265666565323139613237626130 +36363839373131303931313961383464303939633264623030306533333735343433623138316630 +30333032353965626233613533346263306564326264636637303965616133383936363134666435 +33303865383962626166393339393664666534343431373737373263386464323131626463663761 +32316563643136353437643035313862343436393362616266636265643735626264373362306166 +31623061623536373165353230376334666165353163623063613764366637366361633861663231 +31643233656430636666623035663037316663353633653366316436393031666333326635306137 +38356631376562356637376562656338326562353661313132363132396630383331613833323836 +62376236313935313835666535373465613639366431386665343162633633656436616235333530 +30383465313765366138356463656534383732656162653761633961353131653563316263633237 +32333766626639306366323136363139376265393963343037626432306664613433343135616563 +65356238353737383835333333383661646631306236396366353433353332303565353835366634 +30663766336465356431313231313132333562616236663662363835633065396238366338616634 +63316436656563343238633039383862393039363861623065386664363765376631633962303836 +36333732613661343334633165363963613864613262623339643962383834666639663038353130 +37376165303633616331653965303039643166393039623763346363656333613635653061373638 +65383232313466316330366263373463656565303136383330633139656534393466376661313835 +38666534383965313432643635646332363163393030383731356135663536623339663461323863 +35623165383561646465333136643632653934343261396265643665613638613034373738313137 +62343034326337663261393834373163393831343465323162396638623861346433656239333663 +32653565396534383063356632346233373765663532616435643536393265623436356236353336 +66303934626532306366383830343733353462663662373532633036643566363136643736616566 +33303162656562373530326166616136346636323531323130666661343263316334656562323135 +39643438383437646537616431353362656663616435303433663732633230396231363864306166 +33343965376230366464386238616133363663336666353464316466656264333332313134373536 +65373239323530326264356139663461636532613630333562653734356434636236316562653335 +31633235653430353461353164376463653363346538636338386462666334633039373634366334 +61626139633865333331333731633537373232363035346639623635616266623035653436326161 +66373630393466366533316163353738313862366561653364383834616435613934376539323634 +37316365363065663134393436646139303438386439616163623430663232356331383766303263 +36623866646665396665373937383831623366343063306330303564333461336164363233373963 +36333439623238373663386464396438323535356130643638396266393361633134343363653364 +31323061336534323833646439306562313036346230653634366436393132343237353766393938 +34353061666236396534653533626535373863386533623063633862666661383235343962333934 +62323436373565323831353036653432633131623562313763393137656663643764386161626235 +32376265663635353431616661653234663763636233636532313036623839353365656634356333 +36623236616238623935616234643031663534313966326237623632386532373663666431643365 +65333433306630633939353162336535333164356635613062353761383038386534653734343533 +39396231303236373038626264323336353162373262656136333935396230666665663832353563 +61313062623131313330353736313766623039326161306165356633323766643135346535376532 +30353863656166356330616333333130663332383561363463383066366438346562643733333534 +38323064356631346635653435623139303139633731643635373161373637353738646661336464 +30303234356634663365353634653766313261343565316637633662353734653133313339643961 +34623762363261383530306264353963626638616131383461643964363437303730376136366464 +38333234343961623830313263313165666235666465663864333033613735643239653139646132 +61323139383031646235613262663565613932633265626564383131326664386234353733313535 +32646236316430343238313464333338396462313739643564643137616164346163313264363030 +34336165613339636264343637316131373361346362393731633832336630383664303962376438 +66613332333364386365636434323261643631303765393635396561303765383438626635333437 +38666536323662353938623932343032623963346137306262343331666266356366656336303561 +34636337396663653234643134323632626534623136373932396362373938306334613631656165 +61613939393838386339616330303538336133336632376238353136376438623465616539313530 +32663064373264353433316336386137313938633063363930363062333061623637333435383762 +66363238653530323130333462373936323932323963383838356361623230353937396135303065 +66613031656137343661303239323532643361616239623231383737346466303066303833626261 +31666363653263616530613663663062343433336531633134383139393864323566373966653361 +66626430373662323962636465366536666637666563666336383061343964666266653830376563 +35323163333165376137333835636237396634616330626239616339636432363733383431366562 +31356434643164663839303839626333653064333761363038383131383832336138323733623332 +63393436663931323765306336343732666436663639616162643439656163383637636661343930 +65346338663030626631373365373130376165623566623330353661646337343835323231366266 +31313164323533363864626164326233336463663861306536326239383663616366356666653931 +37383334356464346265363236366462306462633264346361326563353933616635653334376230 +65613533303865653538303339393334363237366262313836613763393032363963316438366339 +64366166666663373232356137346130663765666466626339366539393737386630383730613930 +65643363623566633865633162636534393731663365306430373638656332353530663366323963 +35303062653338616530663130353838373763643931616130666262663564366630313561323165 +32383163323666636665333665653038383361373561363431353132303732313031666332383638 +65386361663539373334626531643039636636633061383766313162373034343038386138616661 +37653132346331366537663861353063356665386162373438613566663236346537346666303031 +66383739303236363839386463653865626637333836623266336639396666656236616164353937 +38323732643438653530646666653564623065613035653339333038356536646638633239366237 +37633430323535343436326463393265393033326430376331383331623061643964623732363230 +33326536643763633432313531353933366234393631303535666463363462626535353630633230 +35363934356331613431653931323362386164363064336230653062376438633336373930373239 +35376634323162393761373737303034383739313835323438386432303366623030343331396363 +37363566363061633535323664663530326362643237353634396261366361646561663234356463 +65636638383236613762313839376436346664303338666130363336366662366137626662356537 +61386235336566396464373336613133623639663632633930663766393031326435366434633938 +62623665343962306233323562356130313166343963623533373961643261636430646239323136 +62336164633163636639636338653866346532303638366264333133613637343165393638633437 +32313563653832316263336664313664373566663366356632323531383563323466306633393232 +64623139663436303330656564343961393534316164646339356334626565326335313666316530 +36383262326338646264313935616235383734653666326263346438333934613066323466633438 +38656164623539336565336338346134353666386533303766623231626564373331646264396234 +30363465626236353836656664333466613435303561323635616462616564353762636565636463 +33666364333038373431353962303135393537636366393735373539376132623438656266303865 +38366338663533396564336163353862613835633039396664656537333932626534393263316539 +30633862393732393730656237663236626437613734386339396136353536356135363332336162 +32373637633433366438373233623666333236356334396237396666383661343735393363373235 +39313232623034653339393062383636323431313938653535373538336164616565626162653661 +31323865343032386531336134346333303735333134386436353461613436623535626230633233 +37633035653362376264393835643964636432303265623963333563613334643735326366326634 +35626132633830323732626561646331333166653631343062313232353837643239326164616662 +66663564666337343332366338633061623163653265323539326137613936623337643835336238 +61616462653531353864613030656133323034353835613636343930333565636439393437383635 +31333338633333646531326237643238616565623164303338373065306638333334326564373533 +62353235363030626334336637653161646433393665623736656237636566363064346437653539 +64363034303436643331356362643161303837613530363363623536353532383338353635353833 +63303163636233306533316263356661346531333437653837353963363161643433393433656231 +38306138366431646265653430636437383138393062323738613938663339643931326363353838 +38656634366263343637383866373331643965666231393435666634653065353930306133313266 +65373461633437343664326539663966313431383962633438326666636661383264343437303166 +61626163613931373537663731643663326233663938623062326236666331383233313265366239 +34363565653964666366356438393931373466396331343735633234373836363962633834616365 +61363232656564396434353839626464353735323536633337666530396662626432343032373130 +63333062653961336531393565326238646665313463346434656365323963633966303063393065 +65386663333036323865643330343230613364663662656465383533623537613733393564353038 +39346138356332393735323161366237323839363762373438663763333335366364366230333931 +63616635323431316665633066663534663731666663623864666532366334653830323030393865 +34653165643236616431653061323934303631386337333033366264363362393732303331663330 +32363666653063656438323366356537336237626533343738306562636535656362303333313163 +30333965303264373234656135353031383662616266333461396338383139613430613935353832 +38396535333861363863616638383330656138653632353234613661616334653364656131626565 +64623631653233333565346666623837303061623338353939326237363364373964363337646566 +37326333323635383566346662613364326436636264653834643435353539663665613230383966 +38623737303336323934346430306634626333623836626332353532333133376365643537333637 +33663366373439653433663639373235343939386465323939636165343666303533633962633330 +36613937323736636662376439343265323161653932366266363738353135353465363165333964 +61316363316132306365613439373264383834373666383565663662323735346663613766393961 +35626233383032653738633266346437613134393161336562366165636637366661663931616335 +63613735383066613139383933333835363565396230353036363334626338653130343231656232 +66383462333366633237363235623265653337366339656439356539363461663563393662303834 +36303665366531316261373733393765356437343532653636623036656236616361633065643234 +38316132376139623239326134383763366635306235393532373538633839623533303838303838 +33303830303730633435313436353736396162343538626439363536656465656335313036666331 +34303334303565613437623534343938303839366438633365376539653439316264636363333661 +34633935613061613463303338626563333636326661373964613332653738353437646231343437 +34363564393831323636653761646136623361306330366162653861356633343834323861373439 +63393934336566626265343861363633373138306432386631636331643231393635376230376635 +30633538333963326363633662323030333462303361353031646461353736613439376531353331 +63613266316565383435323438356665363931303362353439376335356639633333643830333732 +66303631363731313636353239383438323063303236303762356231633231366364326437626431 +64636432366164646236656632343264396136393362646135306339303738346663663133613036 +33306138663831333936356231643032636631663862316636646134343564656332313766633934 +65613937653039653734383062313565303062656564303639646463303964636136363330336433 +36323738666264663665343637353333623465373830636230346535656437396435346661336138 +66353432373732633732333464643230613265376365313866336263303464306631363166366337 +62663237333837663961636230336631663534356561356638623433653366633831323036646564 +34343936373435616130376539326430616632393435623032653163336266346434646430656131 +61623639303762646361356135656339306139646232646164663038633039373336626339346364 +33313465653966356366633733643266376362363635623330373765656266383563326361396564 +37333537393163353434663539383163363333636461616563623739383362353464613936653032 +30343534623137373236653364333230303730366462306238313736613235366436313831323765 +35643536346335306136393937363438663434653662356662393530353535626266366661653364 +33313239356365383733623932363066303134383537323133636433343834396631313430363235 +33316332636332616666613461363963393630333866363732393438393365653262613731306132 +35386334313965643139313033613336633336663235663738306362636339623932613430323863 +36613466303463363461633133313336323461363236306465613334323939313036376631373662 +31393261623762653562333438636231613362313561623534346161346138623361616230396439 +39393038316230396661316235633262363233363037663630303665646662666365666239653133 +64386264363139626236656334623863633565313364386439303232646132366336626539373236 +38333938653932653462646331306665303432306264343232626264356533333034303462613236 +38316566363931376261373162306361643233386264643338373132643132303234336664303338 +66326165386165363737333961303731623461393862643766376164343061653332306335363439 +64346563326566323564656139643034653530346534653630643763383333646135393565363535 +37653864303539643938653162326134333833646131623034326539396635363064333661306532 +37393465613463353166396539646461363139323034343733336236333164313136333739393864 +62666665663337333563376630383162623937393434363766336539316563626261653833383735 +35346532623530366530306633613561393637323063626237623061633639306465393963396661 +34393335623533306438353064356663393561633935626664326232336336663866393232646464 +31616437316461663039643436333366306135643131303030663139633539393865303932663538 +64333238393930373064363132666461363739366663373964323333643736633330643336393237 +34633139376463616266666638663930373665313465393432393335643764353838356663383035 +65363830396437343231333337383934373632623431363066373939616237613133656639376339 +61333839326464366265373138646131383432343636656263333964346633396438616333313432 +64376131303162643866326661343930303131333863633564353330633765356239313663623466 +37616334373434623663666336383832303933646165366534633231633365653937323364323837 +63616563373633663664623539613065666539656633383731363662313931613634376639363266 +39303338373862653466323732353234353936393362353163616363306636323334373238656262 +33333661366437313831306461383262663639363537653338623834653962306136623831316631 +39626333303233313532623865363635623564383061373533393661316365373332353137316566 +37393162663461663163386465353564336335383437326639616133633765383237633962373762 +65353665346531646364353562373535326165386262376438313665623436653265663463646363 +37346337323936636237663636623465663865346231666166343430383439623666323431326566 +34666235303031656537663136373162356639613362646166643763343332633630613764353932 +37613566313232653439656538613734396335343335653839383139393763643864646264366135 +33323535653733313966626563663332353037626537383238393336663362666630343037646564 +39653330616631323133616532306464313961393130643432383639666165383638383335376363 +32303336353064373030373637663764353432393465373330646432643563643262666666336632 +36373736346566326165356534333134313162353535366432373261323732663839303966646635 +35363137613266636165376166633034613134343531636666656262323864623430646532353463 +39653935363539373738656134393461623739336438386165386562653530633962363862316534 +66306339396461356236653332336465633239396166386461643562613133306638613330333332 +35623965313833396334343638353865373033313031393036373261383632623263626564383531 +30363665396237353661393937653064656665333038616232613039393939316230363639663830 +37313864656262613266663539313735346265303030313232326166626465396439393038346166 +35643135646437303266373739333564633534316138343931343061393933326639386363316530 +38303634626463303235356636396666623131376434623536313166393962363636353861376434 +37306535343332613132613866613062656238656132323131366230346137643535656265333036 +32653062323137373462646165376162623636636135653331643537623236623663643233303339 +36333631376463333730386664663630366237366662343331386463343662336239373261316534 +37326639363566636339313238663564366462353930383966333539316238313561393465393434 +39633337636266653965646434633232373931663364633864333264373866363538356662323862 +65366265643836373730623533353931353765636161663137306138623938643061613230656562 +37366236396438303733613665626637326336316265633465323462383766353034396463336639 +30383238306364653461323237316336356562393564396637323662666361643062356137346164 +30323263313832626238666462353830653532303133313662633231303731353039643034353135 +31626232343936346130313336323739343165303132326462333566363261316236343762306630 +37633032343565396631623139313532333631316431623839636334333062633731326363333233 +36343539373234373065313065643331303430303737323439646638333166303731376166306362 +62386464323732313832353430303161356637346632323161303663316139316363346538343134 +39376664316266663331346439646636336232616663356263353232366438376463363533616565 +64393036613361393238343163303834323838623436666434633866643131393830346138306339 +31363833333333326666613235303630666362636333323635623731646465343364323366303263 +39343138646465636364656130616461626639363035313338643064366163656261613636306165 +61656664656432383432643131313431376133363737363535663464386438633534346265383333 +62326161623934613839663431633163303631613637346439323266326638646134623066366263 +36613864353532636336653333353931363936393538393030643536336431313965376530393861 +39386330363535346631616366363532376531396133366239353633373663663761383330626534 +38626532626632636337303034613536656635663539363961666265616530363331386565316135 +31613935353933653030653465623637393330663863656564323738636364643265323235646135 +64656536393063636334303632393430646137353061353630353736323466343334376436306635 +30343932323163636433623737623766373335633431343562386138663466646364616231383762 +62313331353361366331616663373465343239393861623031653731373738383336353363323565 +65623030363966623065653238303839393966386433666365643733383464363430623838383832 +37386337363233313263336639656564313736633231313166303466626464353663613465623964 +35373738663033623464376165653135653731633334653431306637313632303439663538613264 +62636336393830633930303731353832626664316433303132323238383466653564346534643634 +66356637353036626130396339663137333232643835363863663137666630616362393137313066 +65663661623030363032376430646534353434333339666265383463393136306363616334616434 +63663630653061343435376239333936373366333361653536323066643762626539303832383430 +64383832316231326631623361376137666438373939313037376133616265356161313164333734 +39353336666235653035623034663831636666656661393262653863636633333339666564626131 +65666537343535393863626639616132663638623438633938346331363761333964386339313564 +37386664363562636532343139613338613135303665346632663462306664373265373032303732 +34353034393531633038386566316636343130643938666532623130626361363230376266366636 +32393865333432356435323864623036383238383161623631393334306233363264316635613933 +65316238333337363939306562633062396531633263633538623061646665343463346236303731 +64396131373831333365363961313766613132323162386366306662396665313765633763386236 +64333031313334343433336561386538636361333935303138653536313363323933656133303464 +39366438663533616630306637656162366138653966666135643266626234613639616466346562 +61353064623534306165633834396333386636313439633333656663623035313537373835393837 +39653538393638656162333162646335303438353037633065656163666565656438386562626231 +33383834653965633432396534326538336538376132636136626232633461323131356238376331 +36623437376161313736396231393164636561303238663438316436376261333233383131323830 +61616261666437356363303365633935613366666266306135663965633237343938663362346331 +39393161343836303131623832623662373963393236613065663061373463646539326437306562 +34313662373832636334333164666139373563643665366366326132626530303538376339323734 +30316666386238383338353234636665633465353238353031633239633237323530386231306365 +39316633383963373734383833313436343162306262373364316264396636323063353666396264 +34383731623934386531613562643433333436386336383732376237376564313266336138393632 +65643637306662353030353435313864303964373466363566393665653037376663316466623639 +37373936666239343762643466316434316531336262356436366661636633333738343935643765 +33663934643263373161336132326434633537386632316665386239643262313536346565346462 +63393234666435646631313364306665613835643835303537336133663137643166396563653531 +30653136323937663433363664316235303637646634616662396430353939643163353461333236 +30333137613037356237316331656166373430313636633764356234303062623965633362343133 +65393038323231353134356663353965323436653637636330626563336433313164373663303635 +31666436313461393234343763343231373932613961393864353732643763323632386263383265 +62613033346666333533353365353464393063356663326138353266623039363565396139303730 +30356633313638326430356234383064383162316236666466623339636264376638646636333732 +64313435323061663366306461636638653438626436356330333731653431393030346330343830 +30366536653661376134316565333031376530643935333730353134633363653233623066356564 +63393831366533653131383831616430646562666161643965393864316337653365396438383965 +36373339613032313934663439323962636165326435353666656238643437656536303632353630 +38393966656161623933653361636462313761636639323734616463656632353532623239346230 +63383366666337623636623030663930343564353033643036346365323138353031303039383261 +37396137346236306538383230373339613664633137376535326334336162623066633232343336 +32353739363734386137643331363133303935313534643639313336306539353631396336633234 +66613633313463616437383866633363643130383631323038643730363365656566383261316262 +62353034366164316332393238633632393362373261373431326262323766663639323566323061 +63326263383532313763623463643962613939626337653962386131343763373231386265323934 +66343339646431303338353064383266623939666231323465343239313839656462643137653563 +37653732363666633639653332383838376663386464386630353239613436303361306565363330 +30326466656464383439393061356464623330333032336335616535383131643061616439663364 +65306330396363316237336162633235636239623831376464303064383537333134343734383635 +62323363353764333966663863623339306432376530663833353438396465333063326636663731 +37656266646438386464383338656434333563386366643834623531376335343130636363353930 +38383661313438663331333463366439353538656262303237353736626565326635326532353231 +61313734646262323832393366396162386131393731343137386234653064313165366139393961 +34663563306164393032323162653965316664383862643032316364396162616663313162646135 +36363438623034336534316136626539613636643131636363636338343666343938636461653062 +38636265646534616338306633343665616236386639363635656562363934656365386264373263 +66376434663663353562613932346630653035656338373463313664303839626432316165366331 +62616130366138383734656163666636313364363236343966383261336165613165323566383966 +62666363303162396166663564633334626330333961326662373439373563353364323461353238 +36373438656362333936396630653265376362303433393961663733343030376638306139646534 +65633836313562626331363630383262663863373261306464646664653337303031393734303430 +63663838343636363866613861373133353164363662303935313637386435353963633763383464 +63653365653235366238643133356236626266636364636332383438383533626438626532303131 +39343364613964336137323963636337383439636436373634353030376133353533333063393531 +64396535383461376236383465346630303338383633623437626635393464643030313031376132 +63356235616631326438336466343466313634306333373832303831373965356661613136646333 +33353262386337333332363233363637356132343236323637383166303530626633613735616362 +31666433333237663431663830306435623761653265343332383430653036373632323964306564 +37633737613231353666316630616365356166323661366462313031616461663764656535333665 +37653361356635636432633235633338373930393561616235353566643639633763336232373163 +32336633336331356466326533356362313366613032643264323438393230393936633239656232 +61666135393066356435343661623132376161623062393331663639323165363163363234386566 +30653031393733626532646263383134383539396265313266393434363061306130633366663331 +63633463313031663030386565346130323363366665623539333530623364613561636465373836 +61666530356637386637306532376432626332613632303835616636393365633034333262333464 +63653437393263353166613138613262353362643062366266333763383765323435363839376330 +31663334383538613630623963623164653938393831363030343836396338313538373232396166 +39353634333531303939663261613663613231663463623965666538663831616261383866303063 +32383833386431333834346333343430316238623265303930663630666531313730356135353333 +63383539306432366366623032643530363035373437373236616466343764633739653237323430 +32393162613434383764343139613938616235626264393837393734306633633733336132303362 +31343938316530383434626130376132386332643734313466373064633866366466363362333037 +38316437623832346136616238363738326439333837366238363961636363313661313335663165 +36383539663939346432663837323561613531326530616134336265306362653530313430393736 +35643239643834396261653335356433386362316464373338633462613532393866306536616563 +64353637373739643039663135636236373739656264353733383532306639306433323765663962 +62393037626162653438363631656362353532316461316661326333356162656464303438626534 +35623735653462646131373435313366383863343639616630343334366435303734366133633839 +35343631613436333561326439326135343132343638623834393061393063623163623636396431 +37323532643533303839373230333734333461303061376438616333373234343334643939366132 +39386266616561396132613938633330396565396534376466336338333338663166396430306431 +39343765336365323934326238343231396263343137623430343066643632316433366530666335 +38386364333562666331663064336533396337613336623631613265383261373566326233393565 +63376561626563366165303664393631393733303762633731613666326130643165393832663437 +643464383333666363356161383039663432 diff --git a/inventory/10-custom b/inventory/10-custom index c0e055a0..af7d040d 100644 --- a/inventory/10-custom +++ b/inventory/10-custom @@ -7,52 +7,53 @@ [bastion] st01-mgmt-r01-u31 -#[network-switches] -#st01-sw100g-r01-u36 -#st01-sw100g-r01-u37 -#st01-sw100g-r01-u41 -#st01-sw10g-r01-u38 -#st01-sw10g-r01-u39 -#st01-sw1g-r01-u32 -#st01-sw1g-r01-u33 -#st01-sw1g-r01-u42 -#st01-sw1g-r01-u47 -#st01-sw25g-r01-u34 -#st01-sw25g-r01-u35 -#st01-sw25g-r01-u40 -# -#[dhcp-static-nodes] -#st01-sw100g-r01-u36 -#st01-sw100g-r01-u37 -#st01-sw100g-r01-u41 -#st01-sw10g-r01-u38 -#st01-sw10g-r01-u39 -#st01-sw1g-r01-u32 -#st01-sw1g-r01-u33 -#st01-sw1g-r01-u42 -#st01-sw1g-r01-u47 -#st01-sw25g-r01-u34 -#st01-sw25g-r01-u35 -#st01-sw25g-r01-u40 -#st01-comp-r01-u09 -#st01-comp-r01-u11 -#st01-comp-r01-u13 -#st01-comp-r01-u15 -#st01-comp-r01-u17 -#st01-comp-r01-u19 -#st01-comp-r01-u21 -#st01-comp-r01-u22 -#st01-comp-r01-u23 -#st01-comp-r01-u24 -#st01-comp-r01-u25 -#st01-comp-r01-u26 -#st01-ctl-r01-u27 -#st01-ctl-r01-u28 -#st01-ctl-r01-u29 -#st01-mgmt-r01-u30 -#st01-mgmt-r01-u31 -#st01-stor-r01-u01 -#st01-stor-r01-u03 -#st01-stor-r01-u05 -#st01-stor-r01-u07 -# +[network-switches] +st01-sw100g-r01-u36 +st01-sw100g-r01-u37 +st01-sw100g-r01-u41 +st01-sw10g-r01-u38 +st01-sw10g-r01-u39 +st01-sw1g-r01-u32 +st01-sw1g-r01-u33 +st01-sw1g-r01-u42 +st01-sw1g-r01-u47 +st01-sw25g-r01-u34 +st01-sw25g-r01-u35 +st01-sw25g-r01-u40 + +[dhcp-static-nodes] +st01-sw100g-r01-u36 +st01-sw100g-r01-u37 +st01-sw100g-r01-u41 +st01-sw10g-r01-u38 +st01-sw10g-r01-u39 +st01-sw1g-r01-u32 +st01-sw1g-r01-u33 +st01-sw1g-r01-u42 +st01-sw1g-r01-u47 +st01-sw25g-r01-u34 +st01-sw25g-r01-u35 +st01-sw25g-r01-u40 +st01-comp-r01-u09 +st01-comp-r01-u11 +st01-comp-r01-u13 +st01-comp-r01-u15 +st01-comp-r01-u17 +st01-comp-r01-u19 +st01-comp-r01-u21 +st01-comp-r01-u22 +st01-comp-r01-u23 +st01-comp-r01-u24 +st01-comp-r01-u25 +st01-comp-r01-u26 +st01-ctl-r01-u27 +st01-ctl-r01-u28 +st01-ctl-r01-u29 +st01-mgmt-r01-u30 +st01-mgmt-r01-u31 +st01-stor-r01-u01 +st01-stor-r01-u03 +st01-stor-r01-u05 +st01-stor-r01-u07 + + diff --git a/inventory/99-overwrite b/inventory/99-overwrite index b303abed..96b5c3d6 100644 --- a/inventory/99-overwrite +++ b/inventory/99-overwrite @@ -22,3 +22,7 @@ network [all:children] generic + +[manager-infra] +st01-mgmt-r01-u30 +st01-mgmt-r01-u31 diff --git a/inventory/group_vars/all.yml b/inventory/group_vars/all.yml index e69de29b..8b137891 100644 --- a/inventory/group_vars/all.yml +++ b/inventory/group_vars/all.yml @@ -0,0 +1 @@ + diff --git a/inventory/group_vars/generic/10_ceph.yml b/inventory/group_vars/generic/10_ceph.yml new file mode 100644 index 00000000..36f91722 --- /dev/null +++ b/inventory/group_vars/generic/10_ceph.yml @@ -0,0 +1,25 @@ +os_tuning_params: + - { name: fs.file-max, value: 26234859 } + - { name: vm.zone_reclaim_mode, value: 0 } + - { name: vm.swappiness, value: 0 } + - { name: vm.min_free_kbytes, value: "{{ vm_min_free_kbytes }}" } + +openstack_cinder_rbd001_pool: + name: rbd001 + pg_num: "{{ openstack_pool_default_pg_num }}" + pgp_num: "{{ openstack_pool_default_pg_num }}" + rule_name: "replicated_rule" + min_size: "{{ openstack_pool_default_min_size }}" + application: "rbd" + +openstack_cinder_rgw001_pool: + name: rgw001 + pg_num: "{{ openstack_pool_default_pg_num }}" + pgp_num: "{{ openstack_pool_default_pg_num }}" + rule_name: "replicated_rule" + min_size: "{{ openstack_pool_default_min_size }}" + application: "rgw" + +openstack_pools_extra: + - "{{ openstack_cinder_rbd001_pool }}" + - "{{ openstack_cinder_rgw001_pool }}" diff --git a/inventory/group_vars/generic/11_chrony.yml b/inventory/group_vars/generic/11_chrony.yml new file mode 100644 index 00000000..646157d4 --- /dev/null +++ b/inventory/group_vars/generic/11_chrony.yml @@ -0,0 +1,15 @@ + + +########################## +# chrony + +chrony_servers: + - st01-ctl-r01-u27 + - st01-ctl-r01-u28 + - st01-ctl-r01-u29 + - st01-mgmt-r01-u30 + - st01-mgmt-r01-u31 + + +chrony_allowed_subnets: + - 127.0.0.1/32 diff --git a/inventory/group_vars/generic/12_dhcpd.yml b/inventory/group_vars/generic/12_dhcpd.yml new file mode 100644 index 00000000..7b37f660 --- /dev/null +++ b/inventory/group_vars/generic/12_dhcpd.yml @@ -0,0 +1,12 @@ + +isc_dhcp_server_subnet_definition: + - description: "Managment Network" + config: | + subnet 10.10.23.0 netmask 255.255.255.0 { + range 10.10.23.240 10.10.23.250; + option routers {{ management_gw }}; + option broadcast-address 10.10.23.255; + option domain-name-servers {{ management_gw }}; + option ntp-servers {{ management_gw }}; + } + diff --git a/inventory/group_vars/generic/13_motd.yml b/inventory/group_vars/generic/13_motd.yml new file mode 100644 index 00000000..cbbb6eec --- /dev/null +++ b/inventory/group_vars/generic/13_motd.yml @@ -0,0 +1,10 @@ + + +motd_content: | + . + ____ ____ ____ _ _ + / ___| / ___/ ___| | | __ _ _ __ __| |___ ___ __ _ _ __ ___ + \___ \| | \___ \ | | / _` | '_ \ / _` / __|/ __/ _` | '_ \ / _ \ + ___) | |___ ___) | | |__| (_| | | | | (_| \__ \ (_| (_| | |_) | __/ + |____/ \____|____/ |_____\__,_|_| |_|\__,_|___/\___\__,_| .__/ \___| + |_| diff --git a/inventory/group_vars/generic/14_resolvconf.yml b/inventory/group_vars/generic/14_resolvconf.yml new file mode 100644 index 00000000..d14a4d36 --- /dev/null +++ b/inventory/group_vars/generic/14_resolvconf.yml @@ -0,0 +1,11 @@ + + +########################## +# resolvconf + +resolvconf_nameserver: + - 10.10.21.10 + - 10.10.21.11 + +resolvconf_search: int1.landscape.sovereignit.de + diff --git a/inventory/group_vars/manager.yml b/inventory/group_vars/manager.yml index 3b3c85e3..bf698c45 100644 --- a/inventory/group_vars/manager.yml +++ b/inventory/group_vars/manager.yml @@ -1,5 +1,10 @@ +resolvconf_nameserver: + - 8.8.8.8 + - 9.9.9.9 + - 1.1.1.1 + # NTP server options. chrony_server_options: iburst diff --git a/inventory/group_vars/wireguard.yml b/inventory/group_vars/wireguard.yml new file mode 100644 index 00000000..d6a99941 --- /dev/null +++ b/inventory/group_vars/wireguard.yml @@ -0,0 +1,15 @@ + +wireguard_server_address: 10.10.1.1/24 +wireguard_listen_port: 51820 +wireguard_client_allowed_ips: 10.10.1.0/24,10.10.23.0/24,10.10.24.0/24,10.10.21.0/24,10.10.22.0/24 + +# Debug: +# echo module wireguard +p > /sys/kernel/debug/dynamic_debug/control +# journalctl -f + +wireguard_users: + - name: scoopex + key: 3XfXCmSo5+2kCrUgI/OmQDxSrx3gnomvFESNUhXVflw= + ip: 10.10.1.20 + + diff --git a/inventory/host_vars/servers-template.yml.j2 b/inventory/host_vars/servers-template.yml.j2 index d55fc121..591dd0dd 100644 --- a/inventory/host_vars/servers-template.yml.j2 +++ b/inventory/host_vars/servers-template.yml.j2 @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: {{ bmc_ip_v4 }} mgmt_mac: {{ bmc_mac }} +bgp_asn: {{ asn }} ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - {{ node_ip_v4 }}/32 @@ -34,3 +39,6 @@ network_ethernets: dhcp6: "no" {% endfor %} +# Merge extra configuration with the generated configuration +network_ethernets: "{{ '{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}' }}" + diff --git a/inventory/host_vars/st01-comp-r01-u09/01_base.yml b/inventory/host_vars/st01-comp-r01-u09/01_base.yml index 2d53e78f..245f82dc 100644 --- a/inventory/host_vars/st01-comp-r01-u09/01_base.yml +++ b/inventory/host_vars/st01-comp-r01-u09/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.25 mgmt_mac: 3c:ec:ef:9f:e2:40 +bgp_asn: 4210021025 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.25/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-comp-r01-u11/01_base.yml b/inventory/host_vars/st01-comp-r01-u11/01_base.yml index 3aafa447..af5cc0d4 100644 --- a/inventory/host_vars/st01-comp-r01-u11/01_base.yml +++ b/inventory/host_vars/st01-comp-r01-u11/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.26 mgmt_mac: 3c:ec:ef:9f:e2:4e +bgp_asn: 4210021026 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.26/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-comp-r01-u13/01_base.yml b/inventory/host_vars/st01-comp-r01-u13/01_base.yml index eeb546ec..7a184dcf 100644 --- a/inventory/host_vars/st01-comp-r01-u13/01_base.yml +++ b/inventory/host_vars/st01-comp-r01-u13/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.27 mgmt_mac: 3c:ec:ef:9f:e2:2f +bgp_asn: 4210021027 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.27/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-comp-r01-u15/01_base.yml b/inventory/host_vars/st01-comp-r01-u15/01_base.yml index 46aa484b..6c918384 100644 --- a/inventory/host_vars/st01-comp-r01-u15/01_base.yml +++ b/inventory/host_vars/st01-comp-r01-u15/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.28 mgmt_mac: 3c:ec:ef:9f:e2:0c +bgp_asn: 4210021028 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.28/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-comp-r01-u17/01_base.yml b/inventory/host_vars/st01-comp-r01-u17/01_base.yml index bd50a7a4..233e5e18 100644 --- a/inventory/host_vars/st01-comp-r01-u17/01_base.yml +++ b/inventory/host_vars/st01-comp-r01-u17/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.29 mgmt_mac: 3c:ec:ef:9f:e1:d1 +bgp_asn: 4210021029 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.29/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-comp-r01-u19/01_base.yml b/inventory/host_vars/st01-comp-r01-u19/01_base.yml index fa0d8e88..d675fdaa 100644 --- a/inventory/host_vars/st01-comp-r01-u19/01_base.yml +++ b/inventory/host_vars/st01-comp-r01-u19/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.30 mgmt_mac: 3c:ec:ef:9f:e2:6b +bgp_asn: 4210021030 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.30/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-comp-r01-u21/01_base.yml b/inventory/host_vars/st01-comp-r01-u21/01_base.yml index 5690d2d6..c34b1d26 100644 --- a/inventory/host_vars/st01-comp-r01-u21/01_base.yml +++ b/inventory/host_vars/st01-comp-r01-u21/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.15 mgmt_mac: 7c:c2:55:86:36:6d +bgp_asn: 4210021015 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.15/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-comp-r01-u22/01_base.yml b/inventory/host_vars/st01-comp-r01-u22/01_base.yml index 7d603967..1e72fa2e 100644 --- a/inventory/host_vars/st01-comp-r01-u22/01_base.yml +++ b/inventory/host_vars/st01-comp-r01-u22/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.16 mgmt_mac: 7c:c2:55:86:38:80 +bgp_asn: 4210021016 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.16/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-comp-r01-u23/01_base.yml b/inventory/host_vars/st01-comp-r01-u23/01_base.yml index 822255ac..29e40f0e 100644 --- a/inventory/host_vars/st01-comp-r01-u23/01_base.yml +++ b/inventory/host_vars/st01-comp-r01-u23/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.17 mgmt_mac: 7c:c2:55:81:4a:86 +bgp_asn: 4210021017 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.17/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-comp-r01-u24/01_base.yml b/inventory/host_vars/st01-comp-r01-u24/01_base.yml index d4b0045f..6c78bf05 100644 --- a/inventory/host_vars/st01-comp-r01-u24/01_base.yml +++ b/inventory/host_vars/st01-comp-r01-u24/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.18 mgmt_mac: 7c:c2:55:86:36:cd +bgp_asn: 4210021018 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.18/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-comp-r01-u25/01_base.yml b/inventory/host_vars/st01-comp-r01-u25/01_base.yml index a8eb050b..ec6e6127 100644 --- a/inventory/host_vars/st01-comp-r01-u25/01_base.yml +++ b/inventory/host_vars/st01-comp-r01-u25/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.19 mgmt_mac: 7c:c2:55:86:36:c4 +bgp_asn: 4210021019 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.19/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-comp-r01-u26/01_base.yml b/inventory/host_vars/st01-comp-r01-u26/01_base.yml index 5b53adb8..e90e0df3 100644 --- a/inventory/host_vars/st01-comp-r01-u26/01_base.yml +++ b/inventory/host_vars/st01-comp-r01-u26/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.20 mgmt_mac: 7c:c2:55:81:8c:0b +bgp_asn: 4210021020 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.20/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-ctl-r01-u27/01_base.yml b/inventory/host_vars/st01-ctl-r01-u27/01_base.yml index 2a6072fc..9f5d16f6 100644 --- a/inventory/host_vars/st01-ctl-r01-u27/01_base.yml +++ b/inventory/host_vars/st01-ctl-r01-u27/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.12 mgmt_mac: 3c:ec:ef:5b:b5:b9 +bgp_asn: 4210021012 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.12/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-ctl-r01-u28/01_base.yml b/inventory/host_vars/st01-ctl-r01-u28/01_base.yml index 02c82a98..3f129c42 100644 --- a/inventory/host_vars/st01-ctl-r01-u28/01_base.yml +++ b/inventory/host_vars/st01-ctl-r01-u28/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.13 mgmt_mac: 3c:ec:ef:5b:b5:bf +bgp_asn: 4210021013 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.13/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-ctl-r01-u29/01_base.yml b/inventory/host_vars/st01-ctl-r01-u29/01_base.yml index 904269c2..9c521afc 100644 --- a/inventory/host_vars/st01-ctl-r01-u29/01_base.yml +++ b/inventory/host_vars/st01-ctl-r01-u29/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.14 mgmt_mac: 3c:ec:ef:5b:b5:bb +bgp_asn: 4210021014 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.14/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-mgmt-r01-u30/00_def.yml b/inventory/host_vars/st01-mgmt-r01-u30/00_def.yml index 29378fec..9db91d3c 100644 --- a/inventory/host_vars/st01-mgmt-r01-u30/00_def.yml +++ b/inventory/host_vars/st01-mgmt-r01-u30/00_def.yml @@ -1,3 +1,26 @@ mgmt_interface: eno6 external_interface: eno2 +network_ethernets_extra: + # Access to mangement network + eno6: + addresses: + - "10.10.23.254/24" + # Internet Uplink + eno2: + addresses: + - "192.168.104.43/29" + nameservers: + addresses: + - 8.8.8.8 + - 9.9.9.9 + routes: + - to: default + via: 192.168.104.41 + mtu: 1500 + + # P2P Link to Switch st01-sw1g-r01-u47 + eno1: + addresses: + - "10.10.22.1/24" + diff --git a/inventory/host_vars/st01-mgmt-r01-u30/01_base.yml b/inventory/host_vars/st01-mgmt-r01-u30/01_base.yml index ab6109f2..6bbd274a 100644 --- a/inventory/host_vars/st01-mgmt-r01-u30/01_base.yml +++ b/inventory/host_vars/st01-mgmt-r01-u30/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.10 mgmt_mac: ac:1f:6b:5c:54:95 +bgp_asn: 4210021010 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.10/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-mgmt-r01-u30/03_motd.yml b/inventory/host_vars/st01-mgmt-r01-u30/03_motd.yml index 385021bf..24eb55a3 100644 --- a/inventory/host_vars/st01-mgmt-r01-u30/03_motd.yml +++ b/inventory/host_vars/st01-mgmt-r01-u30/03_motd.yml @@ -1,6 +1,5 @@ motd_content: | - --- . ____ ____ ____ _ _ / ___| / ___/ ___| | | __ _ _ __ __| |___ ___ __ _ _ __ ___ diff --git a/inventory/host_vars/st01-mgmt-r01-u30/04_wireguard.yml b/inventory/host_vars/st01-mgmt-r01-u30/04_wireguard.yml new file mode 100644 index 00000000..ef830b40 --- /dev/null +++ b/inventory/host_vars/st01-mgmt-r01-u30/04_wireguard.yml @@ -0,0 +1,4 @@ + + +wireguard_server_public_address: 188.244.101.28 +wireguard_endpoint: "{{ wireguard_server_public_address }}:{{ wireguard_listen_port }}" diff --git a/inventory/host_vars/st01-mgmt-r01-u30/05_network_extra.yml b/inventory/host_vars/st01-mgmt-r01-u30/05_network_extra.yml new file mode 100644 index 00000000..269f4d89 --- /dev/null +++ b/inventory/host_vars/st01-mgmt-r01-u30/05_network_extra.yml @@ -0,0 +1,5 @@ + +network_dispatcher_scripts: + - src: /opt/configuration/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_add_nftables_rules.sh + dest: routable.d/scs_add_nftables_rules.sh + diff --git a/inventory/host_vars/st01-mgmt-r01-u31/00_def.yml b/inventory/host_vars/st01-mgmt-r01-u31/00_def.yml new file mode 100644 index 00000000..7ab4f0b1 --- /dev/null +++ b/inventory/host_vars/st01-mgmt-r01-u31/00_def.yml @@ -0,0 +1,22 @@ +mgmt_interface: eno6 +external_interface: eno2 + +network_ethernets_extra: + # Access to mangement network + eno6: + addresses: + - "10.10.23.253/24" + # Internet Uplink + eno2: + addresses: + - "192.168.104.43/29" + nameservers: + addresses: + - 8.8.8.8 + - 9.9.9.9 + - 1.1.1.1 + routes: + - to: default + via: 192.168.104.41 + mtu: 1500 + diff --git a/inventory/host_vars/st01-mgmt-r01-u31/01_base.yml b/inventory/host_vars/st01-mgmt-r01-u31/01_base.yml index 0258c96d..e2621ca9 100644 --- a/inventory/host_vars/st01-mgmt-r01-u31/01_base.yml +++ b/inventory/host_vars/st01-mgmt-r01-u31/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.11 mgmt_mac: ac:1f:6b:5c:54:96 +bgp_asn: 4210021011 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.11/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-mgmt-r01-u31/04_wireguard.yml b/inventory/host_vars/st01-mgmt-r01-u31/04_wireguard.yml new file mode 100644 index 00000000..ef830b40 --- /dev/null +++ b/inventory/host_vars/st01-mgmt-r01-u31/04_wireguard.yml @@ -0,0 +1,4 @@ + + +wireguard_server_public_address: 188.244.101.28 +wireguard_endpoint: "{{ wireguard_server_public_address }}:{{ wireguard_listen_port }}" diff --git a/inventory/host_vars/st01-mgmt-r01-u31/05_network_extra.yml b/inventory/host_vars/st01-mgmt-r01-u31/05_network_extra.yml new file mode 100644 index 00000000..269f4d89 --- /dev/null +++ b/inventory/host_vars/st01-mgmt-r01-u31/05_network_extra.yml @@ -0,0 +1,5 @@ + +network_dispatcher_scripts: + - src: /opt/configuration/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_add_nftables_rules.sh + dest: routable.d/scs_add_nftables_rules.sh + diff --git a/inventory/host_vars/st01-stor-r01-u01/01_base.yml b/inventory/host_vars/st01-stor-r01-u01/01_base.yml index fd716c7c..bdd55365 100644 --- a/inventory/host_vars/st01-stor-r01-u01/01_base.yml +++ b/inventory/host_vars/st01-stor-r01-u01/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.21 mgmt_mac: 3c:ec:ef:9e:d1:1a +bgp_asn: 4210021021 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.21/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-stor-r01-u03/01_base.yml b/inventory/host_vars/st01-stor-r01-u03/01_base.yml index 1a501f51..d6b35395 100644 --- a/inventory/host_vars/st01-stor-r01-u03/01_base.yml +++ b/inventory/host_vars/st01-stor-r01-u03/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.22 mgmt_mac: 3c:ec:ef:94:94:f4 +bgp_asn: 4210021022 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.22/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-stor-r01-u05/01_base.yml b/inventory/host_vars/st01-stor-r01-u05/01_base.yml index be462d3d..d56b19e0 100644 --- a/inventory/host_vars/st01-stor-r01-u05/01_base.yml +++ b/inventory/host_vars/st01-stor-r01-u05/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.23 mgmt_mac: 3c:ec:ef:9e:d0:9b +bgp_asn: 4210021023 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.23/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-stor-r01-u07/01_base.yml b/inventory/host_vars/st01-stor-r01-u07/01_base.yml index e644a881..ae4b0570 100644 --- a/inventory/host_vars/st01-stor-r01-u07/01_base.yml +++ b/inventory/host_vars/st01-stor-r01-u07/01_base.yml @@ -17,12 +17,17 @@ netdata_host_type: client mgmt_address: 10.10.23.24 mgmt_mac: 3c:ec:ef:9b:12:cb +bgp_asn: 4210021024 ########################################################## # network network_type: netplan -network_ethernets: + +network_dummy_interfaces: + - dummy0 + +network_ethernets_generated: dummy0: addresses: - 10.10.21.24/32 @@ -38,3 +43,6 @@ network_ethernets: dhcp4: "no" dhcp6: "no" + +# Merge extra configuration with the generated configuration +network_ethernets: "{{ network_ethernets_generated | combine(network_ethernets_extra|default({}), recursive=True) }}" diff --git a/inventory/host_vars/st01-sw100g-r01-u36/01_base.yml b/inventory/host_vars/st01-sw100g-r01-u36/01_base.yml index fdc9f9bc..a854314a 100644 --- a/inventory/host_vars/st01-sw100g-r01-u36/01_base.yml +++ b/inventory/host_vars/st01-sw100g-r01-u36/01_base.yml @@ -10,4 +10,5 @@ ansible_host: 10.10.23.110 device_model: 7726-32X-O-AC-B mgmt_mac: 90:2d:77:58:27:50 mgmt_address: 10.10.23.110 -serial_device: BCBRb113318 \ No newline at end of file +serial_device: BCBRb113318 +bgp_asn: 65501 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw100g-r01-u37/01_base.yml b/inventory/host_vars/st01-sw100g-r01-u37/01_base.yml index 73694194..91ecea14 100644 --- a/inventory/host_vars/st01-sw100g-r01-u37/01_base.yml +++ b/inventory/host_vars/st01-sw100g-r01-u37/01_base.yml @@ -10,4 +10,5 @@ ansible_host: 10.10.23.109 device_model: 7726-32X-O-AC-B mgmt_mac: 90:2d:77:58:26:50 mgmt_address: 10.10.23.109 -serial_device: DEABb113318 \ No newline at end of file +serial_device: DEABb113318 +bgp_asn: 65501 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw25g-r01-u34/01_base.yml b/inventory/host_vars/st01-sw25g-r01-u34/01_base.yml index 678a1a8c..1be1d041 100644 --- a/inventory/host_vars/st01-sw25g-r01-u34/01_base.yml +++ b/inventory/host_vars/st01-sw25g-r01-u34/01_base.yml @@ -10,4 +10,5 @@ ansible_host: 10.10.23.107 device_model: 7326-56X-O-AC-B mgmt_mac: d0:77:ce:4b:b4:7a mgmt_address: 10.10.23.107 -serial_device: CGBSb113318 \ No newline at end of file +serial_device: CGBSb113318 +bgp_asn: 65504 \ No newline at end of file diff --git a/inventory/host_vars/st01-sw25g-r01-u35/01_base.yml b/inventory/host_vars/st01-sw25g-r01-u35/01_base.yml index a0fadf62..194ab425 100644 --- a/inventory/host_vars/st01-sw25g-r01-u35/01_base.yml +++ b/inventory/host_vars/st01-sw25g-r01-u35/01_base.yml @@ -10,4 +10,5 @@ ansible_host: 10.10.23.108 device_model: 7326-56X-O-AC-B mgmt_mac: d0:77:ce:c1:63:80 mgmt_address: 10.10.23.108 -serial_device: BSAHb113318 \ No newline at end of file +serial_device: BSAHb113318 +bgp_asn: 65505 \ No newline at end of file diff --git a/inventory/host_vars/switches-template.yml.j2 b/inventory/host_vars/switches-template.yml.j2 index e283a777..56ed8ea8 100644 --- a/inventory/host_vars/switches-template.yml.j2 +++ b/inventory/host_vars/switches-template.yml.j2 @@ -11,3 +11,4 @@ device_model: {{ device_model }} mgmt_mac: {{ bmc_mac }} mgmt_address: {{ bmc_ip_v4 }} serial_device: {{ serial_device }} +bgp_asn: {{ asn }} diff --git a/misc/manage/include.sh b/misc/manage/include.sh old mode 100644 new mode 100755 diff --git a/misc/manage/lib/helpers.py b/misc/manage/lib/helpers.py index 6dd86cca..c8ea1902 100644 --- a/misc/manage/lib/helpers.py +++ b/misc/manage/lib/helpers.py @@ -70,6 +70,7 @@ class AnsibleInvertoryStrategy(str, Enum): def __str__(self): return self.value + def ansible_inventory_strategy_type(arg_value: str): try: return AnsibleInvertoryStrategy[arg_value.upper()] @@ -100,15 +101,15 @@ def template_ansible_config(host_list: list[str], item_type: str, strategy: Ansi with open(results_filename, 'r') as file: if strategy is AnsibleInvertoryStrategy.KEEP: LOGGER.warning( - f"Not templating {host_name} inventory file {results_filename}, inventory_generate_strategy=keep") + f"Not templating {host_name} inventory file {results_filename}, ansible_inventory_update_strategy=keep") continue elif strategy is AnsibleInvertoryStrategy.REPLACE: LOGGER.warning( - f"Updating existing {host_name} file {results_filename}, inventory_generate_strategy=update") + f"Updating existing {host_name} file {results_filename}, ansible_inventory_update_strategy=update") with open(results_filename, 'w') as f_out: f_out.write(templated_string) else: - LOGGER.error(f"inventory_generate_strategy invalid {strategy}") + LOGGER.error(f"ansible_inventory_update_strategy invalid {strategy}") sys.exit(1) else: diff --git a/misc/manage/lib/server_hardware.py b/misc/manage/lib/server_hardware.py index d5d8defc..97e68e20 100644 --- a/misc/manage/lib/server_hardware.py +++ b/misc/manage/lib/server_hardware.py @@ -1,3 +1,4 @@ +import argparse import glob import logging import os @@ -258,9 +259,29 @@ def execute_sum(data: dict[str, str], cmd: str): class CfgTypes(str, Enum): - bios = 'bios' - bmc = 'bmc' - both = "both" + BIOS = 'bios' + BMC = 'bmc' + BOTH = "both" + + def __str__(self): + return self.value + + +def configuration_type_strategy(arg_value: str): + try: + return CfgTypes[arg_value.upper()] + except KeyError: + raise argparse.ArgumentTypeError( + f"Invalid option: '{arg_value.upper}'. Valid options are: " + f"{', '.join(c.name.lower() for c in CfgTypes)}") + +def configuration_type_strategy(arg_value: str): + try: + return CfgTypes[arg_value.upper()] + except KeyError: + raise argparse.ArgumentTypeError( + f"Invalid option: '{arg_value.upper}'. Valid options are: " + f"{', '.join(c.name.lower() for c in CfgTypes)}") def backup_config(bmc_hosts: list[str], filetype: CfgTypes): diff --git a/misc/manage/lib/server_model.py b/misc/manage/lib/server_model.py index 870ed0e3..09b54079 100644 --- a/misc/manage/lib/server_model.py +++ b/misc/manage/lib/server_model.py @@ -53,6 +53,7 @@ def parse_configuration_data_servers(data) -> dict[str, dict[str, str]]: r"\|\s*(?P\d+\.\d+\.\d+\.\d+?)\s*" r"\|.+" r"\|\s*(?P[a-f0-9:]+)\s*" + r"\|\s*(?P\d+)\s*" r"\|\s*(?P\d+\.\d+\.\d+\.\d+?)\s*" r"\|\s*(?P(?:[a-f0-9]{1,4}:){7}[a-f0-9]{1,4})\s*" r"\|.*", diff --git a/misc/manage/lib/server_operating_system.py b/misc/manage/lib/server_operating_system.py old mode 100755 new mode 100644 diff --git a/misc/manage/lib/switch_model.py b/misc/manage/lib/switch_model.py index f3137776..a61ab6b4 100644 --- a/misc/manage/lib/switch_model.py +++ b/misc/manage/lib/switch_model.py @@ -35,6 +35,7 @@ def parse_configuration_data_switches(data) -> dict[str, dict[str, str]]: r"\|.+" r"\|\s*(?P\d+\.\d+\.\d+\.\d+?)\s*" r"\|\s*(?P[a-f0-9:]+)\s*" + r"\|\s*(?P\d+)\s*" r"\|\s*(?P[A-Za-z0-9:]+)\s*" r".*\|.*", line.strip()) diff --git a/misc/manage/lib/switch_operating_system.py b/misc/manage/lib/switch_operating_system.py index 4e367307..56892cf9 100644 --- a/misc/manage/lib/switch_operating_system.py +++ b/misc/manage/lib/switch_operating_system.py @@ -1,3 +1,4 @@ +import argparse import json import logging import subprocess @@ -12,35 +13,51 @@ class CfgTypes(str, Enum): - main = 'main' - frr = 'frr' - both = "both" + MAIN = 'main' + FRR = 'frr' + BOTH = "both" + def __str__(self): + return self.value -def execute_switch_commands(data: dict[str, str], cmd: str) -> str: + +def configuration_type_strategy(arg_value: str): + try: + return CfgTypes[arg_value.upper()] + except KeyError: + raise argparse.ArgumentTypeError( + f"Invalid option: '{arg_value.upper}'. Valid options are: " + f"{', '.join(c.name.lower() for c in CfgTypes)}") + + +def execute_switch_commands(data: dict[str, str], cmd: str, timeout=15) -> str | None: ssh_connect = f"ssh {data['bmc_username']}@{data['bmc_ip_v4']}" command = f"{ssh_connect} \"{cmd}\"" LOGGER.info("EXEC: >>>%s<<<", command) - p = subprocess.run(command, capture_output=True, shell=True, text=True) + try: + p = subprocess.run(command, capture_output=True, shell=True, text=True, timeout=timeout) - if p.returncode == 0: - LOGGER.info( - "SUCCESS - STDOUT: >>>%s<<<, STDERR: >>>%s<<<" % ( - shorten_string(p.stdout), - shorten_string(p.stderr) + if p.returncode == 0: + LOGGER.info( + "SUCCESS - STDOUT: >>>%s<<<, STDERR: >>>%s<<<" % ( + shorten_string(p.stdout), + shorten_string(p.stderr) + ) ) - ) - return str(p.stdout) - else: - LOGGER.error("ERROR[%s] - STDOUT: >>>%s<<<, STDERR: >>>%s<<<" % - ( - p.returncode, - p.stdout, - p.stderr - ) - ) - sys.exit(1) + return str(p.stdout) + else: + LOGGER.error("ERROR[%s] - STDOUT: >>>%s<<<, STDERR: >>>%s<<<" % + ( + p.returncode, + p.stdout, + p.stderr + ) + ) + sys.exit(1) + except subprocess.TimeoutExpired as e: + LOGGER.warning(f"Timeout of {timeout} seconds reached, skipping") + return None def backup_config(bmc_hosts: list[str], filetype: CfgTypes): @@ -53,6 +70,8 @@ def backup_config(bmc_hosts: list[str], filetype: CfgTypes): if filetype in ["frr", "both"]: frr_backup = """sudo vtysh -c 'show running-config' > frr_backup.conf && cat frr_backup.conf""" result = execute_switch_commands(host_data[hostname], frr_backup) + if result is None: + continue results_file = f"{base_file_name}_frr.conf" print(f"writing {results_file}") with open(results_file, 'w') as f_out: @@ -61,11 +80,13 @@ def backup_config(bmc_hosts: list[str], filetype: CfgTypes): if line.startswith("!"): config_started = True if config_started: - f_out.write(line) + f_out.write(line + "\n") if filetype in ["main", "both"]: frr_backup = """sudo config save config_db_backup.json -y >&2 && cat config_db_backup.json""" result = execute_switch_commands(host_data[hostname], frr_backup) + if result is None: + continue json_data = json.loads(result) results_file = f"{base_file_name}_main.json" @@ -115,4 +136,3 @@ def restore_config(bmc_hosts: list[str], filetype: CfgTypes): check=True, shell=True, ) - diff --git a/misc/manage/server_ctl.py b/misc/manage/server_ctl.py old mode 100755 new mode 100644 index d20498b7..aed2b493 --- a/misc/manage/server_ctl.py +++ b/misc/manage/server_ctl.py @@ -8,7 +8,8 @@ PowerActionTypes from lib.helpers import template_ansible_config, AnsibleInvertoryStrategy, create_configs, \ ansible_inventory_strategy_type -from lib.server_hardware import template_bmc_config, backup_config, restore_config, CfgTypes +from lib.server_hardware import template_bmc_config, backup_config, restore_config, CfgTypes, \ + configuration_type_strategy from lib.global_helpers import setup_logging from lib.server_model import get_unique_servers @@ -41,10 +42,12 @@ exclusive_group.add_argument('--ansible', '-a', action="store_true", help="Create ansible inventory files") -exclusive_group.add_argument('--backup_cfg', choices=[e.name for e in CfgTypes], +exclusive_group.add_argument('--backup_cfg', type=configuration_type_strategy, + choices=list(CfgTypes), help='backup system configuration (possible values: both, bmc, bios)') -exclusive_group.add_argument('--restore_cfg', choices=[e.name for e in CfgTypes], +exclusive_group.add_argument('--restore_cfg', type=configuration_type_strategy, + choices=list(CfgTypes), help='restore system configuration (possible values: both, bmc, bios)') exclusive_group.add_argument('--configs', '-c', help="create config snippets for environment", action='store_true') diff --git a/misc/manage/switch_ctl.py b/misc/manage/switch_ctl.py old mode 100755 new mode 100644 index c0e0d87d..b8a04609 --- a/misc/manage/switch_ctl.py +++ b/misc/manage/switch_ctl.py @@ -6,7 +6,7 @@ from lib.global_helpers import setup_logging from lib.switch_model import get_unique_switches -from lib.switch_operating_system import CfgTypes, backup_config, restore_config +from lib.switch_operating_system import CfgTypes, backup_config, restore_config, configuration_type_strategy from lib.helpers import template_ansible_config, AnsibleInvertoryStrategy, create_configs, \ ansible_inventory_strategy_type @@ -24,10 +24,12 @@ exclusive_group.add_argument('--ansible', '-a', action="store_true", help="Create ansible inventory files") -exclusive_group.add_argument('--backup_cfg', type=CfgTypes, +exclusive_group.add_argument('--backup_cfg', type=configuration_type_strategy, + choices=list(CfgTypes), help='backup system configuration (possible values: both, bmc, bios)') -exclusive_group.add_argument('--restore_cfg', type=CfgTypes, +exclusive_group.add_argument('--restore_cfg', type=configuration_type_strategy, + choices=list(CfgTypes), help='restore system configuration (possible values: both, bmc, bios)') exclusive_group.add_argument('--configs', '-c', help="create config snippets for environment", action='store_true') From f05f72f1c8913d582497280979a6c74a4966a347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Fri, 5 Jul 2024 13:21:14 +0200 Subject: [PATCH 06/31] new branch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- environments/manager/configuration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/environments/manager/configuration.yml b/environments/manager/configuration.yml index 810eea4a..81a16a58 100644 --- a/environments/manager/configuration.yml +++ b/environments/manager/configuration.yml @@ -64,4 +64,4 @@ configuration_git_protocol: ssh configuration_git_repository: SovereignCloudStack/hardware-landscape configuration_git_username: git -configuration_git_version: rework-post7-0-5 +configuration_git_version: rework-post-kubernetes From 4968cf086bf8bebaf6a4f61f905da471cd06e6b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 12:24:45 +0200 Subject: [PATCH 07/31] add yamllint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- .github/workflows/yamllint.yaml | 18 ++++++++++++++++++ .yamllint.yml | 10 ++++++++++ 2 files changed, 28 insertions(+) create mode 100644 .github/workflows/yamllint.yaml create mode 100644 .yamllint.yml diff --git a/.github/workflows/yamllint.yaml b/.github/workflows/yamllint.yaml new file mode 100644 index 00000000..4354fb82 --- /dev/null +++ b/.github/workflows/yamllint.yaml @@ -0,0 +1,18 @@ +name: 'Yamllint' +on: + - pull_request +jobs: + yamllint: + name: 'Yamllint' + runs-on: ubuntu-latest + steps: + - name: 'Checkout' + uses: actions/checkout@master + - name: 'Yamllint' + uses: karancode/yamllint-github-action@master + with: + yamllint_strict: false + yamllint_config_filepath: .yamllint.yml + yamllint_comment: true + env: + GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.yamllint.yml b/.yamllint.yml new file mode 100644 index 00000000..78717393 --- /dev/null +++ b/.yamllint.yml @@ -0,0 +1,10 @@ +--- +extends: default + +rules: + comments: enable + line-length: disable + +ignore: | + .git + .tox From 79bd85d2a2454276a70a24aeafbe8154579b5584 Mon Sep 17 00:00:00 2001 From: Matej Feder Date: Fri, 5 Jul 2024 14:37:29 +0200 Subject: [PATCH 08/31] Fix system usage docs (#22) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Env. variable `SCS_ENV_DIR` already contains `hardware-landscape` dir, if the reader follows instructions in the docs: ``` cd hardware-landscape SCS_ENV_DIR="$(pwd)" ``` Hence, SSH config should not contain paths like `Include ${SCS_ENV_DIR:?}/hardware-landscape/config-snippets/ssh_config_scs_servers` This commit removes additional occurrences of `hardware-landscape` from paths. Signed-off-by: Matej Feder Signed-off-by: Marc Schöchlin --- documentation/System_Usage.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/documentation/System_Usage.md b/documentation/System_Usage.md index 6fd2ae5f..f24d3b9b 100644 --- a/documentation/System_Usage.md +++ b/documentation/System_Usage.md @@ -14,9 +14,9 @@ of your local system to simplify access to systems of the vp18 hardware landscap * Add this snippet to your SSH configuration: ``` cat >> ~/.ssh/config < Date: Fri, 5 Jul 2024 14:44:38 +0200 Subject: [PATCH 09/31] Add matofeder wg user (#23) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add matofeder to the wireguard_users Signed-off-by: Matej Feder * Fix link in System_Runbooks doc page Signed-off-by: Matej Feder --------- Signed-off-by: Matej Feder Co-authored-by: Marc Schöchlin Signed-off-by: Marc Schöchlin --- documentation/System_Runbooks.md | 2 +- inventory/group_vars/wireguard.yml | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/documentation/System_Runbooks.md b/documentation/System_Runbooks.md index b6029fc5..26508320 100644 --- a/documentation/System_Runbooks.md +++ b/documentation/System_Runbooks.md @@ -26,7 +26,7 @@ echo "${VPN_KEYDIR?}" cat ${VPN_KEYDIR?}/wireguard_public.key ``` -* User: Edit [../inventory/group_vars/all.yml](../inventory/group_vars/all.yml) in section ``wireguard_users`` +* User: Edit [../inventory/group_vars/wireguard.yml](../inventory/group_vars/wireguard.yml) in section ``wireguard_users`` * Add username (same as github handle) * Add public key to user entry * Remove outdated users diff --git a/inventory/group_vars/wireguard.yml b/inventory/group_vars/wireguard.yml index d6a99941..1ddea511 100644 --- a/inventory/group_vars/wireguard.yml +++ b/inventory/group_vars/wireguard.yml @@ -11,5 +11,6 @@ wireguard_users: - name: scoopex key: 3XfXCmSo5+2kCrUgI/OmQDxSrx3gnomvFESNUhXVflw= ip: 10.10.1.20 - - + - name: matofeder + key: EkL7bli2t4EJSDYo4Edyhg8enHI1zOR+A54Ghco1OlY= + ip: 10.10.1.21 From 57955efed5c72787d6d34f075f72c25554bcb924 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Fri, 5 Jul 2024 18:17:30 +0200 Subject: [PATCH 10/31] add MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- .../custom/playbook-scs_all_nodes.yml | 1 + .../files/scripts/scs_profile.sh | 2 + environments/secrets.yml | 875 +++++++++--------- inventory/group_vars/manager.yml | 17 + 4 files changed, 464 insertions(+), 431 deletions(-) diff --git a/environments/custom/playbook-scs_all_nodes.yml b/environments/custom/playbook-scs_all_nodes.yml index 9c90bf77..08444da5 100644 --- a/environments/custom/playbook-scs_all_nodes.yml +++ b/environments/custom/playbook-scs_all_nodes.yml @@ -4,3 +4,4 @@ become: true roles: - scs-landscape-nodes + - debops.lvm diff --git a/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_profile.sh b/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_profile.sh index c279ae6b..24711da2 100755 --- a/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_profile.sh +++ b/environments/custom/roles/scs-landscape-nodes/files/scripts/scs_profile.sh @@ -80,4 +80,6 @@ if [ -d /opt/configuration ];then cd /opt/configuration fi +alias df='df -h -x squashfs -x tmpfs -x devtmpfs -x overlay' + export PATH="/usr/local/scripts:$PATH" diff --git a/environments/secrets.yml b/environments/secrets.yml index 9b509a1a..bcb259c8 100644 --- a/environments/secrets.yml +++ b/environments/secrets.yml @@ -1,432 +1,445 @@ $ANSIBLE_VAULT;1.1;AES256 -36326134623334373933336137343439663137346264323131663330653839613739366637646136 -6134633165636465326132386632353261376438313738650a613666633765316336623865656464 -66386637373536616339303564666565376233356337366438623065336131383636373761386466 -6262323736643739380a383063646333363730353930643137613636666238626138383564663738 -62653363636535376366363235326236653762393835643666666436326138343037373061363836 -30363038313338393966383739373934376635636631623735333830666435396464393863636661 -33666335353335366235623766343766366565643466363034643164663738633834356538373265 -62633634633034313638303933653233623332326233623231313538623937643534363731306139 -39653535623232633264643733373666386631343863376163366362333630383736306264323435 -38323334396135313461366363643035366662653632373062636537356566393538323061306666 -35353564656664336231373131613831393662623537306236646363376535373934636363323230 -62366261613661303065363761366261656539313464343162363736386162396233353339383262 -39333132323266353739633835653464386530313433636437636463626165313763613935323130 -38316263303437666231353364333065306664666435666232343262323137326135613433303138 -38613031373661623562326462396162326462353934356631613736333431313339386136373335 -31393131663833373565326661656231316336393764636438386234666438393839393731316135 -66343338656439663732353565663063346637326435393062663139383366313734313835313862 -63376135616436356361666239343232613438656339626136656566616262663065633232623739 -66353838653038383432336361636230303339616639306161356134623230356232326434616231 -32396234643638633337623162623536326231353261663665613335653937383866343434303338 -61313232636263383065656666353937626131663266663035623032663863343962653732633962 -61663866373862363836336164623663313730393863336365353938336435623032346363363134 -32356165636635623130386664623962636232646366343033643931343137393436336266666566 -61613132633636306631396365343937383832366363616233363930646530326464323437313839 -34383066616464333861616339366236636434303332363762613331356333646639663236346238 -64626662323766313466323932656139643235373139343434336337396138363362393931386230 -61356338616231386264613266663537306330393361376335373335663264303265383937663139 -33646464333730333936333535353032303734363431386464366435643039656531636138626137 -35363733346433666637336466333438343133323032353961383835356466343361666233626338 -63643738383334373037646537646132363639346639636331383239383132636261643163386132 -65363065663935306662343731346661646562303662303437383839303035313764386438623834 -66336139313331643938316530623566333861363462623966336133636564316565383736643763 -32626135353339383662326363303735313837623437363061643235316263663665636131653639 -33336666313237623064663564323232303165623633373463333431326262316534373330653861 -63386363636361353964313531643465346432623464616232396137363435653262333933623662 -35663261646337336562663361613866316334643239623439386233663538383563373261383933 -32646437316566316539363664326636653835316336663964373538383236303937656661643936 -65363565316561633730656334666661326264323034613436366437383065643430353564393639 -62663363393736396562623665303233356639393234316433373831393562373531396562623438 -35383761303535393561343661663932666266383637646464343133393433393233333938646564 -63636334343235643631613634393332666338386465306638336362623562666266303833343039 -63653561646537613933386230643264613833376330373866653937626331343233363165333030 -66383436613864623937373633633235346163333830306564383562396438353237383531643163 -61323265343066366264656335356665306331346561396665653063303664353266333464353064 -62623735656265633661396234363365616661303933663863643830613430303738363334333436 -62353066313730366238643830313636653066653161333130323063653062356137646433313633 -37636265313536353533623930643131633966363764323836323162656632396661373139333839 -33666239643764653236373064653037386532303265336562336136366262656364383534366430 -38316534303838323337316463656663353566613738383433633161643564353536616466313036 -33316561613938353566303933643532326630663437373439373365363765626362656533326539 -34393334386434643363663563633538356639323238636535366536333939666262376137343062 -39666466303766393239623061663137326430656465636235343061653461353264633966353366 -32303430633532653437376362336663333165393062376264613930336461336433316234396633 -38623163656564356366303430396663306666666631323134383864313639373835656662356233 -37623331363163636466666663616633346538636135376562633837653239343037356465326363 -37633630346238646632326433393264386464343833353530396532613666313138393732633536 -62653962386163666463363736656533623265373038376465366362323736306564313062663036 -63306465316533366638363434316538626637613237323334633833666563336334383333333536 -38346432666466396330636536623964306439386435623432643565313439333231613133353163 -39373838303665373563303433346630363738313365666231383764343031363664316639386630 -65333436383362303262343538623463363133363239333634653861323163326336663336666533 -37373333336166386233393438643132346539376262383266653562303037396538633163353538 -35363831323937306262653837383565343462373332666436306335636132383661653238393039 -63636333383366613065376430663331323062656134383031333164633739356562373762616238 -61363239613737396434383662303864623661663730616132326239383930326162616131306563 -33353362336431386465623364383932336438373235313439353431333365363933633136333664 -33303930643931663830613930343137346433396266663439626638323332616639366131306636 -34343932663363323765386264666665393231656639353562393335313032396637376233613030 -61353762623037663533363733333134666132623866333736346239396333653430646165346365 -37386461313330616336323961346232323061323564373064656566663337663139633938303533 -39393235323234666239643833616237663964646533323362636561633034653162346465386632 -63316261616435343332613331313732633638363733323435343233636439383766613563663236 -34373635613563333263353533333033636533323731633661633661613738373433623165303130 -64343939633139383165623065383836303234633866623865633762633032663661623961663334 -39613963303834306235383332643663653331353034326637323331366438373264613131623337 -37663363316161623734666265333039336333346233646236366137666431643431393261656630 -35323038343566313463373034313961613861363239393131353362663565303534353262313463 -32313232303462373834363730376637653065303265306439316339643564626363386665646639 -30336361363739383931633030646361623866653462353962643162393537623339633966636330 -39306639623638343665633262613063643338616564653064333034623261316563366164376665 -31313463313033306434623732376464343634326330326263643464646135386539343433356465 -61646531313739376532383063343431303338376161373436653833303830666361393830626636 -38383661306436396438646130343433353834396534333834393264366134393032643938613938 -33393066346661343137393161643861356164356561333464666530616234366161666238643630 -33306238346233666365636433363266646432393534313765663563376533313035356162303630 -34333137313465323735393763316361323462633337623732316536653832393238366361626230 -35336239663632333262383464663930326438633264633663366661613731336430656337313537 -65343034353463396137373163353337633561656466383361383238643333333161386636653738 -38323861646366323538643864623931306562373962613436656461313732363439303063626130 -65613762633331353732383465653438623866373264376338653132303961633837656463623464 -61666632643964326561326533366461333833623166633763356235623763336338353865303934 -65343962643666323235386461316635386633316430316633376134363538653437323363313631 -62343262613635383365356363303535333331666335356439613830626431623130356661626532 -31666661666461623039376437646334663936356365303230376330353661393438623634393635 -35663136626635373438643065306164633166316131623834373633633931383264383366373465 -30303731623864313635633737356266386133343062646531343136333463343133303961386330 -62323631303530613837343166376235636465383831343331323930663835616561653033656133 -65343564333632346634663561373630623064326331356165333834393664396563323735396162 -31383534353131303338336432373736306438366565313837303663323631626239323763323065 -66386134376337653335383730633762313236363039356266346165646230376531626237386131 -39643366653236363265633661383563343032333830643030333139663339643032623137373266 -65646436333435613737303465353937353936373437393666336133643237653031343932613937 -66643432376162363133646539343866663165633130326638303263313930336233333835373964 -34633731656635316665343730643430643536636634363737336365356532623032393732643132 -31336330316633343661623964613565303263636534396433626566666236336564633532396264 -33643837653533356265623939396237326336326531373664626339366634346363316634383135 -64343034633966363766613462313331333231323934643833386337323863386663666430336461 -37373434353861663234643035393534363234363435633465656566636362343435376231656664 -64323639336533623537353862663764343230613132386637306432643431626563666339313530 -38333533353334643331353331623130613861316361356538316538623864313737626235343538 -62613132663362613665663661373532663336306461653033356539346531613263616237366362 -39373235303465343131633230303338633334626235353733376465366661653766363962306637 -32336466303535653064323230626365636165646431373364346434613730336263386634613739 -36666265393138363233616365363333303733373735636261306163616333616465633937643766 -38653763626438663662386237366239313231616563333039353633376661336434343963333236 -32363639623132303730653065393736383031316661373835363237623631323337626138373434 -38303637663634653663353933373337656262643132336466326337326536383132333732363838 -39376333376166363461643637383138656365373833383865323435313065383230623736623562 -34613933303463366437373639306633353962326530663965313265666565323139613237626130 -36363839373131303931313961383464303939633264623030306533333735343433623138316630 -30333032353965626233613533346263306564326264636637303965616133383936363134666435 -33303865383962626166393339393664666534343431373737373263386464323131626463663761 -32316563643136353437643035313862343436393362616266636265643735626264373362306166 -31623061623536373165353230376334666165353163623063613764366637366361633861663231 -31643233656430636666623035663037316663353633653366316436393031666333326635306137 -38356631376562356637376562656338326562353661313132363132396630383331613833323836 -62376236313935313835666535373465613639366431386665343162633633656436616235333530 -30383465313765366138356463656534383732656162653761633961353131653563316263633237 -32333766626639306366323136363139376265393963343037626432306664613433343135616563 -65356238353737383835333333383661646631306236396366353433353332303565353835366634 -30663766336465356431313231313132333562616236663662363835633065396238366338616634 -63316436656563343238633039383862393039363861623065386664363765376631633962303836 -36333732613661343334633165363963613864613262623339643962383834666639663038353130 -37376165303633616331653965303039643166393039623763346363656333613635653061373638 -65383232313466316330366263373463656565303136383330633139656534393466376661313835 -38666534383965313432643635646332363163393030383731356135663536623339663461323863 -35623165383561646465333136643632653934343261396265643665613638613034373738313137 -62343034326337663261393834373163393831343465323162396638623861346433656239333663 -32653565396534383063356632346233373765663532616435643536393265623436356236353336 -66303934626532306366383830343733353462663662373532633036643566363136643736616566 -33303162656562373530326166616136346636323531323130666661343263316334656562323135 -39643438383437646537616431353362656663616435303433663732633230396231363864306166 -33343965376230366464386238616133363663336666353464316466656264333332313134373536 -65373239323530326264356139663461636532613630333562653734356434636236316562653335 -31633235653430353461353164376463653363346538636338386462666334633039373634366334 -61626139633865333331333731633537373232363035346639623635616266623035653436326161 -66373630393466366533316163353738313862366561653364383834616435613934376539323634 -37316365363065663134393436646139303438386439616163623430663232356331383766303263 -36623866646665396665373937383831623366343063306330303564333461336164363233373963 -36333439623238373663386464396438323535356130643638396266393361633134343363653364 -31323061336534323833646439306562313036346230653634366436393132343237353766393938 -34353061666236396534653533626535373863386533623063633862666661383235343962333934 -62323436373565323831353036653432633131623562313763393137656663643764386161626235 -32376265663635353431616661653234663763636233636532313036623839353365656634356333 -36623236616238623935616234643031663534313966326237623632386532373663666431643365 -65333433306630633939353162336535333164356635613062353761383038386534653734343533 -39396231303236373038626264323336353162373262656136333935396230666665663832353563 -61313062623131313330353736313766623039326161306165356633323766643135346535376532 -30353863656166356330616333333130663332383561363463383066366438346562643733333534 -38323064356631346635653435623139303139633731643635373161373637353738646661336464 -30303234356634663365353634653766313261343565316637633662353734653133313339643961 -34623762363261383530306264353963626638616131383461643964363437303730376136366464 -38333234343961623830313263313165666235666465663864333033613735643239653139646132 -61323139383031646235613262663565613932633265626564383131326664386234353733313535 -32646236316430343238313464333338396462313739643564643137616164346163313264363030 -34336165613339636264343637316131373361346362393731633832336630383664303962376438 -66613332333364386365636434323261643631303765393635396561303765383438626635333437 -38666536323662353938623932343032623963346137306262343331666266356366656336303561 -34636337396663653234643134323632626534623136373932396362373938306334613631656165 -61613939393838386339616330303538336133336632376238353136376438623465616539313530 -32663064373264353433316336386137313938633063363930363062333061623637333435383762 -66363238653530323130333462373936323932323963383838356361623230353937396135303065 -66613031656137343661303239323532643361616239623231383737346466303066303833626261 -31666363653263616530613663663062343433336531633134383139393864323566373966653361 -66626430373662323962636465366536666637666563666336383061343964666266653830376563 -35323163333165376137333835636237396634616330626239616339636432363733383431366562 -31356434643164663839303839626333653064333761363038383131383832336138323733623332 -63393436663931323765306336343732666436663639616162643439656163383637636661343930 -65346338663030626631373365373130376165623566623330353661646337343835323231366266 -31313164323533363864626164326233336463663861306536326239383663616366356666653931 -37383334356464346265363236366462306462633264346361326563353933616635653334376230 -65613533303865653538303339393334363237366262313836613763393032363963316438366339 -64366166666663373232356137346130663765666466626339366539393737386630383730613930 -65643363623566633865633162636534393731663365306430373638656332353530663366323963 -35303062653338616530663130353838373763643931616130666262663564366630313561323165 -32383163323666636665333665653038383361373561363431353132303732313031666332383638 -65386361663539373334626531643039636636633061383766313162373034343038386138616661 -37653132346331366537663861353063356665386162373438613566663236346537346666303031 -66383739303236363839386463653865626637333836623266336639396666656236616164353937 -38323732643438653530646666653564623065613035653339333038356536646638633239366237 -37633430323535343436326463393265393033326430376331383331623061643964623732363230 -33326536643763633432313531353933366234393631303535666463363462626535353630633230 -35363934356331613431653931323362386164363064336230653062376438633336373930373239 -35376634323162393761373737303034383739313835323438386432303366623030343331396363 -37363566363061633535323664663530326362643237353634396261366361646561663234356463 -65636638383236613762313839376436346664303338666130363336366662366137626662356537 -61386235336566396464373336613133623639663632633930663766393031326435366434633938 -62623665343962306233323562356130313166343963623533373961643261636430646239323136 -62336164633163636639636338653866346532303638366264333133613637343165393638633437 -32313563653832316263336664313664373566663366356632323531383563323466306633393232 -64623139663436303330656564343961393534316164646339356334626565326335313666316530 -36383262326338646264313935616235383734653666326263346438333934613066323466633438 -38656164623539336565336338346134353666386533303766623231626564373331646264396234 -30363465626236353836656664333466613435303561323635616462616564353762636565636463 -33666364333038373431353962303135393537636366393735373539376132623438656266303865 -38366338663533396564336163353862613835633039396664656537333932626534393263316539 -30633862393732393730656237663236626437613734386339396136353536356135363332336162 -32373637633433366438373233623666333236356334396237396666383661343735393363373235 -39313232623034653339393062383636323431313938653535373538336164616565626162653661 -31323865343032386531336134346333303735333134386436353461613436623535626230633233 -37633035653362376264393835643964636432303265623963333563613334643735326366326634 -35626132633830323732626561646331333166653631343062313232353837643239326164616662 -66663564666337343332366338633061623163653265323539326137613936623337643835336238 -61616462653531353864613030656133323034353835613636343930333565636439393437383635 -31333338633333646531326237643238616565623164303338373065306638333334326564373533 -62353235363030626334336637653161646433393665623736656237636566363064346437653539 -64363034303436643331356362643161303837613530363363623536353532383338353635353833 -63303163636233306533316263356661346531333437653837353963363161643433393433656231 -38306138366431646265653430636437383138393062323738613938663339643931326363353838 -38656634366263343637383866373331643965666231393435666634653065353930306133313266 -65373461633437343664326539663966313431383962633438326666636661383264343437303166 -61626163613931373537663731643663326233663938623062326236666331383233313265366239 -34363565653964666366356438393931373466396331343735633234373836363962633834616365 -61363232656564396434353839626464353735323536633337666530396662626432343032373130 -63333062653961336531393565326238646665313463346434656365323963633966303063393065 -65386663333036323865643330343230613364663662656465383533623537613733393564353038 -39346138356332393735323161366237323839363762373438663763333335366364366230333931 -63616635323431316665633066663534663731666663623864666532366334653830323030393865 -34653165643236616431653061323934303631386337333033366264363362393732303331663330 -32363666653063656438323366356537336237626533343738306562636535656362303333313163 -30333965303264373234656135353031383662616266333461396338383139613430613935353832 -38396535333861363863616638383330656138653632353234613661616334653364656131626565 -64623631653233333565346666623837303061623338353939326237363364373964363337646566 -37326333323635383566346662613364326436636264653834643435353539663665613230383966 -38623737303336323934346430306634626333623836626332353532333133376365643537333637 -33663366373439653433663639373235343939386465323939636165343666303533633962633330 -36613937323736636662376439343265323161653932366266363738353135353465363165333964 -61316363316132306365613439373264383834373666383565663662323735346663613766393961 -35626233383032653738633266346437613134393161336562366165636637366661663931616335 -63613735383066613139383933333835363565396230353036363334626338653130343231656232 -66383462333366633237363235623265653337366339656439356539363461663563393662303834 -36303665366531316261373733393765356437343532653636623036656236616361633065643234 -38316132376139623239326134383763366635306235393532373538633839623533303838303838 -33303830303730633435313436353736396162343538626439363536656465656335313036666331 -34303334303565613437623534343938303839366438633365376539653439316264636363333661 -34633935613061613463303338626563333636326661373964613332653738353437646231343437 -34363564393831323636653761646136623361306330366162653861356633343834323861373439 -63393934336566626265343861363633373138306432386631636331643231393635376230376635 -30633538333963326363633662323030333462303361353031646461353736613439376531353331 -63613266316565383435323438356665363931303362353439376335356639633333643830333732 -66303631363731313636353239383438323063303236303762356231633231366364326437626431 -64636432366164646236656632343264396136393362646135306339303738346663663133613036 -33306138663831333936356231643032636631663862316636646134343564656332313766633934 -65613937653039653734383062313565303062656564303639646463303964636136363330336433 -36323738666264663665343637353333623465373830636230346535656437396435346661336138 -66353432373732633732333464643230613265376365313866336263303464306631363166366337 -62663237333837663961636230336631663534356561356638623433653366633831323036646564 -34343936373435616130376539326430616632393435623032653163336266346434646430656131 -61623639303762646361356135656339306139646232646164663038633039373336626339346364 -33313465653966356366633733643266376362363635623330373765656266383563326361396564 -37333537393163353434663539383163363333636461616563623739383362353464613936653032 -30343534623137373236653364333230303730366462306238313736613235366436313831323765 -35643536346335306136393937363438663434653662356662393530353535626266366661653364 -33313239356365383733623932363066303134383537323133636433343834396631313430363235 -33316332636332616666613461363963393630333866363732393438393365653262613731306132 -35386334313965643139313033613336633336663235663738306362636339623932613430323863 -36613466303463363461633133313336323461363236306465613334323939313036376631373662 -31393261623762653562333438636231613362313561623534346161346138623361616230396439 -39393038316230396661316235633262363233363037663630303665646662666365666239653133 -64386264363139626236656334623863633565313364386439303232646132366336626539373236 -38333938653932653462646331306665303432306264343232626264356533333034303462613236 -38316566363931376261373162306361643233386264643338373132643132303234336664303338 -66326165386165363737333961303731623461393862643766376164343061653332306335363439 -64346563326566323564656139643034653530346534653630643763383333646135393565363535 -37653864303539643938653162326134333833646131623034326539396635363064333661306532 -37393465613463353166396539646461363139323034343733336236333164313136333739393864 -62666665663337333563376630383162623937393434363766336539316563626261653833383735 -35346532623530366530306633613561393637323063626237623061633639306465393963396661 -34393335623533306438353064356663393561633935626664326232336336663866393232646464 -31616437316461663039643436333366306135643131303030663139633539393865303932663538 -64333238393930373064363132666461363739366663373964323333643736633330643336393237 -34633139376463616266666638663930373665313465393432393335643764353838356663383035 -65363830396437343231333337383934373632623431363066373939616237613133656639376339 -61333839326464366265373138646131383432343636656263333964346633396438616333313432 -64376131303162643866326661343930303131333863633564353330633765356239313663623466 -37616334373434623663666336383832303933646165366534633231633365653937323364323837 -63616563373633663664623539613065666539656633383731363662313931613634376639363266 -39303338373862653466323732353234353936393362353163616363306636323334373238656262 -33333661366437313831306461383262663639363537653338623834653962306136623831316631 -39626333303233313532623865363635623564383061373533393661316365373332353137316566 -37393162663461663163386465353564336335383437326639616133633765383237633962373762 -65353665346531646364353562373535326165386262376438313665623436653265663463646363 -37346337323936636237663636623465663865346231666166343430383439623666323431326566 -34666235303031656537663136373162356639613362646166643763343332633630613764353932 -37613566313232653439656538613734396335343335653839383139393763643864646264366135 -33323535653733313966626563663332353037626537383238393336663362666630343037646564 -39653330616631323133616532306464313961393130643432383639666165383638383335376363 -32303336353064373030373637663764353432393465373330646432643563643262666666336632 -36373736346566326165356534333134313162353535366432373261323732663839303966646635 -35363137613266636165376166633034613134343531636666656262323864623430646532353463 -39653935363539373738656134393461623739336438386165386562653530633962363862316534 -66306339396461356236653332336465633239396166386461643562613133306638613330333332 -35623965313833396334343638353865373033313031393036373261383632623263626564383531 -30363665396237353661393937653064656665333038616232613039393939316230363639663830 -37313864656262613266663539313735346265303030313232326166626465396439393038346166 -35643135646437303266373739333564633534316138343931343061393933326639386363316530 -38303634626463303235356636396666623131376434623536313166393962363636353861376434 -37306535343332613132613866613062656238656132323131366230346137643535656265333036 -32653062323137373462646165376162623636636135653331643537623236623663643233303339 -36333631376463333730386664663630366237366662343331386463343662336239373261316534 -37326639363566636339313238663564366462353930383966333539316238313561393465393434 -39633337636266653965646434633232373931663364633864333264373866363538356662323862 -65366265643836373730623533353931353765636161663137306138623938643061613230656562 -37366236396438303733613665626637326336316265633465323462383766353034396463336639 -30383238306364653461323237316336356562393564396637323662666361643062356137346164 -30323263313832626238666462353830653532303133313662633231303731353039643034353135 -31626232343936346130313336323739343165303132326462333566363261316236343762306630 -37633032343565396631623139313532333631316431623839636334333062633731326363333233 -36343539373234373065313065643331303430303737323439646638333166303731376166306362 -62386464323732313832353430303161356637346632323161303663316139316363346538343134 -39376664316266663331346439646636336232616663356263353232366438376463363533616565 -64393036613361393238343163303834323838623436666434633866643131393830346138306339 -31363833333333326666613235303630666362636333323635623731646465343364323366303263 -39343138646465636364656130616461626639363035313338643064366163656261613636306165 -61656664656432383432643131313431376133363737363535663464386438633534346265383333 -62326161623934613839663431633163303631613637346439323266326638646134623066366263 -36613864353532636336653333353931363936393538393030643536336431313965376530393861 -39386330363535346631616366363532376531396133366239353633373663663761383330626534 -38626532626632636337303034613536656635663539363961666265616530363331386565316135 -31613935353933653030653465623637393330663863656564323738636364643265323235646135 -64656536393063636334303632393430646137353061353630353736323466343334376436306635 -30343932323163636433623737623766373335633431343562386138663466646364616231383762 -62313331353361366331616663373465343239393861623031653731373738383336353363323565 -65623030363966623065653238303839393966386433666365643733383464363430623838383832 -37386337363233313263336639656564313736633231313166303466626464353663613465623964 -35373738663033623464376165653135653731633334653431306637313632303439663538613264 -62636336393830633930303731353832626664316433303132323238383466653564346534643634 -66356637353036626130396339663137333232643835363863663137666630616362393137313066 -65663661623030363032376430646534353434333339666265383463393136306363616334616434 -63663630653061343435376239333936373366333361653536323066643762626539303832383430 -64383832316231326631623361376137666438373939313037376133616265356161313164333734 -39353336666235653035623034663831636666656661393262653863636633333339666564626131 -65666537343535393863626639616132663638623438633938346331363761333964386339313564 -37386664363562636532343139613338613135303665346632663462306664373265373032303732 -34353034393531633038386566316636343130643938666532623130626361363230376266366636 -32393865333432356435323864623036383238383161623631393334306233363264316635613933 -65316238333337363939306562633062396531633263633538623061646665343463346236303731 -64396131373831333365363961313766613132323162386366306662396665313765633763386236 -64333031313334343433336561386538636361333935303138653536313363323933656133303464 -39366438663533616630306637656162366138653966666135643266626234613639616466346562 -61353064623534306165633834396333386636313439633333656663623035313537373835393837 -39653538393638656162333162646335303438353037633065656163666565656438386562626231 -33383834653965633432396534326538336538376132636136626232633461323131356238376331 -36623437376161313736396231393164636561303238663438316436376261333233383131323830 -61616261666437356363303365633935613366666266306135663965633237343938663362346331 -39393161343836303131623832623662373963393236613065663061373463646539326437306562 -34313662373832636334333164666139373563643665366366326132626530303538376339323734 -30316666386238383338353234636665633465353238353031633239633237323530386231306365 -39316633383963373734383833313436343162306262373364316264396636323063353666396264 -34383731623934386531613562643433333436386336383732376237376564313266336138393632 -65643637306662353030353435313864303964373466363566393665653037376663316466623639 -37373936666239343762643466316434316531336262356436366661636633333738343935643765 -33663934643263373161336132326434633537386632316665386239643262313536346565346462 -63393234666435646631313364306665613835643835303537336133663137643166396563653531 -30653136323937663433363664316235303637646634616662396430353939643163353461333236 -30333137613037356237316331656166373430313636633764356234303062623965633362343133 -65393038323231353134356663353965323436653637636330626563336433313164373663303635 -31666436313461393234343763343231373932613961393864353732643763323632386263383265 -62613033346666333533353365353464393063356663326138353266623039363565396139303730 -30356633313638326430356234383064383162316236666466623339636264376638646636333732 -64313435323061663366306461636638653438626436356330333731653431393030346330343830 -30366536653661376134316565333031376530643935333730353134633363653233623066356564 -63393831366533653131383831616430646562666161643965393864316337653365396438383965 -36373339613032313934663439323962636165326435353666656238643437656536303632353630 -38393966656161623933653361636462313761636639323734616463656632353532623239346230 -63383366666337623636623030663930343564353033643036346365323138353031303039383261 -37396137346236306538383230373339613664633137376535326334336162623066633232343336 -32353739363734386137643331363133303935313534643639313336306539353631396336633234 -66613633313463616437383866633363643130383631323038643730363365656566383261316262 -62353034366164316332393238633632393362373261373431326262323766663639323566323061 -63326263383532313763623463643962613939626337653962386131343763373231386265323934 -66343339646431303338353064383266623939666231323465343239313839656462643137653563 -37653732363666633639653332383838376663386464386630353239613436303361306565363330 -30326466656464383439393061356464623330333032336335616535383131643061616439663364 -65306330396363316237336162633235636239623831376464303064383537333134343734383635 -62323363353764333966663863623339306432376530663833353438396465333063326636663731 -37656266646438386464383338656434333563386366643834623531376335343130636363353930 -38383661313438663331333463366439353538656262303237353736626565326635326532353231 -61313734646262323832393366396162386131393731343137386234653064313165366139393961 -34663563306164393032323162653965316664383862643032316364396162616663313162646135 -36363438623034336534316136626539613636643131636363636338343666343938636461653062 -38636265646534616338306633343665616236386639363635656562363934656365386264373263 -66376434663663353562613932346630653035656338373463313664303839626432316165366331 -62616130366138383734656163666636313364363236343966383261336165613165323566383966 -62666363303162396166663564633334626330333961326662373439373563353364323461353238 -36373438656362333936396630653265376362303433393961663733343030376638306139646534 -65633836313562626331363630383262663863373261306464646664653337303031393734303430 -63663838343636363866613861373133353164363662303935313637386435353963633763383464 -63653365653235366238643133356236626266636364636332383438383533626438626532303131 -39343364613964336137323963636337383439636436373634353030376133353533333063393531 -64396535383461376236383465346630303338383633623437626635393464643030313031376132 -63356235616631326438336466343466313634306333373832303831373965356661613136646333 -33353262386337333332363233363637356132343236323637383166303530626633613735616362 -31666433333237663431663830306435623761653265343332383430653036373632323964306564 -37633737613231353666316630616365356166323661366462313031616461663764656535333665 -37653361356635636432633235633338373930393561616235353566643639633763336232373163 -32336633336331356466326533356362313366613032643264323438393230393936633239656232 -61666135393066356435343661623132376161623062393331663639323165363163363234386566 -30653031393733626532646263383134383539396265313266393434363061306130633366663331 -63633463313031663030386565346130323363366665623539333530623364613561636465373836 -61666530356637386637306532376432626332613632303835616636393365633034333262333464 -63653437393263353166613138613262353362643062366266333763383765323435363839376330 -31663334383538613630623963623164653938393831363030343836396338313538373232396166 -39353634333531303939663261613663613231663463623965666538663831616261383866303063 -32383833386431333834346333343430316238623265303930663630666531313730356135353333 -63383539306432366366623032643530363035373437373236616466343764633739653237323430 -32393162613434383764343139613938616235626264393837393734306633633733336132303362 -31343938316530383434626130376132386332643734313466373064633866366466363362333037 -38316437623832346136616238363738326439333837366238363961636363313661313335663165 -36383539663939346432663837323561613531326530616134336265306362653530313430393736 -35643239643834396261653335356433386362316464373338633462613532393866306536616563 -64353637373739643039663135636236373739656264353733383532306639306433323765663962 -62393037626162653438363631656362353532316461316661326333356162656464303438626534 -35623735653462646131373435313366383863343639616630343334366435303734366133633839 -35343631613436333561326439326135343132343638623834393061393063623163623636396431 -37323532643533303839373230333734333461303061376438616333373234343334643939366132 -39386266616561396132613938633330396565396534376466336338333338663166396430306431 -39343765336365323934326238343231396263343137623430343066643632316433366530666335 -38386364333562666331663064336533396337613336623631613265383261373566326233393565 -63376561626563366165303664393631393733303762633731613666326130643165393832663437 -643464383333666363356161383039663432 +35393830383764633661343934623466623337393835316262653566353564343165643131633463 +3431353630336339326632633238393264373634646435660a386532303931393366623536623337 +63643966363064376534306638386536613531333137363831643063643566386236333963623961 +3366646238363135320a666665386336343734323439363237396165636234313465316130636138 +32386231303066633531643732363739386639393765313833633562353938663236633566646132 +39376235336235343261343330353038663864643161363339386466356435323061376630396434 +34303334653931646438353039396665633031636466363130356331353762356137663131663962 +31306333396334343139633938333933636266396166303062396635303538393365343534316233 +36613539633063323733643866353961653939653538636366613639333938353030303464343564 +37656437363737633134313332363532366131333134366438333463653764306435316336366435 +61393861343063646565303464393561333431616537306164646262643862316662323165666638 +38303234366531323931303632366163666430636330633863653662386638366631386337643966 +30323435656632303135336539656266396665356562643131613136353134663464626637383065 +63623066663535643030653764376263643536653039653136356632636330383734353832633336 +39353630353666366135346561656365663766633766363932343464343162353663663037343136 +31636366663863323461303431656562396439363735313761616334336261663063313439323661 +33343765303737316565666563393139353330653861663133363831656535303861633161613533 +38653463336530626331396661363364373166613033636334653838363466356439616135383766 +65396436666634343333383037356232656237366431633834316564393266346538363638613839 +31376136613030326436373838643937363962386164373063663234356234333133663235333165 +63306461663561393132613032316339336330386530343137323032653066366436633130303865 +33376630666631636534613832656561316233643339623438653666353134333236303166363731 +63376233336433303633613634636662393065663061376531356463626538343866336235646238 +38656161656665393735383066363463643334303036633664623931323936336262346330303331 +64326466373833653366633563623761393664663938613461393564333066356339643733323834 +66313463613532336235363866303131626530653465616462636431353763663331396263636636 +37393466386162346334363264353865373538393862326239616137363361343433323634666630 +32373930373937316337343830626438343031383638656339366563623636333535346262623562 +37303331373362323631373930313063623664346530636666303133363239356334653364386162 +66393130336365383965373762333339623733396266393063313237363662363663316564323263 +37313939353763323562353666663032383863396138383435663362333137646331363464313565 +66383836396431333733633530643935346564633236363331643732343632646361663039376639 +32643338663562353036656363383261646532633665336438326331616663373130613734363832 +63316661346434323839663764616566346261353734623634373865626331613265613631326537 +34343639646239346433653830633966623235653337323630633831303139393966343839653939 +63633865616138383761356433616264623735303636323233613334663835336335613263316363 +38363330376534636261343436363735343463653033653530653132616166373839316132643736 +34643037313032336534323964616361353430343030666332393836373432333330376339333832 +65353466343138616533656632383832306439616562613433326236323765623266343132616335 +34653738633664386336333562643964333639306431653563656430333664613166656633336165 +34663830366433326363393134396236333737326131366434613639616639353739663863653562 +62663937613834353838356638666366616338353463306430646162666137633533623234633332 +61363030393764396538653261366638666366326138393462366664386236663236323038653731 +31323738643035326434323137383435336565333561393135663365363133346639356563666638 +36353330323132393631363439356365353936383132656536623231373032656661363933336534 +65376230653339333064303739326365383062373233333631323631363732383166656336303266 +66626666356137613438646138653535343034626238343234323864313763393637653634373535 +37366538366331663338653562396636613136326531366436363239343130346235626439313665 +38653237373033313537373533353063313661343034356535623863303837373461326337623765 +31386339353931343833613136323139666565653232313166633939346632613965376536396461 +64336337356232306437386534656238346237303365303937653834616161616439376539626138 +37333135363538363831393839356663303239663731633066333561396563356433613932313435 +39323936363532383636306136393562346138613763623764303436613231666162333963326239 +64646564636466376239613965326337666437346631356662386463633037313030626166656266 +39653361613061306665653466613965656239623531333937313934623161336437336237616366 +31613962383232646162393062666564656238633931633639303933343531336531316566643761 +35393636333761663964336663353565353062313762663266306432366230326162346132386661 +37313932336539633634316463666262653063393830313834383938393365613033653766316364 +66663838613932376533316139303066313163386664656331386332373661353035333235356139 +65616465613762386430616236633661313538613934656339663864356639333264396531626238 +32333665346433656462356238353665636231633534303635643737666430363731383636376336 +35303636386465393132623130356238373966383738306331316263623063613062396261633334 +34303864653462376532623232386332646636613332366330643433373063666237396264396436 +64333633373863303261333962616430376564383364323566646566633431623664363262343562 +66396337393230323464346237663364303666366435373135363835633439663630376631663735 +65623235323539663766366538353336333263313934393063663566323762643634326237653738 +36626231316662643731613663653339666264393930653865626433393433376162363632306236 +65336361663765313563353839323831356135613933363434326432316334613436343237363665 +63346562366361386132633733323965306135356432353339616266643863333939356265383062 +33383730323030323035376663646131646563663334343835353565346261363665663635376430 +61336463376637346261663866376633653361613966313261643562383434656332353735383337 +30343433333535366366353232313535393665353931356439663830343366363030383538323631 +62653232613131333966336633666561313337643964383633336334316337653337346135633464 +38396466346231626366633661383761313866623930303632623933613834623862336461326461 +61663935663263643834333632346462646432343764383831643339666637656238663661313463 +36613063333263666665373537323330376131666532393332346434316631326535383936623264 +35366434633835383537373065366565366137333966336265656336633061613936306139636432 +37636431313232646537663035333439353831363865393035633333636534333431666366626563 +66396337333263666532663363393932633731643161663337633439633930623764313735626364 +38643338643432613134323134663531626235306265386264346533636336333264636561313366 +62626437663465383631313434353361303137393732643039363865346536336530393166623138 +61636163656661636239333266333334653463383531616538356338326364343366626530646236 +39343135306162303861383736356635623038386166316564646662633530666434643432643731 +32333630386539316137336465636332306563613838363337333632323364323462363830383566 +30386138323064303336643465333931653731383237396134663464626636376136626232343634 +31633930646630643833343130376134323531396438363635626563353664383937393136306561 +62303862396362613035393431616562323465363635626438313163373764633566363831316662 +62333938353933373636313863303238313531313932353138396337326162313632643837613364 +33663463633466666130616662646539303037643730653036383666383364383531633437653432 +36656266666531343535646137303164636432663138316230333865383962386563633364383330 +32666337313966366166346263306663393131313736373565643563343831383263366265633139 +30396331613032323935343230396135366135303034323338613835386131366530616537373531 +34373564383461316538643265363361373438303762383561356134336261396563383538306362 +63393263656336656336646561626431313863346535316233306361636136663738306431323739 +65653966626131376438663762356566396533306166613762313233353332313136613332643337 +64386365383830336630333439353665316638656364323937363132336566353136393133393034 +31613130656663323336353063613765303830653264396133656435313064663035383661343437 +39626536646237663062336431323939346266353337333438636230613863613933383265646533 +32356166376262313538336534613635356635306262353365623636396232333534656230396139 +30316338663261336565303433633665356130343931376563663631396237633463323635363864 +63626234353562663766366239373263346163323864646438373832653232313162346665653331 +31343965613137313266313466663434326264653362383864373032363237653064323164616138 +65356365633337386131613764663531373039323364613331303932306335313134323830653633 +64363636633639643763633564616531656663646235303462366266396361616638643933663033 +61636231393734376530363638313164333165343934623462323030623038363262323962346662 +39633335396634643837373837653438323130323538636534336363336162303161343566383562 +39633764313565623764643431356639346335663666646132303433383231336561306564393132 +32316265316233653231323738626564643831393633343338616235373737393236323833633762 +64313065613930613761643233326264316362633039656239643766633332626338633837323739 +38376464396437316163356263333430356465656232626632653438313165376431376465346461 +32313166616130613130373933376163646363376336653333376630626365303866353366336265 +64643961336339353931633235353963313839326134626662333333636232326537613131663061 +62303833656362663065616462643836333230356661323537373531326331376265653062653132 +31343938613932633837306236343136313963626161326165393631326264316135656436373231 +37333434313236643638656462393635626437616536346334666135616433383665663433383263 +30383434393764303637616639623666383837646334346632666438313939316161356333636138 +66373033366465626134313064373133666465386134383661363335623461333066663066313765 +35333033396137633165326339303632613264366364653336333034306163383466386132373334 +65313833633235393662393635336636663462353162623066393466333130666162306133646237 +30663332363030633963386639313061663036363835323765373062663535326336346534393863 +38326433343030663436663838373833346463373038393165343062373131356336356261333334 +65346366366437346130353732346133653462653534626337353532306461336337333238316265 +63396335646133326537633231626666633064613139636538626162363866393564333832366162 +37666333353864353061343962623538393761653331383639363931323938363431623638633930 +30666137373939623339353766656232363561313032373063653665656435613334323231653962 +31636230653366303732333837306464343934636434323565373461363830333439393532636162 +63333563303534383533386232323662613535386665646364616534313736393034326630336265 +63323535323566333162643235343865386131396138653830383933333663316537353230383530 +66316662653430666134303463346139623061356331663131383466643330336532313436656632 +31656262656365616164656430626332353066613734383564383235663031386331643966343231 +33663261656237623033343332373833343131653664346531373433393534393035633536616661 +34373231653831633736386465386266383364393861323335376437613639343862613364363364 +65346537383365373764636136633964393437616165616535396233316635383865656165626134 +64333263393334303035306133343635653130333533313866663231663230363938323734353066 +65376631366236333062393039373064623031656535303266313063363963373762366162356336 +64666565383361363633303638666336336134363163646535663431653632363935613062656461 +32633835316262643331316166646439323034633062326536393763353863646132343165613964 +65356234356262656138646531343633393265633865623233323866393336383037343232653161 +31666135306161653739376263613330323764636438646435303634373439363034366638643637 +61303730333334373836333730373765666532313434356639373362633863346566303035646531 +36373636653466613264643437383961353932353730373464323036313735666562326138333237 +34393537343937383630623139386136643437383761633465653264303930623232363963306532 +64343863343162323638666664663737343939336164663031633961613763646634356635386236 +31626135306432373534353830343337336265643331396363636263303532623335386166323634 +38626636346566613861353363363836663836393732656439363862316463303736323861376134 +36316335323461313138643333326431396562386230643032333830303738363532613133376530 +62383466303031363666646435666437346135656236626131323235666239353031653365383532 +30303033633730633131363362373961393761393464666463633661323966376633383935306332 +39353066366634333666336430633934346235336532656138653165376264323032393434333733 +30646565393361613766653435336166663838366436613233386635626137326231323062666132 +31313634316365386662326565343237623531303165346239336463323531323161366162636663 +62316534383538313131623933363262633961333131613536383531393038613936353461626235 +66366239376232363632366636323436366365373034316534633232633165343165376362336365 +61646230346464333731313136346331633337333565306636346565343066313435623235613966 +35626235636330623233366665323731656565313561396261613936656234346435633030613065 +34316666336362323730396266653739313338373134313566393033353131356439386261313537 +65316264313964646233346365326530613738383438663030313130616265343530343038376530 +64643362343763366539643365373635323161303735396238636239383839373630643834616531 +36326230343938323334643738336534646335383836393235346661356136353863356565336135 +37643538646431373833643933383464616631653964643738633631363933643136643831633739 +61663663636265323137613464643530306632306565326130643034383665396665333933393666 +31616132663933643732383137643865616364353731383631343031643430653435643532623261 +31343463626131663234376266623139383532306234613465626330343663356130376461303635 +63383738633264326534313234343435613236326465386263663536636666356134363561333738 +38623363643431313932303361303763643063383033363762356166373239636565633662386232 +64646634643930383466653066633935386565323339316463366239653664356233633566386530 +61396263623637383439343633323234386162306637623536663631646135646363633036633038 +30666463383836643831633166653231643662623536353530393234656664656663333733383937 +38383239323134373732366435326633326434653331623038316561323834656165383136353138 +37613834306565396137343266653434326633396365336466333664306563613166626664613336 +65386132663663666263353463393337356331323031386131363531633265653836303632633764 +65643062353061316233353163633562623632363362383132646636396532383436346136366137 +32313338396433393862633834643762333831643538346337656261663235363438313035366330 +66633032333139393932636338313039343161386563663963656437656632373533656164623962 +39393861323761363063656238393337633336303465656131363235373162663366636433626430 +61646333373938363162316331373637326236666636666137626365303964663634636337313261 +66303733323230386439376230633338643039303264366164633230386633386566303537336566 +35646566333234636330326532653837333966313062646666653064383539303663616237383963 +33353762623761386161313230383238633630613331643032303333373466383766643039346436 +66366130343234613965343363373830376332343766316230306264353533363265353062663535 +65636466313934356230306633326439613238653866316665373964306637366432633161383130 +62313236386236323738326366636137363230346633323633396266623634383133633737333535 +33373636373138353039643465333063646432646334303434613363303463336137343738393165 +31373763623137626532393436393236323136356363303462643532633931333131653937646334 +64393631303238653661646363343364366138393139353665326531323436656531333065656239 +61323838336137383134613634383465336662643432326331626434353466303439353237333639 +39383039636562613537656638393930393761393764656433363962653834373137313531363831 +30373133333831653361623261326166313030613237326336653861343835623462663335616565 +64316463636134656163313236376636386133393666306539623936663363616337386334313739 +35303961633566316165653964666436663637326262356165343134303536383062373635313765 +36306162376263393934373835656234363165636636303535613930303733636237626364386365 +66303266643437633662336263643238313064663032353265666633613437336638653364336561 +66663135306539383033363238373735363862653630653435353965313364323535623335346434 +62393866323664656662373834343632653337626436613737306639643062643038633832643864 +37313565313830626531353963653061383138306539303236663637393535386133666637333530 +65633937383334623337306331646162383936656261343137393738666433383731643339633661 +39343836663335333761333664323938633564366537323634663064353033393864636638323166 +62356633663235646633636537353461633433613131303131373433666535353134383035653833 +64373734343739356162356261333230623834313037613061646536343835623834633562633931 +38353131316164643963623431373531356532656165633964396130663038303261346438363238 +64343034646163366233393839333265666662663864663738663630656433316261393737343162 +32343135356632353434326162346631343332393962396261626463376234306137316665336138 +30323938353764323762663838643534303930613664663030366430383239643262333766613037 +31653834646265653339323862646230323833303766666237316132373130363037376432653136 +36323935333032346539313136633238386533646537363532363862373761373132363262363436 +35346335353238626264613034373965633331333561353964323935323736656233623337393964 +63376265613062343731303464353237623565303262643937656562353638323934363339396265 +38643536666230643131353865346134326364643366643938636261336662643362646535346132 +35646262323534613363336532643134336662333262343866353338306238303438653062323264 +39633933313335623536633136303766646363626166383763346664336430313430353934326132 +36393532633161383030623130366533316635643663643934353366653039343930656564613530 +33616630333834656538326462323535663666633139373436383938633832643030616534316166 +33613138396536313234326166346633373039336435343137623634646530323564343030613430 +34663064376665623134626637346330616331313235316666353761333464386633396234623332 +66303033653161313435633031393330306262326462343735663833316135386231643663333764 +36313937643264333331383661383065343135373161633866633061666430363862656234343932 +62666639323062346264663837326333393133643133653535663130383733366138613166636638 +39306533336166656235656131393839383366363933666364633039643333623166333234316639 +36363036333137376662303538313361653838336262396634363566633035653536613366633962 +34363161653338656338383064383236653834393439376239313266376262633663626138373539 +35313735353562613732653463383366643431386630386232353864643435373464343363663963 +64613034373731303135356366383231653461376662316365323739636564663262396636333864 +61366132303061656663303063373632623836666265656637336539376631336435336635343164 +38623637323234323237383563363830633731383638316261666335626130383265393832343037 +30393135646464303530346330616366653038393565383034666366303136613765333436326365 +65326338396333336333323963356164663661646632623138636661376138366537393639643731 +64323939333338613962336133636236646434656537363031306530656364346538373865336136 +37663964373466633863353332623933356163613834343433663266623533623132626161663633 +36636433653130343638633164623063396536643032643033653635313436313566383231643535 +31643335336432393338663835353939613865303162326330366632343836643736376539343661 +33326163393837623631633865656430623234656632626461333336373130666431633536353030 +33326536363161613531613265623935393063663266363236393236316261616234643363383331 +61663333376265386332353834353138313833343761616430356337336238656538613462313262 +36623863333936396333316462653063313831623635313837666263326664636637656666633464 +66393863363231343435346166633739663632373039373630633536326162336462353839633839 +63323834343461613339363230303131633934373634363162663038343731326566316539613234 +30623061316538653465393634376361626533636262333335306264316563376230363465333531 +36356134316234386165343663646561666566326663333031356565313939343530343635393034 +64636630383662373562306630306533653461373466383230396139623636353931376332663035 +62376330363131613835633439323838663539663433643765313362373138653037366232666431 +30373032383365303238613731323236633338303039656233363365316637656535336539316436 +34633364656166323766333164643630313238663664303035356138626534653432383233303664 +66373733366366383139383337623063383963303330326233393063373161356234633061303562 +62613932353864353134333633653964343232333363323433633738376463346261343662643461 +31366439356262376335663963306636303065313138613135646433333262653362343936313731 +61663636323335333330633534616634316566393633613438376534333239323130366662336364 +65343737383434353465323961366638643965613539393265313631626236343262336166643835 +31613236363730333561356431386565393463376462356438386638306662393330303666376339 +37346237653833353037366564303530643562623930333835366630663234346638333438656162 +63303337386530373435653738323132313734636334393866666639303734373734663138613332 +64653734643061626139323664363863326135643064633764363431313562646464626163336630 +31363633346365653164333262376231656233666336376462623866323761636530643739653830 +30623738376339333734613639363139643135336263363433663661333837636431326437623838 +36363766386162653939623934376262613633323737333330333737643438303066633831393464 +65656134643866313230313436653861346261633335333234616539343339326661326531363063 +35646438396361336336326161383463616665353936393131353032313834353064633137366530 +37663538613534636565393239323933383062646363636364353337626438383936346531643237 +63363564376130623733613230353464366666376463656565346432663032393637373831323230 +38353634653933326236326465333835666334366237333962386130383031393732613832316231 +35356138336565373034653362386438626539326335623139616335363336373830613137363837 +35303665323333316536613962353638343730666631333938633637333437303466396130353432 +38343662303666656432666337653333333563376430323564336339636465303939383964656162 +35646339626164346161393833396266366530626438393334626361663361626339653966623064 +62303237636331633736323833316361663535653334333235303730653831663564396164633066 +37353133643736326137623836623637303938383563323262383534636363326563396262343465 +31303130343136316537313935653564373864363933623862376361663161653330666430626330 +37333133353665343830343364616332613734633531396363303131643035333836653561306432 +37316538313261396635663836653532313132363339303933373933613431306663346431376335 +66623836623538333635613034333763303930616634336233336538653263303066343339333830 +64363230326466333336343464306561653437663433353966356135303039326434373135376363 +65363931303566653465323766363237666362373136613261356630646133663231383034376164 +35373761353138623034366562366563636635626565663636623638326131366461303063356131 +65303333613032613332313832333939326638366431396539646165373734646632383530656262 +66313537636533363864633731316434633834373662356165653361353733623134366564333536 +35643034366639646166653537653162376236353039333036643337623039643861336261613161 +38666637613031653233633337383630623330616431363532666662393162343031303336383363 +35303038313237333766303633333436306339396336623032363330643533663031306362393461 +66303133396135643137613963363633333462333763326161396665643930343236306331373564 +33336566396566326466343233623734633662303663393032336230373030336366633466623063 +36646364343061643538333738663466636631656233353032373434323031653238386365326139 +36656361386663373064366261613830373034363566353831313038323733663531386161313737 +63346132333837366365343233643039323837326137653964373861383833393261333665373836 +37643365383734363038643065643464306332323230626163353138343236323334373430643434 +38303636353763623432366166636238646239623531623863363661626265653661396563333461 +33366633376161636630336662623533303061373238343164376539313736376137373036646564 +31613363303063653461396531346364323364303531303234623737343834623638396637336435 +64616163643133306339326464366234336533353763666238366437653265636535316263343432 +36393036343661636632633237313433343838393636303333306462616439313333633731343237 +32666430643666336632356637363266623539393533393562633034666638376466373635646632 +62663361323465373736303465633333656332346135333861366335623866613030323435626165 +61636332333337303465323965663734383735663535393635653161656332666630643362623534 +63303532303463386464306533666339636532343438616235323236633762323335663563326337 +64353666643035363364653730646264383461363439366135656333633039363833376465303161 +30383665613031643239326437313266346431623333643562666464373834666335323531643539 +37383138376236393161363935313763643137306231373035343564393632323162303737333561 +62333131623161383733653864666534643066306365313532383664333038326238633832633538 +64386233333035383134623063653365333338353933633062623132633534313635366337646563 +34313736303933386333336461376337616439343831666236643937653537323733616239616231 +34393639636563353562656130643461396637373763306564663365363264373465383366663237 +38346132306437363239376666363961356134613736376663633166636133663933643331643632 +30353161653561623737306539343466623866653963653764303734333730656266613231323261 +37656265326261306664663663653432343530656537343139356435363437633463323866326664 +32653439383866643131636433653266383830613436303430386366376364666135613465323634 +39616563626362633634636533326362303433356166313766393131303534313837373932366666 +32313533316464386535313064623238653436613631616662303331636362393962613835663235 +61366434323562626638346664636163323438366238316638636265386233636135356364376261 +31356532316639336463623464386130366231313731333436663864343164366132343164366137 +65633830323366383466646462623432326132643964653962626433333165666632323832383064 +64323837316565373639303231313938336161613165313532643963313135616132323035663563 +36396366323133623037623736633261396633306161303938663133353563666338313030353239 +62613732313963303036343932366461613430323734656337366563303961383663316364353635 +66623134363737636638653963383966346465313162613837323931336262633162666464363334 +32373533646332393638663235626338386266663137643666616131396239333064393537393934 +65646363343839383135313561623135373861613230663036313734643634356163623335393563 +62376331353736383830383334663037346664643833663465303565636332343461663234636462 +62396532643733393466613961336463343837646133316463303066303230613966383236336166 +62616230613162633162613636363865383935336364643661633534373735383030363533303331 +36363765663336323964613632643863306361623835656139643966376133313839323534633630 +31623864643166323636343861353366343564646532353666376435376361333237633661663161 +37313562303038323839333033396234376537643932616163303938386337623932316564396632 +35656463313432333134316537333737633466646162633965313639363235343663656637623233 +31303133343036623461613561303536663236303937346339346536396232653065313137393966 +31313735366533653664333630383535643433623732316337653338633431373239626634613061 +64373039616536343532643063626563626435646338323830633561626564333238623837323633 +66313235623363373233353538316332616635643464393031386131613435346630346230663635 +36346338373238666365303266656164656566613735643034376666663365323639626431653939 +66643339636465623034626630353162626135646339663235643231623938323337356533653630 +37623934623033643330316464323065383166633864363066313238353033363164656163346462 +37626331336365366539333631323734616365333839393539656536646331353737626265383532 +64333032633537633038386161343266386136356132373865663138386637356639393237316639 +38313263653432396438636332666339623332653935386235373864316638353036363635623762 +34616133396461613135316237613033303764373164613131323736303537306430633737343565 +37313535663463646535353031363663346463316531396435653238336165626561316538653263 +64396233646132306234373261366562323736383462623964313637653031346633646335623030 +32316238356436336539663761343333636133346231623731353061653438623266323436386231 +38346534633165636264616536316637643263353064623765656339643564306630356562356662 +38366237353132373765623434396439663934626237323462326165376565666633636339343164 +63623832356137323039343566666161336434366337306239623362616334336138623266303665 +36343636663466373232353162356535616136666565386162306634366237363761636466353036 +38303561336462653366633765366338326566646365353564653433663437333032373165353263 +39313564346164383165386331316564666232356432626630626663396665633433346533386531 +64636532346539623332373465383837333036326364363764653264316663336233663835323936 +31386339613632386562316563616336313932663661636536306435643238373536356433313334 +62343063316566313764636335336462326239376335636266353938626139356232646661343230 +36313763663231623236663732346263663735666566363963326165626638306362666137313661 +38326561646133393034313663353766376561333563663164613836393963313861613563646133 +38336131346463313731633334346262353362663835386533306363376630663832636164316535 +63633435623065663635373765633535373539613230313538663233353565663262346133366536 +38316131353234636663396332363962383339383961316534643732393639656132663466636662 +33333034626638633237383161353933336232643666366133366639613663643631306361626365 +39306631373735393934633830393638396530356466376661653332666638303233353065623139 +37343638346437336366393566383238306437323562326132613338646239356639393865383733 +39623338306662376666326635313837643134303832623833666263303033303039363530336437 +38363365633137316562303633303239636239306665383931363065336430363431396663383431 +39613064326631303763313030363339643432393934366432333663656638393536303933653731 +63616230643265393062303561643234343265356165356333613064316637663163326131313438 +38626265623535386238333930633763623335613362313866333034306561363730613739323037 +35326137353366653964366130353030373734653830636131303935653339626232313962313466 +32373963373436643563633234633038343133303662653964663630656231666534663938393731 +32343537313162393832636639613632653839633431633065313565333238643236666264613434 +66353666373366626366303964343733313030386461653664653435613539353034313736336461 +35333631333533623764393836646532376330613363663864633631333765653530633336633363 +61666634306230663330623935333662333563353365396264633739326239353837653766613433 +36343765343132383033626431663939393833346133363735353464313662623662363632333939 +32623134656331383139316539316636626239646433626630343765366236343332626634653864 +31306562316565373465386364336337643236636566663164643337396265623438613831643632 +64303664383563373039323766356537663435356162313866373563346162303330346531363466 +33316266356233626639333735343533376532376332653037636462646162633735343635633130 +66653162366538613238303131353231383239613939336131326635663866613433326162653365 +65356564643166376566363961323732316436366566643430393735656530613162306534373366 +66663330356538306636393635653031386661633339376231386562313866333861336339616333 +61383362393264633132306239636630366464303834366434303564383735656437363565626133 +65333234346563393036336530346364336462303333386238303361383665653439623165353034 +65666565643666366466326630353963386430646635656539383632356433393939346435383139 +32663434326333613561653830633834386139636366353662393239643566613232643730363837 +62356566613835666136336632653961326238366637363566623936626531353232616330353739 +63323433323537633035643433666639376635303433643565393964323336613764636563353434 +31303264666439636263633531666565386330356335343964333532386537643533353236333464 +38306636313366373630663164613861303035353865336564633634616565383662363434316661 +66356263643165393564663837326361363934646361376466336266613961633837363739316631 +30373731336430313265343738323763333238363038666435313532316231663139373833356536 +37373235303632623461303537626662316639643433613536323837323661643836616231383832 +66366661656137366639386562346661306634326161393063666430626534326431383263316636 +35333031656339316332366261396239653435326632636539623966363331316261623139636336 +35646464656663643133326431663234643633613063306461623538313337616331363365376166 +64613764653062633036393732393462366233393365653139353462616263353237613235656432 +38316666343732383863663463373361343464376137326661613030323532313435343030333930 +63616231663831363566333763343532323664616137353938366332653566366237366266306262 +63303565303138643631613439366463333439383764646136623166306130313336333165316232 +38656662383939313066653335613332343162373863613933393064316539626638623931613638 +64393462333539373361656366666139306531306530353636643834646464386265396130366337 +38626535366439353466326461316437656662346561346663656631306630616335356165653438 +33393865306163353864623064396361396634656233656637323462663166373632643762386434 +65616239343465353661323431643136353463386331383564323232623639363863636564313666 +35303535313262353535613266646639363737623536616363393737386231306263303932306663 +32393232313537636138663165383237666131396336656162623565333161343334626135313537 +30353161623461353961633232633331623664366230323337626135613966663933656134646363 +31373237666231316337646638373961613037333531343238323765376438383730353064356238 +33366639653566663563346564646662333636326466343236313066326333393036373532336537 +66373130376635386437396163643036646433333065353565363935323234386131653462313036 +31343062363732646166616436303437376566636133333666646261343361643132646539343338 +64623436353233333862363035363931363466303637633561636233623137633039383865323531 +35303766396337313830653930666635653832623962353936333662346630366265353363613966 +34636637376564303336393530653137663439376461393335323537303136303336623837313265 +37346231646538373361616465303662326564616635613965326236623338613432353465373262 +64306432613133363430343534313464316139356466316461363637633364383631383433343465 +35653266636233366666386339373865393238633037386135313361643335393063356432396265 +32643939333039626137313965636261373633303966366136313462393338396663363737386164 +65383733663466646530363865353064383935346130613232626231393263613766643937343566 +63363133663363613265313939653938303331336464633937373763336534616130376534396364 +61393932653938336366306263383738393262663239623863383764653131373562376338663336 +62623661333737616438643033323961383065363866326330356236303739643338363861633366 +65633439336230386237333566636633323838363737313434326337356633303430373765646439 +39373236626661323232336562383937663861346662316565663938633561663539623963343433 +32396464633634353231633866356433646430303463313462306436336466616536626465616136 +63343933373732303264383366663838626439663065356433333363613861656537343133383564 +37626237663737623963636532313661643364326232396133316231363635643735653039636237 +35623835343562623938313536666661313032383331656464663737393734353730656362373334 +39356461613133383861613163306333373935633530643134373937373565313765346431373033 +39646331666131393266323864393934623533646662356435366163356435653063613631353265 +33346462386665653434623963313538616531393030356639633330346238303064643661306531 +62373637656333356134623666316432313032633636366430326663323437663939393733383434 +31633131333535343030633734613537326265323364333363663666383734656364663461623932 +37656538383735343464303232656139633861316633323033656565653332373438396335333435 +31643830313364306564376263336664633564393631646138663761313538326632356437303839 +34323738316566313464346435623032636161316564613235303465326236363336303837333434 +30313639366133303237363335643731376633346362386136333239353661346261663736353265 +61373639373565616238393236653035386238333733333464396332383261663831366665663262 +33306331613461306266373464393438663963303338376237386333616139623963333361383861 +31656166303866653636313831303236386632366462393739303834376531316437326162316335 +63663364663062653738313631616530316563343135356261346630326137653331346533363764 +36366431653666396338643831353263653936323262326237336633333230313764353562666435 +61383235393133623039373339376333633437393531613834383962623332366264656435653032 +30373434393662346437383639393431356264373466363263633862323866306434333964353534 +64633731376663386439376161346430323839333065623761366635613232306136656362633735 +61323565646636326330613661313831633933633661326230663037616632366638653165646539 +39343963623535653832323436363164393536643365393764383934643539323564303538633164 +36383834353233633930383135663264353264313262386363636462623463313962326263346133 +36376131306463636538303162656330623231333435323965313966373866306131353132326233 +33313865656666353334623963363730623662613736626234366163613637356133363733363131 +35313561386239326264656135396536643232336339376264323737333265373261663661363661 +38623931383332613936646136396635656362666332356432313832383430623035376632323535 +39383064326532623032656336633530323663376264393633316436653365313366373332623961 +35303439636537333063 diff --git a/inventory/group_vars/manager.yml b/inventory/group_vars/manager.yml index bf698c45..61023819 100644 --- a/inventory/group_vars/manager.yml +++ b/inventory/group_vars/manager.yml @@ -37,3 +37,20 @@ tinyproxy_allowed_networks: # - ^.*debian.*$ # - ^.*ubuntu.*$ + +lvm__logical_volumes: + - lv: 'log' + vg: 'system' + size: '30G' + fs_type: 'ext4' + fs_resizefs: True + force: True + mount: '/var/log' + - lv: 'docker' + vg: 'system' + size: '100G' + fs_type: 'ext4' + fs_resizefs: True + force: True + mount: '/var/lib/docker' + From 3e017870b50224c61392e4832774f187b796037a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Fri, 5 Jul 2024 18:40:32 +0200 Subject: [PATCH 11/31] add MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- environments/custom/playbook-lvm.yml | 5 +++++ inventory/group_vars/control.yml | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 environments/custom/playbook-lvm.yml diff --git a/environments/custom/playbook-lvm.yml b/environments/custom/playbook-lvm.yml new file mode 100644 index 00000000..300bb7ee --- /dev/null +++ b/environments/custom/playbook-lvm.yml @@ -0,0 +1,5 @@ +- name: Manage LVM volumes + hosts: generic + become: true + roles: + - role: debops.debops.lvm diff --git a/inventory/group_vars/control.yml b/inventory/group_vars/control.yml index 9c363954..86c669da 100644 --- a/inventory/group_vars/control.yml +++ b/inventory/group_vars/control.yml @@ -21,3 +21,20 @@ chrony_allowed_subnets: # strictly in a client-only mode. chrony_bind_local_interfaces_only: false + +lvm__logical_volumes: + - lv: 'log' + vg: 'system' + size: '30G' + fs_type: 'ext4' + fs_resizefs: True + force: True + mount: '/var/log' + - lv: 'docker' + vg: 'system' + size: '100G' + fs_type: 'ext4' + fs_resizefs: True + force: True + mount: '/var/lib/docker' + From d21099ad67488dce0dec3b8aaaede7ef6ba7ea2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Fri, 5 Jul 2024 20:44:40 +0200 Subject: [PATCH 12/31] Set lvm sizes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- environments/custom/playbook-lvm.yml | 13 +++++++++++-- inventory/group_vars/control.yml | 14 +++++--------- inventory/group_vars/manager.yml | 15 +++++---------- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/environments/custom/playbook-lvm.yml b/environments/custom/playbook-lvm.yml index 300bb7ee..3af783c9 100644 --- a/environments/custom/playbook-lvm.yml +++ b/environments/custom/playbook-lvm.yml @@ -1,5 +1,14 @@ +# https://docs.debops.org/en/stable-3.1/ansible/roles/lvm/defaults/main.html#volume-groups-and-logical-volumes - name: Manage LVM volumes hosts: generic + gather_facts: yes become: true - roles: - - role: debops.debops.lvm + tasks: + - name: Manage LVM Logical Volumes + community.general.lvol: + lv: '{{ item.lv }}' + vg: '{{ item.vg }}' + size: '{{ item.size }}' + force: '{{ item.force | d(omit) }}' + state: 'present' + with_items: '{{ logical_volumes }}' diff --git a/inventory/group_vars/control.yml b/inventory/group_vars/control.yml index 86c669da..70a4b817 100644 --- a/inventory/group_vars/control.yml +++ b/inventory/group_vars/control.yml @@ -22,19 +22,15 @@ chrony_allowed_subnets: chrony_bind_local_interfaces_only: false -lvm__logical_volumes: +logical_volumes: - lv: 'log' vg: 'system' size: '30G' - fs_type: 'ext4' - fs_resizefs: True - force: True - mount: '/var/log' + resizefs: true + force: true - lv: 'docker' vg: 'system' size: '100G' - fs_type: 'ext4' - fs_resizefs: True - force: True - mount: '/var/lib/docker' + resizefs: true + force: true diff --git a/inventory/group_vars/manager.yml b/inventory/group_vars/manager.yml index 61023819..47813ca8 100644 --- a/inventory/group_vars/manager.yml +++ b/inventory/group_vars/manager.yml @@ -38,19 +38,14 @@ tinyproxy_allowed_networks: # - ^.*ubuntu.*$ -lvm__logical_volumes: +logical_volumes: - lv: 'log' vg: 'system' size: '30G' - fs_type: 'ext4' - fs_resizefs: True - force: True - mount: '/var/log' + resizefs: true + force: true - lv: 'docker' vg: 'system' size: '100G' - fs_type: 'ext4' - fs_resizefs: True - force: True - mount: '/var/lib/docker' - + resizefs: true + force: true From 67974c8bf145c610569b84a93b475f3d2bdaf10b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Fri, 5 Jul 2024 20:46:57 +0200 Subject: [PATCH 13/31] add MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- inventory/group_vars/generic/15_lvm.yml | 1 + inventory/group_vars/generic/ceph.yml | 25 ------------------------- inventory/group_vars/generic/chrony.yml | 25 ------------------------- inventory/group_vars/generic/dhcpd.yml | 12 ------------ inventory/group_vars/generic/motd.yml | 10 ---------- 5 files changed, 1 insertion(+), 72 deletions(-) create mode 100644 inventory/group_vars/generic/15_lvm.yml delete mode 100644 inventory/group_vars/generic/ceph.yml delete mode 100644 inventory/group_vars/generic/chrony.yml delete mode 100644 inventory/group_vars/generic/dhcpd.yml delete mode 100644 inventory/group_vars/generic/motd.yml diff --git a/inventory/group_vars/generic/15_lvm.yml b/inventory/group_vars/generic/15_lvm.yml new file mode 100644 index 00000000..f76a0302 --- /dev/null +++ b/inventory/group_vars/generic/15_lvm.yml @@ -0,0 +1 @@ +logical_volumes: [] diff --git a/inventory/group_vars/generic/ceph.yml b/inventory/group_vars/generic/ceph.yml deleted file mode 100644 index 36f91722..00000000 --- a/inventory/group_vars/generic/ceph.yml +++ /dev/null @@ -1,25 +0,0 @@ -os_tuning_params: - - { name: fs.file-max, value: 26234859 } - - { name: vm.zone_reclaim_mode, value: 0 } - - { name: vm.swappiness, value: 0 } - - { name: vm.min_free_kbytes, value: "{{ vm_min_free_kbytes }}" } - -openstack_cinder_rbd001_pool: - name: rbd001 - pg_num: "{{ openstack_pool_default_pg_num }}" - pgp_num: "{{ openstack_pool_default_pg_num }}" - rule_name: "replicated_rule" - min_size: "{{ openstack_pool_default_min_size }}" - application: "rbd" - -openstack_cinder_rgw001_pool: - name: rgw001 - pg_num: "{{ openstack_pool_default_pg_num }}" - pgp_num: "{{ openstack_pool_default_pg_num }}" - rule_name: "replicated_rule" - min_size: "{{ openstack_pool_default_min_size }}" - application: "rgw" - -openstack_pools_extra: - - "{{ openstack_cinder_rbd001_pool }}" - - "{{ openstack_cinder_rgw001_pool }}" diff --git a/inventory/group_vars/generic/chrony.yml b/inventory/group_vars/generic/chrony.yml deleted file mode 100644 index 8d26b933..00000000 --- a/inventory/group_vars/generic/chrony.yml +++ /dev/null @@ -1,25 +0,0 @@ - - -########################## -# chrony - -chrony_servers: - - st01-ctl-r01-u27 - - st01-ctl-r01-u28 - - st01-ctl-r01-u29 - - st01-mgmt-r01-u30 - - st01-mgmt-r01-u31 - - -chrony_allowed_subnets: - - 127.0.0.1/32 - - -motd_content: | - . - ____ ____ ____ _ _ - / ___| / ___/ ___| | | __ _ _ __ __| |___ ___ __ _ _ __ ___ - \___ \| | \___ \ | | / _` | '_ \ / _` / __|/ __/ _` | '_ \ / _ \ - ___) | |___ ___) | | |__| (_| | | | | (_| \__ \ (_| (_| | |_) | __/ - |____/ \____|____/ |_____\__,_|_| |_|\__,_|___/\___\__,_| .__/ \___| - |_| diff --git a/inventory/group_vars/generic/dhcpd.yml b/inventory/group_vars/generic/dhcpd.yml deleted file mode 100644 index 7b37f660..00000000 --- a/inventory/group_vars/generic/dhcpd.yml +++ /dev/null @@ -1,12 +0,0 @@ - -isc_dhcp_server_subnet_definition: - - description: "Managment Network" - config: | - subnet 10.10.23.0 netmask 255.255.255.0 { - range 10.10.23.240 10.10.23.250; - option routers {{ management_gw }}; - option broadcast-address 10.10.23.255; - option domain-name-servers {{ management_gw }}; - option ntp-servers {{ management_gw }}; - } - diff --git a/inventory/group_vars/generic/motd.yml b/inventory/group_vars/generic/motd.yml deleted file mode 100644 index cbbb6eec..00000000 --- a/inventory/group_vars/generic/motd.yml +++ /dev/null @@ -1,10 +0,0 @@ - - -motd_content: | - . - ____ ____ ____ _ _ - / ___| / ___/ ___| | | __ _ _ __ __| |___ ___ __ _ _ __ ___ - \___ \| | \___ \ | | / _` | '_ \ / _` / __|/ __/ _` | '_ \ / _ \ - ___) | |___ ___) | | |__| (_| | | | | (_| \__ \ (_| (_| | |_) | __/ - |____/ \____|____/ |_____\__,_|_| |_|\__,_|___/\___\__,_| .__/ \___| - |_| From 1ec07d52ca91bbe333f3354a6210f0e2dee0b9ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 12:27:14 +0200 Subject: [PATCH 14/31] syntax MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- .github/workflows/yamllint.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/yamllint.yaml b/.github/workflows/yamllint.yaml index 4354fb82..5fdda412 100644 --- a/.github/workflows/yamllint.yaml +++ b/.github/workflows/yamllint.yaml @@ -12,7 +12,7 @@ jobs: uses: karancode/yamllint-github-action@master with: yamllint_strict: false - yamllint_config_filepath: .yamllint.yml + yamllint_config_filepath: .yamllint.yml yamllint_comment: true env: GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 31052dc6473a29bb1b1356957db7678ae46c1101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 12:33:00 +0200 Subject: [PATCH 15/31] remove testcode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- .../custom/roles/scs-ceph-keys/README.md | 38 ---------- .../roles/scs-ceph-keys/defaults/main.yml | 2 - .../roles/scs-ceph-keys/handlers/main.yml | 2 - .../library/create_ceph_key_file.py | 74 ------------------- .../custom/roles/scs-ceph-keys/meta/main.yml | 52 ------------- .../custom/roles/scs-ceph-keys/tasks/main.yml | 41 ---------- .../roles/scs-ceph-keys/tests/inventory | 2 - .../custom/roles/scs-ceph-keys/tests/test.yml | 5 -- .../custom/roles/scs-ceph-keys/vars/main.yml | 2 - 9 files changed, 218 deletions(-) delete mode 100644 environments/custom/roles/scs-ceph-keys/README.md delete mode 100644 environments/custom/roles/scs-ceph-keys/defaults/main.yml delete mode 100644 environments/custom/roles/scs-ceph-keys/handlers/main.yml delete mode 100644 environments/custom/roles/scs-ceph-keys/library/create_ceph_key_file.py delete mode 100644 environments/custom/roles/scs-ceph-keys/meta/main.yml delete mode 100644 environments/custom/roles/scs-ceph-keys/tasks/main.yml delete mode 100644 environments/custom/roles/scs-ceph-keys/tests/inventory delete mode 100644 environments/custom/roles/scs-ceph-keys/tests/test.yml delete mode 100644 environments/custom/roles/scs-ceph-keys/vars/main.yml diff --git a/environments/custom/roles/scs-ceph-keys/README.md b/environments/custom/roles/scs-ceph-keys/README.md deleted file mode 100644 index 225dd44b..00000000 --- a/environments/custom/roles/scs-ceph-keys/README.md +++ /dev/null @@ -1,38 +0,0 @@ -Role Name -========= - -A brief description of the role goes here. - -Requirements ------------- - -Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. - -Role Variables --------------- - -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. - -Dependencies ------------- - -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. - -Example Playbook ----------------- - -Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: - - - hosts: servers - roles: - - { role: username.rolename, x: 42 } - -License -------- - -BSD - -Author Information ------------------- - -An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/environments/custom/roles/scs-ceph-keys/defaults/main.yml b/environments/custom/roles/scs-ceph-keys/defaults/main.yml deleted file mode 100644 index 3c5f178b..00000000 --- a/environments/custom/roles/scs-ceph-keys/defaults/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# defaults file for scs-ceph-keys diff --git a/environments/custom/roles/scs-ceph-keys/handlers/main.yml b/environments/custom/roles/scs-ceph-keys/handlers/main.yml deleted file mode 100644 index dffaa49e..00000000 --- a/environments/custom/roles/scs-ceph-keys/handlers/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# handlers file for scs-ceph-keys diff --git a/environments/custom/roles/scs-ceph-keys/library/create_ceph_key_file.py b/environments/custom/roles/scs-ceph-keys/library/create_ceph_key_file.py deleted file mode 100644 index 7467ec52..00000000 --- a/environments/custom/roles/scs-ceph-keys/library/create_ceph_key_file.py +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/python - -from ansible.module_utils.basic import AnsibleModule -import os -import yaml -import glob - -BASE_PATH="/opt/configuration" -def gather_keys() -> list[dict[str,str]]: - try: - os.chdir(BASE_PATH) - except Exception as e: - print(f"Error: {e}") - exit(1) - - found_keys: dict[str,str] = {} - for file_path in sorted(glob.iglob('**/ceph.*.keyring', recursive=True)): - with open(file_path, 'r') as f_in: - found_keys[file_path] = f_in.read() - return [ { "path": x, "content" : y } for x,y in sorted(found_keys.items()) ] - - -def run_module(): - module_args = dict( - target=dict(type='str', required=True), - state=dict(type='str', required=False, default='present', choices=['present', 'absent']) - ) - - result = dict( - changed=False, - original_message='', - message='' - ) - - module = AnsibleModule( - argument_spec=module_args, - supports_check_mode=True - ) - - target = module.params['target'] - state = module.params['state'] - - if state == 'present': - content = yaml.dump({ "collected_ceph_keys": gather_keys() }) - if not os.path.exists(target) or open(target).read() != content: - result['changed'] = True - if not module.check_mode: - previous_umask = os.umask(0o077) - with open(target, 'w') as f: - f.write(content) - os.umask(previous_umask) - result['message'] = f"File {target} created with content." - else: - result['message'] = f"File {target} already exists with the same content." - elif state == 'absent': - if os.path.exists(target): - result['changed'] = True - if not module.check_mode: - os.remove(target) - result['message'] = f"File {target} removed." - else: - result['message'] = f"File {target} does not exist." - - if module.check_mode: - module.exit_json(**result) - - module.exit_json(**result) - -def main(): - run_module() - -if __name__ == '__main__': - main() - diff --git a/environments/custom/roles/scs-ceph-keys/meta/main.yml b/environments/custom/roles/scs-ceph-keys/meta/main.yml deleted file mode 100644 index c572acc9..00000000 --- a/environments/custom/roles/scs-ceph-keys/meta/main.yml +++ /dev/null @@ -1,52 +0,0 @@ -galaxy_info: - author: your name - description: your role description - company: your company (optional) - - # If the issue tracker for your role is not on github, uncomment the - # next line and provide a value - # issue_tracker_url: http://example.com/issue/tracker - - # Choose a valid license ID from https://spdx.org - some suggested licenses: - # - BSD-3-Clause (default) - # - MIT - # - GPL-2.0-or-later - # - GPL-3.0-only - # - Apache-2.0 - # - CC-BY-4.0 - license: license (GPL-2.0-or-later, MIT, etc) - - min_ansible_version: 2.1 - - # If this a Container Enabled role, provide the minimum Ansible Container version. - # min_ansible_container_version: - - # - # Provide a list of supported platforms, and for each platform a list of versions. - # If you don't wish to enumerate all versions for a particular platform, use 'all'. - # To view available platforms and versions (or releases), visit: - # https://galaxy.ansible.com/api/v1/platforms/ - # - # platforms: - # - name: Fedora - # versions: - # - all - # - 25 - # - name: SomePlatform - # versions: - # - all - # - 1.0 - # - 7 - # - 99.99 - - galaxy_tags: [] - # List tags for your role here, one per line. A tag is a keyword that describes - # and categorizes the role. Users find roles by searching for tags. Be sure to - # remove the '[]' above, if you add tags to this list. - # - # NOTE: A tag is limited to a single word comprised of alphanumeric characters. - # Maximum 20 tags per role. - -dependencies: [] - # List your role dependencies here, one per line. Be sure to remove the '[]' above, - # if you add dependencies to this list. diff --git a/environments/custom/roles/scs-ceph-keys/tasks/main.yml b/environments/custom/roles/scs-ceph-keys/tasks/main.yml deleted file mode 100644 index 7a162235..00000000 --- a/environments/custom/roles/scs-ceph-keys/tasks/main.yml +++ /dev/null @@ -1,41 +0,0 @@ ---- -# tasks file for scs-ceph-keys -- name: Create a file using the create_ceph_key_file - /tmp/secrets-ceph.yml - create_ceph_key_file: - target: "/tmp/secrets-ceph.yml" - state: "present" - tags: - - create_secret -- name: Fetch file - fetch: - src: /tmp/secrets-ceph.yml - dest: /tmp/secrets-ceph.yml - flat: yes - tags: - - create_secret -- name: Encrypt the file - local_action: - module: command - args: - cmd: "ansible-vault encrypt /tmp/secrets-ceph.yml --output /tmp/secrets-ceph.yml.vaulted --vault-password-file /opt/configuration/secrets/vaultpass" - creates: "/tmp/secrets-ceph.yml.vaulted" - tags: - - create_secret -- name: Copy file - copy: - src: "/tmp/secrets-ceph.yml.vaulted" - dest: "/opt/configuration/environments/secrets-ceph.yml" - mode: 0600 - decrypt: false - tags: - - create_secret - -- name: Write content to files - ansible.builtin.copy: - content: "{{ item.content }}" - dest: "/opt/configuration/{{ item.path }}.new" - mode: '0600' - loop: "{{ collected_ceph_keys }}" - tags: - - create_files - diff --git a/environments/custom/roles/scs-ceph-keys/tests/inventory b/environments/custom/roles/scs-ceph-keys/tests/inventory deleted file mode 100644 index 878877b0..00000000 --- a/environments/custom/roles/scs-ceph-keys/tests/inventory +++ /dev/null @@ -1,2 +0,0 @@ -localhost - diff --git a/environments/custom/roles/scs-ceph-keys/tests/test.yml b/environments/custom/roles/scs-ceph-keys/tests/test.yml deleted file mode 100644 index 11461f98..00000000 --- a/environments/custom/roles/scs-ceph-keys/tests/test.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- hosts: localhost - remote_user: root - roles: - - scs-ceph-keys diff --git a/environments/custom/roles/scs-ceph-keys/vars/main.yml b/environments/custom/roles/scs-ceph-keys/vars/main.yml deleted file mode 100644 index f33c8063..00000000 --- a/environments/custom/roles/scs-ceph-keys/vars/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# vars file for scs-ceph-keys From c7f03d17417934a8235325dbaa7730e6f6a3e1a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 12:34:47 +0200 Subject: [PATCH 16/31] relax yamllint: Deactivate a rule that causes more trouble than it's worth. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- .yamllint.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.yamllint.yml b/.yamllint.yml index 78717393..3be05983 100644 --- a/.yamllint.yml +++ b/.yamllint.yml @@ -4,6 +4,7 @@ extends: default rules: comments: enable line-length: disable + empty-lines: disable ignore: | .git From b207a562acec06fbf69db1c34e5ced2178f4a347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 12:35:11 +0200 Subject: [PATCH 17/31] yamllint fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- inventory/host_vars/st01-mgmt-r01-u31/02_chrony.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inventory/host_vars/st01-mgmt-r01-u31/02_chrony.yml b/inventory/host_vars/st01-mgmt-r01-u31/02_chrony.yml index a525f097..0b53b711 100644 --- a/inventory/host_vars/st01-mgmt-r01-u31/02_chrony.yml +++ b/inventory/host_vars/st01-mgmt-r01-u31/02_chrony.yml @@ -1,2 +1,2 @@ - +--- chrony_bindaddresses: [ "{{ internal_address }}" ] From f438d529a8cd2d807a923a05f43e98d0775198a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 12:42:39 +0200 Subject: [PATCH 18/31] fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- .yamllint.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.yamllint.yml b/.yamllint.yml index 3be05983..d931ee9b 100644 --- a/.yamllint.yml +++ b/.yamllint.yml @@ -9,3 +9,5 @@ rules: ignore: | .git .tox + secrets.yml + secrets-*.yml From 7ecb1a17d88235991287e3246efd5a73a53bae9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 13:17:25 +0200 Subject: [PATCH 19/31] yamlfix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- .github/workflows/yamllint.yaml | 12 ++++++------ .yamlfix.toml | 3 +++ .yamllint.yml | 4 +--- Makefile | 9 +++++++++ requirements.txt | 1 + 5 files changed, 20 insertions(+), 9 deletions(-) create mode 100644 .yamlfix.toml diff --git a/.github/workflows/yamllint.yaml b/.github/workflows/yamllint.yaml index 5fdda412..c2869de1 100644 --- a/.github/workflows/yamllint.yaml +++ b/.github/workflows/yamllint.yaml @@ -1,14 +1,14 @@ -name: 'Yamllint' -on: - - pull_request +--- +name: Yamllint +on: [pull_request] jobs: yamllint: - name: 'Yamllint' + name: Yamllint runs-on: ubuntu-latest steps: - - name: 'Checkout' + - name: Checkout uses: actions/checkout@master - - name: 'Yamllint' + - name: Yamllint uses: karancode/yamllint-github-action@master with: yamllint_strict: false diff --git a/.yamlfix.toml b/.yamlfix.toml new file mode 100644 index 00000000..e986f2de --- /dev/null +++ b/.yamlfix.toml @@ -0,0 +1,3 @@ +# base.toml +allow_duplicate_keys = false +line_length = 100 diff --git a/.yamllint.yml b/.yamllint.yml index d931ee9b..52d25639 100644 --- a/.yamllint.yml +++ b/.yamllint.yml @@ -1,12 +1,10 @@ --- extends: default - rules: comments: enable line-length: disable empty-lines: disable - -ignore: | +ignore: |- .git .tox secrets.yml diff --git a/Makefile b/Makefile index 65aad5e8..f4261ca4 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ venv = . venv/bin/activate export PATH := ${PATH}:${PWD}/venv/bin +basedir = ${PWD} VAULTPASS_FILE ?= ${PWD}/secrets/vaultpass @@ -30,6 +31,12 @@ venv/bin/activate: Makefile requirements.txt @${venv} && pip3 install -r requirements.txt touch venv/bin/activate + +.PHONY: yamlfix_check +yamlfix_check: deps + ${venv} && find . -type f \( -not -path "*/.venv/*" -and -not -path "*/venv/*" -regex ".*\.ya?ml" \) \ + -exec yamlfix -check --config-file ${basedir}/.yamlfix.toml {} + + .PHONY: deps sync: deps @[ "${BRANCH}" ] && sed -i -e "s/version: .*/version: ${BRANCH}/" gilt.yml || exit 0 @@ -93,3 +100,5 @@ ifndef FILE $(error FILE variable is not set, example 'make ansible_vault_edit FILE=environments/secrets.yml') endif ${venv} && ansible-vault edit --vault-password-file ${VAULTPASS_FILE} ${FILE} + + diff --git a/requirements.txt b/requirements.txt index 70b80482..b91b1ec9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,3 +6,4 @@ pwgen==0.8.2.post0 python-gilt==1.2.3 requests==2.32.2 tabulate==0.9.0 +yamlfix From 599e1300d5096a56affbacbe4d13e3adb12bfc0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 13:35:51 +0200 Subject: [PATCH 20/31] improve MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- Makefile | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index f4261ca4..23814124 100644 --- a/Makefile +++ b/Makefile @@ -32,10 +32,14 @@ venv/bin/activate: Makefile requirements.txt touch venv/bin/activate -.PHONY: yamlfix_check -yamlfix_check: deps - ${venv} && find . -type f \( -not -path "*/.venv/*" -and -not -path "*/venv/*" -regex ".*\.ya?ml" \) \ - -exec yamlfix -check --config-file ${basedir}/.yamlfix.toml {} + +.PHONY: check +check: deps + $(MAKE) fix CHECK="--check" + +.PHONY: fix +fix: deps + ${venv} && find . -type f \( -not -path "misc/node-images/node-image/*" -and -not -path "*/.venv/*" -and -not -path "*/venv/*" -regex ".*\.ya?ml" \) \ + -exec yamlfix --verbose ${CHECK} --config-file ${basedir}/.yamlfix.toml {} + .PHONY: deps sync: deps From 2f37dbcfa9239f76a1a6223dc5f843da5f8a019e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 13:39:37 +0200 Subject: [PATCH 21/31] enahnce MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- .yamlfix.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.yamlfix.toml b/.yamlfix.toml index e986f2de..fae5f759 100644 --- a/.yamlfix.toml +++ b/.yamlfix.toml @@ -1,3 +1,5 @@ # base.toml allow_duplicate_keys = false line_length = 100 +preserve_quotes = true +sequence_style = block_style From 75461bce0d5d42418c7f1da922a55e1695a8260a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 13:43:04 +0200 Subject: [PATCH 22/31] enahnce MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- .yamlfix.toml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.yamlfix.toml b/.yamlfix.toml index fae5f759..102c6349 100644 --- a/.yamlfix.toml +++ b/.yamlfix.toml @@ -2,4 +2,7 @@ allow_duplicate_keys = false line_length = 100 preserve_quotes = true -sequence_style = block_style +sequence_style = "block_style" +quote_basic_values = true +whitelines = 3 +comments_whitelines = 3 From c34239d4c3b0ee0ca67148af4607ee3e2e3631e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 13:44:05 +0200 Subject: [PATCH 23/31] enhance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- .yamlfix.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/.yamlfix.toml b/.yamlfix.toml index 102c6349..83747b91 100644 --- a/.yamlfix.toml +++ b/.yamlfix.toml @@ -3,6 +3,5 @@ allow_duplicate_keys = false line_length = 100 preserve_quotes = true sequence_style = "block_style" -quote_basic_values = true whitelines = 3 comments_whitelines = 3 From 28e9474430b61844414aa605a2e1814c01d7bb7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 13:44:43 +0200 Subject: [PATCH 24/31] enhance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- .yamlfix.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.yamlfix.toml b/.yamlfix.toml index 83747b91..bd9eb776 100644 --- a/.yamlfix.toml +++ b/.yamlfix.toml @@ -3,5 +3,3 @@ allow_duplicate_keys = false line_length = 100 preserve_quotes = true sequence_style = "block_style" -whitelines = 3 -comments_whitelines = 3 From c01765a796714e168d80062bc8b610ef0b84a577 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 17:59:20 +0200 Subject: [PATCH 25/31] fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- .yamlfix.toml | 3 ++- Makefile | 13 +++++++------ inventory/host_vars/st01-sw100g-r01-u36/01_base.yml | 2 +- inventory/host_vars/st01-sw100g-r01-u37/01_base.yml | 2 +- inventory/host_vars/st01-sw25g-r01-u34/01_base.yml | 2 +- inventory/host_vars/st01-sw25g-r01-u35/01_base.yml | 2 +- inventory/host_vars/switches-template.yml.j2 | 1 + 7 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.yamlfix.toml b/.yamlfix.toml index bd9eb776..51bc7b49 100644 --- a/.yamlfix.toml +++ b/.yamlfix.toml @@ -1,5 +1,6 @@ # base.toml allow_duplicate_keys = false -line_length = 100 +line_length = 160 preserve_quotes = true sequence_style = "block_style" +whitelines = 1 diff --git a/Makefile b/Makefile index 23814124..24ce5358 100644 --- a/Makefile +++ b/Makefile @@ -32,14 +32,15 @@ venv/bin/activate: Makefile requirements.txt touch venv/bin/activate -.PHONY: check -check: deps - $(MAKE) fix CHECK="--check" +.PHONY: lint-check +lint-check: deps + $(MAKE) lint-fix DO_CHECK="--check" -.PHONY: fix -fix: deps +.PHONY: lint-fix +lint-fix: deps + # ${venv} && find . -type f \( -not -path "misc/node-images/node-image/*" -and -not -path "*/.venv/*" -and -not -path "*/venv/*" -regex ".*\.ya?ml" \) \ - -exec yamlfix --verbose ${CHECK} --config-file ${basedir}/.yamlfix.toml {} + + -exec yamlfix --verbose ${DO_CHECK} --config-file ${basedir}/.yamlfix.toml {} + .PHONY: deps sync: deps diff --git a/inventory/host_vars/st01-sw100g-r01-u36/01_base.yml b/inventory/host_vars/st01-sw100g-r01-u36/01_base.yml index a854314a..08dabcea 100644 --- a/inventory/host_vars/st01-sw100g-r01-u36/01_base.yml +++ b/inventory/host_vars/st01-sw100g-r01-u36/01_base.yml @@ -11,4 +11,4 @@ device_model: 7726-32X-O-AC-B mgmt_mac: 90:2d:77:58:27:50 mgmt_address: 10.10.23.110 serial_device: BCBRb113318 -bgp_asn: 65501 \ No newline at end of file +bgp_asn: 65501 diff --git a/inventory/host_vars/st01-sw100g-r01-u37/01_base.yml b/inventory/host_vars/st01-sw100g-r01-u37/01_base.yml index 91ecea14..3f18147c 100644 --- a/inventory/host_vars/st01-sw100g-r01-u37/01_base.yml +++ b/inventory/host_vars/st01-sw100g-r01-u37/01_base.yml @@ -11,4 +11,4 @@ device_model: 7726-32X-O-AC-B mgmt_mac: 90:2d:77:58:26:50 mgmt_address: 10.10.23.109 serial_device: DEABb113318 -bgp_asn: 65501 \ No newline at end of file +bgp_asn: 65501 diff --git a/inventory/host_vars/st01-sw25g-r01-u34/01_base.yml b/inventory/host_vars/st01-sw25g-r01-u34/01_base.yml index 1be1d041..33a64f97 100644 --- a/inventory/host_vars/st01-sw25g-r01-u34/01_base.yml +++ b/inventory/host_vars/st01-sw25g-r01-u34/01_base.yml @@ -11,4 +11,4 @@ device_model: 7326-56X-O-AC-B mgmt_mac: d0:77:ce:4b:b4:7a mgmt_address: 10.10.23.107 serial_device: CGBSb113318 -bgp_asn: 65504 \ No newline at end of file +bgp_asn: 65504 diff --git a/inventory/host_vars/st01-sw25g-r01-u35/01_base.yml b/inventory/host_vars/st01-sw25g-r01-u35/01_base.yml index 194ab425..0345d3c6 100644 --- a/inventory/host_vars/st01-sw25g-r01-u35/01_base.yml +++ b/inventory/host_vars/st01-sw25g-r01-u35/01_base.yml @@ -11,4 +11,4 @@ device_model: 7326-56X-O-AC-B mgmt_mac: d0:77:ce:c1:63:80 mgmt_address: 10.10.23.108 serial_device: BSAHb113318 -bgp_asn: 65505 \ No newline at end of file +bgp_asn: 65505 diff --git a/inventory/host_vars/switches-template.yml.j2 b/inventory/host_vars/switches-template.yml.j2 index 56ed8ea8..262f1eca 100644 --- a/inventory/host_vars/switches-template.yml.j2 +++ b/inventory/host_vars/switches-template.yml.j2 @@ -12,3 +12,4 @@ mgmt_mac: {{ bmc_mac }} mgmt_address: {{ bmc_ip_v4 }} serial_device: {{ serial_device }} bgp_asn: {{ asn }} + From 16e7e736afaa23ffe53f7e4982007a40939559fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 18:20:15 +0200 Subject: [PATCH 26/31] experimental MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- .github/workflows/yamllint.yaml | 3 ++- Makefile | 10 ++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/yamllint.yaml b/.github/workflows/yamllint.yaml index c2869de1..296a7058 100644 --- a/.github/workflows/yamllint.yaml +++ b/.github/workflows/yamllint.yaml @@ -1,6 +1,7 @@ --- name: Yamllint -on: [pull_request] +on: + - pull_request jobs: yamllint: name: Yamllint diff --git a/Makefile b/Makefile index 24ce5358..aa0b152f 100644 --- a/Makefile +++ b/Makefile @@ -31,16 +31,22 @@ venv/bin/activate: Makefile requirements.txt @${venv} && pip3 install -r requirements.txt touch venv/bin/activate +################################################# +### EXPERIMENTAL .PHONY: lint-check lint-check: deps $(MAKE) lint-fix DO_CHECK="--check" +# Just for testing, currently yamllint seems to be broken .PHONY: lint-fix lint-fix: deps - # ${venv} && find . -type f \( -not -path "misc/node-images/node-image/*" -and -not -path "*/.venv/*" -and -not -path "*/venv/*" -regex ".*\.ya?ml" \) \ - -exec yamlfix --verbose ${DO_CHECK} --config-file ${basedir}/.yamlfix.toml {} + + -print \ + -exec yamlfix --verbose ${DO_CHECK} --config-file ${basedir}/.yamlfix.toml {} \; + +### EXPERIMENTAL +################################################# .PHONY: deps sync: deps From 065223dce23a90992f0e7b10d9c7724f0160413e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 18:31:49 +0200 Subject: [PATCH 27/31] add MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index aa0b152f..61380d52 100644 --- a/Makefile +++ b/Makefile @@ -32,7 +32,7 @@ venv/bin/activate: Makefile requirements.txt touch venv/bin/activate ################################################# -### EXPERIMENTAL +### EXPERIMENTAL, yamlfix is still very broken .PHONY: lint-check lint-check: deps From 44e3cb9fae1b0efc54d44ec3060975456931610b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 18:42:30 +0200 Subject: [PATCH 28/31] remove yaml infra MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- .github/workflows/yamllint.yaml | 19 ------------------- .yamlfix.toml | 6 ------ .yamllint.yml | 11 ----------- Makefile | 17 ----------------- requirements.txt | 1 - 5 files changed, 54 deletions(-) delete mode 100644 .github/workflows/yamllint.yaml delete mode 100644 .yamlfix.toml delete mode 100644 .yamllint.yml diff --git a/.github/workflows/yamllint.yaml b/.github/workflows/yamllint.yaml deleted file mode 100644 index 296a7058..00000000 --- a/.github/workflows/yamllint.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -name: Yamllint -on: - - pull_request -jobs: - yamllint: - name: Yamllint - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@master - - name: Yamllint - uses: karancode/yamllint-github-action@master - with: - yamllint_strict: false - yamllint_config_filepath: .yamllint.yml - yamllint_comment: true - env: - GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.yamlfix.toml b/.yamlfix.toml deleted file mode 100644 index 51bc7b49..00000000 --- a/.yamlfix.toml +++ /dev/null @@ -1,6 +0,0 @@ -# base.toml -allow_duplicate_keys = false -line_length = 160 -preserve_quotes = true -sequence_style = "block_style" -whitelines = 1 diff --git a/.yamllint.yml b/.yamllint.yml deleted file mode 100644 index 52d25639..00000000 --- a/.yamllint.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -extends: default -rules: - comments: enable - line-length: disable - empty-lines: disable -ignore: |- - .git - .tox - secrets.yml - secrets-*.yml diff --git a/Makefile b/Makefile index 61380d52..22f7f846 100644 --- a/Makefile +++ b/Makefile @@ -31,23 +31,6 @@ venv/bin/activate: Makefile requirements.txt @${venv} && pip3 install -r requirements.txt touch venv/bin/activate -################################################# -### EXPERIMENTAL, yamlfix is still very broken - -.PHONY: lint-check -lint-check: deps - $(MAKE) lint-fix DO_CHECK="--check" - -# Just for testing, currently yamllint seems to be broken -.PHONY: lint-fix -lint-fix: deps - ${venv} && find . -type f \( -not -path "misc/node-images/node-image/*" -and -not -path "*/.venv/*" -and -not -path "*/venv/*" -regex ".*\.ya?ml" \) \ - -print \ - -exec yamlfix --verbose ${DO_CHECK} --config-file ${basedir}/.yamlfix.toml {} \; - -### EXPERIMENTAL -################################################# - .PHONY: deps sync: deps @[ "${BRANCH}" ] && sed -i -e "s/version: .*/version: ${BRANCH}/" gilt.yml || exit 0 diff --git a/requirements.txt b/requirements.txt index b91b1ec9..70b80482 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,4 +6,3 @@ pwgen==0.8.2.post0 python-gilt==1.2.3 requests==2.32.2 tabulate==0.9.0 -yamlfix From 73321b482cb4105ecfd8af0d5fa0e2f23455a683 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 18:42:57 +0200 Subject: [PATCH 29/31] remove yaml infra MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Makefile b/Makefile index 22f7f846..bab8479d 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,5 @@ venv = . venv/bin/activate export PATH := ${PATH}:${PWD}/venv/bin -basedir = ${PWD} VAULTPASS_FILE ?= ${PWD}/secrets/vaultpass From 74e5a0334b0f7adcb90c89a354c5c72e919c5042 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 19:25:37 +0200 Subject: [PATCH 30/31] move lvm logic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- environments/custom/playbook-lvm.yml | 14 -------------- environments/custom/playbook-scs_all_nodes.yml | 1 - .../roles/scs-landscape-nodes/defaults/main.yml | 1 + .../custom/roles/scs-landscape-nodes/tasks/lvm.yml | 12 ++++++++++++ .../roles/scs-landscape-nodes/tasks/main.yml | 4 +++- .../roles/scs-landscape-nodes/tasks/scripts.yml | 6 ------ 6 files changed, 16 insertions(+), 22 deletions(-) delete mode 100644 environments/custom/playbook-lvm.yml create mode 100644 environments/custom/roles/scs-landscape-nodes/tasks/lvm.yml diff --git a/environments/custom/playbook-lvm.yml b/environments/custom/playbook-lvm.yml deleted file mode 100644 index 3af783c9..00000000 --- a/environments/custom/playbook-lvm.yml +++ /dev/null @@ -1,14 +0,0 @@ -# https://docs.debops.org/en/stable-3.1/ansible/roles/lvm/defaults/main.html#volume-groups-and-logical-volumes -- name: Manage LVM volumes - hosts: generic - gather_facts: yes - become: true - tasks: - - name: Manage LVM Logical Volumes - community.general.lvol: - lv: '{{ item.lv }}' - vg: '{{ item.vg }}' - size: '{{ item.size }}' - force: '{{ item.force | d(omit) }}' - state: 'present' - with_items: '{{ logical_volumes }}' diff --git a/environments/custom/playbook-scs_all_nodes.yml b/environments/custom/playbook-scs_all_nodes.yml index 08444da5..9c90bf77 100644 --- a/environments/custom/playbook-scs_all_nodes.yml +++ b/environments/custom/playbook-scs_all_nodes.yml @@ -4,4 +4,3 @@ become: true roles: - scs-landscape-nodes - - debops.lvm diff --git a/environments/custom/roles/scs-landscape-nodes/defaults/main.yml b/environments/custom/roles/scs-landscape-nodes/defaults/main.yml index c478834c..0ff2e852 100644 --- a/environments/custom/roles/scs-landscape-nodes/defaults/main.yml +++ b/environments/custom/roles/scs-landscape-nodes/defaults/main.yml @@ -1,2 +1,3 @@ --- # defaults file for scs-landscape +logical_volumes: [] diff --git a/environments/custom/roles/scs-landscape-nodes/tasks/lvm.yml b/environments/custom/roles/scs-landscape-nodes/tasks/lvm.yml new file mode 100644 index 00000000..6bef577b --- /dev/null +++ b/environments/custom/roles/scs-landscape-nodes/tasks/lvm.yml @@ -0,0 +1,12 @@ +# https://docs.debops.org/en/stable-3.1/ansible/roles/lvm/defaults/main.html#volume-groups-and-logical-volumes +- name: Manage LVM Logical Volumes + community.general.lvol: + lv: '{{ lv_item.lv }}' + vg: '{{ lv_item.vg }}' + size: '{{ lv_item.size }}' + force: '{{ lv_item.force | d(omit) }}' + state: 'present' + loop: '{{ logical_volumes }}' + loop_control: + loop_var: lv_item + tags: manage_lvm diff --git a/environments/custom/roles/scs-landscape-nodes/tasks/main.yml b/environments/custom/roles/scs-landscape-nodes/tasks/main.yml index a26e10f3..97ed173d 100644 --- a/environments/custom/roles/scs-landscape-nodes/tasks/main.yml +++ b/environments/custom/roles/scs-landscape-nodes/tasks/main.yml @@ -1,7 +1,9 @@ -- name: Setup Manager +- name: Setup Node include_tasks: "{{ item }}" loop: + - lvm.yml - scripts.yml - vim.yml - packages.yml + tags: manage_lvm diff --git a/environments/custom/roles/scs-landscape-nodes/tasks/scripts.yml b/environments/custom/roles/scs-landscape-nodes/tasks/scripts.yml index e1048214..35414899 100644 --- a/environments/custom/roles/scs-landscape-nodes/tasks/scripts.yml +++ b/environments/custom/roles/scs-landscape-nodes/tasks/scripts.yml @@ -1,9 +1,3 @@ -- name: Remove ceph wrapper - become: yes - file: - path: /usr/local/bin/ceph - state: absent - - name: Synchronize all scs helper scripts become: yes tags: scripts From c8689888f2c8cf7feb8e710786af1826f044e692 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Sch=C3=B6chlin?= Date: Sun, 7 Jul 2024 19:28:06 +0200 Subject: [PATCH 31/31] improve MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc Schöchlin --- environments/custom/playbook-scs_all_nodes.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/environments/custom/playbook-scs_all_nodes.yml b/environments/custom/playbook-scs_all_nodes.yml index 9c90bf77..cb2cf743 100644 --- a/environments/custom/playbook-scs_all_nodes.yml +++ b/environments/custom/playbook-scs_all_nodes.yml @@ -1,6 +1,7 @@ --- - name: Assign roles to all hosts hosts: generic - become: true + become: yes + gather_facts: no roles: - scs-landscape-nodes