Много доработок и исправлений.
This commit is contained in:
		
							parent
							
								
									a9b22efe26
								
							
						
					
					
						commit
						72845a2864
					
				| 
						 | 
					@ -2,5 +2,6 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Подробная инструкция по чистой установке и настройке Астра линукс на рабочие ПК, по работе со скриптом для установки ПО на ПК после нулевой установки Astra linux.
 | 
					Подробная инструкция по чистой установке и настройке Астра линукс на рабочие ПК, по работе со скриптом для установки ПО на ПК после нулевой установки Astra linux.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[Описание установки софта в Astra linux CE 2.12.46](alce-2.12.46-install-soft.md)
 | 
					[Описание установки софта в Astra linux SE 1.7.5.9](alse-1.7.5.9-install-soft.md)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Описание установки софта в Astra linux CE 2.12.46](alce-2.12.46-install-soft.md)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,13 +14,15 @@
 | 
				
			||||||
`cd ~/installSoft`
 | 
					`cd ~/installSoft`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Выполняем клонирование данного репозитория:
 | 
					Выполняем клонирование данного репозитория:
 | 
				
			||||||
`git clone <тут вставь ссылку этого репозитория>`
 | 
					`git clone http://77.242.0.227:8080/Zhebrikov/install-soft-on-Astra-linux.git`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Когда все откопируется, выполняем команду:
 | 
					Когда все откопируется, выполняем команду:
 | 
				
			||||||
`python3 ~/installSoft/install.py`
 | 
					`python3 ~/installSoft/install.py`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Заметки:
 | 
					Заметки:\
 | 
				
			||||||
Устанавливаем Python 3.7
 | 
					Проверяем установлен ли Python 3.7 командой
 | 
				
			||||||
 | 
					`python3 --version`
 | 
				
			||||||
 | 
					если версия Pyhon 3.7 и выше, то работаем дальше. Если ниже, то устанавливаем свежую версию. Команду пропишу позже.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
В питон устанавливаем venv:
 | 
					В питон устанавливаем venv:
 | 
				
			||||||
`sudo apt-get install python3.7-venv`
 | 
					`sudo apt-get install python3.7-venv`
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,20 @@
 | 
				
			||||||
 | 
					# Python скрипт по установке ПО на Astra Linux CE 2.12.46
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Подробная инструкция по работе со скриптом для установки ПО на рабочие ПК после нулевой установки Astra linux SE 1.7.5.9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Устанавливаем в систему утилиту git:\
 | 
				
			||||||
 | 
					`sudo apt intall -y git`\
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					После успешной установки гита делаем клон этого репозитория в отдельную папку в домашнем каталоге пользователя. Но делаем все уже под рутом. (Команду вспомни сам!)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Для этого создаем себе удобную папку:\
 | 
				
			||||||
 | 
					`mkdir ~/installSoft`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Переходим в нее:\
 | 
				
			||||||
 | 
					`cd ~/installSoft`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Выполняем клонирование данного репозитория:\
 | 
				
			||||||
 | 
					`git clone http://77.242.0.227:8080/Zhebrikov/install-soft-on-Astra-linux.git`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Когда все откопируется, выполняем команду:\
 | 
				
			||||||
 | 
					`python3 ~/installSoft/install.py`
 | 
				
			||||||
							
								
								
									
										323
									
								
								install.py
								
								
								
								
							
							
						
						
									
										323
									
								
								install.py
								
								
								
								
							| 
						 | 
					@ -2,31 +2,41 @@ import subprocess, os
 | 
				
			||||||
import sys, time
 | 
					import sys, time
 | 
				
			||||||
#from colorama import Fore, Style
 | 
					#from colorama import Fore, Style
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#вывод на экран меню работы программы
 | 
				
			||||||
def display_menu():
 | 
					def display_menu():
 | 
				
			||||||
    ml_text = """
 | 
					    ml_text = """
 | 
				
			||||||
Меню:
 | 
					\n    
 | 
				
			||||||
1. Установка базового набора пакетов.
 | 
					************** МЕНЮ: **************************
 | 
				
			||||||
2. Установка Крипто-ПРО и сопуствующих дополнений.
 | 
					0. Инициализация свежей системы и ее обновление.
 | 
				
			||||||
3. Прописка в профиль пользователя сетевых папок
 | 
					1. Установить SNAP и SNAP-STORE (стараемся не использовать)
 | 
				
			||||||
4. Выполнение произвольной команды bash/sh с отображением вывода.
 | 
					2. Установить FLATPAK и его родное GUI.
 | 
				
			||||||
 | 
					3. Установка базового набора пакетов (сеть).
 | 
				
			||||||
 | 
					4. Установка Крипто-ПРО и сопуствующих дополнений.
 | 
				
			||||||
 | 
					5. Прописка в профиль пользователя сетевых папок (смертным)
 | 
				
			||||||
 | 
					6. Прописка в профиль пользователя сетевых папок (избранным)
 | 
				
			||||||
 | 
					C. Выполнение произвольной команды bash/sh с отображением вывода.
 | 
				
			||||||
Q. Завершение работы программы
 | 
					Q. Завершение работы программы
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
    print(ml_text)
 | 
					    print(ml_text)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#запуск любой консольной bash команды из скрипта Python
 | 
				
			||||||
def execute_command(command):
 | 
					def execute_command(command):
 | 
				
			||||||
    result = subprocess.run(command, shell=True, check=True, stdout=subprocess.PIPE, universal_newlines=True)
 | 
					    result = subprocess.run(command, shell=True, check=True, stdout=subprocess.PIPE, universal_newlines=True)
 | 
				
			||||||
    return result.stdout
 | 
					    return result.stdout
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#имитация живого ввода текста при выводе его на печать
 | 
				
			||||||
def live_print(text):
 | 
					def live_print(text):
 | 
				
			||||||
    for text_symbol in text:
 | 
					    for text_symbol in text:
 | 
				
			||||||
        #Fore.GREEN
 | 
					        #Fore.GREEN
 | 
				
			||||||
        sys.stdout.write(text_symbol)
 | 
					        sys.stdout.write(text_symbol)
 | 
				
			||||||
        sys.stdout.flush()
 | 
					        sys.stdout.flush()
 | 
				
			||||||
        time.sleep(0.03)  # Задержка между символами
 | 
					        time.sleep(0.03)  # Задержка между символами
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    print()  # Переход на новую строку после завершения печати
 | 
					    print()  # Переход на новую строку после завершения печати
 | 
				
			||||||
    #Style.RESET_ALL
 | 
					    #Style.RESET_ALL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#подключение в папку рута, папки ArmInstall
 | 
				
			||||||
def mount_ArmInstall():
 | 
					def mount_ArmInstall():
 | 
				
			||||||
    if os.path.exists('~/ArmInstall'):
 | 
					    if os.path.exists('~/ArmInstall'):
 | 
				
			||||||
        live_print("Тэкс... папка ArmInstall  у нас есть... \n")
 | 
					        live_print("Тэкс... папка ArmInstall  у нас есть... \n")
 | 
				
			||||||
| 
						 | 
					@ -45,12 +55,68 @@ def mount_ArmInstall():
 | 
				
			||||||
        execute_command('mount -t cifs //192.168.2.4/distributiv/ArmAstraInstall ~/ArmInstall -o username=admincsm,password=yacsmQAZ,domain=YACSM,iocharset=utf8,file_mode=0777,dir_mode=0777,vers=1.0 --verbose')
 | 
					        execute_command('mount -t cifs //192.168.2.4/distributiv/ArmAstraInstall ~/ArmInstall -o username=admincsm,password=yacsmQAZ,domain=YACSM,iocharset=utf8,file_mode=0777,dir_mode=0777,vers=1.0 --verbose')
 | 
				
			||||||
        live_print("Готов и этот шаг. \n")
 | 
					        live_print("Готов и этот шаг. \n")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#отключение папки ArmInstall 
 | 
				
			||||||
def umount_ArmInstall():
 | 
					def umount_ArmInstall():
 | 
				
			||||||
    if os.path.exists('~/ArmInstall'):
 | 
					    if os.path.exists('~/ArmInstall'):
 | 
				
			||||||
        execute_command('umount ~/ArmInstall')
 | 
					        execute_command('umount ~/ArmInstall')
 | 
				
			||||||
        execute_command('rm -r ~/ArmInstall')
 | 
					        execute_command('rm -r ~/ArmInstall')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#обновление системы до последнего актуального состояния
 | 
				
			||||||
 | 
					def update_system():
 | 
				
			||||||
 | 
					    #очищаем файл репозиториев
 | 
				
			||||||
 | 
					    execute_command('> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    #вносим в файл репозиториев только то, что нам нужно
 | 
				
			||||||
 | 
					    execute_command('echo -e "\n# Заблокировать cd и разблокировать остальные, а так же дописать:> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('echo -e "\n# Astra Linux repository description https://wiki.astralinux.ru/x/0oLiC> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('echo -e "\n "> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('echo -e "\n#deb cdrom:[OS Astra Linux 1.7.1 1.7_x86-64 DVD ]/ 1.7_x86-64 contrib main non-free"> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('echo -e "\n# Основной репозиторий> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('echo -e "\ndeb http://download.astralinux.ru/astra/stable/1.7_x86-64/repository-main/ 1.7_x86-64 main contrib non-free"> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('echo -e "\n "> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('echo -e "\n# Оперативные обновления основного репозитория"> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('echo -e "\ndeb http://download.astralinux.ru/astra/stable/1.7_x86-64/repository-update/ 1.7_x86-64 main contrib non-free"> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('echo -e "\n "> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('echo -e "\n# Базовый репозиторий"> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('echo -e "\ndeb http://download.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free"> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('echo -e "\n "> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('echo -e "\n# Расширенный репозиторий"> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('echo -e "\ndeb http://download.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free"> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('echo -e "\n "> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('echo -e "\n# Расширенный репозиторий (компонент astra-ce) - используется при необходимости в установке дополнительного ПО, которое не прошло сертификацию!"> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('echo -e "\ndeb http://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 astra-ce"> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    #execute_command('> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    execute_command('apt install -y apt-transport-https ca-certificates')
 | 
				
			||||||
 | 
					    execute_command('apt-get update')
 | 
				
			||||||
 | 
					    execute_command('apt-get dist-upgrade')
 | 
				
			||||||
 | 
					    execute_command('apt-get full-upgrade')
 | 
				
			||||||
 | 
					    execute_command('astra-update -r -A')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #обновим и установим пакет libc6*
 | 
				
			||||||
 | 
					    execute_command('apt-get -t install -y libc6')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #Установим свежие драйвера под интеловские чипы
 | 
				
			||||||
 | 
					    execute_command('apt-get install -y intel-microcode')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    live_print("Система обновлена. Сейчас делаем перезагрузку для применения результатов. \n")
 | 
				
			||||||
 | 
					    live_print("После перезагрузки запустите скрипт заново и продолжите установку. \n")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    execute_command('reboot')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#Установка SNAP в Астра линукс
 | 
				
			||||||
def install_snap():
 | 
					def install_snap():
 | 
				
			||||||
 | 
					    #добавим в список дистрибутивов новый дебиановкий репозиторий
 | 
				
			||||||
 | 
					    execute_command('echo -e "\ndeb [trusted=yes] https://mirror.yandex.ru/debian/ buster main contrib non-free"  >> /etc/apt/sources.list')
 | 
				
			||||||
 | 
					    execute_command('gpg --keyserver keyserver.ubuntu.com --recv-key 648ACFD622F3D138')
 | 
				
			||||||
 | 
					    execute_command('gpg -a --export 648ACFD622F3D138 | sudo apt-key add - ')
 | 
				
			||||||
 | 
					    execute_command('gpg --keyserver keyserver.ubuntu.com --recv-key 0E98404D386FA1D9')
 | 
				
			||||||
 | 
					    execute_command('gpg -a --export 0E98404D386FA1D9 | sudo apt-key add - ')
 | 
				
			||||||
 | 
					    execute_command('gpg --keyserver keyserver.ubuntu.com --recv-key DCC9EFBF77E11517')
 | 
				
			||||||
 | 
					    execute_command('gpg -a --export DCC9EFBF77E11517 | sudo apt-key add - ')
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					    #обновим списки пакетов
 | 
				
			||||||
 | 
					    execute_command('apt update')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #теперь установим snap
 | 
					    #теперь установим snap
 | 
				
			||||||
    execute_command('apt install snapd')
 | 
					    execute_command('apt install snapd')
 | 
				
			||||||
    execute_command('sudo ln -s /var/lib/snapd/snap /snap')
 | 
					    execute_command('sudo ln -s /var/lib/snapd/snap /snap')
 | 
				
			||||||
| 
						 | 
					@ -64,11 +130,116 @@ def install_snap():
 | 
				
			||||||
    #следом установим snap-store
 | 
					    #следом установим snap-store
 | 
				
			||||||
    execute_command('snap install snap-store')
 | 
					    execute_command('snap install snap-store')
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					#установка FLATPAK в Астра линукс    
 | 
				
			||||||
 | 
					def install_flatpak():
 | 
				
			||||||
 | 
					    #установка flatpak в систему
 | 
				
			||||||
 | 
					    execute_command('apt install -y flatpack')
 | 
				
			||||||
 | 
					    #добавляем в систему репозиторий пакетов flatpak
 | 
				
			||||||
 | 
					    execute_command('flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo') 
 | 
				
			||||||
 | 
					    execute_command('apt install -y plasma-discover-backend-flatpak')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#установка базового набора ПО для работы пользователей
 | 
				
			||||||
 | 
					def install_base_pack_soft():
 | 
				
			||||||
 | 
					    print(" \n \n")
 | 
				
			||||||
 | 
					    ml_text = """
 | 
				
			||||||
 | 
					Сейчас начнется установка базового набора пакетов.
 | 
				
			||||||
 | 
					Во время установки пакетов, настоятельно рекомендую отложить какие-либо действия на данном ПК.
 | 
				
			||||||
 | 
					Так же рекомендую НЕ производить никаких манипуляций в консоли Linux.
 | 
				
			||||||
 | 
					Как писали на экранах классики длинных установок: Откиньтесь на спинку кресла и наслаждайтесь любимым напитком, 
 | 
				
			||||||
 | 
					пока мы делаем вашу жизнь лугче и лучше.
 | 
				
			||||||
 | 
					ПРОСЬБА: Дождаться завершения установки и вывода начального меню программы. \n
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    live_print(ml_text)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #примонтируем папку с пакетами установки
 | 
				
			||||||
 | 
					    mount_ArmInstall()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if os.path.exists('~/ArmInstall/base'):       
 | 
				
			||||||
 | 
					        # проверить установлены ли уже пакеты из списке и если нет, то ...
 | 
				
			||||||
 | 
					        # установить набор пакетов который находится в этой папке
 | 
				
			||||||
 | 
					        live_print("Ну что же, начинаем проверку системы и установку пакетов.... \n")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #MyChat
 | 
				
			||||||
 | 
					        if execute_command('dpkg -l | grep mychatclient').strip() != None:
 | 
				
			||||||
 | 
					            # вернулось пустое значение, значит ставим пакет
 | 
				
			||||||
 | 
					            live_print("Устанавливаем MyChat... \n")
 | 
				
			||||||
 | 
					            execute_command('dpkg -i ~/ArmInstall/base/mychatclient-8.14.deb')
 | 
				
			||||||
 | 
					            live_print("MyChat установлен. \n")
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            live_print("Пакет MyChat уже установлен, пропускаем... \n") 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #OnlyOffice-desktopeditors
 | 
				
			||||||
 | 
					        if execute_command('dpkg -l | grep OnlyOffice-desktopeditors').strip() != None:
 | 
				
			||||||
 | 
					            # вернулось пустое значение, значит ставим пакет
 | 
				
			||||||
 | 
					            live_print("Устанавливаем OnlyOffice... \n")
 | 
				
			||||||
 | 
					            execute_command('dpkg -i ~/ArmInstall/base/onlyoffice-desktopeditors-amd64.deb')
 | 
				
			||||||
 | 
					            live_print("OnlyOffice установлен. \n")
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            live_print("Пакет OnlyOffice уже установлен, пропускаем... \n") 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #RealVNCServer-5.0.4-amd64.deb
 | 
				
			||||||
 | 
					        if execute_command('dpkg -l | grep realvnc-vnc-server').strip() != None:
 | 
				
			||||||
 | 
					            # вернулось пустое значение, значит ставим пакет
 | 
				
			||||||
 | 
					            live_print("Устанавливаем RealVNC Server... \n")
 | 
				
			||||||
 | 
					            execute_command('dpkg -i ~/ArmInstall/base/RealVNCServer-5.0.4-amd64.deb')
 | 
				
			||||||
 | 
					            execute_command('vnclicense -add B6BNH-A4ASK-VCEQC-6Z49E-PCT6A')
 | 
				
			||||||
 | 
					            live_print("RealVNC Server установлен. \n")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            execute_command('dpkg -i ~/ArmInstall/base/RealVNCViewer-5.0.4-amd64.deb')
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            live_print("Пакет RealVNC Server уже установлен, пропускаем... \n") 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #yandex-browser-corp
 | 
				
			||||||
 | 
					        if execute_command('dpkg -l | grep yandex-browser-stable').strip() != None:
 | 
				
			||||||
 | 
					            # вернулось пустое значение, значит ставим пакет
 | 
				
			||||||
 | 
					            live_print("Устанавливаем Яндекс.Браузер... \n")
 | 
				
			||||||
 | 
					            execute_command('dpkg -i ~/ArmInstall/base/yandex-browser-corp.deb')
 | 
				
			||||||
 | 
					            live_print("Яндекс.Браузер установлен. \n")
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            live_print("Пакет Яндекс.Браузер уже установлен, пропускаем... \n") 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #1C-Thin-client
 | 
				
			||||||
 | 
					        if execute_command('dpkg -l | grep 1c-enterprise-8.3.22.2106-thin-client').strip() != None:
 | 
				
			||||||
 | 
					            # вернулось пустое значение, значит ставим пакет
 | 
				
			||||||
 | 
					            live_print("Устанавливаем тонкого клиента 1С... \n")
 | 
				
			||||||
 | 
					            execute_command('dpkg -i ~/ArmInstall/base/1c-thinclient-8.3.22.2106-amd64.deb')
 | 
				
			||||||
 | 
					            live_print("Тонкий клиент 1С установлен. \n")
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            live_print("Пакет тонкого клиента 1С уже установлен, пропускаем.... \n") 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # теперь добавим чат и vncserver в автозагрузку
 | 
				
			||||||
 | 
					    if os.path.exists('/home/admincsm/.config/autostart/mychatclient.desktop') == False :
 | 
				
			||||||
 | 
					        live_print("Копируем ярлыки автозапуска чата и vnc в автозагрузку.... \n") 
 | 
				
			||||||
 | 
					        execute_command('cp -rT /root/ArmInstall/autostart /home/admincsm/.config/autostart/')
 | 
				
			||||||
 | 
					        live_print("Автозагрузка прописана. \n") 
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        live_print("В автозагрузку добавлять ничего не надо. Все уже на месте. \n")     
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    umount_ArmInstall()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#установка Крипто-ПРО 5 версии.
 | 
				
			||||||
 | 
					def install_cryptopro():
 | 
				
			||||||
 | 
					    live_print("Приступаем к установке Крипто-ПРО 5.0 \n")
 | 
				
			||||||
 | 
					    mount_ArmInstall()
 | 
				
			||||||
 | 
					    execute_command('cd ~/ArmInstall/CryptoPro/cryptopro5-unpacked-amd64')
 | 
				
			||||||
 | 
					    execute_command('./install_gui.sh')
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    live_print("Крипто-ПРО 5.0 установили. \n")
 | 
				
			||||||
 | 
					    live_print("Теперь приступим к установке Cades-Plugin для работы в браузере. \n")
 | 
				
			||||||
 | 
					    execute_command('cd ~/ArmInstall/CryptoPro/cades-plugin-amd64')
 | 
				
			||||||
 | 
					    execute_command('dpkg -i cprocsp-pki-cades-64_2.0.14892-1_amd64.deb')
 | 
				
			||||||
 | 
					    execute_command('dpkg -i cprocsp-pki-plugin-64_2.0.14892-1_amd64.deb')
 | 
				
			||||||
 | 
					    live_print("Cades-Plugin для работы в браузере установлен. \n")
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    live_print("Теперь не забудь прописать лицензию в КриптоПРО 5 и перезагрузить ПК. \n")
 | 
				
			||||||
 | 
					    umount_ArmInstall()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
def main():
 | 
					def main():
 | 
				
			||||||
    while True:
 | 
					    while True:
 | 
				
			||||||
        live_print("Привет! Добро пожаловать в программу упрощения жизни начинающего Linux админа. \n \n")
 | 
					        live_print("Привет! Добро пожаловать в программу упрощения жизни начинающего Linux админа. \n \n")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #если запущено не из под рута - шлем в лес!
 | 
				
			||||||
        if int(execute_command('id -u').strip()) != 0:
 | 
					        if int(execute_command('id -u').strip()) != 0:
 | 
				
			||||||
            #print(execute_command('id -u'))
 | 
					            #print(execute_command('id -u'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -83,141 +254,45 @@ def main():
 | 
				
			||||||
            live_print("Пока. \n \n")
 | 
					            live_print("Пока. \n \n")
 | 
				
			||||||
            break
 | 
					            break
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #показываем меню выбора
 | 
				
			||||||
        display_menu()
 | 
					        display_menu()
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        choice = input("Выберите нужное действие (1/2/3... и т.д.): \n")
 | 
					        choice = input("Выберите нужное действие (от 0.. до 4.. или Q и т.д.): \n")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if choice == "1":
 | 
					        if choice == "0":
 | 
				
			||||||
            print(" \n \n")
 | 
					            update_system()
 | 
				
			||||||
            ml_text = """
 | 
					 | 
				
			||||||
Сейчас начнется установка базового набора пакетов.
 | 
					 | 
				
			||||||
Во время установки пакетов, настоятельно рекомендую отложить какие-либо действия на данном ПК.
 | 
					 | 
				
			||||||
Так же рекомендую НЕ производить никаких манипуляций в консоли Linux.
 | 
					 | 
				
			||||||
Как писали на экранах классики длинных установок: Откиньтесь на спинку кресла и наслаждайтесь любимым напитком, 
 | 
					 | 
				
			||||||
пока мы делаем вашу жизнь лугче и лучше.
 | 
					 | 
				
			||||||
ПРОСЬБА: Дождаться завершения установки и вывода начального меню программы. \n
 | 
					 | 
				
			||||||
            """
 | 
					 | 
				
			||||||
            live_print(ml_text)
 | 
					 | 
				
			||||||
            # дальше нам нужно в домашнем каталоге пользователя создать папку ArmInstall
 | 
					 | 
				
			||||||
            #
 | 
					 | 
				
			||||||
            #добавим в список дистрибутивов новый дебиановкий репозиторий
 | 
					 | 
				
			||||||
            execute_command('echo -e "\ndeb [trusted=yes] https://mirror.yandex.ru/debian/ buster main contrib non-free"  >> /etc/apt/sources.list')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            execute_command('gpg --keyserver keyserver.ubuntu.com --recv-key 648ACFD622F3D138')
 | 
					 | 
				
			||||||
            execute_command('gpg -a --export 648ACFD622F3D138 | sudo apt-key add - ')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            execute_command('gpg --keyserver keyserver.ubuntu.com --recv-key 0E98404D386FA1D9')
 | 
					 | 
				
			||||||
            execute_command('gpg -a --export 0E98404D386FA1D9 | sudo apt-key add - ')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            execute_command('gpg --keyserver keyserver.ubuntu.com --recv-key DCC9EFBF77E11517')
 | 
					 | 
				
			||||||
            execute_command('gpg -a --export DCC9EFBF77E11517 | sudo apt-key add - ')
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            #обновим списки пакетов
 | 
					 | 
				
			||||||
            execute_command('apt update')
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            #обновим и установим пакет libc6*
 | 
					 | 
				
			||||||
            execute_command('apt-get -t buster install libc6')
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            #Установим свежие драйвера под интеловские чипы
 | 
					 | 
				
			||||||
            execute_command('apt-get install -y intell-microcode')
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        elif choice == "1":
 | 
				
			||||||
            #установим snap
 | 
					            #установим snap
 | 
				
			||||||
            install_snap()
 | 
					            install_snap()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            #execute_command('')
 | 
					 | 
				
			||||||
            #execute_command('')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            #примонтируем папку с пакетами установки
 | 
					 | 
				
			||||||
            mount_ArmInstall()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if os.path.exists('~/ArmInstall/base'):       
 | 
					 | 
				
			||||||
                # проверить установлены ли уже пакеты из списке и если нет, то ...
 | 
					 | 
				
			||||||
                # установить набор пакетов который находится в этой папке
 | 
					 | 
				
			||||||
                live_print("Ну что же, начинаем проверку системы и установку пакетов.... \n")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                #MyChat
 | 
					 | 
				
			||||||
                if execute_command('dpkg -l | grep mychatclient').strip() != None:
 | 
					 | 
				
			||||||
                    # вернулось пустое значение, значит ставим пакет
 | 
					 | 
				
			||||||
                    live_print("Устанавливаем MyChat... \n")
 | 
					 | 
				
			||||||
                    execute_command('dpkg -i ~/ArmInstall/base/mychatclient-8.14.deb')
 | 
					 | 
				
			||||||
                    live_print("MyChat установлен. \n")
 | 
					 | 
				
			||||||
                else:
 | 
					 | 
				
			||||||
                    live_print("Пакет MyChat уже установлен, пропускаем... \n") 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                #OnlyOffice-desktopeditors
 | 
					 | 
				
			||||||
                if execute_command('dpkg -l | grep OnlyOffice-desktopeditors').strip() != None:
 | 
					 | 
				
			||||||
                    # вернулось пустое значение, значит ставим пакет
 | 
					 | 
				
			||||||
                    live_print("Устанавливаем OnlyOffice... \n")
 | 
					 | 
				
			||||||
                    execute_command('dpkg -i ~/ArmInstall/base/onlyoffice-desktopeditors-amd64.deb')
 | 
					 | 
				
			||||||
                    live_print("OnlyOffice установлен. \n")
 | 
					 | 
				
			||||||
                else:
 | 
					 | 
				
			||||||
                    live_print("Пакет OnlyOffice уже установлен, пропускаем... \n") 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                #RealVNCServer-5.0.4-amd64.deb
 | 
					 | 
				
			||||||
                if execute_command('dpkg -l | grep realvnc-vnc-server').strip() != None:
 | 
					 | 
				
			||||||
                    # вернулось пустое значение, значит ставим пакет
 | 
					 | 
				
			||||||
                    live_print("Устанавливаем RealVNC Server... \n")
 | 
					 | 
				
			||||||
                    execute_command('dpkg -i ~/ArmInstall/base/RealVNCServer-5.0.4-amd64.deb')
 | 
					 | 
				
			||||||
                    execute_command('vnclicense -add B6BNH-A4ASK-VCEQC-6Z49E-PCT6A')
 | 
					 | 
				
			||||||
                    live_print("RealVNC Server установлен. \n")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    execute_command('dpkg -i ~/ArmInstall/base/RealVNCViewer-5.0.4-amd64.deb')
 | 
					 | 
				
			||||||
                else:
 | 
					 | 
				
			||||||
                    live_print("Пакет RealVNC Server уже установлен, пропускаем... \n") 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                #yandex-browser-corp
 | 
					 | 
				
			||||||
                if execute_command('dpkg -l | grep yandex-browser-stable').strip() != None:
 | 
					 | 
				
			||||||
                    # вернулось пустое значение, значит ставим пакет
 | 
					 | 
				
			||||||
                    live_print("Устанавливаем Яндекс.Браузер... \n")
 | 
					 | 
				
			||||||
                    execute_command('dpkg -i ~/ArmInstall/base/yandex-browser-corp.deb')
 | 
					 | 
				
			||||||
                    live_print("Яндекс.Браузер установлен. \n")
 | 
					 | 
				
			||||||
                else:
 | 
					 | 
				
			||||||
                    live_print("Пакет Яндекс.Браузер уже установлен, пропускаем... \n") 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                #1C-Thin-client
 | 
					 | 
				
			||||||
                if execute_command('dpkg -l | grep 1c-enterprise-8.3.22.2106-thin-client').strip() != None:
 | 
					 | 
				
			||||||
                    # вернулось пустое значение, значит ставим пакет
 | 
					 | 
				
			||||||
                    live_print("Устанавливаем тонкого клиента 1С... \n")
 | 
					 | 
				
			||||||
                    execute_command('dpkg -i ~/ArmInstall/base/1c-thinclient-8.3.22.2106-amd64.deb')
 | 
					 | 
				
			||||||
                    live_print("Тонкий клиент 1С установлен. \n")
 | 
					 | 
				
			||||||
                else:
 | 
					 | 
				
			||||||
                    live_print("Пакет тонкого клиента 1С уже установлен, пропускаем.... \n") 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # теперь добавим чат и vncserver в автозагрузку
 | 
					 | 
				
			||||||
            if os.path.exists('/home/admincsm/.config/autostart/mychatclient.desktop') == False :
 | 
					 | 
				
			||||||
                live_print("Копируем ярлыки автозапуска чата и vnc в автозагрузку.... \n") 
 | 
					 | 
				
			||||||
                execute_command('cp -rT /root/ArmInstall/autostart /home/admincsm/.config/autostart/')
 | 
					 | 
				
			||||||
                live_print("Автозагрузка прописана. \n") 
 | 
					 | 
				
			||||||
            else:
 | 
					 | 
				
			||||||
                live_print("В автозагрузку добавлять ничего не надо. Все уже на месте. \n")     
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            umount_ArmInstall()
 | 
					 | 
				
			||||||
            # конец 1 шага. Установка пакета софта завершена.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        elif choice == "2":    
 | 
					        elif choice == "2":    
 | 
				
			||||||
            live_print("Приступаем к установке Крипто-ПРО 5.0 \n")
 | 
					            #установим flatpak
 | 
				
			||||||
            #./install_gui.sh
 | 
					            install_flatpak()
 | 
				
			||||||
            mount_ArmInstall()
 | 
					 | 
				
			||||||
            execute_command('cd ~/ArmInstall/CryptoPro/cryptopro5-unpacked-amd64')
 | 
					 | 
				
			||||||
            execute_command('./install_gui.sh')
 | 
					 | 
				
			||||||
            live_print("Крипто-ПРО 5.0 установили. \n")
 | 
					 | 
				
			||||||
            live_print("Теперь приступим к установке Cades-Plugin для работы в браузере. \n")
 | 
					 | 
				
			||||||
            execute_command('cd ~/ArmInstall/CryptoPro/cades-plugin-amd64')
 | 
					 | 
				
			||||||
            execute_command('dpkg -i cprocsp-pki-cades-64_2.0.14892-1_amd64.deb')
 | 
					 | 
				
			||||||
            execute_command('dpkg -i cprocsp-pki-plugin-64_2.0.14892-1_amd64.deb')
 | 
					 | 
				
			||||||
            live_print("Cades-Plugin для работы в браузере установлен. \n")
 | 
					 | 
				
			||||||
            live_print("Теперь не забудь прописать лицензию в КриптоПРО 5 и перезагрузить ПК. \n")
 | 
					 | 
				
			||||||
            umount_ArmInstall()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        elif choice == "3":
 | 
					        elif choice == "3":
 | 
				
			||||||
            print("Тут будет большая функция для прописки в fstab папок монтирования для пользователей.")
 | 
					            #установка базового пакета софта
 | 
				
			||||||
 | 
					            install_base_pack_soft()
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
        elif choice == "4":
 | 
					        elif choice == "4":
 | 
				
			||||||
            userCommand = input("Введите консольную команду bash/sh с нужными параметрами:")
 | 
					            #устанавливаем Крипто-ПРО
 | 
				
			||||||
 | 
					            install_cryptopro()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        elif choice == "5":
 | 
				
			||||||
 | 
					            print("Тут будет большая функция для прописки в fstab папок монтирования для простых пользователей.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        elif choice == "6":
 | 
				
			||||||
 | 
					            print("Тут будет большая функция для прописки в fstab папок монтирования для избранных пользователей.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        elif choice == "C":
 | 
				
			||||||
 | 
					            userCommand = input("Введите консольную команду bash/sh с нужными параметрами: \n")
 | 
				
			||||||
            result_execut_command = execute_command(userCommand)
 | 
					            result_execut_command = execute_command(userCommand)
 | 
				
			||||||
            print(result_execut_command)
 | 
					            print(result_execut_command)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        elif choice == "Q":    
 | 
					        elif choice == "Q":    
 | 
				
			||||||
            print("До свидания!")
 | 
					            print("До свидания!")
 | 
				
			||||||
            break
 | 
					            break
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            print("Пожалуйста, выберите правильный пункт меню.")    
 | 
					            print("Пожалуйста, выберите правильный пункт меню.")    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue