scale-catalog/jailcreate.sh
Kjeld Schouten-Lebbing 4c09ea840c
The Birth of JailMan (#2)
* move ex (+25 squashed commit)

Squashed commit:

[e5e9c57] verb

[16b023f] exp

[e0299d9] easier

[67fcf93] no message

[404687f] different

[bd82e7c] test

[14b91d9] mod

[f2bb227] test again

[a9d5ad0] again

[0dcb106] with bash

[7324c15] more

[8ec72d5] another test

[0933fdc] again

[a5247df] test more

[ee61137] temp test

[c90aa90] add some more tests

[9f8e47a] make executable

[ac84788] rename part 2

[890c3ca] rename part 1

[f17e571] test create

[9bd8ecd] typo aqgain

[eb865a7] test2

[fb57e28] typo

[595d9e9] make executable

[5d1ae75] first steps

* test5 (+22 squashed commit)

Squashed commit:

[f059ada] tweaks

[5c325de] again

[9f59aa6] ip4

[9990a77] Standardised creation

[0a6fa7f] whoops

[620d07c] no message

[2a98559] error

[62e9c39] hmmm

[9f8e4df] no message

[d1e9025] puzzle

[73aa99b] substitution try 1

[117e75e] other sub

[7c080b0] more flexible

[a0778f4] testzoveel

[739a3bf] fix

[f881425] no message

[1962b83] oops

[994692c] no message

[b6dd2a2] test

[6713186] echo

[6d8d95a] test

[f8c3740] quote processing

* small update fix (+18 squashed commit)

Squashed commit:

[8f0c2aa] Basic update

[c44eae5] simplification

[b1e9314] define basic pkgs

[1a55a85] define global pkgs

[6829d30] dirtest

[5d2a215] checking for install script existance

[d936df3] 1

[fcc7403] hmm

[08e7e07] exit 0

[380da4d] jail interfaces

[634f12e] make all executable

[0f2728c] add first test jail

[8320d77] restructure individual install scripts

[752b375] Standardise

[cbab837] itterate through jails

[37ecc1d] if array is without elements

[0a9e899] moving it to arrays

[cc356ee] mockup jailman

* moving docs,fixing test thingy (+27 squashed commit)

Squashed commit:

[76e856b] rc.d pathing

[4e1b178] fixing some pathing bugs

[e9e9648] quotes

[7c5aa9e] test10 fixes

[e8858cc] sonarr first steps

[0cb1efe] exit on invalid option

[e3451da] exit on unknown option

[60a1f9c] exit

[0536c11] test idea

[81d3465] hmm

[cb3b935] work on h

[1311fea] enable help

[aa8d55a] space?

[5ef67e0] add comment to global

[61be2fa] Add commenting and in-script help

[aac8557] Testing broken config

[ecc1142] oops

[e0059be] condition fix

[9628297] Add check for missing network settings

[44be2bc] Creating DHCP option, working on default example config.

[b0fe910] Adding documentation, setting up Jackett

[0045b2b] strucutre

[fbe3d20] includes first

[a1b032d] gitupdate space

[1b503b5] update fix

[512f597] add update feature

[e9b8359] add initial upgrade script

* Create LICENSE (#1)

* to 30

* move back kms includes readme, add config.yml to gitignore, add kms to config.yml.example (+24 squashed commit)

Squashed commit:

[095aa36] added py ks to readme

[28526d8] Setup KMS

[82f7bfa] Exeuction fix

[89de700] finish organizr and setup first steps of kms

[0624952] Add dummy cert generation

[2583e39] slight nginx mod

[3b3da6a] fixed again

[7f5807b] Readme and fix for wrong copy

[6cab6ca] Make tautulli permanent and prepare organizr

[6801447] Tautulli setup, plex to permanent

[6198469] also fix update if

[49cff5d] if fix 2

[4c436c4] fixing plex if

[1adf56f] Add first go at plex support

[446dff6] fixing some linking and dataset creation

[6dee179] forgot to set yaml files

[4e767de] settings file is not needed at all

[8ff9d73] setup lidarr, begin setup for transmission

[8f8d9ee] Fixing wrong echo's, adding *arr to readme

[7aab5f0] lidarr test setup, making radarr final, yaml restructure

[3113f71] some dataset creation tweaks

[286437b] movies, much

[181cf3e] test setup

[6477b74] Sonarr done, radarr next

* set to master and make executable
2020-03-06 21:32:55 +01:00

54 lines
1.7 KiB
Bash
Executable File

#!/usr/local/bin/bash
echo "Checking config..."
jailname="${1}"
jailpkgs="${1}_pkgs"
jailinterfaces="${1}_interfaces"
jailip4="${1}_ip4_addr"
jailgateway="${1}_gateway"
jaildhcp="${1}_dhcp"
setdhcp=${!jaildhcp}
if [ -z "${!jailinterfaces}" ]; then
jailinterfaces="vnet0:bridge0"
else
jailinterfaces=${!jailinterfaces}
fi
if [ -z "${setdhcp}" ] && [ -z "${!jailip4}" ] && [ -z "${!jailgateway}" ]; then
echo 'no network settings specified in config.yml, defaulting to dhcp="on"'
setdhcp="on"
fi
if [ -z "${!jailname}" ]; then
echo "ERROR, jail not defined in config.yml"
exit 1
else
echo "Creating jail for $1"
pkgs="$(sed 's/[^[:space:]]\{1,\}/"&"/g;s/ /,/g' <<<"${!jailpkgs} ${global_jails_pkgs}")"
echo '{"pkgs":['${pkgs}']}' > /tmp/pkg.json
if [ "${setdhcp}" == "on" ]
then
iocage create -n "${1}" -p /tmp/pkg.json -r ${global_jails_version} interfaces="${jailinterfaces}" dhcp="on" vnet="on" allow_raw_sockets="1" boot="on"
else
iocage create -n "${1}" -p /tmp/pkg.json -r ${global_jails_version} interfaces="${jailinterfaces}" ip4_addr="vnet0|${!jailip4}" defaultrouter="${!jailgateway}" vnet="on" allow_raw_sockets="1" boot="on"
fi
rm /tmp/pkg.json
echo "creating jail config directory"
iocage exec $1 mkdir -p /config
if [ ! -d "/mnt/${global_dataset_config}" ]; then
echo "Config root dataset does not exist... Creating... ${global_dataset_config}"
zfs create ${global_dataset_config}
fi
if [ ! -d "/mnt/${global_dataset_config}/$1" ]; then
echo "Config dataset does not exist... Creating... ${global_dataset_config}/$1"
zfs create ${global_dataset_config}/$1
fi
iocage fstab -a $1 /mnt/${global_dataset_config}/$1 /config nullfs rw 0 0
echo "Jail creation completed for $1"
fi