add new args: reinstall_packages

This commit is contained in:
vvzvlad 2023-04-17 22:39:22 +07:00
parent f8c74022a1
commit c28c504b98
3 changed files with 15 additions and 1 deletions

View File

@ -94,9 +94,10 @@ hwclock --systohc --localtime
--gitea_address http://192.168.1.101:3001/ --gitea_address http://192.168.1.101:3001/
--gitea_token de8a2eaee0d2f27746157c2fd563815f932d671c --gitea_token de8a2eaee0d2f27746157c2fd563815f932d671c
--source_hostname WB2-A3TBJXLS --source_hostname WB2-A3TBJXLS
--reinstall_packages yes
``` ```
Используются те же аргументы, что и в ```install```, но дополнительно еще нужен аругмент ```source_hostname```, который определяет имя контроллера, с которого выполняется бекап. ```device_new_name``` не используется, в качестве имени будет взято имя старого контроллера. Используются те же аргументы, что и в ```install```, но дополнительно еще нужен аругмент ```source_hostname```, который определяет имя контроллера, с которого выполняется бекап. ```device_new_name``` не используется, в качестве имени будет взято имя старого контроллера. Опциональный аргумент ```reinstall_packages``` определяет, надо ли устанавливать пакеты, которые были установлены на старом контроллере.
**Обратите внимание, что после восстановления бекапа на новом контроллере старый контроллер не должен включаться в сеть, иначе произойдет конфликт адресов.** **Обратите внимание, что после восстановления бекапа на новом контроллере старый контроллер не должен включаться в сеть, иначе произойдет конфликт адресов.**

View File

@ -1,4 +1,5 @@
#!/usr/bin/env sh #!/usr/bin/env sh
apt-mark showmanual > /mnt/data/etc/vestasync/packages
echo $(hostname) > /mnt/data/etc/vestasync/hostname echo $(hostname) > /mnt/data/etc/vestasync/hostname
export GIT_AUTHOR_NAME="vestasync_wb_$(hostname)" export GIT_AUTHOR_NAME="vestasync_wb_$(hostname)"
export GIT_COMMITTER_NAME="vestasync_wb_$(hostname)" export GIT_COMMITTER_NAME="vestasync_wb_$(hostname)"
@ -7,3 +8,4 @@ cd /mnt/data/etc/ > /dev/null 2>&1 || true
git add . > /dev/null 2>&1 || true git add . > /dev/null 2>&1 || true
git commit -m "$(date +"%Y-%m-%d %H:%M:%S %z %Z")" > /dev/null 2>&1 || true git commit -m "$(date +"%Y-%m-%d %H:%M:%S %z %Z")" > /dev/null 2>&1 || true
git push -u origin master > /dev/null 2>&1 || true git push -u origin master > /dev/null 2>&1 || true

View File

@ -31,6 +31,7 @@ main_parser.add_argument('--gitea_address', help='Gitea address string', require
main_parser.add_argument('--gitea_token', help='Gitea token', required=True) main_parser.add_argument('--gitea_token', help='Gitea token', required=True)
main_parser.add_argument('--device_ip', help='Device IP(s)', required=True, nargs='+', type=str) main_parser.add_argument('--device_ip', help='Device IP(s)', required=True, nargs='+', type=str)
main_parser.add_argument('--user_cmd', help='User commands file') main_parser.add_argument('--user_cmd', help='User commands file')
main_parser.add_argument('--reinstall_packages', help='Reinstall packages installed on source device')
args = main_parser.parse_known_args() args = main_parser.parse_known_args()
args = args[0] args = args[0]
@ -239,6 +240,13 @@ def save_mac_in_cfg(c):
mac_address = interface["address"] mac_address = interface["address"]
c.run(f"echo {mac_address} > /mnt/data/etc/vestasync/macs/{ifname}") c.run(f"echo {mac_address} > /mnt/data/etc/vestasync/macs/{ifname}")
def save_packages(c):
c.run("apt-mark showmanual > /mnt/data/etc/vestasync/packages")
def install_packages(c):
c.run("xargs -a user_installed_packages.txt apt-get install -y")
def check_vestasync_installed(c): def check_vestasync_installed(c):
vestasync_path = "/mnt/data/etc/vestasync" vestasync_path = "/mnt/data/etc/vestasync"
result = c.run(f"test -d {vestasync_path}", warn=True) result = c.run(f"test -d {vestasync_path}", warn=True)
@ -263,6 +271,7 @@ def device_install(c):
init_repo(c) init_repo(c)
ppush_the_repo(c) ppush_the_repo(c)
save_mac_in_cfg(c) save_mac_in_cfg(c)
save_packages(c)
hostname = save_hostname(c) hostname = save_hostname(c)
copy_wb_rule(c) copy_wb_rule(c)
ppush_the_repo(c) ppush_the_repo(c)
@ -298,6 +307,8 @@ def device_restore():
git_clone(c) git_clone(c)
copy_etc(c) copy_etc(c)
restore_hostname(c) restore_hostname(c)
if args.reinstall_packages is not None:
install_packages(c)
ppush_the_repo(c) ppush_the_repo(c)
create_autogit_systemd(c) create_autogit_systemd(c)
create_automac_systemd(c) create_automac_systemd(c)