Compare commits
3 Commits
849983aaeb
...
0cd1c7c502
Author | SHA1 | Date |
---|---|---|
pedro | 0cd1c7c502 | |
pedro | d1559884b9 | |
pedro | c3c3a87155 |
|
@ -1,5 +1,5 @@
|
|||
iso
|
||||
settings.ini
|
||||
# ignore all possible snapshots in this dir
|
||||
# ignore all possible snapshots in this repo
|
||||
*.json
|
||||
pxe/.env
|
||||
|
|
|
@ -411,8 +411,7 @@ install_requirements() {
|
|||
squashfs-tools
|
||||
xorriso
|
||||
mtools
|
||||
dosfstools
|
||||
nfs-common'
|
||||
dosfstools'
|
||||
# secureboot:
|
||||
# -> extra src https://wiki.debian.org/SecureBoot/
|
||||
# -> extra src https://wiki.debian.org/SecureBoot/VirtualMachine
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
server_ip=192.168.1.2
|
||||
nfs_allowed_lan=192.168.1.0/24
|
||||
tftp_path='/srv/pxe-tftp'
|
||||
nfs_images_path='/srv/pxe-images'
|
||||
nfs_wbdata_path='/srv/workbench-data'
|
||||
nfs_path='/srv/pxe-nfs'
|
||||
|
|
|
@ -24,16 +24,15 @@ backup_file() {
|
|||
install_nfs() {
|
||||
backup_file /etc/exports
|
||||
cat > /etc/exports <<END
|
||||
${nfs_images_path} ${nfs_allowed_lan}(rw,sync,no_subtree_check,no_root_squash)
|
||||
${nfs_wbdata_path} ${nfs_allowed_lan}(rw,sync,no_subtree_check,no_root_squash)
|
||||
${nfs_path} ${nfs_allowed_lan}(rw,sync,no_subtree_check,no_root_squash)
|
||||
END
|
||||
# append live directory, which is expected by the debian live env
|
||||
mkdir -p "${nfs_images_path}/live"
|
||||
mkdir -p "${nfs_wbdata_path}/snapshots"
|
||||
mkdir -p "${nfs_path}/live"
|
||||
mkdir -p "${nfs_path}/snapshots"
|
||||
|
||||
if [ ! -f "${nfs_wbdata_path}/settings.ini" ]; then
|
||||
if [ -f "../settings.ini" ]; then
|
||||
cp -v ../settings.ini "${nfs_wbdata_path}/settings/settings.ini"
|
||||
if [ ! -f "${nfs_path}/settings.ini" ]; then
|
||||
if [ -f "settings.ini" ]; then
|
||||
ln -sv "${nfs_path}/settings.ini" "settings.ini"
|
||||
else
|
||||
echo "ERROR: ../settings.ini does not exist yet, cannot read config from there. You can take inspiration with file ../settings.ini.example"
|
||||
exit 1
|
||||
|
@ -84,7 +83,7 @@ default wb
|
|||
label wb
|
||||
KERNEL vmlinuz
|
||||
INITRD initrd.img
|
||||
APPEND ip=dhcp netboot=nfs nfsroot=${server_ip}:${nfs_images_path}/ boot=live text forcepae
|
||||
APPEND ip=dhcp netboot=nfs nfsroot=${server_ip}:${nfs_path}/ boot=live text forcepae
|
||||
END
|
||||
fi
|
||||
}
|
||||
|
@ -101,8 +100,7 @@ init_config() {
|
|||
VERSION_CODENAME="${VERSION_CODENAME:-bookworm}"
|
||||
tftp_path="${tftp_path:-/srv/pxe-tftp}"
|
||||
server_ip="${server_ip}"
|
||||
nfs_images_path="${nfs_images_path:-/srv/pxe-images}"
|
||||
nfs_wbdata_path="${nfs_wbdata_path:-/srv/pxe-wbdata}"
|
||||
nfs_path="${nfs_path:-/srv/pxe-nfs}"
|
||||
}
|
||||
|
||||
main() {
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
[settings]
|
||||
url = http://127.0.0.1:8000/api/snapshot/
|
||||
token = '1234'
|
||||
path = /srv/pxe-nfs/snapshots
|
||||
# device = your_device_name
|
||||
# # erase = basic
|
|
@ -0,0 +1,3 @@
|
|||
This is the path by default used by workbench-script
|
||||
|
||||
You can change it in the configuration
|
|
@ -249,15 +249,30 @@ def gen_snapshot(all_disks):
|
|||
|
||||
|
||||
def save_snapshot_in_disk(snapshot, path):
|
||||
filename = "{}/{}_{}.json".format(
|
||||
path,
|
||||
datetime.now().strftime("%Y%m%d-%H_%M_%S"),
|
||||
snapshot['uuid']
|
||||
)
|
||||
print(f"workbench: INFO: Snapshot written in path '{filename}'")
|
||||
with open(filename, "w") as f:
|
||||
f.write(json.dumps(snapshot))
|
||||
snapshot_path = os.path.join(path, 'snapshots')
|
||||
|
||||
filename = "{}/{}_{}.json".format(
|
||||
snapshot_path,
|
||||
datetime.now().strftime("%Y%m%d-%H_%M_%S"),
|
||||
snapshot['uuid'])
|
||||
|
||||
try:
|
||||
if not os.path.exists(snapshot_path):
|
||||
os.makedirs(snapshot_path)
|
||||
print(f"workbench: INFO: Created snapshots directory at '{snapshot_path}'")
|
||||
|
||||
with open(filename, "w") as f:
|
||||
f.write(json.dumps(snapshot))
|
||||
print(f"workbench: INFO: Snapshot written in path '{filename}'")
|
||||
except Exception as e:
|
||||
print(f"workbench: WARNING: Failed to write in snapshots directory: {e}. Attempting to save in actual path.")
|
||||
fallback_filename = "{}/{}_{}.json".format(
|
||||
path,
|
||||
datetime.now().strftime("%Y%m%d-%H_%M_%S"),
|
||||
snapshot['uuid'])
|
||||
with open(fallback_filename, "w") as f:
|
||||
f.write(json.dumps(snapshot))
|
||||
print(f"workbench: INFO: Snapshot written in fallback path '{fallback_filename}'")
|
||||
|
||||
# TODO sanitize url, if url is like this, it fails
|
||||
# url = 'http://127.0.0.1:8000/api/snapshot/'
|
||||
|
|
Loading…
Reference in New Issue