Студент получит навыки работы с Git, Vagrant, Packer и публикацией готовых образов в Vagrant Cloud.
- В материалах к занятию есть методичка, в которой описана процедура обновления ядра из репозитория.
- По данной методичке требуется выполнить необходимые действия.
- Полученный в ходе выполнения ДЗ Vagrantfile должен быть залит в ваш git-репозиторий.
- Для проверки ДЗ необходимо прислать ссылку на него.
- Для выполнения ДЗ со * и ** вам потребуется сборка ядра и модулей из исходников.
✅ Основное ДЗ - в репозитории есть рабочий Vagrantfile с вашим образом.
✅ ДЗ со звездочкой: ядро собрано из исходников.
✅ ДЗ с **: в вашем образе нормально работают VirtualBox Shared Folders.
- Устанавливаем Virtualbox
- Устанавливаем Vagrant
- Собираем базовый образ centos
- Устанавливаем его в локальный репозиторий
vagrant box add --name 'avasiliev/cent_7_7' /data/lab/repo/centos-7.7.7-kernel-5-x86_64-Minimal.box
- Иницируем проект
vagrant init
-
Правим файл Vagrantfile
-
Поднимаем среду и подключаемся
vagrant up
vagrant ssh
- Обновляем кеш пакетов
sudo yum makecache
- Устанавливаем треуемые зависимости
sudo yum install -y ncurses-devel make gcc bc openssl-devel elfutils-libelf-devel rpm-build flex bison yum-utils centos-release-scl;
sudo yum -y --enablerepo=centos-sclo-rh-testing install devtoolset-7-gcc;
echo "source /opt/rh/devtoolset-7/enable" | sudo tee -a /etc/profile;
source /opt/rh/devtoolset-7/enable;
- Загружаем и разархивируем исходные коды ядра
curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.59.tar.xz --output linux-5.15.59.tar.xz && tar xvf linux-5.15.59.tar.xz
cd linux-5.15.59/
- Копируем оригинальный конфиг системы
sudo cp -v /boot/config-$(uname -r) .config
- Выполним конфигурацию
make menuconfig
- Запускаем компиляцию и сборку ядра в 8 потоков
make -j4 rpm-pkg
- Устанавливаем собранные пакеты
sudo rpm -iUv ./rpmbuild/RPMS/x86_64/*.rpm
- Перегенерируем загрузочную конфигурацию
[vagrant@otuslinux ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Обновляем загрузчик
sudo grub2-set-default 0
sudo reboot
➜ 01_kernel_update git:(hw1) ✗ vssh
Проверяем версию после перезагрузки
[vagrant@otuslinux ~]$ uname -r
5.15.59
Compile Linux Kernel on CentOS7 how-to-upload-vagrant-box-to-vagrant-cloud
centos-7-extend-partition-with-unallocated-space
parted ---pretend-input-tty /dev/sda resizepart 2 100%;
partx -u /dev/sda;
pvresize /dev/sda2;
lvextend -r centos_q0/root /dev/sda2
{
"type": "shell",
"inline": [
"sleep 30",
"sudo yum -y install bzip2",
"sudo mkdir /media/VBoxGuestAdditions",
"sudo mount -o loop,ro /home/vagrant/VBoxGuestAdditions.iso /media/VBoxGuestAdditions",
"sudo /bin/sh /media/VBoxGuestAdditions/VBoxLinuxAdditions.run",
"sudo umount /media/VBoxGuestAdditions",
"sudo rmdir /media/VBoxGuestAdditions"
]
}