1 модуль

  1. На все машины добавляем все нужные адаптеры и прописываем vmnet, также допом ставим каждой машине NAT. Пример настройки:
    ISP - 3 адаптера:
    1 адаптер - NAT
    2 адаптер - vmnet 2
    3 адаптер - vmnet 3
    HQ RTR - 3 адаптера:
    1 адаптер - vmnet 2
    2 адаптер - vmnet 7
    3 адаптер - NAT
    HQ SRV - 2 адаптера:
    1 адаптер - vmnet 7
    2 адаптер - NAT
    HQ CLI - 2 адаптера:
    1 адаптер - vmnet 7
    2 адаптер - NAT
    BR RTR - 3 адаптера:
    1 адаптер - vmnet 3
    2 адаптер - vmnet 6
    3 адаптер - NAT
    BR SRV - 2 адаптера:
    1 адаптер - vmnet 6
    2 адаптер - NAT
  2. Проверяем по ip a, раздался ли dhcp по NAT (если нет, заходим в nano /etc/network/interfaces и прописываем для интерфейса, где стоит NAT, dhcp):
    auto ens(номер интерфейса)
    iface ens(номер интерфейса) inet dhcp
    
    после в терминале пишем: systemctl restart networking и проверяем (ip a) раздался ли ip адрес по dhcp
  3. Перед запуском скрипта проверьте названия интерфейсов. На машинах у вас дома и на экзамене они могут отличаться, поэтому перед запуском скрипта посмотрите названия интерфейсов с помощью команды `ip a`.
    В начале скрипта у вас будет запрашиваться название интерфейса. Если всё подходит, просто нажмите **Enter**. Если название интерфейса отличается от того, которое указано в скрипте, просто введите то, которое используется на вашей машине.
    Чтобы у всех, кто использует скрипт, были разные IP-адреса, я выдам каждому число. Его нужно ввести в скриптах каждого модуля после слова **team** в команде запуска скрипта, без пробела.
    Пример: `CLIENT_KEY=17`
    В таком же порядке прописываем команды на машинах.
    1)ISP
    sudo apt install curl
    CLIENT_KEY= bash <(curl -fsSL https://raw.githubusercontent.com/Ilnyr2006-droid/exam-script/main/setup.sh) isp
    
    2)HQ-RTR
    sudo apt install curl
    CLIENT_KEY= bash <(curl -fsSL https://raw.githubusercontent.com/Ilnyr2006-droid/exam-script/main/setup.sh) hq-rtr
    
    3)BR-RTR
    sudo apt install curl
    CLIENT_KEY= bash <(curl -fsSL https://raw.githubusercontent.com/Ilnyr2006-droid/exam-script/main/setup.sh) br-rtr
    
    4)HQ-SRV
    sudo apt install curl
    CLIENT_KEY= bash <(curl -fsSL https://raw.githubusercontent.com/Ilnyr2006-droid/exam-script/main/setup.sh) hq-srv
    
    5)HQ-CLI
    sudo apt install curl
    CLIENT_KEY= bash <(curl -fsSL https://raw.githubusercontent.com/Ilnyr2006-droid/exam-script/main/setup.sh) hq-cli
    
    6)BR-SRV
    sudo apt install curl
    CLIENT_KEY= bash <(curl -fsSL https://raw.githubusercontent.com/Ilnyr2006-droid/exam-script/main/setup.sh) br-srv
  4. Удаляем NAT везде кроме ISP.
  5. Копируем команду, ПРОПИСЫВАЕМ IP АДРЕС ВАШЕГО HQ-SRV ВМЕСТО ip_hq-srv и вставляем на всех машинах кроме ISP:
    cat <<EOF > /etc/resolv.conf
    search au-team.irpo
    domain au-team.irpo
    nameserver ip_hq-srv
    nameserver 8.8.8.8
    EOF
  6. Перезагружаем все машины.
  7. ДЕЛАЕМ СНАПШОТ НА ВСЕХ МАШИНАХ (называем 1 модуль, чтобы не запутаться)
Бац первый модуль готов.

2 модуль

  1. Монтируем **additional** в **BR-SRV** и **HQ-SRV** в настройках VMware.
    Нажимаем правой кнопкой мыши на нужную виртуальную машину и выбираем **Settings**.
    Переходим в раздел **CD/DVD (SATA)**.
    Справа нажимаем **Browse** и выбираем файл **additional** (на экзамене скажут, где он будет находиться).
    либо скачиваем additional на хост
    cd /D d:
    curl -o Additional.iso https://arbyzik.ru/scripts/Additional.iso
    
    Скачивание файлов в cmd на винде
    Вместо cd /D d: любая директория
  2. На HQ-SRV ставим доп. 2 диска по 1 ГБ.
  3. СКРИПТ ВТОРОГО МОДУЛЯ ЗАПУСКАЕМ ТОЛЬКО ISP (скрипт будет выполняться примерно 7 минут).
    В некоторых моментах он может как будто зависнуть, но пугаться не нужно — он продолжает работать.
    Например, он может остановиться на строке
    update-initramfs: Generating /boot/initrd.img-6.1.0-43-amd64.
    В этом случае нужно просто подождать.
    На ISP запускаем скрипт:
    CLIENT_KEY= bash <(curl -fsSL https://raw.githubusercontent.com/Ilnyr2006-droid/exam-script/main/orchestrate-module2.sh)
  4. На HQ-CLI выполняем:
    sudo useradd -m -s /bin/bash sshuser
    echo 'sshuser:P@ssw0rd' | sudo chpasswd
    sudo usermod -aG sudo sshuser
    id sshuser
    apt-get install realmd sssd oddjob oddjob-mkhomedir adcli samba-common packagekit sssd-tools krb5-user
    kinit Administrator
    klist
    sudo apt update
    sudo apt install -y realmd sssd sssd-tools libnss-sss libpam-sss adcli oddjob oddjob-mkhomedir packagekit samba-common-bin krb5-user
    /usr/sbin/realm join -v --user=Administrator AU-TEAM.IRPO
    
    Вводим пароль P@ssw0rd.
    Теперь пишем: 
    groups hquser1@au-team.irpo
    В конце должно выдать число. Копируем его и в nano /etc/sudoers ближе к концу пишем:
    %(сюда пишем число)    ALL=(ALL) NOPASSWD: /bin/cat, /bin/grep, /usr/bin/id
    apt install -y nfs-common
    mkdir -p /mnt/nfs
    Прописываем ip hq-srv вместо ip_hq-srv
    mount -t nfs ip_hq-srv:/raid/nfs /mnt/nfs
    
    В /etc/fstab добавляем:
    ip_hq-srv:/raid/nfs   /mnt/nfs   nfs   defaults   0   0
    sudo apt install chrony -y
    
    nano /etc/chrony/chrony.conf добавляем:
    server ip_isp iburst
    
    sudo systemctl restart chrony
    sudo systemctl enable chrony
    
    
    chronyc sources
  5. На BR-SRV вводим (копируем и вставляем):
    perl -0777 -pi -e '
    s/(HQ-SRV .*ansible_user=)\S+/${1}root/;
    s/(HQ-CLI .*ansible_user=)\S+/${1}root/;
    s/(HQ-RTR .*ansible_user=)\S+/${1}root/;
    s/(BR-RTR .*ansible_user=)\S+/${1}root/;
    s/ansible_ssh_pass=\S*/ansible_ssh_pass=root/g;
    ' /etc/ansible/hosts
    grep -q "ansible_ssh_common_args" /etc/ansible/hosts || cat >> /etc/ansible/hosts <<'EOF'
    [all:vars]
    ansible_ssh_common_args='-o StrictHostKeyChecking=no -o IdentitiesOnly=yes -o PreferredAuthentications=password -o PubkeyAuthentication=no'
    EOF
    ansible all -m ping
  6. ДЕЛАЕМ СНАПШОТ НА ВСЕХ МАШИНАХ (называем 2 модуль, чтобы не запутаться)
2 модуль готов.

3 модуль

  1. На всех машинах КРОМЕ ISP вводим
    1)BR-SRV
    CLIENT_KEY= bash <(curl -fsSL https://raw.githubusercontent.com/Ilnyr2006-droid/exam-script/main/module3.sh) br-srv
    
    2)HQ-CLI
    CLIENT_KEY= bash <(curl -fsSL https://raw.githubusercontent.com/Ilnyr2006-droid/exam-script/main/module3.sh) hq-cli
    
    3)HQ-RTR
    CLIENT_KEY= bash <(curl -fsSL https://raw.githubusercontent.com/Ilnyr2006-droid/exam-script/main/module3.sh) hq-rtr
    
    4)BR-RTR
    CLIENT_KEY= bash <(curl -fsSL https://raw.githubusercontent.com/Ilnyr2006-droid/exam-script/main/module3.sh) br-rtr
    
    5)HQ-SRV
    CLIENT_KEY= bash <(curl -fsSL https://raw.githubusercontent.com/Ilnyr2006-droid/exam-script/main/module3.sh) hq-srv
  2. на HQ-SRV
    1) создать snapshot
    sudo -u irpoadmin /home/irpoadmin/backup_etc.sh
    
    2) убедиться, что snapshot появился
    sudo -u irpoadmin RESTIC_PASSWORD='P@ssw0rd' restic snapshots --repo "sftp:backupuser@hq-cli.au-team.irpo:2026:/backup/etc"
    
    3) посмотреть файлы latest
    sudo -u irpoadmin RESTIC_PASSWORD='P@ssw0rd' restic ls latest --repo "sftp:backupuser@hq-cli.au-team.irpo:2026:/backup/etc" | head -n 30
  3. ДЕЛАЕМ СНАПШОТ НА ВСЕХ МАШИНАХ (называем 3 модуль, чтобы не запутаться)
3 модуль готов

ПОДЧИЩАЕМ ЗА СОБОЙ

  1. ОБЯЗАТЕЛЬНО ЧИСТИМ ИСТОРИЮ В ТЕРМИНАЛЕ НА ВСЕХ МАШИНАХ
    history -c && history -w
    clear
  2. И ТАКЖЕ ЧИСТИМ ИСТОРИЮ БРАУЗЕРА НА ВСЕХ МАШИНАХ ГДЕ ОТКРЫВАЛИ ЭТОТ САЙТ

Скрипт проверки (не идеал)

  1. на ISP вводим
    CLIENT_KEY= bash <(curl -fsSL https://raw.githubusercontent.com/Ilnyr2006-droid/exam-script/main/check-exam.sh)
ТЕСТ не трогать http://45.156.20.128:8080/?k=m1-vault-7Qp2kN9L кто тронет за тем бабайка придет