good start
This commit is contained in:
parent
73f7d667bf
commit
11bda1cc7b
5
ansible.cfg
Normal file
5
ansible.cfg
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# Add roles directory
|
||||||
|
[defaults]
|
||||||
|
inventory = ./inventory/hosts
|
||||||
|
roles_path = ./roles
|
||||||
|
|
20
inventory/hosts
Normal file
20
inventory/hosts
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
[proxy]
|
||||||
|
klustermaster
|
||||||
|
|
||||||
|
|
||||||
|
[raspberry]
|
||||||
|
localhost
|
||||||
|
192.168.1.124
|
||||||
|
|
||||||
|
[raspberry:vars]
|
||||||
|
ansible_ssh_common_args='-o ProxyCommand="ssh -W %h:%p -q klustermaster"'
|
||||||
|
|
||||||
|
[fedora-server]
|
||||||
|
localhost
|
||||||
|
192.168.1.124
|
||||||
|
|
||||||
|
[fedora-server:vars]
|
||||||
|
ansible_ssh_common_args='-o ProxyCommand="ssh -W %h:%p -q klustermaster"'
|
||||||
|
|
||||||
|
[proxmox]
|
||||||
|
|
15
plays/fedora-k3s-server-setup.yml
Normal file
15
plays/fedora-k3s-server-setup.yml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
- name: Customization and hardening of fresh fedora install running on a VM
|
||||||
|
hosts: fedora-server
|
||||||
|
become: yes
|
||||||
|
user: pi
|
||||||
|
|
||||||
|
vars_prompt:
|
||||||
|
- name: "k3s_token"
|
||||||
|
prompt: "Enter k3s token"
|
||||||
|
private: yes
|
||||||
|
|
||||||
|
roles:
|
||||||
|
# - role: ssh-key-copy
|
||||||
|
# - role: fail2ban
|
||||||
|
- role: k3s-ha
|
||||||
|
# k3s_token: "{{ k3s_token }}"
|
7
plays/raspberry-setup.yml
Normal file
7
plays/raspberry-setup.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
- name: Basic setup with general nice-to-haves of a fresh raspberry-pi os install
|
||||||
|
hosts: raspberry
|
||||||
|
become: yes
|
||||||
|
user: pi
|
||||||
|
roles:
|
||||||
|
- role: ssh-key-copy
|
||||||
|
- role: raspberry
|
25
roles/fedora-vm-setup/tasks/main.yml
Normal file
25
roles/fedora-vm-setup/tasks/main.yml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
- mame: Proxmox VM provisioning
|
||||||
|
community.general.proxmox_kvm:
|
||||||
|
api_host: "{{ proxmox_host }}"
|
||||||
|
api_user: "{{ proxmox_user }}"
|
||||||
|
api_token: "{{ proxmox_token }}"
|
||||||
|
node: "{{ proxmox_node }}"
|
||||||
|
name: "{{ item }}"
|
||||||
|
cores: 6
|
||||||
|
# 2 * 6 = 12 -> leaving 4 cores for OMV + hypervisor itself
|
||||||
|
net:
|
||||||
|
net0: 'virtio,bridge=vmbr1,rate=200'
|
||||||
|
net1: 'e1000,bridge=vmbr2'
|
||||||
|
# TODO check me!
|
||||||
|
sshkeys: "{{ lookup('file', '~/.ssh/default.pub') }}"
|
||||||
|
ipconfig:
|
||||||
|
ipconfig0: 'ip=10.0.0.1/24'
|
||||||
|
sata:
|
||||||
|
sata0: 'VMs_LVM:10,format=raw'
|
||||||
|
# automatically boot from fedora iso:
|
||||||
|
boot: cdn
|
||||||
|
# first try dist, then cdrom
|
||||||
|
cdrom: fedora_37_server_x86-64.iso
|
||||||
|
loop:
|
||||||
|
- fedora-node-1
|
||||||
|
- fedora-node-2
|
0
roles/k3s-ha/tasks/install.yml
Normal file
0
roles/k3s-ha/tasks/install.yml
Normal file
13
roles/k3s-ha/tasks/main.yml
Normal file
13
roles/k3s-ha/tasks/main.yml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
- name: Download k3s install script
|
||||||
|
get_url:
|
||||||
|
url: https://get.k3s.io
|
||||||
|
dest: /tmp/install-k3s.sh
|
||||||
|
mode: 0755
|
||||||
|
|
||||||
|
- name: Create k3s config file
|
||||||
|
template:
|
||||||
|
src: ../templates/config.yml.j2
|
||||||
|
dest: /tmp/config.yml
|
||||||
|
|
||||||
|
- name: Execute k3s install script providing a config.yml
|
||||||
|
shell: /tmp/install-k3s.sh --config /tmp/config.yml server
|
7
roles/k3s-ha/templates/config.yml.j2
Normal file
7
roles/k3s-ha/templates/config.yml.j2
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
disable:
|
||||||
|
- traefik
|
||||||
|
- servicelb
|
||||||
|
|
||||||
|
cluster-init: "{{ inventory_hostname == groups['fedora-server'][0] }}"
|
||||||
|
server: "{{ groups['fedora-server'][0] }}"
|
||||||
|
token: {{ k3s_token }}
|
2
roles/raspberry/tasks/main.yml
Normal file
2
roles/raspberry/tasks/main.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
- name: update
|
||||||
|
include_tasks: update.yml
|
7
roles/raspberry/tasks/update.yml
Normal file
7
roles/raspberry/tasks/update.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
- name: Update all installed packages
|
||||||
|
become: yes
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
name: '*'
|
||||||
|
state: latest
|
||||||
|
|
7
roles/ssh-key-copy/tasks/copy.yml
Normal file
7
roles/ssh-key-copy/tasks/copy.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
- name: add ssh keys
|
||||||
|
ansible.posix.authorized_key:
|
||||||
|
user: "{{ ansible_user }}"
|
||||||
|
state: present
|
||||||
|
# copy file present on the controller to the remote host
|
||||||
|
# https://docs.ansible.com/ansible/latest/collections/ansible/builtin/copy_module.html
|
||||||
|
key: "{{ lookup('file', '~/.ssh/default.pub') }}"
|
2
roles/ssh-key-copy/tasks/main.yml
Normal file
2
roles/ssh-key-copy/tasks/main.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
- name: copy
|
||||||
|
include_tasks: copy.yml
|
Loading…
x
Reference in New Issue
Block a user