update scritp
This commit is contained in:
129
ctl.d/10-module-container.sh
Normal file
129
ctl.d/10-module-container.sh
Normal file
@@ -0,0 +1,129 @@
|
||||
#!/bin/bash
|
||||
# vi: set tabstop=4 shiftwidth=4 expandtab :
|
||||
|
||||
declare -A M_CONTAINER
|
||||
|
||||
M_CONTAINER['name']=''
|
||||
M_CONTAINER['title']='(NULL)'
|
||||
M_CONTAINER['shell']=sh
|
||||
M_CONTAINER['upd-sig']=HUP
|
||||
|
||||
#
|
||||
# Статус работы контейнера
|
||||
#
|
||||
MAP_COMMAND['status']=fn_container_status
|
||||
function fn_container_status {
|
||||
if [ $(fn_container_check) = 1 ]
|
||||
then
|
||||
log "${M_CONTAINERP['title']} running"
|
||||
podman logs --tail 5 ${M_CONTAINER['name']}
|
||||
elif [ $(fn_container_check2) = 1 ]
|
||||
then
|
||||
log "${M_CONTAINER['title']} container down"
|
||||
else
|
||||
log "${M_CONTAINER['title']} not running"
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Остановка контейнера
|
||||
#
|
||||
MAP_COMMAND['stop']=fn_container_stop
|
||||
function fn_container_stop {
|
||||
if [ $(fn_container_check) = 1 ]
|
||||
then
|
||||
log "Stop ${M_CONTAINER['title']} container..."
|
||||
podman stop ${M_CONTAINER['name']}
|
||||
fi
|
||||
|
||||
if [ $(fn_container_check2) = 1 ]
|
||||
then
|
||||
log "Remove ${M_CONTAINER['title']} container..."
|
||||
local container_id=$(podman rm ${M_CONTAINER['name']})
|
||||
log $conainer_id
|
||||
# TODO здесь необходимо выполнить проверку на
|
||||
# - включен ли модуль network
|
||||
# - остались ли после удаления контейнера сетевые файлы
|
||||
# - Если да, то запустить процесс зачистки...
|
||||
# - ...файлов
|
||||
# - ...nftables
|
||||
# - Если нет, просто завершить работу
|
||||
else
|
||||
log "${M_CONTAINER['title']} not runned."
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Перезапуск контейнера
|
||||
#
|
||||
MAP_COMMAND['restart']=fn_container_restart
|
||||
function fn_container_restart {
|
||||
fn_container_stop && fn_container_start
|
||||
}
|
||||
|
||||
#
|
||||
# Логи контейнера
|
||||
#
|
||||
MAP_COMMAND['logs']=fn_container_logs
|
||||
function fn_logs {
|
||||
if [ $(fn_container_check2) = 1 ]
|
||||
then
|
||||
podman logs --tail 10 -f ${M_CONTAINER['name']}
|
||||
else
|
||||
log "${M_CONTAINER['title']} not exists"
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Войти в shell контейнера
|
||||
#
|
||||
MAP_COMMAND['shell']=fn_container_shell
|
||||
function fn_container_shell {
|
||||
if [ $(fn_container_check) = 1 ]
|
||||
then
|
||||
log "Enter shell in ${M_CONTAINER['title']} container..."
|
||||
podman exec -it ${M_CONTAINER['name']} ${M_CONTAINER['shell']}
|
||||
else
|
||||
log "${M_CONTAINER['title']} not runned."
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Послать сигнал обновления конфигов.
|
||||
# Предназначено для запущенный в контейнере программ.
|
||||
#
|
||||
MAP_COMMAND['update']=fn_container_update_config
|
||||
function fn_container_update_config {
|
||||
if [ $(fn_container_check) = 1 ]
|
||||
then
|
||||
log "Update config ${M_CONTAINER['title']}..."
|
||||
podman kill --signal=${M_CONTAINER['upd-sig']} ${M_CONTAINER['name']}
|
||||
else
|
||||
log "${M_CONTAINER['title']} not runned."
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Статус работы контейнера
|
||||
#
|
||||
function fn_container_check {
|
||||
if [[ -n $(podman ps --filter "name=${M_CONTAINER['name']}" -q) ]]
|
||||
then
|
||||
echo 1
|
||||
else
|
||||
echo 0
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Статус существования контейнера
|
||||
#
|
||||
function fn_container_check2 {
|
||||
if [[ -n $(podman ps --filter "name=${M_CONTAINER['name']}" -qa) ]]
|
||||
then
|
||||
echo 1
|
||||
else
|
||||
echo 0
|
||||
fi
|
||||
}
|
||||
|
||||
30
ctl.d/11-pma.sh
Normal file
30
ctl.d/11-pma.sh
Normal file
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
# vi: set tabstop=4 shiftwidth=4 expandtab :
|
||||
|
||||
M_CONTAINER['name']='tools--phpmyadmin'
|
||||
M_CONTAINER['title']='phpMyAdmin'
|
||||
M_CONTAINER['host']=0.0.0.0
|
||||
M_CONTAINER['port']=9091
|
||||
|
||||
MAP_COMMAND['start']=fn_container_start
|
||||
function fn_container_start {
|
||||
if [ $(fn_container_check) = 1 ]
|
||||
then
|
||||
log "${M_CONTAINER['title']} is runned."
|
||||
elif [ $(fn_container_check2) = 1 ]
|
||||
then
|
||||
log "${M_CONTAINER['title']} container is down. Need restart."
|
||||
else
|
||||
log "Start ${M_CONTAINER['title']} container..."
|
||||
local container_id=$(podman run -d \
|
||||
--name "${M_CONTAINER['name']}" \
|
||||
--volume /etc/timezone:/etc/timezone:ro \
|
||||
--volume /etc/localtime:/etc/localtime:ro \
|
||||
--publish "${M_CONTAINER['host']}:${M_CONTAINER['port']}:8080" \
|
||||
--env 'PMA_ARBITRARY=1' \
|
||||
phpmyadmin:5.1.1-apache
|
||||
)
|
||||
log $conainer_id
|
||||
fi
|
||||
}
|
||||
|
||||
15
ctl.d/21-pma-backup.sh
Normal file
15
ctl.d/21-pma-backup.sh
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
# vi: set tabstop=4 shiftwidth=4 expandtab :
|
||||
|
||||
MAP_COMMAND['backup']=fn_backup
|
||||
function fn_backup {
|
||||
local basename=$(basename "$(cd "$(dirname "$0")" && pwd)")
|
||||
local archive=${basename}-$(date +%Y%m%d)
|
||||
|
||||
log 'Backup...'
|
||||
tar -cf - -- \
|
||||
ctrl.d/ \
|
||||
ctl \
|
||||
| 7z a -bso0 -si ${archive}.tar.7z
|
||||
log "$(du -sh ${archive}.tar.7z)"
|
||||
}
|
||||
Reference in New Issue
Block a user