|
|
@ -32,7 +32,7 @@ function prepare_lxd { |
|
|
|
echo "define lxd and assign to user <$USER>" |
|
|
|
sudo groupadd --force "$NEW_GROUP" |
|
|
|
sudo usermod --append --groups "$NEW_GROUP" "$(whoami)" |
|
|
|
exec sg "$NEW_GROUP" exec "$0 $TARGET SESSION_RELOAD_REQUIRED $@" |
|
|
|
exec sg "$NEW_GROUP" -c "$0 SESSION_RELOAD_REQUIRED $TARGET $@" |
|
|
|
# no further processing because exec has been called! |
|
|
|
else |
|
|
|
echo "user <$USER> already belongs to group <lxd>!" |
|
|
@ -49,7 +49,7 @@ function prepare_lxd { |
|
|
|
|
|
|
|
if [[ $(printenv container) == 'lxc' ]]; then |
|
|
|
echo "nested configuration applying..." |
|
|
|
cat <<EOF | lxd init --preseed |
|
|
|
cat <<EOF | sg $NEW_GROUP -c 'lxd init --preseed' |
|
|
|
config: {} |
|
|
|
networks: |
|
|
|
- name: lxdbr0 |
|
|
@ -57,6 +57,11 @@ networks: |
|
|
|
config: |
|
|
|
ipv4.address: auto |
|
|
|
ipv6.address: none |
|
|
|
storage_pools: |
|
|
|
- config: {} |
|
|
|
description: "" |
|
|
|
name: default |
|
|
|
driver: dir |
|
|
|
profiles: |
|
|
|
- config: |
|
|
|
security.privileged: "true" |
|
|
@ -135,7 +140,7 @@ EOF |
|
|
|
|
|
|
|
# test environment container hostname |
|
|
|
local env_container_hostname |
|
|
|
env_container_hostname=$(lxc profile get default environment.container_hostname) |
|
|
|
env_container_hostname=$(sg $NEW_GROUP -c 'lxc profile get default environment.container_hostname') |
|
|
|
if [[ -z "$env_container_hostname" ]]; then |
|
|
|
env_container_hostname=$(hostname -s) |
|
|
|
if env | grep -q container_hostname; then |
|
|
@ -144,7 +149,7 @@ EOF |
|
|
|
fi |
|
|
|
|
|
|
|
echo -n "set environment container_hostname to <$env_container_hostname> ... " |
|
|
|
lxc profile set default environment.container_hostname "$env_container_hostname" |
|
|
|
sg $NEW_GROUP -c "lxc profile set default environment.container_hostname \"$env_container_hostname\"" |
|
|
|
PREFIX="" echoinfo OK |
|
|
|
else |
|
|
|
echo "environment container_hostname <$env_container_hostname> already defined!" |
|
|
@ -373,19 +378,19 @@ function preload_bookworm_image { |
|
|
|
local PREFIX="preload:bookworm" |
|
|
|
|
|
|
|
if [[ $(lxc image list debian/12/cloud -f csv | wc -l) -lt 1 ]]; then |
|
|
|
echo -n "downloading images from publc remote, please hold on..." |
|
|
|
lxc image copy images:debian/12/cloud local: --copy-aliases --quiet |
|
|
|
echo -n "downloading images from public remote, please hold on..." |
|
|
|
sg $NEW_GROUP -c 'lxc image copy images:debian/12/cloud local: --copy-aliases --quiet' |
|
|
|
PREFIX="" echoinfo OK |
|
|
|
else |
|
|
|
echo -n "refreshing images from publc remote..." |
|
|
|
lxc image refresh debian/12/cloud --quiet |
|
|
|
echo -n "refreshing images from public remote..." |
|
|
|
sg $NEW_GROUP -c 'lxc image refresh debian/12/cloud --quiet' |
|
|
|
PREFIX="" echoinfo DONE |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
### MAIN |
|
|
|
|
|
|
|
if [[ "${2:-}" == "SESSION_RELOAD_REQUIRED" ]]; then |
|
|
|
if [[ "${1:-}" == "SESSION_RELOAD_REQUIRED" ]]; then |
|
|
|
SESSION_RELOAD_REQUIRED=true |
|
|
|
shift |
|
|
|
else |
|
|
@ -426,9 +431,12 @@ else |
|
|
|
opt_link |
|
|
|
extra_dev_desktop |
|
|
|
|
|
|
|
if [[ "$SESSION_RELOAD_REQUIRED" == false ]]; then |
|
|
|
echoinfo "successful installation" |
|
|
|
if [[ "$SESSION_RELOAD_REQUIRED" == true ]]; then |
|
|
|
echowarn "current session has been reloaded, due to new group <$NEW_GROUP>." |
|
|
|
echowarn "be aware to exit twice or fully disconnect/reconnect to take advantage of new group <$NEW_GROUP>!" |
|
|
|
echoinfo "successful session installation " |
|
|
|
sg $NEW_GROUP -c bash |
|
|
|
else |
|
|
|
echowarn "please reload your session, .bashrc needs to be reloaded!" |
|
|
|
echoinfo "successful installation" |
|
|
|
fi |
|
|
|
fi |