Compare commits

...

5 Commits

Author SHA1 Message Date
Bernhard Radermacher
0b486142a4 node installation 2025-08-27 16:51:36 +00:00
Bernhard Radermacher
459d124159 node installation 2025-08-27 05:54:16 +00:00
Bernhard Radermacher
0835bea3b7 Merge remote-tracking branch 'origin/main' 2025-08-15 09:34:11 +00:00
bwr
c6df879e78 facts from kube 2025-08-15 09:14:30 +00:00
bwr
2292e47e5c ssh working 2025-08-15 08:55:35 +00:00
18 changed files with 7365 additions and 15 deletions

View File

@@ -2,4 +2,4 @@
uv.lock uv.lock
README.me README.me
pyproject.toml pyproject.toml
ansible.pub notes

12
.idea/runConfigurations/latest.xml generated Normal file
View File

@@ -0,0 +1,12 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="latest" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
<deployment type="dockerfile">
<settings>
<option name="imageTag" value="ansible:latest" />
<option name="buildOnly" value="true" />
<option name="sourceFilePath" value="Dockerfile" />
</settings>
</deployment>
<method v="2" />
</configuration>
</component>

View File

@@ -4,10 +4,11 @@ LABEL authors="bwr"
RUN pip install ansible RUN pip install ansible
COPY .bashrc /root/ COPY .bashrc /root/
COPY ansible.key known_hosts /root/.ssh/ COPY id_ed25519 known_hosts /root/.ssh/
COPY kube-cluster \ COPY kube-cluster /kube-cluster
playbooks \ COPY playbooks /playbooks
roles \ COPY roles /roles
/ COPY setup.sh /
ENTRYPOINT ["/bin/bash"] ENTRYPOINT ["/bin/bash"]

View File

@@ -1,7 +0,0 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACCvpHXr7SA9UN4oUYwikZovA7CCWnv/nShNO2IcWCNEvgAAAJA7DvWQOw71
kAAAAAtzc2gtZWQyNTUxOQAAACCvpHXr7SA9UN4oUYwikZovA7CCWnv/nShNO2IcWCNEvg
AAAECdNtXI68foHVvXfr8FMOoA75LaPIDJ7KbSAVm7XYEtua+kdevtID1Q3ihRjCKRmi8D
sIJae/+dKE07YhxYI0S+AAAAB0Fuc2libGUBAgMEBQY=
-----END OPENSSH PRIVATE KEY-----

View File

@@ -1 +0,0 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK+kdevtID1Q3ihRjCKRmi8DsIJae/+dKE07YhxYI0S+ Ansible

7
id_ed25519 Normal file
View File

@@ -0,0 +1,7 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACCoeZnm93lD7FyzcEEL0S2pD3UFLXUFeKi+dulVBOwR7QAAAJjWEDn21hA5
9gAAAAtzc2gtZWQyNTUxOQAAACCoeZnm93lD7FyzcEEL0S2pD3UFLXUFeKi+dulVBOwR7Q
AAAEBVAvCXhbvn5Zp5OFMCJ52jKEwRStDVZDEdTD3n/Fbtwah5meb3eUPsXLNwQQvRLakP
dQUtdQV4qL526VUE7BHtAAAAEXJvb3RAYmYyZjQwNGRmMDNkAQIDBA==
-----END OPENSSH PRIVATE KEY-----

View File

@@ -0,0 +1,15 @@
|1|+7ubl2nBEcdMzZVUAFzx8GicT2Q=|0g9p/d/BtCumEMemm9Yi46rxeu4= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMxzuowQpC250MXVevxN13WNgyvN4Pnh+7yWh9nzxNqf
|1|5kIioSuv69JrhunKaV+gUmL+X+Y=|xQR2pqIpyzUcKOguUS69S86HO6E= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDdUrPVrl8ioMWwkbbKHbRbk79OrM6ouoTJZ8YoyF6PfxHqy+jQVtUYJ38bpP3p5I5O2+xMB7051y6iL3J/qOpWN2JtC+wkARCE4o4YRd3HeHwFtlJc069ScNDu5AX+QoINq/fNG1Y3gWy2/2E/lnosAugacgRvAjLF17o9W23WnTSvGJe2QoiokdR0ic0TC950BcRO7vs0cRAymNck5NkPgn7nYfT1d+8itH/hAO2ZAPE1ZcdU/TKkLMgjc81fyN8p1/IOL/mam4uzwpSkQ/i5siVKZAVwqGcPvcHVdZf5rL8t76w3BOKblxxYr57RUT7dLZmq+TPG3+xFCMipPIHJo5nzB7pXiDAQrD25xiS0vyPDfdiPHHXUegodJXCqKpdQA5wQKFv5EvMc4aNAerdkCyCBVRI8GM2ShS5VCh+gAIczr2rtV0vA4ONjeoYbEKiChZjl4QCSj1T3sONs2CAqrPreTiTp93g1fvQf4v4qED1HKGnhAt811PzeKzNKs0U=
|1|SnBTrUrlqH35Yo5wUmKrGTsoru0=|6PKMPm1Linw6fX5jQITmu1jYwSA= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJsYHXqZX8+UTYRFCStGqKxxqkXbDriyEe5Djk82yjYM+H3XNJbrlLiCsByvHGkuPCRtVaXm2QgKHyc6I/ZssRQ=
|1|xWRhwFpFfLTzQ0DWkkD7uGS7k50=|T6fviLVcrB2RbDaiDf2UOdEiiVY= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMhtPJ0tQ52t5mW0Vm5vAONubGkEdUdLUjIr6iQy35IS
|1|9Dy+FLoaURMgyxsBrpgopD87cnM=|CUersvfnqDoU3/gQfR4eYxJI88s= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDg0ehjECAEElSFTaDj/H/vhI5ehBs7tlnC3iVHY70UB2oSIRwsfAfvc6f2TPgOXdz75tjxWHrKcrMSnZRoKQWn4wudSGIYruP3kY2t0GCoo+LYmPALLDbzKpW49h0vm1QIK1E6InOqm2sNC4zAMXVruiAlB+J0zfVxzaemXT+jk02XWtN8P4gdiAvXFBasbNsFil4AUjPD0rAWzXT22QQEvpsplC4NjuM5P2fcgrxVbB/RmYJhWWh5LbfWMAglSqwHgETVeGrMUahsgUolNyaNYMVzKuXrzRsVIX6+FG+qVpClE2xzBKNaEzGbSKkFYgVmLIfyH50DPVn4HjDLtwNECZ5e3spbK37ouQ/B0sh7u/17J2l6yk+xszpd+ioCZQRwTCRKdUAUEdOWOdQyXTEc64mEsGnu3rl9knf3LRiUhOeiNfs84HWh+Hh7sRXcus/WCG5zisbnszfWKO0iChhkPu47UHmwIeuUrpHkZo4pcrySkT3WmjZYIEINM0T7X10=
|1|dJXefVsxftVExN+mzSj+R+p1BtA=|XKKXomI17iEeIzDeBN4mDYKG5+Y= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBF8/X44vJnDV4YuCxAAXe0kMlduUiTZGMRCdpI2d0oePrr40sbnVp9YtzdnSeegYjtPBSbc4Z5qdr6+tx/9iDqg=
|1|zGVVtiIDdJxSNWOg/0tPFT7/xBM=|1OZCjytgfrN648GvjnOiFsjHxqI= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICcUHjDMAW6qoU7g2Odtztsapbmy0C8HA5vYj1Wv7peA
|1|wVQf++Sxie+ezk4QE5KXMN+sDVw=|bd8CcgaipJIfBbqwy59UQy+IMIM= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC9oYxxAVnrAD0w/zs3wfNTSU1OZGQGhaf1S8DTFF6yFnbZhH+D+yFWudiBFjbSqLSNi5OkTJLLoVZZoTyBeUkhckPnUl5svYQMbeSDOWxwV1pDvDplJ15xFKmw4B8i+vqDIJgPXv7m5A+3NCuw5LLfEabu/1PKA1mIlxRLVtfWDjhhxtvtkn9jjPJuty/8A/WN0WAUdmCQHKor76xRoWkqZ1Dg2sKfpGz0AXsc59ERyzhxjOJddUe4YZHFstg5pHKLZuSXWmPc0ZLjFTDRjCQ0IdOH7pCuJ6dRdaoVdX4tu+HKcMU4IBeCpkANgkG/iei39XK3veNoc/fMRzKrFnPpEXtWLf5iSMeLGSSySrmlhC42VXe1y8O/v8K5T078eAaxY9xYR82T30lbuzeMltyPnwbeu6dp1+HIqk1SVcGD41ouSBKGqpy1bQYVyEZ0aU7ARqyMqrjBt4gnoVufXz20JchoRqqxs3gdhcDO3U4OVLFiwXKxZqQfNrDaShSngWs=
|1|ortjbjWdRu7qJNALl63ttRGRn9Y=|Cy+gLTiQ9C6GDcABeUHWgRNnTo8= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBU8Pq0wM3m6VFaF4/N4GvQv6RmB9gRsXXjvZzIZb3Rb69J0zNDxB68CTx+tRNZXrpMrwMOtrDYgtmxJbFWi0AY=
|1|b46f0DoCY7teVIDJbd4XC578pYk=|8YnRh1ne7Hj85kbSok+mSsF79+8= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII2R7MwkpM0AvN2/9bZOq67o99Q6Ck1+17MssDQ8psvt
|1|A2yLZVhmVxw6If126lF3Mm8m5uk=|oANPWkIthHTSUbmdPNSjXJPCJHI= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDWK99FIfYC7xssfKOOX9j/J7X8KKyDqqk5DRYWlSJYjERFdzhzkly+pib27r4z7QLgB9SrycqZ8FX04HrH98elsQR2g3g17dPsMNgplcMuCzc6+kXEh3ScTYQcen5z3K9eO1qcGO6aEwfHhBddNR7tKkbSjAE9vKYdw1PWVGeX8iztJVx01m/GnaESko5aqTyvofjG04DLYSCcx+VLxjniN5NiwaF2q7d/OCEE4Kjd/yMTFB3Y+cizfWjiEarVuNVdCtioSS2JlyjbA4Z7N5o8oGZ3VmF25xCCLbagKrXS5HL2+mCBXbOfObQYYxaD760HMLYz2lQYrSI8buWJbdQuqxc0R8X006hfu+fDoWDQ3sozrOF8VMJB+5wd8ADA7O4fpjZP0jTfAa+IBuyOGZ08GoNaXlFHuTDMbJVJxczfeWXIy6Sjv5nBr/Yhu1s7l1rGOJsCXkXMqCOYdpKoMDipKtiHWfU6kxUapl6iLYfii8K2ZENKtDvQFW9/guhbvgE=
|1|i+VTcG1Uhv1VwVS/m5dd7bo1e6o=|Ckc49ZlCb+uB2LpVkWqpzDlxqFo= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPu5sGUOWnnGcn39Q+gTnFcQDOs8eMqcaGOcLCn2TndT+5KehamXf4GOSpXA7V9pXYj5m537g9jp4RcAfVBKeVo=
|1|7U63hxnEB5s4woktawjUuaeYl/g=|JE3Op65jsbuzDa1mJ5HI0MhJXYQ= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA/9qHLUBeXPBCs7SA4OCQp3q+XuyXgqqXsM7/VI9Odx
|1|OsjcqmfdISX+0YzwL+0H6Q3pjBU=|kwqZKRVn9cl5/w5obagGw1uWNwE= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCtOtWJCTQcMmBHx3ojpMVHX+BOTW7gDQDexVwA3HM2kYlBuRF3Xh5FAsyfvdxA44wC0+nyG04FxbUq61njzHgYaZMAR5iI+ZeR4eHJn/sIcJY/JwuBpm1y/LqUNh4UE/3PiCOqS9BgsqqULbs+qShVvN31UoqhSrGBNdlMYC+9U+FzQxyDTNftw78PU0YjdPIV/WfMleF9yCVA/Rn8FIj6wsnWkTXVyETsLIjKQAuXUhpI3cf8nw759MBfDEBQDIHkj+2Jws2kO5b+NXEn6yMtkvnXGnkVFct5G6kNPQOyrmQOl68lN9sqJJwAJR5T1n5fUAbE3rba8CExBiu85xmVeSinoFfv2juMeaFh9i/nk0IXsbs8RyQEJeXlTaEo8qOnIawV0Rha5qHpc0oQsC1+033P3WOlsnvVLKl7E/++R7JiW5qQ9gsZ+0qESojE+vuIYYtbhCN0XkIyq2lZ/Qfm0mbofhN2y9f0ntTrqOngjyurHaTgOFkiFXcufVfhvZM=
|1|IrtzQ33/YHICGCg/3bgfQF+R2yU=|fQO0sW3nYLp0PAWxNYOoGydCAXA= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIUeIk4CsJh8tDY206M8fdzbRm2Qm301vrTf3ShdgDqvq0rVIUwqURvvs0k169h7++aMK3u/5YpcsDuvjib9BxY=

View File

@@ -1,5 +1,5 @@
[defaults] [defaults]
inventory = hosts.yaml inventory = hosts.yaml
private_key_file = /root/.ssh/ansible.key private_key_file = /root/.ssh/id_ed25519
remote_user = ansible remote_user = ansible
roles_path = roles:../roles roles_path = roles:../roles

View File

@@ -1,6 +1,9 @@
all: all:
vars: vars:
timezone_name: UTC timezone_name: UTC
k3s_server: "https://192.168.112.40:6443"
k3s_token: "K10ecaf0e2b11256207b74fa7293e1c6812ef54d5b0d8461a315837660109c4a61d::server:f2041e2d15ed15c0569bab40357e6047"
nodes: nodes:
hosts: hosts:
@@ -12,3 +15,9 @@ nodes:
ansible_host: node2.pi-cluster.bwr.net ansible_host: node2.pi-cluster.bwr.net
node3: node3:
ansible_host: node3.pi-cluster.bwr.net ansible_host: node3.pi-cluster.bwr.net
server:
hosts:
server0:
ansible_host: pi-cluster.bwr.net

View File

@@ -0,0 +1,7 @@
---
- name: Install k3s Node (agent)
hosts: nodes
gather_facts: false
roles:
- role: k3s-node

View File

@@ -0,0 +1,25 @@
---
- name: Ensure Directory
ansible.builtin.file:
path: /etc/rancher/k3s
state: directory
owner: root
group: root
mode: "755"
become: True
- name: Copy Configuration
ansible.builtin.template:
src: config.yaml.j2
dest: /etc/rancher/k3s/config.yaml
owner: root
group: root
mode: "644"
become: True
- name: Run Installation
ansible.builtin.shell:
cmd: curl -sfL https://get.k3s.io | sh -s - agent
creates: /etc/systemd/system/k3s-agent.service
become: True

View File

@@ -0,0 +1,2 @@
token: "{{ k3s_token }}"
server: "{{ k3s_server }}"

1625
notes/controller0.facts.json Normal file

File diff suppressed because it is too large Load Diff

1454
notes/node0.facts.json Normal file

File diff suppressed because it is too large Load Diff

1368
notes/node1.facts.json Normal file

File diff suppressed because it is too large Load Diff

1454
notes/node2.facts.json Normal file

File diff suppressed because it is too large Load Diff

1368
notes/node3.facts.json Normal file

File diff suppressed because it is too large Load Diff

11
setup.sh Normal file
View File

@@ -0,0 +1,11 @@
groupadd -g 850 ansible
useradd -r -c "Ansible User" -u 850 -g 850 -m -d /home/ansible ansible
echo "ansible ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/ansible
chmod 440 /etc/sudoers.d/ansible
mkdir /home/ansible/.ssh
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKh5meb3eUPsXLNwQQvRLakPdQUtdQV4qL526VUE7BHt Ansible" > /home/ansible/.ssh/authorized_keys
chmod 700 /home/ansible/.ssh
chmod 600 /home/ansible/.ssh/authorized_keys
chown -R ansible: /home/ansible/.ssh