From 7e79b017a30cfdbb305335ea5081be3ee3d74bda Mon Sep 17 00:00:00 2001 From: root Date: Fri, 21 Aug 2026 16:52:28 -0700 Subject: [PATCH] first commit --- README.md | 0 deploy-lab.yml | 286 +++++++++++++++++++++++++++++++ destroy-lab.yml | 101 +++++++++++ hosts | 17 ++ templates/grub.cfg.j2 | 29 ++++ templates/install-config.yaml.j2 | 18 ++ vault_vars/pull-secret.yml | 146 ++++++++++++++++ vault_vars/ssh-key.yml | 170 ++++++++++++++++++ 8 files changed, 767 insertions(+) create mode 100644 README.md create mode 100644 deploy-lab.yml create mode 100644 destroy-lab.yml create mode 100644 hosts create mode 100644 templates/grub.cfg.j2 create mode 100644 templates/install-config.yaml.j2 create mode 100644 vault_vars/pull-secret.yml create mode 100644 vault_vars/ssh-key.yml diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/deploy-lab.yml b/deploy-lab.yml new file mode 100644 index 0000000..09794d1 --- /dev/null +++ b/deploy-lab.yml @@ -0,0 +1,286 @@ +--- +# ============================================================================== +# PLAY 1: Download RHCOS PXE Boot Artifacts +# ============================================================================== +- name: Phase 1 - Download RHCOS PXE Boot Artifacts + hosts: localhost + connection: local + gather_facts: false + + vars: + boot_artifacts_dir: "{{ playbook_dir }}/boot-artifacts" + ocp_stable_release_url: "https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/stable/release.txt" + rhcos_base_mirror: "https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos" + + tasks: + - name: Fetch latest stable release metadata + ansible.builtin.uri: + url: "{{ ocp_stable_release_url }}" + return_content: true + register: stable_release_info + + - name: Extract major.minor version + ansible.builtin.set_fact: + ocp_major_minor: "{{ stable_release_info.content | regex_search('Name:\\s+([0-9]+\\.[0-9]+)', '\\1') | first }}" + + - name: Set dynamic mirror URL + ansible.builtin.set_fact: + rhcos_base_url: "{{ rhcos_base_mirror }}/{{ ocp_major_minor }}/latest" + + - name: Fetch sha256sums metadata into memory + ansible.builtin.uri: + url: "{{ rhcos_base_url }}/sha256sum.txt" + return_content: true + register: sha256_info + + - name: Parse artifact filenames from in-memory checksums + ansible.builtin.set_fact: + rhcos_kernel_file: "{{ sha256_info.content | regex_search('rhcos-[^\\s]+live-kernel[^\\s]*') }}" + rhcos_initramfs_file: "{{ sha256_info.content | regex_search('rhcos-[^\\s]+live-initramfs[^\\s]*') }}" + rhcos_rootfs_file: "{{ sha256_info.content | regex_search('rhcos-[^\\s]+live-rootfs[^\\s]*') }}" + + - name: Ensure target boot-artifacts directory exists + ansible.builtin.file: + path: "{{ boot_artifacts_dir }}" + state: directory + mode: '0755' + + - name: Download only the 3 RHCOS PXE boot artifacts + ansible.builtin.get_url: + url: "{{ rhcos_base_url }}/{{ item }}" + dest: "{{ boot_artifacts_dir }}/{{ item }}" + mode: '0644' + loop: + - "{{ rhcos_kernel_file }}" + - "{{ rhcos_initramfs_file }}" + - "{{ rhcos_rootfs_file }}" + + +# ============================================================================== +# PLAY 2: Generate OpenShift Ignitions and MAC-Specific GRUB PXE Configs +# ============================================================================== +- name: Phase 2 - Generate Ignition Configs and GRUB PXE Files + hosts: localhost + connection: local + gather_facts: false + + vars: + # Cluster Parameters + cluster_name: "ocp4-baremetal" + base_domain: "example.com" + + # Directory Paths + work_dir: "{{ playbook_dir }}/ocp-install" + templates_dir: "{{ playbook_dir }}/templates" + vault_dir: "{{ playbook_dir }}/vault_vars" + boot_artifacts_dir: "{{ playbook_dir }}/boot-artifacts" + + # PXE HTTP Endpoints + pxe_base_url: "https://opnsense.lab.cudanet.org/pxeboot/lab" + pxe_url_path: "images/lab" + + # OpenShift Installer URL + ocp_installer_url: "https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/stable/openshift-install-linux.tar.gz" + ocp_stable_release_url: "https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/stable/release.txt" + rhcos_base_mirror: "https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos" + + vars_files: + - "{{ vault_dir }}/pull-secret.yml" + - "{{ vault_dir }}/ssh-key.yml" + + tasks: + - name: Ensure working directory exists + ansible.builtin.file: + path: "{{ work_dir }}" + state: directory + mode: '0755' + + - name: Download and unarchive openshift-install binary directly + ansible.builtin.unarchive: + src: "{{ ocp_installer_url }}" + dest: "{{ work_dir }}" + remote_src: true + creates: "{{ work_dir }}/openshift-install" + + - name: Generate install-config.yaml from Jinja2 template + ansible.builtin.template: + src: "{{ templates_dir }}/install-config.yaml.j2" + dest: "{{ work_dir }}/install-config.yaml" + mode: '0600' + + - name: Backup install-config.yaml before consumption + ansible.builtin.copy: + src: "{{ work_dir }}/install-config.yaml" + dest: "{{ work_dir }}/install-config.yaml.bak" + mode: '0600' + force: true + + - name: Generate OpenShift ignition configs + ansible.builtin.command: + cmd: "./openshift-install create ignition-configs --dir=." + chdir: "{{ work_dir }}" + creates: "{{ work_dir }}/bootstrap.ign" + + - name: Find generated ignition files + ansible.builtin.find: + paths: "{{ work_dir }}" + patterns: "*.ign" + register: found_ignition_files + + - name: Move ignition configs to ./boot-artifacts directory + ansible.builtin.copy: + src: "{{ item.path }}" + dest: "{{ boot_artifacts_dir }}/{{ item.path | basename }}" + remote_src: true + mode: '0644' + loop: "{{ found_ignition_files.files }}" + + - name: Clean up original ignition files from work directory + ansible.builtin.file: + path: "{{ item.path }}" + state: absent + loop: "{{ found_ignition_files.files }}" + + - name: Fetch latest release metadata for GRUB variable parsing + ansible.builtin.uri: + url: "{{ ocp_stable_release_url }}" + return_content: true + register: stable_release_info + + - name: Extract OpenShift version facts + ansible.builtin.set_fact: + ocp_latest_version: "{{ stable_release_info.content | regex_search('Name:\\s+([0-9]+\\.[0-9]+\\.[0-9]+)', '\\1') | first }}" + ocp_major_minor: "{{ stable_release_info.content | regex_search('Name:\\s+([0-9]+\\.[0-9]+)', '\\1') | first }}" + + - name: Fetch sha256sums metadata into memory + ansible.builtin.uri: + url: "{{ rhcos_base_mirror }}/{{ ocp_major_minor }}/latest/sha256sum.txt" + return_content: true + register: sha256_info + + - name: Parse artifact filenames for GRUB rendering + ansible.builtin.set_fact: + rhcos_kernel_file: "{{ sha256_info.content | regex_search('rhcos-[^\\s]+live-kernel[^\\s]*') }}" + rhcos_initramfs_file: "{{ sha256_info.content | regex_search('rhcos-[^\\s]+live-initramfs[^\\s]*') }}" + rhcos_rootfs_file: "{{ sha256_info.content | regex_search('rhcos-[^\\s]+live-rootfs[^\\s]*') }}" + + - name: Generate GRUB PXE configs for each MAC address + ansible.builtin.template: + src: "{{ templates_dir }}/grub.cfg.j2" + dest: "{{ boot_artifacts_dir }}/grub.cfg-{{ node.mac }}" + mode: '0644' + loop: + - { mac: "01-52-54-00-bc-74-35", role: "bootstrap" } + - { mac: "01-98-b7-85-25-30-f5", role: "control-plane", disk_path: "pci-0000:02:00.0-nvme-1" } + - { mac: "01-98-b7-85-25-2c-a7", role: "control-plane", disk_path: "pci-0000:02:00.0-nvme-1" } + - { mac: "01-98-b7-85-25-2c-25", role: "control-plane", disk_path: "pci-0000:02:00.0-nvme-1" } + - { mac: "01-98-b7-85-25-2c-ab", role: "compute-node", disk_path: "pci-0000:02:00.0-nvme-1" } + - { mac: "01-98-b7-85-25-34-2b", role: "compute-node", disk_path: "pci-0000:03:00.0-nvme-1" } + - { mac: "01-98-b7-85-25-30-b7", role: "compute-node", disk_path: "pci-0000:02:00.0-nvme-1" } + loop_control: + loop_var: node + +# ============================================================================== +# PLAY 3: Setup Local Temporary Private Key +# ============================================================================== +- name: Phase 3a - Write Private SSH Key for OPNSense Access + hosts: localhost + connection: local + gather_facts: false + + vars: + vault_dir: "{{ playbook_dir }}/vault_vars" + + vars_files: + - "{{ vault_dir }}/ssh-key.yml" + + tasks: + - name: Write vaulted private key to temporary file + ansible.builtin.copy: + content: "{{ vault_ssh_private_key }}" + dest: "/tmp/opnsense_ssh_key" + mode: '0600' + + +# ============================================================================== +# PLAY 4: Deploy Boot Artifacts to OPNSense PXE Server +# ============================================================================== +- name: Phase 3b - Deploy PXE Boot Artifacts to OPNSense + hosts: opnsense.lab.cudanet.org + remote_user: root + gather_facts: false + + vars: + local_artifacts_dir: "{{ playbook_dir }}/boot-artifacts" + tftp_root_dir: "/usr/local/tftp" + tftp_images_dir: "/usr/local/tftp/images/lab" + www_lab_dir: "/usr/local/www/pxeboot/lab" + + ansible_python_interpreter: "/usr/local/bin/python3" + ansible_ssh_private_key_file: "/tmp/opnsense_ssh_key" + + tasks: + - name: Ensure target directories exist on OPNSense + ansible.builtin.file: + path: "{{ item }}" + state: directory + mode: '0755' + loop: + - "{{ tftp_root_dir }}" + - "{{ tftp_images_dir }}" + - "{{ www_lab_dir }}" + + - name: Deploy GRUB configs to TFTP root + ansible.builtin.copy: + src: "{{ item }}" + dest: "{{ tftp_root_dir }}/{{ item | basename }}" + mode: '0644' + with_fileglob: + - "{{ local_artifacts_dir }}/grub.cfg-*" + + - name: Deploy Ignition files to WWW directory + ansible.builtin.copy: + src: "{{ item }}" + dest: "{{ www_lab_dir }}/{{ item | basename }}" + mode: '0644' + with_fileglob: + - "{{ local_artifacts_dir }}/*.ign" + + - name: Deploy RHCOS Live RootFS to WWW directory + ansible.builtin.copy: + src: "{{ item }}" + dest: "{{ www_lab_dir }}/{{ item | basename }}" + mode: '0644' + with_fileglob: + - "{{ local_artifacts_dir }}/*live-rootfs*" + + - name: Deploy RHCOS Live Kernel to TFTP images directory + ansible.builtin.copy: + src: "{{ item }}" + dest: "{{ tftp_images_dir }}/{{ item | basename }}" + mode: '0644' + with_fileglob: + - "{{ local_artifacts_dir }}/*live-kernel*" + + - name: Deploy RHCOS Live Initramfs to TFTP images directory + ansible.builtin.copy: + src: "{{ item }}" + dest: "{{ tftp_images_dir }}/{{ item | basename }}" + mode: '0644' + with_fileglob: + - "{{ local_artifacts_dir }}/*live-initramfs*" + + +# ============================================================================== +# PLAY 5: Cleanup Local Temporary Private Key +# ============================================================================== +- name: Phase 3c - Cleanup Private SSH Key File + hosts: localhost + connection: local + gather_facts: false + + tasks: + - name: Remove temporary private SSH key file + ansible.builtin.file: + path: "/tmp/opnsense_ssh_key" + state: absent diff --git a/destroy-lab.yml b/destroy-lab.yml new file mode 100644 index 0000000..b4f6a2c --- /dev/null +++ b/destroy-lab.yml @@ -0,0 +1,101 @@ +--- +# ============================================================================== +# PLAY 1: Clean Local Build Directories +# ============================================================================== +- name: Clean Local Environment + hosts: localhost + connection: local + gather_facts: false + + vars: + boot_artifacts_dir: "{{ playbook_dir }}/boot-artifacts" + ocp_install_dir: "{{ playbook_dir }}/ocp-install" + + tasks: + - name: Remove stale local directories + ansible.builtin.file: + path: "{{ item }}" + state: absent + loop: + - "{{ boot_artifacts_dir }}" + - "{{ ocp_install_dir }}" + + +# ============================================================================== +# PLAY 2: Wipe Node Disks and Shutdown +# ============================================================================== +- name: Wipe Disks and Shutdown Nodes + hosts: ocp_nodes + remote_user: core + become: true + gather_facts: false + + vars: + vault_dir: "{{ playbook_dir }}/vault_vars" + ansible_ssh_private_key_file: "/tmp/node_ssh_key" + # Ignore host key checking and bypass known_hosts verification + ansible_ssh_common_args: "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" + + vars_files: + - "{{ vault_dir }}/ssh-key.yml" + + pre_tasks: + - name: Write private SSH key to local temporary file + ansible.builtin.copy: + content: "{{ vault_ssh_private_key }}" + dest: "/tmp/node_ssh_key" + mode: '0600' + delegate_to: localhost + run_once: true + + tasks: + - name: Execute disk wipe script on node + ansible.builtin.shell: | + for DISK in /dev/vda; do + if [ -b "$DISK" ]; then + echo "Wiping ${DISK}" + for gb in 0 1 10 100 1000; do + dd if=/dev/zero of="$DISK" bs=1K count=400 oflag=direct seek=$((gb * 1024**2)) 2>/dev/null || true + done + wipefs -af "$DISK" || true + fi + done + + for DISK in /dev/nvme0n1; do + if [ -b "$DISK" ]; then + echo "Wiping ${DISK}" + for gb in 0 1 10 100 1000; do + dd if=/dev/zero of="$DISK" bs=1K count=400 oflag=direct seek=$((gb * 1024**2)) 2>/dev/null || true + done + wipefs -af "$DISK" || true + fi + done + + for DISK in /dev/nvme1n1; do + if [ -b "$DISK" ]; then + echo "Wiping ${DISK}" + for gb in 0 1 10 100 1000; do + dd if=/dev/zero of="$DISK" bs=1K count=400 oflag=direct seek=$((gb * 1024**2)) 2>/dev/null || true + done + wipefs -af "$DISK" || true + fi + done + args: + executable: /bin/bash + ignore_errors: true + ignore_unreachable: true + + - name: Initiate node shutdown + ansible.builtin.command: /sbin/poweroff + async: 1 + poll: 0 + ignore_errors: true + ignore_unreachable: true + + post_tasks: + - name: Clean up temporary SSH private key file + ansible.builtin.file: + path: "/tmp/node_ssh_key" + state: absent + delegate_to: localhost + run_once: true diff --git a/hosts b/hosts new file mode 100644 index 0000000..9e0554c --- /dev/null +++ b/hosts @@ -0,0 +1,17 @@ +[all:vars] +ansible_python_interpreter=/usr/bin/python3 + +[control_node] +localhost ansible_connection=local + +[pxe_servers] +opnsense.lab.cudanet.org ansible_user=root ansible_python_interpreter=/usr/local/bin/python3 + +[ocp_nodes] +bootstrap.ocp.lab.cudanet.org +node01.ocp.lab.cudanet.org +node02.ocp.lab.cudanet.org +node03.ocp.lab.cudanet.org +node04.ocp.lab.cudanet.org +node05.ocp.lab.cudanet.org +node06.ocp.lab.cudanet.org diff --git a/templates/grub.cfg.j2 b/templates/grub.cfg.j2 new file mode 100644 index 0000000..aab4d90 --- /dev/null +++ b/templates/grub.cfg.j2 @@ -0,0 +1,29 @@ +set default="1" + +function load_video { + insmod efi_gop + insmod efi_uga + insmod video_bochs + insmod video_cirrus + insmod all_video +} + +load_video +set gfxpayload=keep +insmod gzio +insmod part_gpt +insmod ext2 + +set timeout=5 +### END /etc/grub.d/00_header ### + +{% set is_bootstrap = (node.role == 'bootstrap') %} +{% set install_dev = '/dev/vda' if is_bootstrap else '/dev/disk/by-path/' ~ node.disk_path %} +{% set ignition_file = 'bootstrap.ign' if is_bootstrap else ('master.ign' if node.role == 'control-plane' else 'worker.ign') %} +{% set display_name = 'Bootstrap Node' if is_bootstrap else ('Control Plane Node' if node.role == 'control-plane' else 'Compute Node') %} + +### BEGIN /etc/grub.d/10_linux ### +menuentry 'Install OCP {{ ocp_latest_version }} {{ display_name }}' --class fedora --class gnu-linux --class gnu --class os { + linux {{ pxe_url_path }}/{{ rhcos_kernel_file }} coreos.inst.install_dev={{ install_dev }} coreos.live.rootfs_url={{ pxe_base_url }}/{{ rhcos_rootfs_file }} coreos.inst.ignition_url={{ pxe_base_url }}/{{ ignition_file }} ignition.firstboot ignition.platform.id=metal + initrd {{ pxe_url_path }}/{{ rhcos_initramfs_file }} +} diff --git a/templates/install-config.yaml.j2 b/templates/install-config.yaml.j2 new file mode 100644 index 0000000..139f1a4 --- /dev/null +++ b/templates/install-config.yaml.j2 @@ -0,0 +1,18 @@ +apiVersion: v1 +baseDomain: {{ base_domain }} +metadata: + name: {{ cluster_name }} +compute: +- hyperthreading: Enabled + name: worker + replicas: 0 +controlPlane: + hyperthreading: Enabled + name: master + replicas: 3 +platform: + none: {} +fips: false +pullSecret: '{{ vault_pull_secret | to_json if (vault_pull_secret is not string) else vault_pull_secret }}' +sshKey: | + {{ vault_ssh_public_key | indent(2) }} diff --git a/vault_vars/pull-secret.yml b/vault_vars/pull-secret.yml new file mode 100644 index 0000000..5a31c5a --- /dev/null +++ b/vault_vars/pull-secret.yml @@ -0,0 +1,146 @@ +$ANSIBLE_VAULT;1.1;AES256 +38333935656231313736323032303135633238356532313662313531386439626433356338356466 +3031653063393839333233356562363534663430373732650a326662303334336165326462323033 +38656335303534616231353637303665626330633034376632646536396135303663393936363737 +6236383039613264310a383330346230666230613964363336333965303764373463336435663537 +32633063623538383761306132643037653732636262633430663861363438303637383231626635 +66656564386562393538633531643931353131363066653535323336623937616334396438316562 +65313436313931396339346131626630353865643232636637353438393939643262326536343865 +62393962633333396638333239323135333230326434636135316237643765633133343339313564 +39303861656634333136396135623161646130323966346466343637336162623639653535623636 +34383530333933656665303062643666343938663330633764336565613463646231353738353362 +63333830623835363861656630303464313230383935356638306635366265336632386137313631 +66343662336665303232636433326633373534316139653463613163626364623935336363306533 +32663338666530393238393631303439313331643034353931333662313430353739393233636336 +64343638323266323363396333313331353032366431633461363438386633313933333166343931 +39323731363962633431376333333430376131386662313365633138346236386263343232626436 +66343537383031643736613364626531646435396231353363623234633962303034316434396662 +31393439633364633761636562326433623166643864393238666632636234383461613735386161 +30653536343835663430386236396139346165346432363832333631363030336364326136363935 +35653461356263303262363161653336376439633763353038656131383238336431393863333534 +31356330633235313432336332666138376230303030633832643766336130366337666365333334 +34656135306630323836343236356130663261616132643230306135666561323033393839306638 +32316466306365386564356463373565353834643964376465373732323464376234656532643337 +33303266303265643332376532363135643239313865623733313931633536376433663137623834 +61636331666138383030663564663134386162373131613165396236646439613264613362396663 +33313234373665326636383630376631333565646331313735383933633138613062633437633235 +32633937643938333437666562373336393262343064636361666566396465616561623833396530 +30323837343362633135323339613632643866396432313030343161313230393339333466393264 +36323138366464373763353430396536643133643738336663643932353364653633663334636533 +65353634616536306136613834383234386434346639343639393133623361633437306237396336 +64383632363031653066326463353333373032343439626538313439393732366537316235623838 +32326532313566636132363638396235393430643935316363346431306365653533383230366532 +64643834383333366165386636643234336434646663653630653037303838376663313463353533 +36306537323236386530623566636232626566666364376639613837626361383134613831653032 +35366237333637333634336233646664383532363934323837353363316635333266313333386436 +64613064333737353233383039383130643563383461663736653332656365303437346363373334 +39366434646630633735396565636336316537323030376463386661363632373136353263323232 +66633062643435336566306538316633623232336430303361333730636364343066316334336263 +35346633653765663761303430376435663131623566633032313333346238363635376335653063 +33353362333833323366663035643862623838376365393763663337386635633665393634613234 +37366636353365353963616161333239373364353930626162306239303733656137396538633565 +39663731613064316534613363653338373837393538663837663664343033373638336231653531 +39666432623266346139313032656638386466303237366565626262663265663234613539613134 +38316135646636626265623232663433356634666463336364366532626639383138316537613666 +36303636633436316134313739323432316261633864323838333430393734326132316230323466 +39396634313535633638633265613939343464656365393738623333363163633336306234656436 +62636137376363393039326235666338346537646465636461663736623539333533346333326662 +30613533633462313139343134363365316262363432323739306538663738386366396334616465 +62396265316432383331663965383039396639323361343836623938326138376633623665336561 +30336637636364313230376338343465306233383963396463393139616633313736373835323965 +62356132363837323637663035663338316437613237363437363733353661376163333965666532 +65383864313732346430353034306539323464383564653134383932613430643433316337613663 +32636236643737333364653861313036373861646231373636353731386662313132646266346331 +38663064373838356564366636613532623766623138636362646438346462343632616238616661 +61643363653034343335373735626238393138323861656133643730353266316264666433366464 +66663330653763633366643734366362353532393235666233663639356136636563393231336439 +38356139346566343630316164636433326165626134656531663333313139363465643563653036 +61643862663661643335353233323435383939313933346266313236363534313535636337313436 +35633165373866343264653138316431343765313236383130633333393036306561346635613139 +64613938336565633064386661636664646663313334396561663038613537336636643230323265 +35323862366333393665373261613135303064326164323338383035333365396561323130646565 +61303565636438613965313432326138323234646438306330623030646430373966636365303330 +38393237383730633561326263666163663033313061393439313262313733393263623033636330 +37383133353566663132663436313536643963646434333937326264316661633935356137663563 +37666133383131383537633661653538363566613835386235363439643563626233623635393562 +31373038306363323865343936393230343339656261376637343563356230643137376662643265 +31613138656435333234633931393139313734383633306432386561666639643938626262376338 +36383636343633363438363539643936396364383333613236326333366333333336393264376235 +39363935383039303333323131313934393365346339643636663165633861353637363734363136 +64376538636664633938643936353937386335343966383938326234343232323665366463383466 +64666232323833643365646563376338666637313431346537393465383830643437393932333866 +35386231313237663838383539363134333530306136353031356134643331616133323635336261 +66366230326235346664616631323234373936633435663738636131633666396331323661313030 +33396436623334343162356532373431383032353631303264313061626563313736393463323462 +38393230336464323334616532323234366134383437656136643038313330623166303633636462 +34633531343630646331306630666365663638613731383932383365653166613935353432353637 +38663533396532376435646661653936623861346132653862353261636131336132346337663730 +66623836656265386339343537323864643539303130323636643263616562373337633163393761 +62623035363132323665633339306630396132303832353462316665663761653463633763663030 +33356637633864346465633664343966346332333832363233353666346238343633323266366434 +31333332356230366332613937333062623433613937636538363762656466356235326461393037 +38316633653132643133383537636639313832636664366333633934643230666465333662323830 +34333835343635636636313361616536626661636266386661643431613334353362643232376362 +31363332636536336561643466376263363836333231333135633230653132303334643663636566 +36303564623266383864306530323637303432356263663162656239353363313530646439643736 +37363064353666623461626637616363346336306437366330383163313866643638373635623238 +65653462303131346338396133623131653830393435653939306262313334666536643766386364 +33346536633336383661666333623637623535336239303630643665316332343666306664373438 +63393134643832363135363432313261366638333833356630623964633235643738366164646130 +34353663393263356464333266323162373565626431646465663938636462666439353836363239 +37373162333030643838616664623735393265623436363232386362373033656363643533613031 +65353438643761313836666631633464613735346530666230343333663231343939376338363861 +33376537393932656666346535636237643866346262316434623837643236326330633035386462 +30306662396636326361643935383934393130383331646464306335333134633633656337373034 +33373166313461646563313365643764616539303163653366343632623733366638643965353634 +31366635386434636330336436306639386165663964663835613532386461653931316139333636 +33646330633261303665353735623561396638643031303964663262646538666438373166636632 +64623565313239316463643634323934666563633266656230633139383664653836353934343931 +37643261396635373365343836383663656238383537363633626430653766656333666430393534 +39643337653534373633636131396537306632356137653663313263633230303338646464316230 +38666635343164626133343161396537326336623965666631623931366631396636646332656532 +36663637343561656234616338333561313261303333663464386634663737326537343662383163 +61626564623639336361663639633637326637626237396463613566353436663131396638323436 +33396439623935613562373130303265336539393632653665396164373437646163646131326430 +33363465306534623734373061633439333663396364306665376566386434336364313538343265 +63623765616134353931646434613030653835393964323231623530346338353133613266333063 +31353435323464613162353137333734663631323738666466633365363262653463323366613530 +39666261373130616165396463313662383561653433636137363762616561636434343564633439 +37306133303333613865393332646431336537623239383937623636646465356162343633366136 +34316639313436326138656262333732613135656564376237343863386631373335663864653762 +32386463393639633836376430633830333432356339363734353931623136623436636462626337 +65636164386361663535363933623537383164343561313930613134363561613964613166376138 +65303931646664376130393133633965646133363038383432346531396531393965613137326664 +38613539363266323063396136626530343535383333626563636630616162626666646565633464 +36373932613764643631323764343662363062326432333235616566653532376136356162666637 +37626636323165643965656465646635396166643436336132326162303965393962383063313931 +30666561636530643261393231343335313266663733303035656438633933633435363334343637 +34636661316363396430663733633536333836383430383839313435646231643330373139326161 +35653339373962333236393131366265396337616464633737366466646665356536353631616539 +39663430303130333133653236623761313835633736396237353335396262616531313530643837 +64363931383065353239613738653530636534653438663762366261636630323436333563336537 +62643830643237663666663965346665636235363934663032656230313763616336646338306465 +62623662666566613435376535356365643330313863303038316434633563343835303237363932 +37373264623034393938316132303232663332346135656663326161643738396533373532613763 +64623665613539323566653830653533393963643234626333323833366635383534393731313366 +61353339623864343432376166306362353834326165316261666463336363623631396461346463 +33336665666437656565316339346437343563313031323433303366646564663939353138363662 +65626236363866323863353331646632333438363562346435633462313532396165343963323865 +33316534636466643761643732613038356634323064343736633438363533353531326131643435 +30613563623336393735363238613837636130316461643966633564303036666135366439306465 +32376237346533626265303936333137666635633838653238663862373838373038373032663838 +38373137353962316337306665386334393966653432376231633665303165393337373964376536 +61316438303063373838653662303461666133323366623863306565316266336638613066653137 +39306539626638343235396437333232386364383736333130666532663764626164616232636331 +35623663373561333461623431326435363436346363623939326564636431393231616466353337 +36346463626565333237626335613535323937353538306634636332333361623437613535383762 +35653030313961643238643830303134383736303832646361323231353833613234376631396461 +32626231643761343031616237363761313166346238346166396466363036366365393631666535 +66373539636465313433373735346639386231653139633062666438336466626538616338396662 +35346463343930306535373264633634653361383034623134366133633964303865613338373464 +65356332336632646361353464376661613130346131353832353864646263363938396362353235 +37336431613865643263633138303838383465613364653362383761623061653639623362336164 +31373961363763323364333866323265666131396435616363663535366466656237623532663832 +64323363633936376234323535633762343238326664663935633331636465616561656535613536 +64623762373064366135386663633438633062386339326461333561363839393563663139393863 +3062 diff --git a/vault_vars/ssh-key.yml b/vault_vars/ssh-key.yml new file mode 100644 index 0000000..3fb362a --- /dev/null +++ b/vault_vars/ssh-key.yml @@ -0,0 +1,170 @@ +$ANSIBLE_VAULT;1.1;AES256 +36343833366366313832613532636538626635303262383031303865376637383638353139323633 +3561666165353439323832363036393864326232306139370a393936343164303965653563343630 +66343830663436336465623633663936376465613435313237376562383164366165316262666166 +3133643132343563620a636637366265623836343430356666356161363564313766653537346438 +34383939323366343965623830623139363935393531306133323764373536303362376234643935 +63343036633063346437626261393833666566653531313432353031636162306463396137663762 +33616134656266353264633738653431363863333539623537373332636436356536343666373662 +63663161383035656430373433313430396539346638646432323765626439363539613733323931 +65633063623962323037363066643639326265393435643333326431363663633561646234346166 +36666661386262383462633833383237623264653863343532353637633261626635356633623437 +66373665623363613163636261313834643764373434636633623634306161366263366464363637 +39376332663865376232616535616435353065646332663631333361653964653736303938363237 +35313037643233326435396361643238653862616530613936306362626464336666356131336264 +30366438393934613131663766316361313238366337643238636632316136323335313737366264 +30383038373531666333333539323363653238613437326533666137636633613936356137363638 +31643934623531383463363165653237376162613834616435353134653763323530613930643831 +65323666613130636338343231666238663134326366626662383663313337646134353837366535 +63366338363961656634383765363836366231343666353566316339353131373263333033303865 +38636663383664333831633163306432303032613931333634303337363036636233386438373533 +63343966373936376161623134386335366335643965643461623634646537636131346637613238 +38396435663337323630643864306437363566393833343935663166646539386463383265393864 +62613564623164356561393537323866626663346530613164303630326433323930393131303837 +65623833656665373862383634313937653031386630666361646665316431333665383830363730 +63353063653734623933373939343334323662366438306365313265333166383164633135366135 +32376562643537623165343334633735323038653932396632353232386563663366313134333835 +64643866363932313035323733353461383239383733316138613036303530313032663433643438 +35656137396164323336353633633833383531313439373865303034616435376437386536386430 +36306630336663393264313261306432313965663637613961363738396164373065383236353137 +33376533346535346265656462626337363532653866313938626538643932376566656333316638 +30316335633730323765306431343138666332366436383565393537646666646233636132323761 +33623539386439663864366161633639336161653932633035666666356534323832636637313964 +38623861323033353766313632326263666536373762653964356361666234663265353334323064 +65646364633232303266613739343762663732653661643932653462623732656661363263363438 +64616363633235643635343661383338663031343038353331383538323836633336643937343462 +35666362373963333231353032643639383432643463323965626662653731363236353731633230 +35633333613539616566336335333631623735663138363066656339633032346466373239653362 +33386465303762383034383736613538356665646662323735306434663164633166393138316463 +38373639383337383430393530626432393334386637646437616364393761336633373636323962 +30386635626261316562383038636235323331316430613662666531383334383430323564613530 +31346236666232333537646130616164336632303561363362306434656433636337653436326437 +35633835333535646635653538376166333538613830623333653039383531373763396339303337 +33633234303735653461343030363363383938643633316132316236393530313537326634643738 +39353936646439663135646535386565336230613736333031666237363533646236346438653532 +66303437646166653933373335353134343033666366353361663363626133376630353862316431 +38353663343932346464386166656237363466613134376230396636366363643737366639396338 +31643638623634316138613738316336623737366561343135633235326638396265643162336239 +64663731356634306337663731373033363630656639383566303731373464316337643661656132 +35353434343731303433363461303566383038316430633863626263653131633638373035396365 +31633732656266653837396364653734633365626433373837333033326630313662616135323733 +30383834633139313264633237646137396230336136363633376534363733396239323435643662 +62316564303839363065316635646332366238333665383666326261393061666564326436636535 +33623930373435343563386662646364313035396331353934373063313265616530396637383566 +31333531643963353832646239656137633264383035666630653035613236343739303361346339 +39633532373363663563626466323965623036393338643664353236613661316166316439376630 +38616664353634386637386365343936386231633433386263666133646633623563356538653736 +34626131643434336632643063633734373931386534616330316362323462356532623537383630 +37343266636332343763663234356364306333336662633232666535666138616431306239653738 +33616437653034613732643364646331383165383038366235306665326334626436386234643134 +64383364323265636238363934326164353664616134303564383731633133363666366237383433 +39623939653566313066373363616534643931383636396636333238613835326236663338653532 +36636134663763313235346465396232666639613165633137356165353861376430386463343363 +38346135323636313031626136343531323663383439383465323936376338643831393966383834 +34376237353336376639323637643664383134303931663038386136626631653561613539393462 +63613763393337643033643239613233376430363834623638333934663035373266323434323364 +32343933666362303738326236633636623662303036356437643165363834343663363232653264 +39343035666632633832323865643831663865366665336631363733326634313039386339623866 +31326438376163346364386237656233656130663763313930353038616438333336383832343439 +63333735303865303166383335393364373033646632343432383834663235383965356563343934 +36393330363132393336313037393866373138306131623330333463343633643630616132633733 +32316564373735316164313166373063623366323463636339303430303563663536353463353834 +37356661383937616464666162383066646665396335613137396363386631363033373938636630 +31346461646534343934326538323039353531326262303831616131636137323634646261663863 +35396137346364663866323737376565633062623335376336323266343437303537346133363333 +63663139313930396138346366633435643432396237333237616465366437303332303133653235 +39353932313165356466653538663665333962613863336531303536656639303935386439303239 +30643365323964636532353730343832383235326331393136353932393935313031336131393562 +35653131356536323766396531333930386261313961313138333132363165356139326364623835 +37663534633364356633376466643032396533343237313738333831656130326131313738646537 +36643435323963356661336362383631306562333937353039643438613964616434656436343565 +64373763666131313238666665336138373232363239643537383033366266663636353033396530 +31366539613966626561316265393938343237303736653564323834633164613935373030623233 +33333633383065393734323761646362386465663964333330306539343861366338323966613861 +33363664653961643737653962666535383338363031653836383137616335376263336133366532 +30373035333836633737396334396238306431646331383062636531386434343336306336633931 +35663361633132396664366662643763313639373962393563653863396334303066373737643338 +39383230333565323163306338323435613763396263633637643433643963336665666162313336 +35306562653664623637633133613430663434643865633363653065373130316337333234333036 +65373733666364363964376637333331373633353933353433323637383439393432303435663731 +62353961386564336565343762353364313765633566663030663335393730373534363235616666 +66633437353938653232336530626565613537323630366236613030303862613330663736383762 +62323761616531366262646137363232653961636433343966656534386232376661333463303532 +32643835393235333431666232616236336538303335356139323136323932636265313837623663 +62343364356263666234323364356464333133353661393262373231666137646234363838613764 +37653831653338396465343830336134353330663361393961373664353462353030363738373736 +64326363313461616539623066653665653433613761303933326337376366636436613465616438 +62303234346635663064323434356535303565396334636163323130373063363531396239353430 +66643933656636353061646237343931343030663339636164386162393563636238303636323363 +38303336626364373036333031636530633066666438333337366234313532306631323065373335 +64663165396237303136343434303464353361373331633231306637336634623435393631393335 +61353536376538623834383936303464653339346264623537323139396165313337636137633964 +38316633333064373962363536363537613133353765633264343533653830363363643535613434 +39616662623866373537666263633034656666343661356634323061613236313333306639666234 +63646533616233386433646431353862306630653538316333343432653765363963343637633738 +64333166383437373237366535373738393237633738646361646130396136666632376637373639 +37633438353032663732343831393335396365313962396364663262336161643634386437656364 +63356230313833386262303238643562666634316335666537396262373334386465323133353962 +65316261333733396639316266323065393432623537313435313033653233653861663139343261 +64346235613335623663623732363137306363653138643165356536373765623934653330396235 +31646666333962343133643032656136393165663866313833386234303862616661323365666165 +61666166313662306164616564393061333564383963313430396231353066346333633161343162 +66353165666264373635326231643838633533333765646639366263386333396237386361626131 +32336333323132326537643232393731373339326165323564323763626438346166663166666466 +36656137613637623139656436396634623737346439303731323438626466353966333964623766 +39396663623238373336623230626435383261613931303035316562363733616235376231366433 +34303539383833336261356265633134616638626632376132336661613136326330303066616361 +30306561373662366137663533333736383239313165393666353030373539666363656463323733 +66383938646462653637323961346535643136366266383733306363323763313933636536646539 +34373739633166633939393730646635366664663833613663613662303463643234643339346436 +66643530383937633639326230376637613463616230316339376131646335326335333039306461 +61313062303236663465653132646133633331333161613266636134393566313039303864636161 +35326264663930393431303238643563393033316431373030396464306366613035313234383863 +61663237346131383731323366613631653465316435386637316365623966303162643762666638 +62303437316136623765643762343262333532616336326337373963316230653364643134633335 +36656232633766373966333263663662393865326365386336386364653961353333356265363539 +39613865333132616164346436396530396632333261623263623939343938643733663237613032 +62653066343937353835316666333337633361666564616263616362393263376537393465366231 +62363936633531663831666663656238623737316534353837636661383339636261366637353833 +65623236336534626134633537626436383733636364613533653863633638656561653165373564 +34306339373934353961346238636134643531653435633464343861316265366661303232626439 +30373863356434366164663736316334346136316533346365323062623939333164323136636662 +35353865393738356434393633643038643561643231656633383563613036373633643031366134 +30613466336136356131333236383336323731386435346161653863393434353232653434313465 +39663264303239386531333237336364623162633931613162343338646463356632343462343634 +38316364346664646661373361346333653838656134616139616238343730363634356639303566 +34343638393966326534366665663166316262343231626262353335626465393130333536303465 +31646237666235633463343566363931393961656136623664383935336161663637626236386639 +62616261656566636633343031373239613339356231663863363365363137333131373936643961 +38393536636565383937616530643731363830653334353465623639623139343937646161643737 +65333834306332616265323636376265386534663462666231623061316637656561356434323333 +66303032666164363438343536626631373763373366373230363334343463666365313161383831 +64396233653033353631376662636435313932303736336364386466303766383733363333303539 +36356135626136346165383934623563316538396136623334643737373834333361313437313538 +38303130353562643236333463616161633363396538363034356361663837303332346563623933 +63386563393032313936323537343966313536616338613331373161323232333839356436353037 +32623138333539616666346333333730343236653863383438623766653337366237633431373435 +33613361613632303133303861313333663130613336343539333533303435303630623364356138 +33323433616233306632363538313133366261636331356131643337363665313632346539386436 +30366633626230376562623038353630356330363239313937336434306666623733343132336334 +62383831643235303532643731663636346564653564343136396234643038356130323561616664 +35316331313335623334343266316139646561316434646435656262643066353665663661396238 +32316564376535626664623764336134326637386535623539316235653862326638633638333232 +31386666353033663663333165633430373066636234326366356234333662626131396438616365 +63616230303961303939613436613538383531383139313730663035646134333963353664663764 +31656230366366376130373537333338333966613138373534346538343437353433393430656632 +62623439313166333530306461333337333535626563633762343939666637613732303230653233 +30333034396634316563633136636533396239656566663438666261623061346336383638333832 +64636235343139626462663561383162646466666635333837313332396235393435636632633064 +36303937353736313932386635643338383033323139653733386261343166393733636266626163 +31343931613931613338333735343666633666333862316463626538663737646334376131663135 +34396533613531393538303735323865363463326161613330393166353238383432333662323135 +30366564616632393134646562343863303935366431323431336136326566653566383338373163 +32323231613537656335323962313532623331626139643662626234343161633532346337653761 +66383634323431323163623934366433373433343532356237306135656261383765316664643630 +65363431366266363933383733616631343534616666616664386238303764326237353830663630 +32353733623732323165643833306233616565626330313863343731366333303331373436636162 +38326163376331343139643663643038663231306234323732313361386461666164653466626231 +33643935626634363865623236323531613862326636393164643166346533366164373935386665 +30643334333338373261386163323333303039323361633239333431613930353064383661336130 +65663666393031626134613239666464633231393762326461383766376330323936