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