diff --git a/.gitmodules b/.gitmodules index 1724919..b45b7b5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,3 +13,6 @@ [submodule "roles/ericomeehan.nvidia_driver"] path = roles/ericomeehan.nvidia_driver url = https://git.eom.dev/ansible-role-nvidia-driver +[submodule "roles/ericomeehan.pykraken"] + path = roles/ericomeehan.pykraken + url = https://git.eom.dev/kraken-bot diff --git a/bmcluster.yaml b/bmcluster.yaml new file mode 100644 index 0000000..f8bb2ee --- /dev/null +++ b/bmcluster.yaml @@ -0,0 +1,57 @@ +--- +# Master playbook for eom.dev +- name: Initialize systems + hosts: clusters + become: true + roles: + - role: ericomeehan.debian + - role: ericomeehan.ericomeehan + +- name: Initialize cluster nodes + hosts: clusters + become: true + pre_tasks: + - name: Update sysctl configuration to enable IPv4 packet forwarding + lineinfile: + path: /etc/sysctl.conf + line: 'net.ipv4.ip_forward = 1' + state: present + - name: Update sysctl configuration to enable IPv6 packet forwarding + lineinfile: + path: /etc/sysctl.conf + line: 'net.ipv6.conf.all.forwarding = 1' + state: present + - name: Reload sysctl configuration + command: sysctl --system + - name: Enable br_netfilter kernel module + command: modprobe br_netfilter + - name: Add the module to a configuration file for persistence + lineinfile: + path: /etc/modules-load.d/modules.conf + line: "br_netfilter" + - name: Install kubernetes library + apt: + name: python3-kubernetes + state: present + roles: + - role: geerlingguy.containerd + - role: geerlingguy.kubernetes + - role: geerlingguy.helm + when: kubernetes_role == 'control_plane' + - role: ericomeehan.nvidia_driver + vars: + - nvidia_driver_debian_install_tesla_driver: true + when: nvidia_driver_needed == true + +- name: Deploy services + hosts: alpha-control-plane + vars_files: + - vars/secrets.yaml + become: true + roles: + - role: ericomeehan.eom + vars: + target_namespace: prod + - role: ericomeehan.gondwana + vars: + target_namespace: prod diff --git a/cluster.yaml b/cluster.yaml index f8bb2ee..ac356b9 100644 --- a/cluster.yaml +++ b/cluster.yaml @@ -1,57 +1,36 @@ --- -# Master playbook for eom.dev -- name: Initialize systems - hosts: clusters - become: true - roles: - - role: ericomeehan.debian - - role: ericomeehan.ericomeehan +# Playbook for deploying a Kubernetes cluster +- name: Create network bridge +- name: Create virtual machines -- name: Initialize cluster nodes - hosts: clusters +- name: Prepare cluster environments + hosts: cluster_nodes become: true pre_tasks: - - name: Update sysctl configuration to enable IPv4 packet forwarding - lineinfile: - path: /etc/sysctl.conf - line: 'net.ipv4.ip_forward = 1' - state: present - - name: Update sysctl configuration to enable IPv6 packet forwarding - lineinfile: - path: /etc/sysctl.conf - line: 'net.ipv6.conf.all.forwarding = 1' - state: present - - name: Reload sysctl configuration - command: sysctl --system - - name: Enable br_netfilter kernel module - command: modprobe br_netfilter - - name: Add the module to a configuration file for persistence - lineinfile: - path: /etc/modules-load.d/modules.conf - line: "br_netfilter" - name: Install kubernetes library apt: name: python3-kubernetes state: present + - name: Enable IPv4 packet forwarding + lineinfile: + path: /etc/sysctl.conf + line: 'net.ipv4.ip_forward = 1' + state: present + - name: Enable IPv6 packet forwarding + lineinfile: + path: /etc/sysctl.conf + line: 'net.ipv6.conf.all.forwarding = 1' + state: present + - name: Enable br_netfilter kernel module + command: modprobe br_netfilter + - name: Persist br_netfilter kernel module + lineinfile: + path: /etc/modules-load.d/modules.conf + line: "br_netfilter" + - name: Reload sysctl configuration + command: sysctl --system roles: - role: geerlingguy.containerd - role: geerlingguy.kubernetes - role: geerlingguy.helm when: kubernetes_role == 'control_plane' - - role: ericomeehan.nvidia_driver - vars: - - nvidia_driver_debian_install_tesla_driver: true - when: nvidia_driver_needed == true - -- name: Deploy services - hosts: alpha-control-plane - vars_files: - - vars/secrets.yaml - become: true - roles: - - role: ericomeehan.eom - vars: - target_namespace: prod - - role: ericomeehan.gondwana - vars: - target_namespace: prod diff --git a/inventories/old.yml b/inventories/old.yml new file mode 100644 index 0000000..b10f675 --- /dev/null +++ b/inventories/old.yml @@ -0,0 +1,11 @@ +--- +all: + children: + clusters: + children: + alpha: + hosts: + alpha-control-plane: + ansible-host: 192.168.1.137 + alpha-worker-0: + ansible-host: 192.168.1.138 diff --git a/kraken-bot.yaml b/kraken-bot.yaml new file mode 100644 index 0000000..9d9a193 --- /dev/null +++ b/kraken-bot.yaml @@ -0,0 +1,7 @@ +--- +# Playbook to deploy kraken bot +- name: Deploy Kraken bot + hosts: alpha-control-plane + become: true + roles: + - role: ericomeehan.pykraken diff --git a/roles/ericomeehan.pykraken b/roles/ericomeehan.pykraken new file mode 160000 index 0000000..d14bd9b --- /dev/null +++ b/roles/ericomeehan.pykraken @@ -0,0 +1 @@ +Subproject commit d14bd9b4fcb3e5ad5327e38515f1d67c4e2a0d49 diff --git a/servers.yaml b/servers.yaml new file mode 100644 index 0000000..c063b40 --- /dev/null +++ b/servers.yaml @@ -0,0 +1,15 @@ +--- +# Playbook for deploying server infrastructure +- name: Initialize systems + hosts: clusters + become: true + roles: + - role: ericomeehan.debian + - role: ericomeehan.ericomeehan + tasks: + - name: Install QEMU + apt: + state: present + name: + - qemu-system + - libvirt-daemon-system diff --git a/templates/qemu_vm.xml.j2 b/templates/qemu_vm.xml.j2 new file mode 100644 index 0000000..3d1309e --- /dev/null +++ b/templates/qemu_vm.xml.j2 @@ -0,0 +1,52 @@ + + {{ vm_name }} + {{ vm_ram_mb }} + {{ vm_vcpus }} + + hvm + + + + + /usr/bin/qemu-system-x86_64 + + + + +
+ + + + +
+ + + +
+ + + +
+ + +
+ + + + + + + +