Как управлять группой ПК МОС12: различия между версиями
Материал из IT в школе
Перейти к навигацииПерейти к поиску
Kekaloav (обсуждение | вклад) |
Kekaloav (обсуждение | вклад) |
||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
Найти в сети IP только что установленныхх ПК (если в сети нет роутеров с NAT, которые скрывают адреса) | Найти в сети IP только что установленныхх ПК (если в сети нет роутеров с NAT, которые скрывают адреса) | ||
Строка 4: | Строка 5: | ||
nbtscan 172.xx.xx.0/22 | grep "MOS" | awk '{ print $1 }' > ${HOME}/iplist | nbtscan 172.xx.xx.0/22 | grep "MOS" | awk '{ print $1 }' > ${HOME}/iplist | ||
xx.xx - подставить от вашей сети | |||
Возможно nbtscan перед этим надо установить (если это еще не сделано) | Возможно nbtscan перед этим надо установить (если это еще не сделано) | ||
dnf install nbtscan | dnf install nbtscan | ||
Раздача ключей для доступа по ssh со своего ПК с правами root (ключ сначала надо сгенерировать один раз командой ssh-keygen -t ed25519.) | |||
USER="teacher" | |||
USERPASS="amend5could_image" | |||
SSHKEY=`cat ${HOME}/.ssh/id_ed25519.pub` | |||
for IP in $(cat ${HOME}/iplist) ; do | |||
(sleep 1;echo ${USERPASS}; sleep 1; echo "echo \"${SSHKEY}\"" >> /root/.ssh/authorized_keys" ; echo exit; sleep 1; echo exit ) | sshpass -p ${USERPASS} ssh -yy -oStrictHostKeyChecking=no ${USER}@${IP} sudo su | |||
done | |||
Далее можно создать нужных пользователей и/или поменять пароль, добавить нужные или убрать ненужные пакеты, обновить | |||
#!/bin/bash | |||
USER="student" | |||
PASS="2023" | |||
SCHOOL="1111" | |||
CORP="1" | |||
INSTALL="alteroffice alteroffice-freedesktop-menus mos-appstore-wheel-only mos-auth-core vk-messenger-mos idle kamoso xnview whatsapp-web-launcher samsung-unified-driver hplip* get-yandex-browser-autoupdate scratch kompas3d-wine-helper java-17-openjdk-devel xnview" | |||
REMOVE="mos-welcome-pages-school mos-identify" | |||
NUMBER="`cat /${HOME}/lastnumber`" | |||
if [ -z "${NUMBER}" ]; then | |||
NUMBER=1 | |||
fi | |||
for IP in $(cat ${HOME}/iplist) ; do | for IP in $(cat ${HOME}/iplist) ; do | ||
let "NUMBER=NUMBER+1" | |||
ssh -l root ${IP} "hostnamectl hostname n${SCHOOL}-${CORP}-${NUMBER}" | |||
ssh -l root ${IP} "adduser student" | |||
ssh -l root ${IP} "$(echo \"${USER}:${PASS}\" | /usr/sbin/chpasswd)" | |||
ssh -l root ${IP} "dnf -y install ${INSTALL}" | |||
ssh -l root ${IP} "dnf -y remove ${REMOVE}" | |||
ssh -l root ${IP} "dnf --refresh -y up" | |||
done | done | ||
echo "${NUMBER}" > /${HOME}/lastnumber | |||
[[Категория:МОС12]] | [[Категория:МОС12]] |
Текущая версия на 10:42, 7 декабря 2023
Найти в сети IP только что установленныхх ПК (если в сети нет роутеров с NAT, которые скрывают адреса)
nbtscan 172.xx.xx.0/22 | grep "MOS" | awk '{ print $1 }' > ${HOME}/iplist
xx.xx - подставить от вашей сети Возможно nbtscan перед этим надо установить (если это еще не сделано)
dnf install nbtscan
Раздача ключей для доступа по ssh со своего ПК с правами root (ключ сначала надо сгенерировать один раз командой ssh-keygen -t ed25519.)
USER="teacher" USERPASS="amend5could_image" SSHKEY=`cat ${HOME}/.ssh/id_ed25519.pub` for IP in $(cat ${HOME}/iplist) ; do (sleep 1;echo ${USERPASS}; sleep 1; echo "echo \"${SSHKEY}\"" >> /root/.ssh/authorized_keys" ; echo exit; sleep 1; echo exit ) | sshpass -p ${USERPASS} ssh -yy -oStrictHostKeyChecking=no ${USER}@${IP} sudo su done
Далее можно создать нужных пользователей и/или поменять пароль, добавить нужные или убрать ненужные пакеты, обновить
#!/bin/bash USER="student" PASS="2023" SCHOOL="1111" CORP="1" INSTALL="alteroffice alteroffice-freedesktop-menus mos-appstore-wheel-only mos-auth-core vk-messenger-mos idle kamoso xnview whatsapp-web-launcher samsung-unified-driver hplip* get-yandex-browser-autoupdate scratch kompas3d-wine-helper java-17-openjdk-devel xnview" REMOVE="mos-welcome-pages-school mos-identify" NUMBER="`cat /${HOME}/lastnumber`" if [ -z "${NUMBER}" ]; then NUMBER=1 fi for IP in $(cat ${HOME}/iplist) ; do let "NUMBER=NUMBER+1" ssh -l root ${IP} "hostnamectl hostname n${SCHOOL}-${CORP}-${NUMBER}" ssh -l root ${IP} "adduser student" ssh -l root ${IP} "$(echo \"${USER}:${PASS}\" | /usr/sbin/chpasswd)" ssh -l root ${IP} "dnf -y install ${INSTALL}" ssh -l root ${IP} "dnf -y remove ${REMOVE}" ssh -l root ${IP} "dnf --refresh -y up" done echo "${NUMBER}" > /${HOME}/lastnumber