Added playbook for PowerEdge R720
This commit is contained in:
parent
3e8c8a3566
commit
a4ae85a508
3
host_vars/alpha-worker-13.yaml
Normal file
3
host_vars/alpha-worker-13.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
name: alpha-worker-13
|
||||
vcpu:
|
||||
value: 2
|
3
host_vars/alpha-worker-14.yaml
Normal file
3
host_vars/alpha-worker-14.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
name: alpha-worker-14
|
||||
vcpu:
|
||||
value: 2
|
3
host_vars/alpha-worker-15.yaml
Normal file
3
host_vars/alpha-worker-15.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
name: alpha-worker-15
|
||||
vcpu:
|
||||
value: 2
|
3
host_vars/alpha-worker-16.yaml
Normal file
3
host_vars/alpha-worker-16.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
name: alpha-worker-16
|
||||
vcpu:
|
||||
value: 2
|
3
host_vars/alpha-worker-17.yaml
Normal file
3
host_vars/alpha-worker-17.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
name: alpha-worker-17
|
||||
vcpu:
|
||||
value: 2
|
16
host_vars/poweredge-r720.yaml
Normal file
16
host_vars/poweredge-r720.yaml
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
# Host vars for poweredge-r720
|
||||
libvirt_networks:
|
||||
- name: wan
|
||||
forward:
|
||||
mode: bridge
|
||||
bridge:
|
||||
name: wan
|
||||
dev: eno1
|
||||
libvirt_guests:
|
||||
- alpha-worker-13
|
||||
- alpha-worker-14
|
||||
- alpha-worker-15
|
||||
- alpha-worker-16
|
||||
- alpha-worker-17
|
||||
nfs_exports: ["/data *(rw,sync,no_root_squash)"]
|
228
poweredge-r720.yaml
Normal file
228
poweredge-r720.yaml
Normal file
@ -0,0 +1,228 @@
|
||||
---
|
||||
# Playbook for eom.dev
|
||||
- name: Initialize hypervisors
|
||||
hosts: poweredge-r720
|
||||
become: true
|
||||
vars_files:
|
||||
- ../secrets.yaml
|
||||
roles:
|
||||
- role: ericomeehan.debian
|
||||
- role: ericomeehan.ericomeehan
|
||||
|
||||
- name: Initialize Network File Systems
|
||||
hosts: poweredge-r720
|
||||
become: true
|
||||
roles:
|
||||
- role: geerlingguy.nfs
|
||||
tasks:
|
||||
- name: Create NFS directories
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
loop:
|
||||
- /data/alpha
|
||||
- /data/beta
|
||||
- /data/gamma
|
||||
|
||||
- name: Deploy virtual machines
|
||||
hosts: poweredge-r720
|
||||
become: true
|
||||
vars_files:
|
||||
- ../secrets.yaml
|
||||
pre_tasks:
|
||||
- name: Install packages for virtualization
|
||||
apt:
|
||||
update_cache: yes
|
||||
name:
|
||||
- bridge-utils
|
||||
- genisoimage
|
||||
- qemu-utils
|
||||
- qemu-system-x86
|
||||
- libvirt-daemon-system
|
||||
- python3-libvirt
|
||||
- python3-lxml
|
||||
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: Reload sysctl configuration
|
||||
command: sysctl --system
|
||||
|
||||
- name: Define libvirt networks
|
||||
community.libvirt.virt_net:
|
||||
name: "{{ item.name }}"
|
||||
command: define
|
||||
xml: "{{ lookup('template', 'libvirt-network.xml.j2') }}"
|
||||
loop: "{{ libvirt_networks }}"
|
||||
|
||||
- name: Create libvirt networks
|
||||
community.libvirt.virt_net:
|
||||
name: "{{ item.name }}"
|
||||
command: create
|
||||
loop: "{{ libvirt_networks }}"
|
||||
|
||||
- name: Autostart libvirt networks
|
||||
community.libvirt.virt_net:
|
||||
name: "{{ item.name }}"
|
||||
autostart: true
|
||||
loop: "{{ libvirt_networks }}"
|
||||
|
||||
- name: Download base image for guests
|
||||
get_url:
|
||||
url: https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2
|
||||
dest: "/var/lib/libvirt/images/{{ item }}.qcow2"
|
||||
force: true
|
||||
loop: "{{ libvirt_guests }}"
|
||||
|
||||
- name: Create cloud-config directory for guests
|
||||
file:
|
||||
path: "/var/lib/libvirt/configs/{{ item }}"
|
||||
state: directory
|
||||
loop: "{{ libvirt_guests }}"
|
||||
|
||||
- name: Copy cloud-config templates for guests
|
||||
template:
|
||||
src: eom_cloud.cfg.j2
|
||||
dest: "/var/lib/libvirt/configs/{{ domain.name }}/user-data"
|
||||
force: true
|
||||
loop: "{{ libvirt_guests }}"
|
||||
vars:
|
||||
domain: "{{ hostvars[item] }}"
|
||||
|
||||
- name: Copy cloud-config templates for guests
|
||||
template:
|
||||
src: meta-data.j2
|
||||
dest: "/var/lib/libvirt/configs/{{ domain.name }}/meta-data"
|
||||
force: true
|
||||
loop: "{{ libvirt_guests }}"
|
||||
vars:
|
||||
domain: "{{ hostvars[item] }}"
|
||||
|
||||
- name: Generate iso for guests
|
||||
command: "genisoimage -output /var/lib/libvirt/images/{{ item }}.iso -volid cidata -joliet -rock /var/lib/libvirt/configs/{{ item }}/user-data /var/lib/libvirt/configs/{{ item }}/meta-data"
|
||||
loop: "{{ libvirt_guests }}"
|
||||
|
||||
- name: Copy logging config for guests
|
||||
copy:
|
||||
src: 05_logging.cfg
|
||||
dest: "/var/lib/libvirt/configs/{{ item }}/05_logging.cfg"
|
||||
loop: "{{ libvirt_guests }}"
|
||||
|
||||
- name: Define libvirt virtual machine
|
||||
community.libvirt.virt:
|
||||
command: define
|
||||
xml: "{{ lookup('template', 'libvirt-vm.xml.j2') }}"
|
||||
loop: "{{ libvirt_guests }}"
|
||||
vars:
|
||||
domain: "{{ hostvars[item] }}"
|
||||
|
||||
- name: Create libvirt virtual machine
|
||||
community.libvirt.virt:
|
||||
name: "{{ item }}"
|
||||
command: create
|
||||
loop: "{{ libvirt_guests }}"
|
||||
|
||||
- name: Autostart libvirt virtual machine
|
||||
community.libvirt.virt:
|
||||
name: "{{ item }}"
|
||||
autostart: true
|
||||
loop: "{{ libvirt_guests }}"
|
||||
|
||||
- name: Wait for manual tasks
|
||||
hosts: localhost
|
||||
tasks:
|
||||
- name: Trust SSH identities
|
||||
pause:
|
||||
prompt: "Press Enter to continue..."
|
||||
|
||||
- name: Initialize virtual machines
|
||||
hosts:
|
||||
- alpha-worker-13
|
||||
- alpha-worker-14
|
||||
- alpha-worker-15
|
||||
- alpha-worker-16
|
||||
- alpha-worker-17
|
||||
become: true
|
||||
vars_files:
|
||||
- ../secrets.yaml
|
||||
roles:
|
||||
- role: ericomeehan.ericomeehan
|
||||
|
||||
- name: Initialize Kubernetes clusters
|
||||
hosts:
|
||||
- alpha-worker-13
|
||||
- alpha-worker-14
|
||||
- alpha-worker-15
|
||||
- alpha-worker-16
|
||||
- alpha-worker-17
|
||||
become: true
|
||||
pre_tasks:
|
||||
- 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: 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
|
||||
|
||||
- name: Alpha Cluster
|
||||
hosts:
|
||||
- alpha-worker-13
|
||||
- alpha-worker-14
|
||||
- alpha-worker-15
|
||||
- alpha-worker-16
|
||||
- alpha-worker-17
|
||||
become: true
|
||||
roles:
|
||||
- role: geerlingguy.kubernetes
|
||||
|
||||
- name: Deploy base Kubernetes resources
|
||||
hosts: alpha_control_plane
|
||||
become: true
|
||||
tasks:
|
||||
- name: Deploy NFS Provisioner
|
||||
kubernetes.core.helm:
|
||||
name: nfs-subdir-external-provisioner
|
||||
chart_ref: nfs-subdir-external-provisioner/nfs-subdir-external-provisioner
|
||||
release_namespace: r720-nfs-provisioner
|
||||
create_namespace: true
|
||||
values:
|
||||
nfs:
|
||||
server: poweredge-r720
|
||||
path: "/data/alpha"
|
||||
storageClass:
|
||||
defaultClass: false
|
||||
name: r720-nfs-client
|
Loading…
Reference in New Issue
Block a user