Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
etersoft-admin-essentials
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
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
etersoft-admin-essentials
Commits
6fdef612
Commit
6fdef612
authored
Jul 19, 2023
by
Vitaly Lipatov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
azbyka: add migrate scripts
parent
84d9a7dc
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
389 additions
and
0 deletions
+389
-0
migrate_container_to_a01.sh
vz/azbyka/migrate_container_to_a01.sh
+40
-0
migrate_site_to_a01.sh
vz/azbyka/migrate_site_to_a01.sh
+129
-0
migrate_to_a01-hosts.sh
vz/azbyka/migrate_to_a01-hosts.sh
+43
-0
migrate_to_a01-upstream.sh
vz/azbyka/migrate_to_a01-upstream.sh
+48
-0
migrate_to_a01.sh
vz/azbyka/migrate_to_a01.sh
+89
-0
run_custom_command.sh
vz/azbyka/run_custom_command.sh
+34
-0
update_cache.sh
vz/azbyka/update_cache.sh
+6
-0
No files found.
vz/azbyka/migrate_container_to_a01.sh
0 → 100755
View file @
6fdef612
#!/bin/sh -x
CONT
=
"
$1
"
FROM
=
"a06"
IP
=
"65.109.33.78"
subst
()
{
sed
-i
-e
"
$@
"
}
rsync
-av
--progress
--delete-after
--numeric-ids
$FROM
:/var/local/
$CONT
/ /var/local/
$CONT
/
ssh
$FROM
docker commit
$CONT
$CONT
||
exit
ssh
$FROM
docker save
$CONT
| podman load
||
exit
cd
servers
||
exit
COMPOSOLD
=
$(
echo
services.d/old/
*
$CONT
.yml
)
cp
$COMPOSOLD
services.d/
COMPOS
=
services.d/
$(
basename
$COMPOSOLD
)
[
-s
"
$COMPOS
"
]
||
exit
subst
"s|116.202.174.26|
$IP
|"
$COMPOS
subst
"s|- SYS_ADMIN|- SYS_ADMIN
\n
- CAP_AUDIT_WRITE
\n
- CAP_AUDIT_CONTROL|"
$COMPOS
subst
"s|default:
$|
default|"
$COMPOS
subst
"s|.*ipv4_address:.*||"
$COMPOS
subst
"s|
\(
build: .*
\)
|#
\1\n
image:
$CONT
|"
$COMPOS
./update_compose.sh
||
exit
./rebuild.sh
$CONT
||
exit
ssh
$FROM
evz off
$CONT
vz/azbyka/migrate_site_to_a01.sh
0 → 100755
View file @
6fdef612
#!/bin/sh
# https://bugs.etersoft.ru/show_bug.cgi?id=15796#c13
.
./functions
contexec
()
{
contid
=
"
$1
"
shift
docker
exec
-i
-e
LC_ALL
=
ru_RU.UTF8
"
$contid
"
"
$@
"
}
# contid
run_in_cont
()
{
contid
=
"
$1
"
shift
contexec
"
$contid
"
tee
/tmp/cmd.int.sh
>
/dev/null
contexec
"
$contid
"
bash
-x
/tmp/cmd.int.sh
"
$@
"
</dev/null
contexec
"
$contid
"
rm
-f
/tmp/cmd.int.sh </dev/null
}
PROJ
=
"
$1
"
FROM
=
a07
[
-s
"ves-available/
$PROJ
.task"
]
||
fatal
# Создание ссылки в etersoft-admin-essentials/vz/azbyka/ves для проекта
ln
-s
../ves-available/
$PROJ
.task ves/
load_config
"ves/
$PROJ
.task"
# AUSER - системный пользователь
# NAME - имя проекта (обычно azbyka.ru/проект)
# ACONF - название конфига для nginx и apache (совпадает с пользователем обычно)
# CONT - назание контейнера
CONT
=
$ACONF
if
true
;
then
# Для переноса старых проектов на php7.4
cat
<<
EOF
>>ves-available/
$PROJ
.task
DOCKERIMAGE=azbyka-altlinux-p9-apache2-php7.4
PKGPROFILE="apache2-php7"
EOF
fi
if
true
;
then
# Синхронизация файлов (обязательно перед созданием контейнера, а то туда попадёт старый каталог)
rsync
-av
--progress
--delete-after
--numeric-ids
$FROM
:/azbyka-a07/
$AUSER
/ /azbyka/
$AUSER
/
rm
-vf
/azbyka/
$AUSER
/
{
A06,A07,A05
}
touch
/azbyka/
$AUSER
/A01
fi
# Создание контейнера для обработки запросов
./createbytask.sh
$NAME
||
fatal
if
[
-n
"
$STANDALONE
"
]
;
then
# В evz enter nginx приходится копировать
cat
<<
EOF
| run_in_cont nginx
$NAME
$ACONF
$CONT
NAME="\
$1
"
ACONF="\
$2
"
CONT="\
$3
"
cp /root/a06-nginx/sites-enabled.d/\
$NAME
.conf /etc/nginx/sites-enabled.d/\
$NAME
.conf
cat <<NOF > /etc/nginx/httpconf-enabled.d/upstream_\
$ACONF
.conf
upstream upstream-\
$ACONF
{
server \
$CONT
;
}
NOF
# Также в контейнере nginx
serv nginx test && serv nginx reload
EOF
# Перенос базы (в контейнере mysql)
cat
<<
EOF
| run_in_cont mysql
$PROJ
cd
cd mysqltransfer || exit
./onebutton.sh azbyka_
$AUSER
$ACONF
EOF
else
# В evz enter nginx приходится копировать
cat
<<
EOF
| run_in_cont nginx
$NAME
$ACONF
$CONT
PROJ="\
$1
"
ACONF="\
$2
"
CONT="\
$3
"
cp /root/a06-nginx/sites-enabled.d/azbyka.d/\
$PROJ
.conf /etc/nginx/sites-enabled.d/azbyka.d/\
$PROJ
.conf
cp /root/a06-nginx/sites-enabled.d/azbyka.d/\
$PROJ
-manual.conf /etc/nginx/sites-enabled.d/azbyka.d/\
$PROJ
-manual.conf
cp /root/a06-nginx/include/static-fallback-\
$PROJ
.conf /etc/nginx/include/static-fallback-\
$PROJ
.conf
cat <<NOF > /etc/nginx/httpconf-enabled.d/upstream_\
$ACONF
.conf
upstream upstream-\
$ACONF
{
server \
$CONT
;
}
NOF
# Также в контейнере nginx
serv nginx test && serv nginx reload
EOF
exit
# Перенос базы (в контейнере mysql)
cat
<<
EOF
| run_in_cont mysql
$PROJ
cd
cd mysqltransfer || exit
./onebutton.sh
$ACONF
EOF
fi
# Изменён апстрим на a06
cat
<<
EOF
| ssh a06 tee /etc/nginx/httpconf-enabled.d/upstream_
$ACONF
.conf >/dev/null
upstream upstream-
$ACONF
{
# server a01.azbyka.ru;
server 65.109.33.78;
}
EOF
ssh a06 serv nginx reload
# На a06 старые файлы перенесены в /azbyka.mg, создана ссылка
ssh a06
mv
/azbyka/
$AUSER
/azbyka.mg/
ssh a06
ln
-s
/azbyka-a01/
$AUSER
/azbyka/
$AUSER
echo
"На a06 через https://mysql.azbyka.ru переименовать
$AUSER
в azmg_
$NAME
"
# На a06 останавливаем контейнер
ssh a06 evz off
$ACONF
vz/azbyka/migrate_to_a01-hosts.sh
0 → 100755
View file @
6fdef612
#!/bin/sh
# https://bugs.etersoft.ru/show_bug.cgi?id=15796#c13
.
./functions
contexec
()
{
contid
=
"
$1
"
shift
docker
exec
-i
-e
LC_ALL
=
ru_RU.UTF8
"
$contid
"
"
$@
"
}
# contid
run_in_cont
()
{
contid
=
"
$1
"
shift
contexec
"
$contid
"
tee
/tmp/cmd.int.sh
>
/dev/null
contexec
"
$contid
"
bash
-x
/tmp/cmd.int.sh
"
$@
"
</dev/null
contexec
"
$contid
"
rm
-f
/tmp/cmd.int.sh </dev/null
}
#PROJ="$1"
PROJ
=
"
$(
basename
$1
.task
)
"
[
-s
"ves-available/
$PROJ
.task"
]
||
fatal
load_config
"ves/
$PROJ
.task"
# AUSER - системный пользователь
# NAME - имя проекта (обычно azbyka.ru/проект)
# ACONF - название конфига для nginx и apache (совпадает с пользователем обычно)
# CONT - назание контейнера
CONT
=
$ACONF
# Перенос базы (в контейнере mysql)
cat
<<
EOF
| run_in_cont
$CONT
cat /etc/hosts | sed -e 's|116.202.174.26|172.18.0.3|' > /tmp/hosts.tmp
cat /tmp/hosts.tmp >/etc/hosts
rm /tmp/hosts.tmp
EOF
vz/azbyka/migrate_to_a01-upstream.sh
0 → 100755
View file @
6fdef612
#!/bin/sh
# https://bugs.etersoft.ru/show_bug.cgi?id=15796#c13
.
./functions
contexec
()
{
contid
=
"
$1
"
shift
docker
exec
-i
-e
LC_ALL
=
ru_RU.UTF8
"
$contid
"
"
$@
"
}
# contid
run_in_cont
()
{
contid
=
"
$1
"
shift
contexec
"
$contid
"
tee
/tmp/cmd.int.sh
>
/dev/null
contexec
"
$contid
"
bash
-x
/tmp/cmd.int.sh
"
$@
"
</dev/null
contexec
"
$contid
"
rm
-f
/tmp/cmd.int.sh </dev/null
}
PROJ
=
"
$(
basename
$1
.task
)
"
[
-s
"ves-available/
$PROJ
.task"
]
||
fatal
if
false
;
then
# Для переноса старых проектов на php7.4
cat
<<
EOF
>>ves-available/
$PROJ
.task
DOCKERIMAGE=azbyka-altlinux-p9-apache2-php7.4
PKGPROFILE="apache2-php7"
EOF
fi
# В evz enter nginx приходится копировать
cat
<<
EOF
| run_in_cont nginx
$PROJ
PROJ="\
$1
"
cat <<NOF > /etc/nginx/httpconf-enabled.d/upstream_azbyka_\
$PROJ
.conf
upstream upstream-azbyka_\
$PROJ
{
server azbyka_\
$PROJ
;
}
NOF
EOF
vz/azbyka/migrate_to_a01.sh
0 → 100755
View file @
6fdef612
#!/bin/sh
# https://bugs.etersoft.ru/show_bug.cgi?id=15796#c13
.
./functions
contexec
()
{
contid
=
"
$1
"
shift
docker
exec
-i
-e
LC_ALL
=
ru_RU.UTF8
"
$contid
"
"
$@
"
}
# contid
run_in_cont
()
{
contid
=
"
$1
"
shift
contexec
"
$contid
"
tee
/tmp/cmd.int.sh
>
/dev/null
contexec
"
$contid
"
bash
-x
/tmp/cmd.int.sh
"
$@
"
</dev/null
contexec
"
$contid
"
rm
-f
/tmp/cmd.int.sh </dev/null
}
PROJ
=
"
$1
"
[
-s
"ves-available/
$PROJ
.task"
]
||
fatal
if
false
;
then
# Для переноса старых проектов на php7.4
cat
<<
EOF
>>ves-available/
$PROJ
.task
DOCKERIMAGE=azbyka-altlinux-p9-apache2-php7.4
PKGPROFILE="apache2-php7"
EOF
fi
# Создание ссылки в etersoft-admin-essentials/vz/azbyka/ves для проекта
ln
-s
../ves-available/
$PROJ
.task ves/
# Синхронизация файлов (обязательно перед созданием контейнера, а то туда попадёт старый каталог)
rsync
-av
--progress
--numeric-ids
a06:/azbyka/azbyka_
$PROJ
/ /azbyka/azbyka_
$PROJ
/
rm
-vf
/azbyka/azbyka_
$PROJ
/
{
A06,A07,A05
}
touch
/azbyka/azbyka_
$PROJ
/A01
# Создание контейнера для обработки запросов
./createbytask.sh
$PROJ
||
fatal
# В evz enter nginx приходится копировать
cat
<<
EOF
| run_in_cont nginx
$PROJ
PROJ="\
$1
"
cp /root/a06-nginx/sites-enabled.d/azbyka.d/\
$PROJ
.conf /etc/nginx/sites-enabled.d/azbyka.d/\
$PROJ
.conf
cp /root/a06-nginx/sites-enabled.d/azbyka.d/\
$PROJ
-manual.conf /etc/nginx/sites-enabled.d/azbyka.d/\
$PROJ
-manual.conf
cp /root/a06-nginx/include/static-fallback-\
$PROJ
.conf /etc/nginx/include/static-fallback-\
$PROJ
.conf
cat <<NOF > /etc/nginx/httpconf-enabled.d/upstream_azbyka_\
$PROJ
.conf
upstream upstream-azbyka_\
$PROJ
{
server azbyka_\
$PROJ
;
}
NOF
# Также в контейнере nginx
serv nginx test && serv nginx reload
EOF
# Перенос базы (в контейнере mysql)
cat
<<
EOF
| run_in_cont mysql
$PROJ
cd
cd mysqltransfer || exit
./onebutton.sh azbyka_
$PROJ
EOF
# Изменён апстрим на a06
cat
<<
EOF
| ssh a06 tee /etc/nginx/httpconf-enabled.d/upstream_azbyka_
$PROJ
.conf >/dev/null
upstream upstream-azbyka_
$PROJ
{
# server a01.azbyka.ru;
server 65.109.33.78;
}
EOF
ssh a06 serv nginx reload
# На a06 старые файлы перенесены в /azbyka.mg, создана ссылка
ssh a06
mv
/azbyka/azbyka_
$PROJ
/azbyka.mg/
ssh a06
ln
-s
/azbyka-a01/azbyka_
$PROJ
/azbyka/azbyka_
$PROJ
echo
"На a06 через https://mysql.azbyka.ru переименовать azbyka_
$PROJ
в azmg_
$PROJ
"
# На a06 останавливаем контейнер
ssh a06 evz off azbyka_
$PROJ
vz/azbyka/run_custom_command.sh
0 → 100755
View file @
6fdef612
#!/bin/sh
# https://bugs.etersoft.ru/show_bug.cgi?id=15796#c13
.
./functions
PROJ
=
"
$1
"
[
-s
"ves/
$PROJ
.task"
]
||
PROJ
=
"
$(
basename
"
$1
"
.task
)
"
[
-s
"ves/
$PROJ
.task"
]
||
fatal
load_config
"ves/
$PROJ
.task"
# AUSER - системный пользователь
# NAME - имя проекта (обычно azbyka.ru/проект)
# ACONF - название конфига для nginx и apache (совпадает с пользователем обычно)
# CONT - назание контейнера
CONT
=
$ACONF
cat
<<
EOF
| run_in_cont
$CONT
$NAME
$ACONF
#&& contexec nginx serv nginx reload
NAME="\
$1
"
ACONF="\
$2
"
file=/etc/httpd2/conf/mods-available/remoteip.conf
[ -s "\
$file
" ] || exit 1
grep "
$NGINXIPv6
" \
$file
&& exit 1
subst "s|\(RemoteIPInternalProxy.*\)|\1
$NGINXIPv6
|" \
$file
serv httpd2 restart
EOF
vz/azbyka/update_cache.sh
0 → 100755
View file @
6fdef612
#!/bin/sh -x
# TODO: check -k
T
=
$(
basename
$1
.task
)
/
#T="$1"
curl
-s
-k
-o
/dev/null
-H
"X-Update: 1"
https://azbyka.ru/
$T
curl
-s
-o
/dev/null
-H
"X-Update: 1"
http://azbyka.ru/
$T
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