More generic name for lab host

This commit is contained in:
2024-02-11 17:11:45 -08:00
parent a5ef9dac70
commit 6ead2106c5
32 changed files with 163 additions and 0 deletions

7
lab/inventory.ini Normal file
View File

@@ -0,0 +1,7 @@
[leftcoastlab]
lab
[leftcoastlab:vars]
ansible_ssh_user=motheradmin
ansible_ssh_private=ssh/keys/local-net/motheradmin
ansible_ssh_common_args='-F ssh/config -o UserKnownHostsFile=ssh/hosts'

18
lab/readme Normal file
View File

@@ -0,0 +1,18 @@
What this directory contains
============================
This includes playbooks and scripts used to setup a local lab server as a
docker host which you can use to basically do whatever.
What I use on my own lab server
===============================
> Ubuntu 21.10
> Docker for hosting various local services more easily
> Local DNS
> Git Tea for private Git service
> Nginx as a reverse proxy for local web services

View File

@@ -0,0 +1,3 @@
---
# defaults file for setup
LAB_FQDN: lab.local

View File

@@ -0,0 +1,8 @@
# This config is purely for the default landing page that nginx normally serves
# up. The intention is to make Nginx's default page useful
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
}

View File

@@ -0,0 +1,18 @@
# WARN: this should never be committed to source control
# The following is used because we
# use DNSMasq for its dead simple nature
127.0.0.1 localhost
127.0.1.1 recycled-lab-host
# Sugma
192.168.1.23 git.lablad
192.168.1.23 files.lablad
192.168.1.23 main.lablad
192.168.1.23 music.lablad
192.168.1.1 router
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

View File

@@ -0,0 +1,6 @@
server {
server_name files.lablad.net;
location / {
proxy_pass http://127.0.0.1:8080;
}
}

View File

@@ -0,0 +1,10 @@
# This file pertains to the Gitea service which is served under the FQDN:
# git.lablad
# The default port is listed under /vars/main.yml as 3000 as GITEA_PUB_PORT
server {
server_name git.lablad.net;
location / {
proxy_pass http://127.0.0.1:3000;
}
}

View File

@@ -0,0 +1,8 @@
server {
root /var/www/html;
index index.html;
server_name lablad.net;
location / {
try_files $uri $uri/ =404;
}
}

View File

@@ -0,0 +1,10 @@
# metrics.lablad
server {
server_name metrics.lablad.net;
proxy_set_header Host $http_host;
location / {
proxy_pass http://127.0.0.1:6000;
}
}

View File

@@ -0,0 +1,6 @@
server {
server_name music.lablad.net;
location / {
proxy_pass http://127.0.0.1:4040;
}
}

View File

@@ -0,0 +1,17 @@
[Unit]
Description=Node Exporter which exposes host metrics for Prometheus
After=network.target
[Service]
WorkingDirectory=/opt/prom-node-exporter
Type=simple
Restart=simple
Restart=always
Restart=10
ExecStart=/opt/prom-node-exporter/node_exporter
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,8 @@
server {
server_name todo.lablad.net;
location / {
proxy_pass http://127.0.0.1:9238;
}
}

View File

@@ -0,0 +1,14 @@
{
"backend": {
"file": {
"path": "/vault/file"
}
},
"listener": {
"tcp": {
"address": "0.0.0.0:{{VAULT_PORT}}",
"tls_disable": 1
}
},
"ui": true
}

View File

@@ -0,0 +1,11 @@
# This file pertains to the Gitea service which is served under the FQDN:
# vault.lablad
# The default port is listed under /vars/main.yml as 8200 as VAULT_PORT
server {
server_name vault.lablad.net;
location / {
proxy_pass http://127.0.0.1:8200;
}
}

View File

@@ -0,0 +1,31 @@
galaxy_info:
author: shockrah
description: This role provides multiple tools for setting up a private lab server
company: Personal
# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# issue_tracker_url: http://example.com/issue/tracker
license: GPL-3.0-only
min_ansible_version: 2.1
# If this a Container Enabled role, provide the minimum Ansible Container version.
# min_ansible_container_version:
platforms:
- name: Ubuntu
versions:
- Jammy
galaxy_tags: []
# List tags for your role here, one per line. A tag is a keyword that describes
# and categorizes the role. Users find roles by searching for tags. Be sure to
# remove the '[]' above, if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
# Maximum 20 tags per role.
dependencies:
- community.docker

View File

@@ -0,0 +1,25 @@
---
- hosts: lab
become: yes
vars:
lan_subnet: "192.168.1.0/24"
tasks:
- name: Enable Firewall rules for basic LAN access
community.general.ufw:
rule: allow
port: '{{ item }}'
proto: tcp
src: '{{ lan_subnet }}'
loop:
- 22
- 53
- 80
- 443
- name: Enable K3s Ports
community.general.ufw:
rule: allow
port: '{{ item }}'
proto: tcp
loop:
- 6443

View File

@@ -0,0 +1,10 @@
# Simply update all required packages that we have on the system
# This also takes care of updating any packages that must updated through means
# of Git or some other non-apt method should it be required
---
- hosts: leftcoastlab
become: yes
tasks:
- name: Distribution Upgrade
apt:
upgrade: dist

View File

@@ -0,0 +1,154 @@
---
# Auto install from the quickstart
# If airgapped, all K3s artifacts are already on the node.
- hosts:
tasks:
- name: Download K3s install script
ansible.builtin.get_url:
url: https://get.k3s.io/
timeout: 120
dest: /usr/local/bin/k3s-install.sh
owner: root
group: root
mode: 0755
- name: Download K3s binary
ansible.builtin.command:
cmd: /usr/local/bin/k3s-install.sh
changed_when: true
- name: Add K3s autocomplete to user bashrc
ansible.builtin.lineinfile:
path: "~{{ ansible_user }}/.bashrc"
regexp: '\.\s+<\(k3s completion bash\)'
line: ". <(k3s completion bash) # Added by k3s-ansible"
- name: Enable and check K3s service
ansible.builtin.systemd:
name: k3s
daemon_reload: true
state: started
enabled: true
- name: Pause to allow first server startup
when: (groups['server'] | length) > 1
ansible.builtin.pause:
seconds: 10
- name: Check whether kubectl is installed on control node
ansible.builtin.command: 'kubectl'
register: kubectl_installed
ignore_errors: true
delegate_to: 127.0.0.1
become: false
changed_when: false
- name: Apply K3S kubeconfig to control node
when: kubectl_installed.rc == 0
block:
- name: Copy kubeconfig to control node
ansible.builtin.fetch:
src: /etc/rancher/k3s/k3s.yaml
dest: "{{ kubeconfig }}"
flat: true
- name: Change server address in kubeconfig on control node
ansible.builtin.shell: |
KUBECONFIG={{ kubeconfig }} kubectl config set-cluster default --server=https://{{ api_endpoint }}:{{ api_port }}
delegate_to: 127.0.0.1
become: false
register: csa_result
changed_when:
- csa_result.rc == 0
- name: Setup kubeconfig k3s-ansible context on control node
when: kubeconfig != "~/.kube/config"
ansible.builtin.replace:
path: "{{ kubeconfig }}"
regexp: 'name: default'
replace: 'name: k3s-ansible'
delegate_to: 127.0.0.1
become: false
- name: Merge with any existing kubeconfig on control node
when: kubeconfig != "~/.kube/config"
ansible.builtin.shell: |
TFILE=$(mktemp)
KUBECONFIG={{ kubeconfig }} kubectl config set-context k3s-ansible --user=k3s-ansible --cluster=k3s-ansible
KUBECONFIG={{ kubeconfig }} kubectl config view --flatten > ${TFILE}
mv ${TFILE} {{ kubeconfig }}
delegate_to: 127.0.0.1
become: false
register: mv_result
changed_when:
- mv_result.rc == 0
- name: Start other server if any and verify status
when:
- (groups['server'] | length) > 1
- inventory_hostname != groups['server'][0]
block:
- name: Copy K3s service file [HA]
when: groups['server'] | length > 1
ansible.builtin.template:
src: "k3s-ha.service.j2"
dest: "{{ systemd_dir }}/k3s.service"
owner: root
group: root
mode: 0644
- name: Enable and check K3s service
ansible.builtin.systemd:
name: k3s
daemon_reload: true
state: started
enabled: true
- name: Verify that all server nodes joined
when: (groups['server'] | length) > 1
ansible.builtin.command:
cmd: >
k3s kubectl get nodes -l "node-role.kubernetes.io/control-plane=true" -o=jsonpath="{.items[*].metadata.name}"
register: nodes
until: nodes.rc == 0 and (nodes.stdout.split() | length) == (groups['server'] | length)
retries: 20
delay: 10
changed_when: false
- name: Setup kubectl for user
block:
- name: Create kubectl symlink
when: lookup('fileglob', '/usr/local/bin/kubectl', errors='warn') | length == 0
ansible.builtin.file:
src: /usr/local/bin/k3s
dest: /usr/local/bin/kubectl
state: link
- name: Create directory .kube
ansible.builtin.file:
path: ~{{ ansible_user }}/.kube
state: directory
owner: "{{ ansible_user }}"
mode: "u=rwx,g=rx,o="
- name: Copy config file to user home directory
ansible.builtin.copy:
src: /etc/rancher/k3s/k3s.yaml
dest: ~{{ ansible_user }}/.kube/config
remote_src: true
owner: "{{ ansible_user }}"
mode: "u=rw,g=,o="
- name: Configure default KUBECONFIG for user
ansible.builtin.lineinfile:
path: ~{{ ansible_user }}/.bashrc
regexp: 'export KUBECONFIG=~/.kube/config'
line: 'export KUBECONFIG=~/.kube/config # Added by k3s-ansible'
state: present
- name: Configure kubectl autocomplete
ansible.builtin.lineinfile:
path: ~{{ ansible_user }}/.bashrc
regexp: '\.\s+<\(kubectl completion bash\)'
line: ". <(kubectl completion bash) # Added by k3s-ansible"

View File

View File

@@ -0,0 +1,19 @@
---
- hosts: lab
tasks:
- name: Normal Echo
command: echo Quick test of an echo
register: normal_echo
- debug:
var: normal_echo.stdout
- name: Checking Sudo access
become: yes
command: echo One more test with sudo this time
register: sudo_echo
- debug:
var: sudo_echo.stdout
- debug:
var: sudo_echo.stderr

View File

@@ -0,0 +1,13 @@
---
# vars file for setup
UBUNTU_CODENAME: jammy
GITEA_PUB_PORT: 3000
GITEA_SSH_PORT: 2222
FILEBROWSER_PORT: 8080
LOKI_PORT: 3100
GRAFANA_PORT: 6000
SUBSONIC_PORT: 4040
PROM_PORT: 9090
KANBOARD_PORT: 9238
KANBOARD_PORT_SSL: 9239
VAULT_PORT: 8200

11
lab/scripts/connect.sh Normal file
View File

@@ -0,0 +1,11 @@
#!/bin/sh
set -x
set -e
keyfile=ssh/keys/local-net/motheradmin
ssh -i $keyfile \
-o UserKnownHostsFile=ssh/hosts \
-D 9999 \
motheradmin@192.168.1.100

12
lab/scripts/sftp.sh Normal file
View File

@@ -0,0 +1,12 @@
#!/bin/sh
set -x
set -e
keyfile=./ssh/keys/files/files
sftp -i $keyfile \
-o UserKnownHostsFile=ssh/hosts \
files@192.168.1.23

4
lab/secrets.yml Normal file
View File

@@ -0,0 +1,4 @@
DRONE_RPC_SECRET: "jfEz3rcLsBNYTqMAhSzeHc7hLXm7XHhWjXGWIvRGxpNP4TWV6EFSUbSXtHzS4Nse"
ansible_sudo_pass: mommymilkers
LANDING_PAGE_ROOT_PATH: "/home/shockrah/GitRepos/lab/landing"
DRONE_RPC_HOST: "192.168.1.23"

9
lab/ssh/config Normal file
View File

@@ -0,0 +1,9 @@
Host lab
HostName 192.168.1.23
IdentityFile /home/shockrah/Rice/docker-host/ssh/keys/local-net/motheradmin
User motheradmin
Host lab
HostName 192.168.1.23
IdentityFile /home/shockrah/Rice/docker-host/ssh/keys/files/files
User files

3
lab/ssh/hosts Normal file
View File

@@ -0,0 +1,3 @@
192.168.1.23 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAL5oK29/uyeJd3DfGDco+kWu6doiAwSi8RHJ+CZuaYy
|1|w2jGHou9S8acGRTXweWFfFTYylM=|eCWP27P7CRwkMp2BLRgDrY8TQJc= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAL5oK29/uyeJd3DfGDco+kWu6doiAwSi8RHJ+CZuaYy
|1|OMYSSOaUNJN2wh8Akm+cSX3i2Mw=|np5DmNBHFAdoP7WfGb833Ke/XCc= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF+ZphEQ8VstxE1wp2YINtRELT1jVLZPtqqC095o/BGs

38
lab/ssh/keys/files/files Normal file
View File

@@ -0,0 +1,38 @@
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----

View File

@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDjKqaB+xVwt7LMrC7Rrbwd3aPvf7TpMOPjm3Zo0wUaOkAEB+5RuFladXp0LfHhyO3AjlCfvoXm7BfrioYGAf8m/2iwSAoC4F9yRdMAAYMmJmikRY/VbhmkEbGhPwR7NmcuUzblqW/R9m5WjHlCHjWZh4Hat9KIjsAFVdTr8ivCX729O/R0bagY/Zb7S2e7/O1RXngO2v17J6adSNfsw/MUz8pbG0Z+1WGBw45gTaxVhc8O5fH+9y6F8IL3EPZx4KT2QD2rT8cc1+0GoGDDn8vV7/8Ic/U0fUmpC6xRH6/isYKEds7UJETn/4VlVuEINe+fuLKnb2On4ady/E+GVUjJfpW+vsZ3FDuTY+nbJqSE7c4GSsjuin5D3VM50nq2jDI6XMBcN/dJQ2imP6a9gfjFvL+HHofHLwm+TJ0zKiWjb3lS8eOIkfmX5kbQsvTg1nmrmE2NyF+1P8tguf1tMw75v78rFNTZ7n9IBOi707VB1xK9xE/NnhVq///lMuvYSnU= Filestash user key

38
lab/ssh/keys/git/git Normal file
View File

@@ -0,0 +1,38 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
NhAAAAAwEAAQAAAYEAv0yidljYYnnB0RkVVJP/kiycl+LdQkftyVsq6zrKALE7aBkKFrvC
OxjfMDzagIE3YMOijsd1ewt7yl0hk5w2uyIVrHVEUVAd0uxKx/NAE1XNPsoqvH/Leg3Hdo
8uRcj8n5IByKymaqfIaZYRZR3NolC/+amwxzQR/qPmogFLbHYMY9Fkpm+SNow3uWQQfq+Y
YypzD/XcMbAWqy6rkJ0qSwDFi7tI1ozc0rTnkSQAhD8ZcEw/3EUNpuzkGlFYvHwb4ELmSW
kWM+KKQ+fcM6gLVNGAubJBhzWb5beBuunFFFn1puOZhAdvEjP1Sm6nmeotCQ6wSoAj45BL
Q2qRNtQgWNl52rNmaa9Fjl1JA3tV93ixtt4rNEMtq6XSKWuSB4H25f1E4htZNuRq7Jf58y
YvUoETteEZhrlj3Bip3ThI5k5PpYfKgP7a/S+mXggfrPUCfH7iVjQT5zE9Y/H54Cmhd6WX
Uk5IzcRomZ93DRdHJjbAOLMYsb3myqmsG5d7sGDTAAAFkHrTauB602rgAAAAB3NzaC1yc2
EAAAGBAL9MonZY2GJ5wdEZFVST/5IsnJfi3UJH7clbKus6ygCxO2gZCha7wjsY3zA82oCB
N2DDoo7HdXsLe8pdIZOcNrsiFax1RFFQHdLsSsfzQBNVzT7KKrx/y3oNx3aPLkXI/J+SAc
ispmqnyGmWEWUdzaJQv/mpsMc0Ef6j5qIBS2x2DGPRZKZvkjaMN7lkEH6vmGMqcw/13DGw
Fqsuq5CdKksAxYu7SNaM3NK055EkAIQ/GXBMP9xFDabs5BpRWLx8G+BC5klpFjPiikPn3D
OoC1TRgLmyQYc1m+W3gbrpxRRZ9abjmYQHbxIz9Upup5nqLQkOsEqAI+OQS0NqkTbUIFjZ
edqzZmmvRY5dSQN7Vfd4sbbeKzRDLaul0ilrkgeB9uX9ROIbWTbkauyX+fMmL1KBE7XhGY
a5Y9wYqd04SOZOT6WHyoD+2v0vpl4IH6z1Anx+4lY0E+cxPWPx+eApoXell1JOSM3EaJmf
dw0XRyY2wDizGLG95sqprBuXe7Bg0wAAAAMBAAEAAAGAFSaV99vO4ORxZ3sMfrN2WGUSU0
DEEeX+BntL/YIcf4MY/GN4WBceXIZddunjhr3Cr7IxsPOgq6ATacZuRfHJo1sbZlv417yx
73YstnrQpNKhxMV5gCnpB2+qlBM0nIaiV8o+5D8ijzxJzlLHTZTD/aRL9YCriPra2nqor1
TRUAalTAwEwtonIlzSdG752+fyQ1SYMDWQyPWdLAQW+ABIgs5tCQwF+6LLb4iM6eE/JWAM
ofvsO6Bu5/vdJIPF+eEGyqVMOk3IXAoJP6bSMDAkFZt343BwiLSigmEGFHbPMG5pu7Mxgw
9oOZ7iClBB91Q8oFlBZOW8awesIjMFSeQQDYtxTDWaRSKpM3eZxttDmgU6IN68YS/36Vze
TqbAMymtPnOA44T4YAUgfZwLU0/pFi35h1gqNWEh0V15HFZ16IirEtlvoc74Pcv9E/iC6E
g5awebe8hgyRuedBliIJnoMt5w4lomGP2HE98lw4pSa5cT0D6YQSRhmrRnMMn6U/DxAAAA
wQCU98ct1sNnqxya87zBtNt5fA5dCLq6piku5CORy9djDz7GEjjz6Kx0Skn2/zF3sM5MGq
fiFt98CqyJ5+Giwyu+0wgGmL3lsY1vxlbDp4sUY75UwaBun1ywcH3TUk7DriN1yxYF8znt
4Q5rMAhHZMmwwGKKDDnZC1v/T/N78FvhPkcSeALGYXNa62j99BgiefQvZHdsobT+UpWGyo
q5FREICpb5muTv1R8hwgUcDqVtMPXOZFxqa7Oa5ql1dwmevv8AAADBAPwGWJuIGL3D6ZLk
wr5x2TidZ8K1OHJJ7T38YUBoBq05ATeq1Xa3pJTm9hBHhTZSdXMkQzyHZpxvWSXIFjha3N
BpdLn2XRBQb+9+grzVJFYkPkimg4GyV4VsNpN9Fx8O4dwPyqHh0KLejNDpdUmcy92GMAnm
sTRlRL7DlV+qABibI67C0n/DtRwHyEiUhE0mqxCaBMkQHG3mO3KbreiTDoIOeZqQAF/HH/
ZbdX0P9BkNbbmsoIIklqedsV02+jU7fQAAAMEAwlEVpHsTTTGW85Iw4ZeOHjKhqMGuquPL
zUSLMVe2qDhodCKbRbx9pWV1C5PepBkGohLIISaxPReBxXs2NcChzoy/roVE455Yek+S9f
1fKQmwDZhYERibB+Js5YcTLsKhb15YKCKAjwYPwYBGFJzyeA0zVEziFZWmw3pxM992snm9
QdzVsN6nFsc+rVBRFThXcqQff5QneEoawRUR4qv0p30fPoaEPPb+HO8D8NRPPSg2d9/NDr
g8UFbh5mZUwZ6PAAAAE3Nob2NrcmFoQHNob2NreS1ib28BAgMEBQYH
-----END OPENSSH PRIVATE KEY-----

1
lab/ssh/keys/git/git.pub Normal file
View File

@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC/TKJ2WNhiecHRGRVUk/+SLJyX4t1CR+3JWyrrOsoAsTtoGQoWu8I7GN8wPNqAgTdgw6KOx3V7C3vKXSGTnDa7IhWsdURRUB3S7ErH80ATVc0+yiq8f8t6Dcd2jy5FyPyfkgHIrKZqp8hplhFlHc2iUL/5qbDHNBH+o+aiAUtsdgxj0WSmb5I2jDe5ZBB+r5hjKnMP9dwxsBarLquQnSpLAMWLu0jWjNzStOeRJACEPxlwTD/cRQ2m7OQaUVi8fBvgQuZJaRYz4opD59wzqAtU0YC5skGHNZvlt4G66cUUWfWm45mEB28SM/VKbqeZ6i0JDrBKgCPjkEtDapE21CBY2Xnas2Zpr0WOXUkDe1X3eLG23is0Qy2rpdIpa5IHgfbl/UTiG1k25Grsl/nzJi9SgRO14RmGuWPcGKndOEjmTk+lh8qA/tr9L6ZeCB+s9QJ8fuJWNBPnMT1j8fngKaF3pZdSTkjNxGiZn3cNF0cmNsA4sxixvebKqawbl3uwYNM= shockrah@shocky-boo

View File

@@ -0,0 +1,38 @@
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----

View File

@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCqu+9Qp/3AtqkYW/xK1oX0GUc/ocvlD/njhxn9jfc2cm8OOghQ7XkwbedjRrqqMF1JU7GkN8hcalC7t+FrBIQMOt8xrZNO7gNhBmPZr30Lx+Vr4acophqlOeDCYxdwqHT04PHdRMe8aNIj4ltGt4HYRmOcLaaWh6jgO6B76aZlhd2tBhVjaOZkLDRn7JwuEMWHWqEHMBQvb/vJbH9nsXxjsUEFlRbRi8zvezD/QPDOtZeb30RlVxsQUNtmo3Vhl7H+L4gRl+aBBaVPAFl8oW6I0N0ofcnwa8IDT+FRaWGj1snZPIKD27Wfub3R3qNC2z3x+S0Ec3dpqLH1H0epqHU0eIEyWjohX1MYswgiGnw7K/9ru5GYv6xKEq5h5Nu8Be8v4CN6L7tMsfOGbU3tmtSVLhfOF/6f928MEcMQC1Fjq/lOkiXUpOkNSk+R6yA0eTfdOYBzj5EbIryxxh5WK1JjGo+9f3o0rsveSqYDvBq+w0ebVTNR8zEdX9IADfGcwAc= shockrah@shocky-boo