diff --git a/infra-config/00-network/README.md b/infra-config/00-network/README.md deleted file mode 100644 index b0e970b..0000000 --- a/infra-config/00-network/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Networks - -My homelab is segmented into a set of networks. Each network is a separate subnet, and each subnet is a separate VLAN that usually corresponds to the 3rd octet of the IPv4 block it aligns to. The following table shows the network and VLAN information: - -| Network | VLAN | DHCP Range | Description | -|-----------------|------|------------------|------------------------| -| 10.1.71.0/24 | 71 | 10.71.1.10-250 | Server network | -| 10.10.22.0/24 | 22 | Static IPs | Cluster network | -| 10.10.121.0/24 | 121 | Static IPs | Storage network | diff --git a/infra-config/01-storage/README.md b/infra-config/01-storage/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/infra-config/02-proxmox/README.md b/infra-config/02-proxmox/README.md deleted file mode 100644 index 410ee56..0000000 --- a/infra-config/02-proxmox/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# Proxmox - -In this iteration of my homelab, core services are running as VMs in Proxmox. - -The proxmox cluster will be installed via ISO Image and manually configured. (Future iterations will gitops this configuration via Ansible playbooks.) - -## Primary Networking - -| Hostname | VLAN | IP Address | NIC | Notes | -|-------------|------|------------------|-----------------|----------------------------| -| pve01 | | 10.1.71.51 | On-board 1 GbE | VLAN 71 set on switch port | -| pve02 | | 10.1.71.52 | On-board 1 GbE | VLAN 71 set on switch port | -| pve03 | | 10.1.71.53 | On-board 1 GbE | VLAN 71 set on switch port | - -## Additional Networking - -| Hostname | VLAN | IP Address | NIC | Notes | -|-------------|------|--------------------|--------------|------------------------------| -| pve01 | 22 | 10.10.22.51 | PCIe 10 GbE | Cluster Network, VLAN tagged | -| pve01 | 121 | 10.10.121.51 | PCIe 10 GbE | Storage Network, VLAN tagged | -| pve02 | 22 | 10.10.22.52 | PCIe 10 GbE | Cluster Network, VLAN tagged | -| pve02 | 121 | 10.10.121.52 | PCIe 10 GbE | Storage Network, VLAN tagged | -| pve03 | 22 | 10.10.22.53 | PCIe 10 GbE | Cluster Network, VLAN tagged | -| pve03 | 121 | 10.10.121.53 | PCIe 10 GbE | Storage Network, VLAN tagged | - -## Hosted Services - -- Recursive DNS (Unbound) -- Authoritative DNS (FreeIPA) -- Identity Management (FreeIPA) -- iPXE (Matchbox) -- VM Backup (Proxmox Backup) -- VM Tempalate Creation (Terraform/Packer) diff --git a/infra-config/03-infra01-server/03-unbound-dns/README.md b/infra-config/03-infra01-server/03-unbound-dns/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/infra-config/03-infra01-server/04-free-ipa/README.md b/infra-config/03-infra01-server/04-free-ipa/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/infra-config/03-infra01-server/05-templates/README.md b/infra-config/03-infra01-server/05-templates/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/infra-config/03-infra01-server/06-matchbox/README.md b/infra-config/03-infra01-server/06-matchbox/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/infra-config/03-infra01-server/install.yml b/infra-config/03-infra01-server/install.yml deleted file mode 100644 index 88faa1e..0000000 --- a/infra-config/03-infra01-server/install.yml +++ /dev/null @@ -1,61 +0,0 @@ ---- -- name: Install all software on infra01 - hosts: infra01 - gather_facts: true - #become: true - - tasks: - # - Update all packages - # - Copy .vault_pass.txt from laptop and set env variable - # - Install ansible required packages - - - name: Install ansible-core - ansible.builtin.package: - name: ansible-core - state: present - become: true - - - name: Install dnf-plugins-core - ansible.builtin.package: - name: dnf-plugins-core - state: present - become: true - - - name: Install git - ansible.builtin.package: - name: git - state: present - become: true - - - name: Register status of git repo - ansible.builtin.stat: - path: homelab/.git - register: git_status - - - name: Clone GitHub repository - when: not git_status.stat.exists - block: - - name: First run, cloning the repo - ansible.builtin.git: - repo: https://github.com/rblundon/homelab.git - dest: homelab - - - name: Register status of /usr/local/bin/terraform - ansible.builtin.stat: - path: /usr/local/bin/terraform - register: terraform_path - - - name: Download and install terraform version - when: not terraform_path.stat.exists - block: - - name: Download and install terraform - ansible.builtin.unarchive: - src: "https://releases.hashicorp.com/terraform/{{ terraform_version }}/terraform_{{ terraform_version }}_linux_amd64.zip" - dest: "/usr/local/bin/" - remote_src: true - mode: '0755' - exclude: "LICENSE.txt" - become: true - - roles: - - somaz94.ansible_k8s_iac_tool.install_kustomize diff --git a/infra-config/10-sno-hub-cluster/01-dhcp/host-reservations.yml b/infra-config/10-sno-hub-cluster/01-dhcp/host-reservations.yml deleted file mode 100644 index 838c2b7..0000000 --- a/infra-config/10-sno-hub-cluster/01-dhcp/host-reservations.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -- name: Dnsmasq - hosts: localhost - become: yes - vars: - - additional_dhcp_hosts: - ethernet_switch: - desc: "SNO Hub Cluster" - mac: 98:b7:85:1e:c6:f1 - ip: 10.1.71.10 - - roles: - - role: ricsanfre.dnsmasq \ No newline at end of file diff --git a/infra-config/10-sno-hub-cluster/01-dns/.terraform.lock.hcl b/infra-config/10-sno-hub-cluster/01-dns/.terraform.lock.hcl deleted file mode 100644 index eaa91ba..0000000 --- a/infra-config/10-sno-hub-cluster/01-dns/.terraform.lock.hcl +++ /dev/null @@ -1,24 +0,0 @@ -# This file is maintained automatically by "terraform init". -# Manual edits may be lost in future updates. - -provider "registry.terraform.io/rework-space-com/freeipa" { - version = "5.0.0" - constraints = "5.0.0" - hashes = [ - "h1:6EquDv6GgQO2HjZUUoRIUVzYa951n+wb4Uk7ggD6XD0=", - "zh:098607e559c3b696401034ff494ba8068962b45059ee067a54b58334b6ee0f2c", - "zh:18b806a14bb9d9382213c6929af35f5a65f16c17ff526d475f1eab33d1470290", - "zh:2c8c74668844d256b7fdc503cd736a20b7e58db5b31880d1ad8090c1af04e24c", - "zh:3bba458b9a6df99c21da58750dd6586b93bdcc557e4a2d695e801ada39e8de1e", - "zh:58f728d9e98cc7aae3841c07318be64b6dcb2f51c041f04bba977e61104a2333", - "zh:597dfbefbfe111a31e9ff3c4fc14fc8e12c1e255454087d3eebd2ec6c7aa9bf3", - "zh:6093d6db13d834c23f5482efae80c8e1ae046028fccf24242f0f1c1935e6aa70", - "zh:87271fa234a57ce05d4166e444002bd66976f971b434f7add45c874c9587129d", - "zh:89f7f6be64b6bf9e708fbafd22f410cf3f50b1fcd4cd6c61e9ffffd6180ea839", - "zh:9bdd7a984f845ff6f4bc4df5cc41a9de019639fceca62e60fc7c0f098ad2695c", - "zh:a0551311c96b86050d15854b4fca2beaa06b2e1964f97945824567d0b90db580", - "zh:c3daa12021725883bd32d7d852a2de845bb7a5f18009a45be7c2c2d891631713", - "zh:d7871eb99683934a30b9d47508379e6d16978f3dcd73601af2204652668592aa", - "zh:e8f72fd7750e6c1f0f97d039fea66cb85f457cf22908b7c3f14c7d2cf990ee84", - ] -} diff --git a/infra-config/10-sno-hub-cluster/01-dns/README.md b/infra-config/10-sno-hub-cluster/01-dns/README.md deleted file mode 100644 index 90b034d..0000000 --- a/infra-config/10-sno-hub-cluster/01-dns/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# DNS Provider Configuration - -This directory contains the configuration to updateFreeIPA DNS for the Hub Cluster. diff --git a/infra-config/10-sno-hub-cluster/01-dns/dns.tf b/infra-config/10-sno-hub-cluster/01-dns/dns.tf deleted file mode 100644 index 83fb427..0000000 --- a/infra-config/10-sno-hub-cluster/01-dns/dns.tf +++ /dev/null @@ -1,39 +0,0 @@ -resource "freeipa_dns_record" "ocp-hub" { - zone_name = "int.mk-labs.cloud." - name = "ocp-hub" - type = "A" - records = [ - "10.1.71.10", - ] - ttl = 60 -} - -resource "freeipa_dns_record" "api" { - zone_name = "int.mk-labs.cloud." - name = "api.hub" - type = "A" - records = [ - "10.1.71.10", - ] - ttl = 60 -} - -resource "freeipa_dns_record" "api-int" { - zone_name = "int.mk-labs.cloud." - name = "api-int.hub" - type = "A" - records = [ - "10.1.71.10", - ] - ttl = 60 -} - -resource "freeipa_dns_record" "wildcard-apps" { - zone_name = "int.mk-labs.cloud." - name = "*.apps.hub" - type = "A" - records = [ - "10.1.71.10", - ] - ttl = 60 -} diff --git a/infra-config/10-sno-hub-cluster/01-dns/provider.tf b/infra-config/10-sno-hub-cluster/01-dns/provider.tf deleted file mode 100644 index 4d1c4f8..0000000 --- a/infra-config/10-sno-hub-cluster/01-dns/provider.tf +++ /dev/null @@ -1,22 +0,0 @@ -# Configure the DNS Provider -provider "freeipa" { - host = "infra01.int.mk-labs.cloud" - username = "admin" - password = var.freeipa_password - insecure = true -} - -variable "freeipa_password" { - description = "The password for the FreeIPA provider" - type = string - sensitive = true -} - -terraform { - required_providers { - freeipa = { - source = "rework-space-com/freeipa" - version = "5.0.0" - } - } -} diff --git a/infra-config/10-sno-hub-cluster/02-dhcp/README.md b/infra-config/10-sno-hub-cluster/02-dhcp/README.md deleted file mode 100644 index 4fad815..0000000 --- a/infra-config/10-sno-hub-cluster/02-dhcp/README.md +++ /dev/null @@ -1 +0,0 @@ -# Add/modify entry in DNSmasq diff --git a/infra-config/10-sno-hub-cluster/02-dhcp/ip-reservations.yml b/infra-config/10-sno-hub-cluster/02-dhcp/ip-reservations.yml deleted file mode 100644 index 0993f40..0000000 --- a/infra-config/10-sno-hub-cluster/02-dhcp/ip-reservations.yml +++ /dev/null @@ -1,28 +0,0 @@ ---- -- name: Ensure dnsmasq is installed - ansible.builtin.apt: - name: dnsmasq - state: present - become: true - when: ansible_os_family == "Debian" - -- name: Ensure dnsmasq is installed - ansible.builtin.dnf: - name: dnsmasq - state: present - become: true - when: ansible_os_family == "RedHat" - -- name: Add host reservation to dnsmasq - ansible.builtin.lineinfile: - path: /etc/dnsmasq.d/hosts.conf - regexp: "^dhcp-host={{ hostvars['ocp-hub'].mac_address }}" - line: "dhcp-host={{ hostvars['ocp-hub'].mac_address }},{{ hostvars['ocp-hub'].ip_address }} #{{ hostvars['ocp-hub'].hostname }}" - state: present - become: true - -- name: Restart dnsmasq service - ansible.builtin.service: - name: dnsmasq - state: restarted - become: true diff --git a/infra-config/10-sno-hub-cluster/03-openshift-image/README.md b/infra-config/10-sno-hub-cluster/03-openshift-image/README.md deleted file mode 100644 index e8786db..0000000 --- a/infra-config/10-sno-hub-cluster/03-openshift-image/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Configure the OpenShift Agent Installer and Matchbox - -## Reference Document - - - -Recap of image creation is in 10-sno-hub-cluster/02-matchbox/.openshift_install.log diff --git a/infra-config/10-sno-hub-cluster/03-openshift-image/create-openshift-image.yml b/infra-config/10-sno-hub-cluster/03-openshift-image/create-openshift-image.yml deleted file mode 100644 index c01c43e..0000000 --- a/infra-config/10-sno-hub-cluster/03-openshift-image/create-openshift-image.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- name: OpenShift image creation - ansible.builtin.command: /usr/local/bin/openshift-install agent create pxe-files - args: - chdir: 03-openshift-image diff --git a/infra-config/10-sno-hub-cluster/03-openshift-image/move-pxe-assets.yml b/infra-config/10-sno-hub-cluster/03-openshift-image/move-pxe-assets.yml deleted file mode 100644 index 81bfb4e..0000000 --- a/infra-config/10-sno-hub-cluster/03-openshift-image/move-pxe-assets.yml +++ /dev/null @@ -1,16 +0,0 @@ ---- -- name: Create a directory if it does not exist - ansible.builtin.file: - path: "{{ hostvars[groups['matchbox'][0]].assets }}/{{ hostvars[groups['hub_cluster'][0]].cluster_name }}" - state: directory - mode: '0755' - become: true - -- name: Copy file with owner and permissions - ansible.builtin.copy: - src: 03-openshift-image/boot-artifacts/ - dest: "{{ hostvars[groups['matchbox'][0]].assets }}/{{ hostvars[groups['hub_cluster'][0]].cluster_name }}/" - owner: matchbox - group: matchbox - mode: '0644' - become: true diff --git a/infra-config/10-sno-hub-cluster/03-openshift-image/templates/agent-config.yaml.j2 b/infra-config/10-sno-hub-cluster/03-openshift-image/templates/agent-config.yaml.j2 deleted file mode 100644 index 4171c26..0000000 --- a/infra-config/10-sno-hub-cluster/03-openshift-image/templates/agent-config.yaml.j2 +++ /dev/null @@ -1,33 +0,0 @@ -apiVersion: v1alpha1 -kind: AgentConfig -metadata: - name: {{ hostvars[groups['hub_cluster'][0]].cluster_name }} -rendezvousIP: {{ hostvars['ocp-hub'].ip_address }} -bootArtifactsBaseURL: {{ hostvars[groups['matchbox'][0]].http_endpoint }}/assets/hub/ -hosts: - - hostname: {{ hostvars['ocp-hub'].hostname }} - role: master - interfaces: - - name: {{ hostvars['ocp-hub'].primary_interface }} - macAddress: {{ hostvars['ocp-hub'].mac_address }} - networkConfig: - interfaces: - - name: {{ hostvars['ocp-hub'].primary_interface }} - type: ethernet - state: up - identifier: mac-address - mac-address: {{ hostvars['ocp-hub'].mac_address }} - ipv4: - enabled: true - dhcp: true - dns-resolver: - config: - server: - - 10.1.71.254 - - 10.1.71.253 - routes: - config: - - destination: 0.0.0.0/0 - next-hop-address: 10.1.71.1 - next-hop-interface: {{ hostvars['ocp-hub'].primary_interface }} - table-id: 254 diff --git a/infra-config/10-sno-hub-cluster/03-openshift-image/templates/install-config.yaml.j2 b/infra-config/10-sno-hub-cluster/03-openshift-image/templates/install-config.yaml.j2 deleted file mode 100644 index c250cce..0000000 --- a/infra-config/10-sno-hub-cluster/03-openshift-image/templates/install-config.yaml.j2 +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: v1 -baseDomain: {{ hostvars[groups['hub_cluster'][0]].base_domain }} -compute: -- name: worker - replicas: {{ hostvars[groups['hub_cluster'][0]].worker_node_count }} -controlPlane: - hyperthreading: Enabled - name: master - replicas: {{ hostvars[groups['hub_cluster'][0]].master_node_count }} -metadata: - name: {{ hostvars[groups['hub_cluster'][0]].cluster_name }} -networking: - clusterNetwork: - - cidr: {{ hostvars[groups['hub_cluster'][0]].cluster_network }} - hostPrefix: {{ hostvars[groups['hub_cluster'][0]].cluster_network_host_prefix }} - machineNetwork: - - cidr: {{ hostvars[groups['hub_cluster'][0]].machine_network }} - networkType: OVNKubernetes - serviceNetwork: - - {{ hostvars[groups['hub_cluster'][0]].service_network }} -platform: - {{ hostvars[groups['hub_cluster'][0]].platform_type }}: {} -fips: false -pullSecret: '{{ vault_pull_secret }}' -sshKey: '{{ vault_ssh_key }}' diff --git a/infra-config/10-sno-hub-cluster/04-matchbox/templates/groups.tf.j2 b/infra-config/10-sno-hub-cluster/04-matchbox/templates/groups.tf.j2 deleted file mode 100644 index ae7ef1b..0000000 --- a/infra-config/10-sno-hub-cluster/04-matchbox/templates/groups.tf.j2 +++ /dev/null @@ -1,8 +0,0 @@ -// Matcher group for OCP Internal machines -resource "matchbox_group" "{{ hostvars[groups['hub_cluster'][0]].cluster_name }}" { - name = "{{ hostvars['ocp-hub'].hostname }}" # Physical Server - profile = matchbox_profile.openshift-agent-install.name - selector = { - mac = "{{ hostvars['ocp-hub'].mac_address }}" # PXE boots and installs to 10GbE NIC - } -} diff --git a/infra-config/10-sno-hub-cluster/04-matchbox/templates/profiles.tf.j2 b/infra-config/10-sno-hub-cluster/04-matchbox/templates/profiles.tf.j2 deleted file mode 100644 index 5e54f8e..0000000 --- a/infra-config/10-sno-hub-cluster/04-matchbox/templates/profiles.tf.j2 +++ /dev/null @@ -1,16 +0,0 @@ -// Fedora CoreOS profile -resource "matchbox_profile" "openshift-agent-install" { - name = "{{ hostvars[groups['hub_cluster'][0]].cluster_name }}" - kernel = "/assets/{{ hostvars[groups['hub_cluster'][0]].cluster_name }}/agent.x86_64-vmlinuz" - initrd = [ - "--name initrd /assets/{{ hostvars[groups['hub_cluster'][0]].cluster_name }}/agent.x86_64-initrd.img" - ] - - args = [ - "initrd=initrd", - "coreos.live.rootfs_url={{ hostvars[groups['matchbox'][0]].http_endpoint }}/assets/{{ hostvars[groups['hub_cluster'][0]].cluster_name }}/agent.x86_64-rootfs.img", - "rw", - "ignition.firstboot", - "ignition.platform.id=metal", - ] -} diff --git a/infra-config/10-sno-hub-cluster/04-matchbox/templates/provider.tf.j2 b/infra-config/10-sno-hub-cluster/04-matchbox/templates/provider.tf.j2 deleted file mode 100644 index 2c6c8b8..0000000 --- a/infra-config/10-sno-hub-cluster/04-matchbox/templates/provider.tf.j2 +++ /dev/null @@ -1,20 +0,0 @@ -// Configure the matchbox provider -provider "matchbox" { - endpoint = "{{ hostvars[groups['matchbox'][0]].rpc_endpoint }}" - client_cert = file("/etc/matchbox/client.crt") - client_key = file("/etc/matchbox/client.key") - ca = file("/etc/matchbox/ca.crt") -} - -terraform { - required_providers { - ct = { - source = "poseidon/ct" - version = "0.13.0" - } - matchbox = { - source = "poseidon/matchbox" - version = "0.5.4" - } - } -} diff --git a/infra-config/10-sno-hub-cluster/05-bootstrap-acm/README.md b/infra-config/10-sno-hub-cluster/05-bootstrap-acm/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/infra-config/10-sno-hub-cluster/05-bootstrap-acm/install2.yml b/infra-config/10-sno-hub-cluster/05-bootstrap-acm/install2.yml deleted file mode 100644 index 53e60b0..0000000 --- a/infra-config/10-sno-hub-cluster/05-bootstrap-acm/install2.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -- name: Run all tasks necessary to configure matchbox to install the cluster - hosts: matchbox - connection: local - gather_facts: true - - tasks: - - name: Clone Git repository - ansible.builtin.git: - repo: "https://github.com/redhatryan/acm-hub-bootstrap.git" - dest: 05-bootstrap-acm - version: main - become: true diff --git a/infra-config/10-sno-hub-cluster/install.yml b/infra-config/10-sno-hub-cluster/install.yml deleted file mode 100644 index bacdafe..0000000 --- a/infra-config/10-sno-hub-cluster/install.yml +++ /dev/null @@ -1,62 +0,0 @@ ---- -- name: Run all tasks necessary to configure matchbox to install the cluster - hosts: matchbox - connection: local - gather_facts: true - - tasks: - - name: Deploy DNS entries for cluster via Terraform - community.general.terraform: - project_path: 01-dns/ - variables: - freeipa_password: "{{ vault_freeipa_password }}" - state: present - force_init: true - - - name: Deploy DHCP entries for cluster via Terraform - ansible.builtin.include_tasks: - file: 02-dhcp/ip-reservations.yml - - - name: OpenShift Installer install-config.yaml - ansible.builtin.template: - src: 03-openshift-image/templates/install-config.yaml.j2 - dest: 03-openshift-image/install-config.yaml - mode: '0644' - - - name: OpenShift Installer agent-config.yaml - ansible.builtin.template: - src: 03-openshift-image/templates/agent-config.yaml.j2 - dest: 03-openshift-image/agent-config.yaml - mode: '0644' - - - name: Create OpenShift image - ansible.builtin.include_tasks: - file: 03-openshift-image/create-openshift-image.yml - - - name: Move PXE assets to matchbox - ansible.builtin.include_tasks: - file: 03-openshift-image/move-pxe-assets.yml - - - name: Terraform matchbox groups file - ansible.builtin.template: - src: 04-matchbox/templates/groups.tf.j2 - dest: 04-matchbox/groups.tf - mode: '0644' - - - name: Terraform matchbox profiles file - ansible.builtin.template: - src: 04-matchbox/templates/profiles.tf.j2 - dest: 04-matchbox/profiles.tf - mode: '0644' - - - name: Terraform matchbox provider file - ansible.builtin.template: - src: 04-matchbox/templates/provider.tf.j2 - dest: 04-matchbox/provider.tf - mode: '0644' - - - name: Configure Matchbox via Terraform - community.general.terraform: - project_path: 04-matchbox/ - state: present - force_init: true diff --git a/infra-config/README.md b/infra-config/README.md deleted file mode 100644 index f1f58bc..0000000 --- a/infra-config/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# infra-config - -## Create a virtual environment for ansible-core, activate it upgrade pip - -### Linux - -```bash -python3 -m venv ~/venv-ansible -source ~/venv-ansible/bin/activate -pip3 install --upgrade pip -``` - -## Install ansible-core, proxmoxer and requests (needed by community.general.proxmox_*) - -```bash -pip3 install ansible-core proxmoxer requests -ansible-galaxy collection install community.proxmox -``` diff --git a/infra-config/ansible/README.md b/infra-config/ansible/README.md deleted file mode 100644 index 68c9dc9..0000000 --- a/infra-config/ansible/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# README - -inventory # inventory file for all servers - -group_vars/ - group1.yml # here we assign variables to particular groups - group2.yml -host_vars/ - hostname1.yml # here we assign variables to particular systems - hostname2.yml - -library/ # if any custom modules, put them here (optional) -module_utils/ # if any custom module_utils to support modules, put them here (optional) -filter_plugins/ # if any custom filter plugins, put them here (optional) - -site.yml # master playbook -webservers.yml # playbook for webserver tier -dbservers.yml # playbook for dbserver tier - -roles/ - common/ # this hierarchy represents a "role" - tasks/ # - main.yml # <-- tasks file can include smaller files if warranted - handlers/ # - main.yml # <-- handlers file - templates/ # <-- files for use with the template resource - ntp.conf.j2 # <------- templates end in .j2 - files/ # - bar.txt # <-- files for use with the copy resource - foo.sh # <-- script files for use with the script resource - vars/ # - main.yml # <-- variables associated with this role - defaults/ # - main.yml # <-- default lower priority variables for this role - meta/ # - main.yml # <-- role dependencies - library/ # roles can also include custom modules - module_utils/ # roles can also include custom module_utils - lookup_plugins/ # or other types of plugins, like lookup in this case - - webtier/ # same kind of structure as "common" was above, done for the webtier role - monitoring/ # "" - fooapp/ # "" diff --git a/infra-config/ansible/ansible-ssh-key.yml b/infra-config/ansible/ansible-ssh-key.yml deleted file mode 100644 index 2a6f7c5..0000000 --- a/infra-config/ansible/ansible-ssh-key.yml +++ /dev/null @@ -1,13 +0,0 @@ -- name: "Add SSH key to servers for Ansible" - hosts: ipaserver - - vars_files: - - ansible-vault.yml - - roles: - - role: rywillia.ssh-copy-id - vars: - hostname: "{{ ansible_hostname }}" - username: "{{ vault_ansible_user }}" - password: "{{ vault_ansible_password }}" - ssh_public_key: "/Users/rblundon/git/MK-Labs/ansible/files/ansible" diff --git a/infra-config/ansible/ansible-vault.yml b/infra-config/ansible/ansible-vault.yml deleted file mode 100644 index 1c4ff85..0000000 --- a/infra-config/ansible/ansible-vault.yml +++ /dev/null @@ -1,8 +0,0 @@ -$ANSIBLE_VAULT;1.1;AES256 -37663530616632333938363737366639623261366264616231396533366432303034376365643633 -3632383464666637343765366439333964646637643936380a326335353639326362366263373466 -63646562353737636333653333373765363331323065386137626161633333643034323962316630 -6263373464613033360a376633663236333464393866373733643839336165363761373931623761 -37646139633036646435323361326366326134656630656366366434363335353165356431613731 -39653364653465613066323164663261363461316662623433663637333330306663633864303862 -643261393832643433326332366166383239 diff --git a/infra-config/ansible/ansible.cfg b/infra-config/ansible/ansible.cfg deleted file mode 100644 index df8beab..0000000 --- a/infra-config/ansible/ansible.cfg +++ /dev/null @@ -1,19 +0,0 @@ -[defaults] - -# Chick-Fil-A would like a word... -nocows = True - -# Installs collections into [current dir]/ansible_collections/namespace/collection_name -collections_paths = ./collections:~/.ansible/collections - -# Installs roles into [current dir]/roles/namespace.rolename -roles_path = ./roles - -inventory = ./inventory - -# default user to use for playbooks if user is not specified -# (/usr/bin/ansible will use current user as default) -remote_user = wed -private_key_file = ~/.ssh/ansible - -allow_world_readable_tmpfiles = True diff --git a/infra-config/ansible/collections/requirements.yml b/infra-config/ansible/collections/requirements.yml deleted file mode 100644 index d7f61dd..0000000 --- a/infra-config/ansible/collections/requirements.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -roles: [] - -collections: [] -# - name: community.docker \ No newline at end of file diff --git a/infra-config/ansible/debub.yml b/infra-config/ansible/debub.yml deleted file mode 100644 index 3db358b..0000000 --- a/infra-config/ansible/debub.yml +++ /dev/null @@ -1,23 +0,0 @@ -- name: "Playbook to test the inventory_hostname and ansible_hostname" - hosts: ipaserver - # gather_facts: true - tasks: - - name: "What is my inventory_hostname" - ansible.builtin.debug: - var: inventory_hostname - - - name: "What is my hostname" - ansible.builtin.debug: - var: hostname - - - name: "What is my ansible_hostname" - ansible.builtin.debug: - var: ansible_hostname - - - name: "What is my ansible_host" - ansible.builtin.debug: - var: ansible_host - -# - name: "Ansible | List all known variables and facts" -# ansible.builtin.debug: -# var: hostvars[inventory_hostname] diff --git a/infra-config/ansible/host_vars/infra01/vars/main.yml b/infra-config/ansible/host_vars/infra01/vars/main.yml deleted file mode 100644 index a47573f..0000000 --- a/infra-config/ansible/host_vars/infra01/vars/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -hostname: infra01.int.mk-labs.cloud diff --git a/infra-config/ansible/host_vars/infra01/vault/main.yml b/infra-config/ansible/host_vars/infra01/vault/main.yml deleted file mode 100644 index 7bb6f90..0000000 --- a/infra-config/ansible/host_vars/infra01/vault/main.yml +++ /dev/null @@ -1,6 +0,0 @@ -$ANSIBLE_VAULT;1.1;AES256 -36383531343863313331636462653666393131633533346433343237653433633938343737363531 -3330616336336635313037356130373231643531613237340a613663303764333837333438343433 -38373264316533613763373634343735323764316364376138613934323339653735303562636631 -6166393933356663660a393036653937386239396331653037376564663232666561306631306331 -6362 diff --git a/infra-config/ansible/host_vars/infra01/vault/vault.yml b/infra-config/ansible/host_vars/infra01/vault/vault.yml deleted file mode 100644 index 0460417..0000000 --- a/infra-config/ansible/host_vars/infra01/vault/vault.yml +++ /dev/null @@ -1,9 +0,0 @@ -$ANSIBLE_VAULT;1.1;AES256 -36393261393537313432333136623438383339303162636464353239386433316134613537336263 -6462326336363562613431653435353032383064303166340a333761633530643265336465663634 -65633864653830653738333563326162326430666237303362336537306238356231393761376539 -3335336333316231620a633562633731396464393366323762323365383664326430323038646566 -34643339303863303734623038393336313264636439636663616462613465303232643337653539 -39386231373231306639343561613665626634383932393836616239643662376237353965316162 -64623934616533386664333732343230626130343630393235303863366536363033323335323337 -61356536323131383438 diff --git a/infra-config/ansible/idm-vault.yml b/infra-config/ansible/idm-vault.yml deleted file mode 100644 index 7061a80..0000000 --- a/infra-config/ansible/idm-vault.yml +++ /dev/null @@ -1,9 +0,0 @@ -$ANSIBLE_VAULT;1.1;AES256 -62613936343461366134333738386435646236386662663434373563663433393437383961336634 -6234303634383134623162396130623562353332313463620a373364393561633038383662643561 -37636232366532623364306638373064623433626364383639353137653139353764343466386463 -3237373565653262630a383633353438303934643064623464313639623963386661393562333738 -39316136633733386166663433633434653636333239323236306161653864353666653137653935 -34636236353635336631313432386362616462383763346162363466323432333064633336646439 -38656362306337393065366362653864363438313934333235616338653934626535363266633039 -38626466343338313239 diff --git a/infra-config/ansible/inventory b/infra-config/ansible/inventory deleted file mode 100644 index 4c3980c..0000000 --- a/infra-config/ansible/inventory +++ /dev/null @@ -1,17 +0,0 @@ ---- -backup: - hosts: - backup: - ansible_host: 10.1.71.9 - -ipaserver: - hosts: - infra01: - ansible_host: 10.1.71.5 - -ipareplicas: - hosts: - -#infra: -# hosts: -# awx.int.mk-labs.cloud: diff --git a/infra-config/ansible/lightspeed.yml b/infra-config/ansible/lightspeed.yml deleted file mode 100644 index e69de29..0000000 diff --git a/infra-config/ansible/roles/common/files/ansible.pub b/infra-config/ansible/roles/common/files/ansible.pub deleted file mode 100644 index 1586a14..0000000 --- a/infra-config/ansible/roles/common/files/ansible.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINnSM/9fO8rz/amqkyoGUzUKNNzzmtSXPwOCr1O9zKNO ansible diff --git a/infra-config/ansible/set_hostname.yml b/infra-config/ansible/set_hostname.yml deleted file mode 100644 index 301864b..0000000 --- a/infra-config/ansible/set_hostname.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- -- name: Set hostname - hosts: ipa_server - become: true - gather_facts: true - - tasks: - - name: Set hostname - ansible.builtin.hostname: - name: "{{ hostname }}" - register: result - - - name: Print result - ansible.builtin.debug: - var: result diff --git a/infra-config/ansible/set_sudoers.yml b/infra-config/ansible/set_sudoers.yml deleted file mode 100644 index 541ae1a..0000000 --- a/infra-config/ansible/set_sudoers.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- -- name: Update sudoers for passwordless - hosts: unbound_servers - become: true - gather_facts: true - - tasks: - - name: Update sudoers for passwordless - ansible.builtin.lineinfile: - path: /etc/sudoers - state: present - regexp: "^%wheel" - line: "%wheel ALL=(ALL) NOPASSWD:ALL" - validate: "visudo -cf %s" diff --git a/infra-config/ansible/site.yml b/infra-config/ansible/site.yml deleted file mode 100644 index 96f3fcc..0000000 --- a/infra-config/ansible/site.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -# file: site.yml -#- import_playbook: webservers.yml -#- import_playbook: dbservers.yml diff --git a/infra-config/ansible/uninstall-ipa.yml b/infra-config/ansible/uninstall-ipa.yml deleted file mode 100644 index f5ca592..0000000 --- a/infra-config/ansible/uninstall-ipa.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -- name: Playbook to unconfigure IPA servers - hosts: ipaserver - become: true - - roles: - - role: freeipa.ansible_freeipa.ipaserver - state: absent diff --git a/infra-config/ansible/vault/mk-labs.vault b/infra-config/ansible/vault/mk-labs.vault deleted file mode 100644 index 23e89fc..0000000 --- a/infra-config/ansible/vault/mk-labs.vault +++ /dev/null @@ -1,10 +0,0 @@ -$ANSIBLE_VAULT;1.1;AES256 -66323366323966373436343163303131323239343134323434373762383539663539363464393234 -3762666265303430373832333865613538316261386162640a653562666130323138313533616334 -37623336653332353830306534633165626634376636396166356235353937323965616161323437 -3536643537623931380a633730366330396538373836326439306566666663633932393230323563 -30643032646366393530663138376638386538336466633532303563636163303637303933646465 -37316239393136383638636436646230643338616438646564396238376136653639393865363666 -39346337356133313938303938643866346636663737323238333762386234373563633761333166 -36373063643438303930313366653436363731656163376666323330633763373361393663633631 -39353232346634633836623134383861656337663062393232373932353431323730 diff --git a/infra-config/create_vms.yml b/infra-config/create_vms.yml deleted file mode 100644 index c35b543..0000000 --- a/infra-config/create_vms.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -- name: Create VM ID from IP address for Proxmox hosts - hosts: all - gather_facts: false - - tasks: - - name: Create Proxmox VMs - delegate_to: "localhost" - when: platform is defined and platform == "proxmox" - block: - - name: Create VM ID from IP address - ansible.builtin.set_fact: - vm_id: "{{ ip_address.split('.')[-2] }}{{ '%03d' % (ip_address.split('.')[-1] | int) }}" - - - name: Create new VM with minimal options and given vmid - community.proxmox.proxmox_kvm: - api_user: "{{ proxmox_user }}" - api_password: "{{ proxmox_password }}" - api_host: "{{ proxmox_host }}" - name: "{{ inventory_hostname }}" - node: "{{ proxmox_target_node }}" - vmid: "{{ vm_id }}" - cores: "{{ vm_cpus }}" - memory: "{{ vm_memory }}" - bios: ovmf - efidisk0: - storage: "{{ vm_storage }}" - format: raw - efitype: 4m - pre_enrolled_keys: false - scsihw: virtio-scsi-single - scsi: - scsi0: "{{ vm_storage }}:{{ vm_disk_size }},format=raw,aio=native" # VMs_LVM:10,format=raw - net: - net0: "virtio,bridge={{ vm_net_bridge }}{{ vm_net_vlan }}" - onboot: "true" - # update: "true" diff --git a/infra-config/dns-entry.yml b/infra-config/dns-entry.yml deleted file mode 100644 index 3d6653a..0000000 --- a/infra-config/dns-entry.yml +++ /dev/null @@ -1,44 +0,0 @@ ---- -# file: dns-entry.yml - -# This playbook is used to create a DNS entry for a given server if it's IP address is a host variable. -# It will create a Terraform file in the homelab/terraform/dns directory. -# It will then run the Terraform apply command to create the DNS entry. -# It will then notify the update-dns handler to update the DNS entry. - -# Future work: -# - Add a check to see if the DNS entry already exists. -# - Add a check to see if the Terraform provider is already configured. -# - Add a check to see if the Terraform DNS entry is already created. - -- name: Validate Terraform DNS provider - delegate_to: "{{ terraform_server }}" - run_once: true - block: - - name: Check if terraform directory exists - ansible.builtin.stat: - path: homelab/terraform/dns - register: terraform_dir - - - name: Create Terraform directory for DNS entries - ansible.builtin.file: - path: homelab/terraform/dns - state: directory - mode: '0755' - when: not terraform_dir.stat.exists - - - name: "Create/Update Terraform DNS provider" - ansible.builtin.template: - src: templates/dns_provider.tf.j2 - dest: homelab/terraform/dns/provider.tf - mode: '0644' - -- name: Create Terraform files for DNS - delegate_to: "{{ terraform_server }}" - ansible.builtin.template: - src: templates/dns.tf.j2 - dest: homelab/terraform/dns/{{ inventory_hostname }}.tf - mode: '0644' - changed_when: true - notify: - - Update DNS diff --git a/infra-config/frr-openshift.conf b/infra-config/frr-openshift.conf deleted file mode 100644 index 3083b1d..0000000 --- a/infra-config/frr-openshift.conf +++ /dev/null @@ -1,59 +0,0 @@ -! -frr version 8.1 -frr defaults traditional -hostname WorldDrive -domainname int.mk-labs.cloud -log syslog informational -service integrated-vtysh-config -! -router bgp 65002 - bgp router-id 10.1.71.1 - bgp log-neighbor-changes - no bgp default ipv4-unicast - neighbor internal peer-group - neighbor internal remote-as 65001 - neighbor external peer-group - neighbor external remote-as 65003 - neighbor 10.1.71.141 peer-group external - neighbor 10.1.71.141 description Compact1 - neighbor 10.1.71.142 peer-group external - neighbor 10.1.71.142 description Compact2 - neighbor 10.1.71.143 peer-group external - neighbor 10.1.71.143 description Compact3 - neighbor 10.1.71.131 peer-group internal - neighbor 10.1.71.131 description MF 3 - neighbor 10.1.71.132 peer-group internal - neighbor 10.1.71.132 description NUC2 - neighbor 10.1.71.133 peer-group internal - neighbor 10.1.71.133 description NUC3 - neighbor 10.1.71.134 peer-group internal - neighbor 10.1.71.134 description MF 3 - neighbor 10.1.71.135 peer-group internal - neighbor 10.1.71.135 description NUC2 - neighbor 10.1.71.136 peer-group internal - neighbor 10.1.71.136 description NUC3 - ! - address-family ipv4 unicast - ! no need to redistribute connected, as we are not advertising our own routes - ! redistribute connected - neighbor external activate - neighbor external soft-reconfiguration inbound - neighbor external route-map allow-external in - neighbor internal activate - neighbor internal soft-reconfiguration inbound - neighbor internal route-map allow-internal in - exit-address-family -exit -! -! allow any advertised routes in this range with up to 32 bits mask length -ip prefix-list external seq 5 permit 10.1.182.0/24 le 32 -ip prefix-list internal seq 5 permit 10.1.82.0/24 le 32 -! -route-map allow-external permit 10 - match ip address prefix-list external -exit -! -route-map allow-internal permit 10 - match ip address prefix-list internal -exit -! \ No newline at end of file diff --git a/infra-config/print_ips.yml b/infra-config/print_ips.yml deleted file mode 100644 index 1f3921a..0000000 --- a/infra-config/print_ips.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- -- name: Print host IP addresses - hosts: infra01 - gather_facts: false - vars: - my_hosts: "{{ query('inventory_hostnames', 'all') }}" - tasks: - - name: Loop through all hosts - ansible.builtin.debug: - msg: "Host {{ item }} has IP address: {{ hostvars[my_hosts[my_idx]].ip_address | default('No IP address defined') }}" - when: hostvars[my_hosts[my_idx]].ip_address is defined - loop: "{{ my_hosts }}" - loop_control: - index_var: my_idx diff --git a/infra-config/proxmox.yml b/infra-config/proxmox.yml deleted file mode 100644 index 0f741cf..0000000 --- a/infra-config/proxmox.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# file: proxmox.yml diff --git a/infra-config/site.yml b/infra-config/site.yml deleted file mode 100644 index 44d05a8..0000000 --- a/infra-config/site.yml +++ /dev/null @@ -1,28 +0,0 @@ ---- -# file: site.yml - -- name: Master playbook for home lab - hosts: all - gather_facts: false - - tasks: - - name: Process DNS entries - when: ip_address is defined - ansible.builtin.import_tasks: - file: dns-entry.yml - tags: - - update-dns - - never - - handlers: - - name: Update DNS - run_once: true - delegate_to: "{{ terraform_server }}" - community.general.terraform: - project_path: homelab/terraform/dns/ - variables: - freeipa_server: "{{ dns_server }}" - freeipa_admin: "{{ dns_admin }}" - freeipa_password: "{{ vault_freeipa_password }}" - state: present - force_init: true