Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
evz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Тимофей Смирнов
evz
Commits
7fa3d8bc
Commit
7fa3d8bc
authored
Feb 25, 2020
by
Vitaly Lipatov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add pct support
parent
b5185fc9
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
219 additions
and
0 deletions
+219
-0
evz
bin/evz
+1
-0
evz-pct
bin/evz-pct
+218
-0
No files found.
bin/evz
View file @
7fa3d8bc
...
@@ -39,6 +39,7 @@ MCTL=""
...
@@ -39,6 +39,7 @@ MCTL=""
[
-z
"
$MCTL
"
]
&&
which vzctl 2>/dev/null
>
/dev/null
&&
MCTL
=
"openvz"
[
-z
"
$MCTL
"
]
&&
which vzctl 2>/dev/null
>
/dev/null
&&
MCTL
=
"openvz"
[
-z
"
$MCTL
"
]
&&
which docker 2>/dev/null
>
/dev/null
&&
MCTL
=
"docker"
[
-z
"
$MCTL
"
]
&&
which docker 2>/dev/null
>
/dev/null
&&
MCTL
=
"docker"
[
-z
"
$MCTL
"
]
&&
which qm 2>/dev/null
>
/dev/null
&&
MCTL
=
"qm"
[
-z
"
$MCTL
"
]
&&
which qm 2>/dev/null
>
/dev/null
&&
MCTL
=
"qm"
[
-z
"
$MCTL
"
]
&&
which pct 2>/dev/null
>
/dev/null
&&
MCTL
=
"pct"
[
-n
"
$MCTL
"
]
||
warning
"Can't detect supported virtualization tool"
[
-n
"
$MCTL
"
]
||
warning
"Can't detect supported virtualization tool"
...
...
bin/evz-pct
0 → 100644
View file @
7fa3d8bc
#!/bin/sh
#
# Copyright (C) 2020 Etersoft
# Copyright (C) 2020 Vitaly Lipatov <lav@etersoft.ru>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# list all running containers (or by arg list)
list_all
()
{
if
[
-n
"
$1
"
]
;
then
echo
"
$*
"
return
fi
#a= pct list | grep "[0-9]\+" | sed -e "s| *\([0-9]\+\) .*|\1|" | line_filter
}
# list all containers (or by arg list)
list_ALL
()
{
if
[
-n
"
$1
"
]
;
then
echo
"
$*
"
return
fi
#a= pct list | grep "[0-9]\+" | sed -e "s| *\([0-9]\+\) .*|\1|" | line_filter
}
todo
()
{
warning
"FIXME:
$@
"
}
# TODO: add all support for all cases
evz_qm
()
{
CMD
=
$1
shift
case
$CMD
in
off
)
# HELPCMD: stop container(s) and disable start on boot
LIST
=
$(
get_list
"
$@
"
)
for
i
in
$LIST
;
do
#info "Stopping $i ..."
docmd pct stop
$i
docmd pct
set
$i
-onboot
0
done
;;
on
)
# HELPCMD: enable start on boot and start container(s)
for
i
in
"
$@
"
;
do
#info "Starting $i ..."
# TODO: check if enabled
docmd pct
set
$i
-onboot
1
docmd pct start
$i
done
;;
status
)
# HELPCMD: print container(s) status
LIST
=
$(
get_list
"
$@
"
)
#info "Do $CMD for $LIST ..."
for
i
in
$LIST
;
do
docmd pct status
$i
done
;;
compact
)
# HELPCMD: do named operation on container(s)
LIST
=
$(
get_list
"
$@
"
)
for
i
in
$LIST
;
do
info
"Do
$CMD
on
$i
..."
todo vzctl
$CMD
$i
done
;;
ports
)
# HELPCMD: show public ports
LIST
=
$(
get_list
"
$@
"
)
for
i
in
$LIST
;
do
#info "Do $CMD on $i ..."
todo docmd docker port
$i
done
;;
set
)
# HELPCMD: set param. Use with --option param
OPTIONS
=
"
$1
$2
"
shift
2
LIST
=
$(
get_list
"
$@
"
)
for
i
in
$LIST
;
do
info
"Do
$CMD
on
$i
..."
docmd pct
set
$i
$OPTIONS
done
;;
ubc|resources
)
# HELPCMD: print resource using
LIST
=
$(
get_list
"
$@
"
)
todo showcmd docker stats
--no-stream
--no-trunc
#for i in $LIST ; do
# a= docker stats --no-stream --no-trunc $i
#done
;;
stop
)
# HELPCMD: stop container(s)
LIST
=
$(
get_list
"
$@
"
)
for
i
in
$LIST
;
do
info
"Stopping
$i
..."
if
[
-n
"
$force
"
]
;
then
docmd pct stop
$i
continue
fi
docmd pct shutdown
$i
done
;;
start
)
# HELPCMD: start container(s)
LIST
=
$(
get_list
"
$@
"
)
for
i
in
$LIST
;
do
info
"Starting
$i
..."
docmd pct start
$i
done
;;
restart
)
# HELPCMD: restart container(s)
LIST
=
$(
get_list
"
$@
"
)
for
i
in
$LIST
;
do
info
"Restarting
$i
..."
docmd pct reboot
$i
done
;;
suspend
)
# HELPCMD: suspend container(s)
LIST
=
$(
get_list
"
$@
"
)
for
i
in
$LIST
;
do
info
"Suspening
$i
..."
docmd pct
suspend
$i
done
;;
resume
)
# HELPCMD: resume container(s)
LIST
=
$(
get_list
"
$@
"
)
for
i
in
$LIST
;
do
info
"Suspening
$i
..."
docmd pct resume
$i
done
;;
list|ps
)
# HELPCMD: list available container(s) (use -q|-1 for list only ID, list -a for list ever stopped containers)
# if -q, just id list
if
[
-z
"
$verbose
"
]
||
[
"
$1
"
=
"-1"
]
||
[
"
$1
"
=
"-q"
]
;
then
[
-z
"
$verbose
"
]
||
shift
get_list
"
$@
"
exit
fi
docmd pct list
"
$@
"
#info "See evz ports ID for print ports"
;;
exec
)
# HELPCMD: execute command by list (all for all containers)
INCMD
=
"
$1
"
shift
LIST
=
$(
get_list
"
$@
"
)
for
i
in
$LIST
;
do
docmd pct
exec
"
$i
"
"
$INCMD
"
done
;;
enter
)
# HELPCMD: enter in a container with ID
docmd pct enter
"
$1
"
#a= docker exec -ti $SETLANG "$1" bash
;;
log|logs
)
# HELPCMD: print container log
todo docmd docker logs
"
$1
"
;;
info
)
# HELPCMD: print containers(s) info (vzlist like)
LIST
=
$(
get_list
"
$@
"
)
#showcmd docker ps --format 'table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}\t{{.Size}}'
#a= docker ps --format 'table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}\t{{.Size}}' "$@"
for
i
in
$LIST
;
do
# a= docker ps --format 'table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}\t{{.Size}}' "$@"
#info "Executing on $i ..."
#printf "%3d: %s" $i "$(vzctl exec $i "$INCMD")"
#vzctl exec $i "$INCMD" | sed -e "s|^|$(printf "%3d: " $i)|g"
#vzctl exec $i "$INCMD"
# TODO: internal IP, red if internal hostname differs
#vzlist $LIST -o ctid,ip,hostname,diskspace
docmd pct config
$i
done
#info "See evz ports ID for print ports"
;;
load
)
# HELPCMD: print load average for container(s) by list
todo load
#for id in $(get_list "$@") ; do
# HN=$(a= docker inspect --format '{{.Name}}' $id)
# CPU=$(a= docker stats --no-stream --format " {{.CPUPerc}}" $id)
# printf "%4s (%30s): %6s\n" $id $HN $CPU
#done
;;
check
)
# HELPCMD: check system
todo pveversion
-v
;;
destroy
)
# HELPCMD: destroy container(s) by list
echo
"You request to destroy follow containers:"
# don't support all/ALL
#LIST=$(get_list "$@")
LIST
=
"
$@
"
echo
"
$LIST
"
#local response
read
-r
-p
"Are you sure? [Yes/No]"
response
[
"
$response
"
=
"Yes"
]
||
fatal
"Have no receive your accept."
for
i
in
$LIST
;
do
info
"Stopping
$i
..."
#docmd qm stop $i
docmd pct destroy
$i
done
;;
*
)
fatal
"Unknow command '
$CMD
'. Use --help to get help."
;;
esac
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment