File warewulf-container-manage.sh of Package warewulf-container
#!/bin/bash
# quick script to manage the container
CONTAINER_NAME=warewulf
create_container() {
podman create \
--name ${CONTAINER_NAME} \
--tls-verify=false \
--network host \
${IMAGE}
}
run_container() {
podman run \
--name ${CONTAINER_NAME} \
--rm -ti \
--network host \
--entrypoint bash \
${IMAGE}
}
if [ -z "$1" ]; then
echo "
First ARG is mandatory:
$0 [create|start|stop|rm|rmcache|run|bash|logs|install|uninstall]
CONTAINER_NAME: '${CONTAINER_NAME}'
DEPLOYMENT:
create
Pull the image and create the container automatically
install
install needed files on the host to manage '${CONTAINER_NAME}' container
(in /usr/local/bin and /etc)
start
Start the container '${CONTAINER_NAME}'
REMOVAL:
uninstall
uninstall all needed files on the host to manage '${CONTAINER_NAME}' container
stop
stop the container '${CONTAINER_NAME}'
rm
delete the container '${CONTAINER_NAME}'
rmcache
remove the container image in cache ${IMAGE}
DEBUG:
run
podman run container '${CONTAINER_NAME}'
bash
go with /bin/bash command inside '${CONTAINER_NAME}'
logs
see log of container '${CONTAINER_NAME}'
"
exit 1
fi
###########
# MAIN
###########
set -euxo pipefail
case $1 in
start)
podman start ${CONTAINER_NAME}
podman ps | grep ${CONTAINER_NAME}
;;
stop)
podman stop ${CONTAINER_NAME}
podman ps | grep ${CONTAINER_NAME}
;;
rm)
set +e
podman stop ${CONTAINER_NAME}
podman rm ${CONTAINER_NAME}
;;
create)
create_container
;;
run)
run_container
;;
rmcache)
podman rmi ${IMAGE}
;;
logs)
podman logs ${CONTAINER_NAME}
;;
bash)
set +e
podman exec -ti ${CONTAINER_NAME} $@
;;
install)
podman run --env IMAGE=${IMAGE} --rm --privileged -v /:/host ${IMAGE} /bin/bash /container/label-install
;;
uninstall)
podman run --env IMAGE=${IMAGE} --rm --privileged -v /:/host ${IMAGE} /bin/bash /container/label-uninstall
;;
esac