24 changed files with 516 additions and 0 deletions
@ -0,0 +1,7 @@ |
|||||
|
--- |
||||
|
- hosts: "{{ target }}" |
||||
|
gather_facts: false |
||||
|
remote_user: pi |
||||
|
roles: |
||||
|
- initnextcloud |
||||
|
|
@ -0,0 +1,4 @@ |
|||||
|
/opt |
||||
|
/home |
||||
|
/etc |
||||
|
/mnt/nvme |
@ -0,0 +1,50 @@ |
|||||
|
#!/bin/bash |
||||
|
######################################################################### |
||||
|
# Copyright (C) 2020 Akito <the@akito.ooo> # |
||||
|
# # |
||||
|
# This program is free software: you can redistribute it and/or modify # |
||||
|
# it under the terms of the GNU General Public License as published by # |
||||
|
# the Free Software Foundation, either version 3 of the License, or # |
||||
|
# (at your option) any later version. # |
||||
|
# # |
||||
|
# This program is distributed in the hope that it will be useful, # |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of # |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # |
||||
|
# GNU General Public License for more details. # |
||||
|
# # |
||||
|
# You should have received a copy of the GNU General Public License # |
||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>. # |
||||
|
######################################################################### |
||||
|
# https://borgbackup.readthedocs.io/en/stable/deployment/automated-local.html |
||||
|
# 0.2.0 |
||||
|
PURPOSE="SYSTEM" |
||||
|
TARGET_HOST="" |
||||
|
LOCATION="/tank/borg/" |
||||
|
BORG_REPO="${HOSTNAME}" |
||||
|
TARGET="${TARGET_HOST}${LOCATION}${BORG_REPO}" |
||||
|
ARC_NAME="${HOSTNAME}+${USER}:$(date +"%Y%m%dT%H%M%S")" |
||||
|
BORG_COMMENT="Automated \"${PURPOSE}\" backup to repository \"${BORG_REPO}\" at \"${TARGET_HOST}${LOCATION}\" issued $(date +"%Y-%m-%dT%H:%M:%S")." |
||||
|
BORG_OPTS="--paths-from-stdin --compression auto,lzma,9 --checkpoint-interval 900 --warning" |
||||
|
LOGFILE_LOCATION="/tmp" |
||||
|
LOGFILE="borg-${PURPOSE}_$(date +"%Y%m%dT%H%M%S").log" |
||||
|
export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes |
||||
|
export BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes |
||||
|
borg create ${BORG_OPTS} \ |
||||
|
--comment "${BORG_COMMENT}" \ |
||||
|
--exclude /media \ |
||||
|
--exclude /dev \ |
||||
|
--exclude /run \ |
||||
|
--exclude /tmp \ |
||||
|
--exclude /sys \ |
||||
|
--exclude /proc \ |
||||
|
--exclude /mnt \ |
||||
|
--exclude /tank \ |
||||
|
--exclude /extusb \ |
||||
|
--exclude /var/log \ |
||||
|
"${TARGET}::${ARC_NAME}" \ |
||||
|
< /home/pi/borg_dirs.txt |
||||
|
|
||||
|
|
||||
|
# 2>> "${LOGFILE_LOCATION}/${LOGFILE}" |
||||
|
|
||||
|
sync |
@ -0,0 +1,33 @@ |
|||||
|
#!/bin/bash |
||||
|
######################################################################### |
||||
|
# Copyright (C) 2020 Akito <the@akito.ooo> # |
||||
|
# # |
||||
|
# This program is free software: you can redistribute it and/or modify # |
||||
|
# it under the terms of the GNU General Public License as published by # |
||||
|
# the Free Software Foundation, either version 3 of the License, or # |
||||
|
# (at your option) any later version. # |
||||
|
# # |
||||
|
# This program is distributed in the hope that it will be useful, # |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of # |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # |
||||
|
# GNU General Public License for more details. # |
||||
|
# # |
||||
|
# You should have received a copy of the GNU General Public License # |
||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>. # |
||||
|
######################################################################### |
||||
|
# https://borgbackup.readthedocs.io/en/stable/deployment/automated-local.html |
||||
|
# 0.2.0 |
||||
|
PURPOSE="SYSTEM" |
||||
|
TARGET_HOST="" |
||||
|
LOCATION="/tank/borg" |
||||
|
BORG_REPO="${HOSTNAME}" |
||||
|
ARC_NAME="${HOSTNAME}+${USER}:$(date +"%Y%m%dT%H%M%S")" |
||||
|
BORG_COMMENT="Automated \"${PURPOSE}\" backup to repository \"${BORG_REPO}\" at \"${TARGET_HOST}${LOCATION}\" issued $(date +"%Y-%m-%dT%H:%M:%S")." |
||||
|
BORG_OPTS="--keep-within 15d" |
||||
|
LOGFILE_LOCATION="/tmp" |
||||
|
LOGFILE="borg-${PURPOSE}_$(date +"%Y%m%dT%H%M%S").log" |
||||
|
export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes |
||||
|
export BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes |
||||
|
borg prune ${BORG_OPTS} ${LOCATION}/${BORG_REPO} |
||||
|
|
||||
|
sync |
@ -0,0 +1,19 @@ |
|||||
|
#! /usr/bin/bash |
||||
|
#inspired by Sun Knudsen |
||||
|
|
||||
|
# create the test files |
||||
|
echo "preparing tests" |
||||
|
sysbench fileio --file-total-size=8G prepare > /dev/null |
||||
|
|
||||
|
# Test with 16K block size, random read/write |
||||
|
echo "run test with 16K block size" |
||||
|
sysbench fileio --file-block-size=16K --file-total-size=8G --file-test-mode=rndrw --threads=$(nproc) run |
||||
|
|
||||
|
# Test with 1M block size, random read/write |
||||
|
echo "run test with 1M block size" |
||||
|
sysbench fileio --file-block-size=1M --file-total-size=8G --file-test-mode=rndrw --threads=$(nproc) run |
||||
|
|
||||
|
# cleanup the test files |
||||
|
sysbench fileio --file-total-size=8G cleanup |
||||
|
|
||||
|
|
@ -0,0 +1,4 @@ |
|||||
|
# !/usr/bin/bash |
||||
|
|
||||
|
|
||||
|
for f in ${1}*.svg; do rsvg-convert "$f" -o "${f%.svg}.png"; done |
@ -0,0 +1,92 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
set -euo pipefail |
||||
|
|
||||
|
# Dauer des Tests (Default: 10 Minuten, Format z.B. „5m", „600") |
||||
|
DURATION="${1:-10m}" |
||||
|
|
||||
|
# Verzeichnisse / Geräte für File‑IO |
||||
|
DATA_DRIVE="${HOME}/test/sysbench" # bitte anpassen |
||||
|
SYSTEM_DRIVE="/mnt/nextcloud/test/sysbench" # bitte anpassen |
||||
|
CURRENT_DIR=$(pwd) |
||||
|
|
||||
|
# Größe und Einstellungen für sysbench-File‑IO |
||||
|
FILE_TOTAL_SIZE="1G" |
||||
|
FILE_NUM="4" |
||||
|
TEST_MODE="rndrw" |
||||
|
EXTRA_FLAGS="--file-extra-flags=direct" |
||||
|
|
||||
|
echo "== Vorbereitung: File‑IO Testdateien erstellen ==" |
||||
|
echo "testmode=${TEST_MODE}" |
||||
|
|
||||
|
cd ${DATA_DRIVE} |
||||
|
echo "preparing sysbench on ${DATA_DRIVE}" |
||||
|
sysbench fileio \ |
||||
|
--file-total-size=${FILE_TOTAL_SIZE} \ |
||||
|
--file-num=${FILE_NUM} \ |
||||
|
--file-test-mode=${TEST_MODE} \ |
||||
|
${EXTRA_FLAGS} \ |
||||
|
prepare & |
||||
|
cd ${SYSTEM_DRIVE} |
||||
|
echo "preparing sysbench on ${SYSTEM_DRIVE}" |
||||
|
sysbench fileio \ |
||||
|
--file-total-size=${FILE_TOTAL_SIZE} \ |
||||
|
--file-num=${FILE_NUM} \ |
||||
|
--file-test-mode=${TEST_MODE} \ |
||||
|
${EXTRA_FLAGS} \ |
||||
|
prepare |
||||
|
wait |
||||
|
echo "== Vorbereitung fertig, starte Stresstest für ${DURATION} ==" |
||||
|
|
||||
|
# CPU‑Stresstest |
||||
|
echo "running stress-ng" |
||||
|
stress-ng \ |
||||
|
--cpu 8 \ |
||||
|
--cpu-method all \ |
||||
|
--verify \ |
||||
|
--timeout ${DURATION} \ |
||||
|
--metrics-brief \ |
||||
|
> stress-ng.log & |
||||
|
|
||||
|
# File‑IO auf System-Laufwerk |
||||
|
cd ${SYSTEM_DRIVE} |
||||
|
echo "running sysbench on ${SYSTEM_DRIVE}" |
||||
|
sysbench fileio \ |
||||
|
--file-total-size=${FILE_TOTAL_SIZE} \ |
||||
|
--file-num=${FILE_NUM} \ |
||||
|
--file-test-mode=${TEST_MODE} \ |
||||
|
${EXTRA_FLAGS} \ |
||||
|
--file-dir=${DATA_DRIVE} \ |
||||
|
--time=10 run \ |
||||
|
> sysbench-nvme.log & |
||||
|
|
||||
|
# File‑IO auf Daten-Laufwerk |
||||
|
cd ${DATA_DRIVE} |
||||
|
echo "running sysbench on ${DATA_DRIVE}" |
||||
|
sysbench fileio \ |
||||
|
--file-total-size=${FILE_TOTAL_SIZE} \ |
||||
|
--file-num=${FILE_NUM} \ |
||||
|
--file-test-mode=${TEST_MODE} \ |
||||
|
${EXTRA_FLAGS} \ |
||||
|
--file-dir=${SYSTEM_DRIVE} \ |
||||
|
--time=10 run \ |
||||
|
> sysbench-sata.log & |
||||
|
|
||||
|
# Auf alle Hintergrund‐Jobs warten |
||||
|
wait |
||||
|
|
||||
|
echo "== Stresstest abgeschlossen ==" |
||||
|
echo "Ergebnisse:" |
||||
|
echo " - CPU (stress-ng): see stress-ng.log" |
||||
|
echo " - NVMe (sysbench): see sysbench-nvme.log" |
||||
|
echo " - SATA (sysbench): see sysbench-sata.log" |
||||
|
|
||||
|
# Clean up File‑IO Testdateien |
||||
|
echo "== Aufräumen: File‑IO Testdateien löschen ==" |
||||
|
cd ${DATA_DRIVE} |
||||
|
sysbench fileio ${EXTRA_FLAGS} cleanup |
||||
|
cd ${SYSTEM_DRIVE} |
||||
|
sysbench fileio ${EXTRA_FLAGS} cleanup |
||||
|
cd ${CURRENT_DIR} |
||||
|
|
||||
|
echo "Fertig." |
||||
|
|
@ -0,0 +1,11 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
|
||||
|
sudo apt install python3 python3-dev python3-setuptools python3-wheel python3-pip libssl-dev openssl libacl1-dev libacl1 build-essential libfuse-dev fuse pkg-config ssh |
||||
|
sudo pip3 install borgbackup[fuse] |
||||
|
mkdir /tank/borg/${HOSTNAME} |
||||
|
cd /tank/borg |
||||
|
borg --verbose init --encryption=none $HOSTNAME |
||||
|
borg --verbose --progress create --stats --comment "Initial backup" /tank/borg/$HOSTNAME/::firstbackup /home/$USER |
||||
|
|
||||
|
|
||||
|
|
@ -0,0 +1,16 @@ |
|||||
|
#! /bin/bash |
||||
|
|
||||
|
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq |
||||
|
vcgencmd measure_temp |
||||
|
echo -n "Fan-Speed beim Start: " |
||||
|
cat /sys/devices/platform/cooling_fan/hwmon/hwmon2/fan1_input |
||||
|
|
||||
|
sysbench cpu --cpu-max-prime=1000 --threads=4 run >/dev/null 2>&1 |
||||
|
|
||||
|
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq |
||||
|
|
||||
|
sysbench cpu --cpu-max-prime=50000 --threads=4 run |
||||
|
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq |
||||
|
vcgencmd measure_temp |
||||
|
echo -n "Fan-Speed am Ende: " |
||||
|
cat /sys/devices/platform/cooling_fan/hwmon/hwmon2/fan1_input |
@ -0,0 +1,15 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
|
||||
|
bramble=(quimby hans willie kirk brandine) |
||||
|
|
||||
|
|
||||
|
for host in "${bramble[@]}" |
||||
|
do |
||||
|
ping -c 3 ${host} |
||||
|
done |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
@ -0,0 +1,14 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
# from ansible/resources |
||||
|
|
||||
|
mkdir -p /tank/stressberry/${HOSTNAME} |
||||
|
cd /tank/stressberry/${HOSTNAME} |
||||
|
|
||||
|
SRUN=$(which stressberry-run) |
||||
|
SPLOT=$(which stressberry-plot) |
||||
|
|
||||
|
echo "Aufruf ${SRUN}" |
||||
|
${SRUN} -n "${HOSTNAME}" -d 1800 -i 300 -c 4 ${HOSTNAME}.out |
||||
|
echo "Aufruf ${SPLOT}" |
||||
|
${SPLOT} ${HOSTNAME}.out -f -d 300 -f -l 400 3100 -t 25 90 -o ${HOSTNAME}.png --not-transparent |
||||
|
|
@ -0,0 +1,10 @@ |
|||||
|
cpu=$(</sys/class/thermal/thermal_zone0/temp) |
||||
|
|
||||
|
vccmd=$(which vcgencmd) |
||||
|
gpu=$(${vccmd} measure_temp) |
||||
|
gpu=$(echo "${gpu}"| sed 's|temp\=||g') |
||||
|
|
||||
|
echo "$(date) @ $(hostname)" |
||||
|
echo "-------------------------------------------" |
||||
|
echo "GPU => ${gpu}" |
||||
|
echo "CPU => $((cpu/1000))'C" |
@ -0,0 +1,77 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
set -euo pipefail |
||||
|
|
||||
|
# Dauer des Tests (Default: 10 Minuten, Format z.B. "5m", "600") |
||||
|
DURATION="${1:-10m}" |
||||
|
|
||||
|
# Verzeichnisse / Geräte für File‑IO |
||||
|
NVME_MOUNT="~/test" # bitte anpassen |
||||
|
SATA_MOUNT="/mnt/nextcloud/test" # bitte anpassen |
||||
|
|
||||
|
# Größe und Einstellungen für sysbench-File‑IO |
||||
|
FILE_TOTAL_SIZE="1G" |
||||
|
FILE_NUM="4" |
||||
|
TEST_MODE="rndrw" |
||||
|
EXTRA_FLAGS="--file-extra-flags=direct" |
||||
|
|
||||
|
echo "== Vorbereitung: File‑IO Testdateien erstellen ==" |
||||
|
sysbench fileio \ |
||||
|
--file-total-size=${FILE_TOTAL_SIZE} \ |
||||
|
--file-num=${FILE_NUM} \ |
||||
|
--file-test-mode=${TEST_MODE} \ |
||||
|
${EXTRA_FLAGS} \ |
||||
|
--file-dir=${NVME_MOUNT} prepare & |
||||
|
sysbench fileio \ |
||||
|
--file-total-size=${FILE_TOTAL_SIZE} \ |
||||
|
--file-num=${FILE_NUM} \ |
||||
|
--file-test-mode=${TEST_MODE} \ |
||||
|
${EXTRA_FLAGS} \ |
||||
|
--file-dir=${SATA_MOUNT} prepare & |
||||
|
wait |
||||
|
echo "== Vorbereitung fertig, starte Stresstest für ${DURATION} ==" |
||||
|
|
||||
|
# CPU‑Stresstest |
||||
|
stress-ng \ |
||||
|
--cpu 8 \ |
||||
|
--cpu-method all \ |
||||
|
--verify \ |
||||
|
--timeout ${DURATION} \ |
||||
|
--metrics-brief \ |
||||
|
> stress-ng.log 2>&1 & |
||||
|
|
||||
|
# File‑IO auf NVMe |
||||
|
sysbench fileio \ |
||||
|
--file-total-size=${FILE_TOTAL_SIZE} \ |
||||
|
--file-num=${FILE_NUM} \ |
||||
|
--file-test-mode=${TEST_MODE} \ |
||||
|
${EXTRA_FLAGS} \ |
||||
|
--file-dir=${NVME_MOUNT} \ |
||||
|
--time=${DURATION} run \ |
||||
|
> sysbench-nvme.log 2>&1 & |
||||
|
|
||||
|
# File‑IO auf SATA‑SSD |
||||
|
sysbench fileio \ |
||||
|
--file-total-size=${FILE_TOTAL_SIZE} \ |
||||
|
--file-num=${FILE_NUM} \ |
||||
|
--file-test-mode=${TEST_MODE} \ |
||||
|
${EXTRA_FLAGS} \ |
||||
|
--file-dir=${SATA_MOUNT} \ |
||||
|
--time=${DURATION} run \ |
||||
|
> sysbench-sata.log 2>&1 & |
||||
|
|
||||
|
# Auf alle Hintergrund‐Jobs warten |
||||
|
wait |
||||
|
|
||||
|
echo "== Stresstest abgeschlossen ==" |
||||
|
echo "Ergebnisse:" |
||||
|
echo " - CPU (stress-ng): see stress-ng.log" |
||||
|
echo " - NVMe (sysbench): see sysbench-nvme.log" |
||||
|
echo " - SATA (sysbench): see sysbench-sata.log" |
||||
|
|
||||
|
# Clean up File‑IO Testdateien |
||||
|
echo "== Aufräumen: File‑IO Testdateien löschen ==" |
||||
|
sysbench fileio ${EXTRA_FLAGS} --file-dir=${NVME_MOUNT} cleanup |
||||
|
sysbench fileio ${EXTRA_FLAGS} --file-dir=${SATA_MOUNT} cleanup |
||||
|
|
||||
|
echo "Fertig." |
||||
|
|
@ -0,0 +1,21 @@ |
|||||
|
# System-Updater CC-BY Olli Graf |
||||
|
# V 1.6 2019 |
||||
|
|
||||
|
VERSION="1.7" |
||||
|
TMPFILE="/tmp/updater.txt" |
||||
|
|
||||
|
echo "Updater V ${VERSION}" |
||||
|
sudo rm -f ${TMPFILE} |
||||
|
sudo apt-get update |
||||
|
sudo apt-get dist-upgrade -y --allow-unauthenticated |tee ${TMPFILE} |
||||
|
sudo snap refresh |
||||
|
sudo apt-get autoremove -y |
||||
|
if grep -q linux-header ${TMPFILE}; then |
||||
|
echo "reboot nötig" |
||||
|
read -n1 -p "Neustart? (J/N)" auswahl |
||||
|
if [ "${auswahl}" == "j" ]; then |
||||
|
echo "System wird gestartet." |
||||
|
sudo reboot |
||||
|
fi |
||||
|
|
||||
|
fi |
@ -0,0 +1,27 @@ |
|||||
|
- name: Abbrechen, wenn /mnt/nextcloud nicht gemountet ist |
||||
|
fail: |
||||
|
msg: "/mnt/nextcloud ist nicht gemountet – Playbook wird abgebrochen." |
||||
|
when: "'/mnt/nextcloud' not in (ansible_mounts | map(attribute='mount') | list)" |
||||
|
- name: create home dirs |
||||
|
file: |
||||
|
path: "~/{{ item }}" |
||||
|
state: directory |
||||
|
loop: "{{ homedirs }}" |
||||
|
|
||||
|
- name: create volume dir |
||||
|
become: true |
||||
|
file: |
||||
|
path: "{{ item }}" |
||||
|
state: directory |
||||
|
owner: pi |
||||
|
group: pi |
||||
|
mode: '0755' |
||||
|
loop: "{{ volumedirs }}" |
||||
|
|
||||
|
- name: create nextcloud dirs |
||||
|
file: |
||||
|
path: ~/{{ item}} |
||||
|
state: directory |
||||
|
loop: "{{ ncdirs }}" |
||||
|
|
||||
|
|
@ -0,0 +1,24 @@ |
|||||
|
- name: Clone docker-compose repository |
||||
|
ansible.builtin.git: |
||||
|
repo: "{{ dockerrepo }}" |
||||
|
dest: "{{ dockerdir }}" |
||||
|
version: master |
||||
|
|
||||
|
- name: Permission für Docker |
||||
|
become: true |
||||
|
file: path=/var/run/docker.sock mode=0660 |
||||
|
# mode: 660 |
||||
|
|
||||
|
- name: adding user pi to docker group |
||||
|
become: true |
||||
|
user: |
||||
|
name: pi |
||||
|
groups: docker,video |
||||
|
|
||||
|
|
||||
|
- name: Run docker-compose up |
||||
|
community.docker.docker_compose: |
||||
|
project_src: '{{dockerdir }}/compose/nextcloud' |
||||
|
state: present |
||||
|
become: true |
||||
|
|
@ -0,0 +1,13 @@ |
|||||
|
- name: PI Update |
||||
|
become: true |
||||
|
apt: |
||||
|
update_cache: yes |
||||
|
upgrade: dist |
||||
|
- name: Pakete installieren |
||||
|
become: true |
||||
|
ansible.builtin.apt: |
||||
|
name: "{{ packages }}" |
||||
|
state: present |
||||
|
update_cache: yes |
||||
|
cache_valid_time: 86400 |
||||
|
|
@ -0,0 +1,12 @@ |
|||||
|
- include_vars: "roles/initnextcloud/vars/dirs.yml" |
||||
|
- include_vars: "roles/initnextcloud/vars/partuuid.yml" |
||||
|
- include_vars: "roles/initnextcloud/vars/pckg.yml" |
||||
|
- include_tasks: ../subtasks/upgrade.yml |
||||
|
- import_tasks: install.yml |
||||
|
- import_tasks: mount.yml |
||||
|
- import_tasks: dirs.yml |
||||
|
- import_tasks: docker.yml |
||||
|
- import_tasks: optional.yml |
||||
|
|
||||
|
|
||||
|
|
@ -0,0 +1,16 @@ |
|||||
|
- name: Add Nextcloud mount to fstab |
||||
|
become: true |
||||
|
ansible.builtin.blockinfile: |
||||
|
path: /etc/fstab |
||||
|
marker: "# {mark} ANSIBLE MANAGED BLOCK nextcloud" |
||||
|
block: | |
||||
|
PARTUUID={{ partuuid }} /mnt/nextcloud ext4 defaults,fail 0 1 |
||||
|
|
||||
|
- name: Mount /mnt/nextcloud |
||||
|
become: true |
||||
|
ansible.posix.mount: |
||||
|
path: /mnt/nextcloud |
||||
|
state: mounted |
||||
|
fstype: ext4 |
||||
|
src: PARTUUID={{ partuuid }} |
||||
|
|
@ -0,0 +1,13 @@ |
|||||
|
- name: copy scripts |
||||
|
copy: |
||||
|
src: "{{ item }}" |
||||
|
dest: /home/pi/bin |
||||
|
mode: '0755' |
||||
|
loop: "{{ query('fileglob', 'files/scripts/*') }}" |
||||
|
|
||||
|
- name: copy resources to ~ |
||||
|
copy: |
||||
|
src: "{{ item }}" |
||||
|
dest: /home/pi |
||||
|
loop: "{{ query('fileglob', 'resources/*') }}" |
||||
|
|
@ -0,0 +1,21 @@ |
|||||
|
dockerrepo: "https://git.olli-cloud.de/olli/dockercmd" |
||||
|
dockerdir: "/home/pi/git/dockercmd" |
||||
|
|
||||
|
volumedirs: |
||||
|
- /mnt/nextcloud |
||||
|
- /opt/clamav |
||||
|
- /opt/grafana |
||||
|
- /opt/influxdb |
||||
|
|
||||
|
homedirs: |
||||
|
- bin |
||||
|
- git |
||||
|
|
||||
|
ncdirs: |
||||
|
- /mnt/nextcloud/nextcloud/apps |
||||
|
- /mnt/nextcloud/nextcloud/html |
||||
|
- /mnt/nextcloud/nextcloud//data |
||||
|
- /mnt/nextcloud/nextcloud/config |
||||
|
|
||||
|
|
||||
|
|
@ -0,0 +1 @@ |
|||||
|
partuuid: "011ad286-01" |
@ -0,0 +1,15 @@ |
|||||
|
packages: |
||||
|
- python3-docker |
||||
|
- neofetch |
||||
|
- htop |
||||
|
- cowsay |
||||
|
- docker.io |
||||
|
- docker-compose |
||||
|
- git |
||||
|
- locate |
||||
|
- dnsutils |
||||
|
- nfs-kernel-server |
||||
|
- vim |
||||
|
- lsof |
||||
|
- ripgrep |
||||
|
|
Loading…
Reference in new issue