Kernel Update

Установка

Vagrant

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° https://www.vagrantup.com/downloads.html Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Debian 64-bit ΠΈ вСрсия 2.2.6. ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ ссылку ΠΈ Π² консоли выполняСм:

    curl -O https://releases.hashicorp.com/vagrant/2.2.6/vagrant_2.2.6_x86_64.deb && \
    sudo dpkg -i vagrant_2.2.6_x86_64.deb

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ окончания Π±ΡƒΠ΄Π΅Ρ‚ установлСн Vagrant.

Packer

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° https://www.packer.io/downloads.html Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Linux 64-bit ΠΈ вСрсия 1.4.4. скачал Ρ„Π°ΠΉΠ» Π½Π° ΠΏΠΊ

    cat <ΠΏΡƒΡ‚ΡŒ ΠΊ скачСнному Ρ„Π°ΠΉΠ»Ρƒ/https://releases.hashicorp.com/packer/1.4.4/packer_1.4.4_linux_amd64.zip | \
    sudo gzip -d > /usr/local/bin/packer && \
    sudo chmod +x /usr/local/bin/packer

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ окончания Π±ΡƒΠ΄Π΅Ρ‚ установлСн Packer.

Kernel update

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ запуск

Для запуска Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ окруТСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π² GitHub ΠΏΠΎΠ΄ своСй ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ fork Π΄Π°Π½Π½ΠΎΠ³ΠΎ рСпозитория: https://github.com/dmitry-lyutenko/manual_kernel_update

ПослС этого Π΄Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊ сСбС Π½Π° Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ. Для этого Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ€Π°Π½Π΅Π΅ установлСнным ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ git, ΠΏΡ€ΠΈ этом Π² <user_name> Π±ΡƒΠ΄Π΅Ρ‚ имя ΡƒΠΆΠ΅ вашСго рСпозитрия:

    git clone https://github.com/<user_name>/manual_kernel_update.git

Π’ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ появится ΠΏΠ°ΠΏΠΊΠ° с ΠΈΠΌΠ΅Π½Π΅ΠΌ рСпозитория. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС manual_kernel_update. Ознакомимся с содСрТимым:

    cd manual_kernel_update
    ls -1

manual packer Vagrantfile

Π—Π΄Π΅ΡΡŒ:

manual - дирСктория с Π΄Π°Π½Π½Ρ‹ΠΌ руководством
packer - дирСктория со скриптами для packer'Π°
Vagrantfile - Ρ„Π°ΠΉΠ» ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ инфраструктуру для Vagrant

Запустим Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΈ залогинимся:

    vagrant up

... ==> kernel-update: Importing base box 'centos/7'... ... ==> kernel-update: Booting VM... ... ==> kernel-update: Setting hostname...

    vagrant ssh

[vagrant@kernel-update ~]$ uname -r 3.10.0-957.12.2.el7.x86_64

Π’Π΅ΠΏΠ΅Ρ€ΡŒ приступим ΠΊ обновлСнию ядра.

kernel update

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΎΡ‚ΠΊΡƒΠ΄Π° возьмСм Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ядра.

    sudo yum install -y http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

Π’ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ вСрсии ядСр kernel-ml ΠΈ kernel-lt. ΠŸΠ΅Ρ€Π²Π°Ρ являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ свСТСй ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ вСрсиСй, вторая это ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ вСрсия с Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ, Π½ΠΎ ΠΌΠ΅Π½Π΅Π΅ свСТая, Ρ‡Π΅ΠΌ пСрвая. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ядро 5ΠΉ вСрсии Π±ΡƒΠ΄Π΅Ρ‚ Π² kernel-ml.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ ставим ядро ΠΈΠ· рСпозитория, Ρ‚ΠΎ установка ядра ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° установку любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π½ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ явного Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ рСпозитория ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ»ΡŽΡ‡Π° --enablerepo.

Π‘Ρ‚Π°Π²ΠΈΠΌ послСднСС ядро:

    sudo yum --enablerepo elrepo-kernel install kernel-ml -y
    grub update

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ установки Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ систСмС, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ядро. Π’ случаС обновлСния ядра Π½Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… сСрвСрах Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ с Π½ΠΎΠ²Ρ‹ΠΌ ядром, Π²Ρ‹Π±Ρ€Π°Π² Π΅Π³ΠΎ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅. И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ядра ΠΈ тСстах сСрвСра ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ с Π½ΠΎΠ²Ρ‹ΠΌ ядром ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’ тСстовой срСдС ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π΄Π°Π½Π½Ρ‹ΠΉ этап ΠΈ сразу Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ядро ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

ОбновляСм ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ с Π½ΠΎΠ²Ρ‹ΠΌ ядром ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ:

    sudo grub2-set-default 0

ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ:

    sudo reboot

ПослС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ (3-4 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹, зависит ΠΎΡ‚ мощности хостовой ΠΌΠ°ΡˆΠΈΠ½Ρ‹) Π·Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π² Π½Π΅Π΅ ΠΈ выполняСм:

    uname -r

Packer

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой ΠΎΠ±Ρ€Π°Π· систСмы, с ΡƒΠΆΠ΅ установлСным ядром 5ΠΉ вСрсии. Для это Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ€Π°Π½Π΅Π΅ установлСнной ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ packer. Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ packer Π΅ΡΡ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ настройки ΠΈ скрипты для создания Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π° систСмы. packer provision config

Π’ Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ ΠΌΠ°Π½ΡƒΠ°Π»Ρƒ Π²Ρ‹ΡΡΠ½ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° яндСксС ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π² ΠΌΠ°Π½ΡƒΠ°Π»Π΅ Π²Π΅Ρ€ΡΠΈΡŽ Centos пСрСстали ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» centos.json, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит описаниС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π·. ПолноС описаниС ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ packer. ΠžΠ±Ρ€Π°Ρ‚ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° основныС сСкции ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡ΠΈ.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ (variables) с вСрсиСй ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (artifact):

"artifact_description": "CentOS 7.7 with kernel 5.x",
"artifact_version": "7.7.1908",

Π’ сСкции builders Π·Π°Π΄Π°Π΅ΠΌ исходный ΠΎΠ±Ρ€Π°Π·, для создания своСго Π² Π²ΠΈΠ΄Π΅ ссылки ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ создаваСмой Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС.

"iso_url": "http://mirror.yandex.ru/centos/7.7.1908/isos/x86_64/CentOS-7-x86_64-Minimal-1908.iso", Π΄Π°Π½Π½ΡƒΡŽ ссылку я Π·Π°ΠΌΠ΅Π½ΠΈΠ» Π½Π° "http://mirror.docker.ru/centos/7.7.1908/isos/x86_64/"
"iso_checksum": "9a2c47d97b9975452f7d582264e9fc16d108ed8252ac6816239a3b58cef5c53d", ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Ρ‡Π΅ΠΊ сумму Ρ‚ΠΎΠΆΠ΅ помСнял Π½Π° Ρ‚Ρƒ которая ΡƒΠΊΠ°Π·Π°Π½Π° Ρ‚ΡƒΡ‚ "http://mirror.docker.ru/centos/7.7.1908/isos/x86_64/sha256sum.txt"
"iso_checksum_type": "sha256",

Π’ сСкции post-processors ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ имя Ρ„Π°ΠΉΠ»Π°, ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ сохранСн ΠΎΠ±Ρ€Π°Π·, Π² случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ сборки

"output": "centos-{{user `artifact_version`}}-kernel-5-x86_64-Minimal.box",

Π’ сСкции provisioners ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ дСйствия Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ произвСсти для настройки Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. ИмСнно Π² этой сСкции ΠΌΡ‹ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ ядро систСмы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π· с 5ΠΉ вСрсиСй ядра. Настройка систСмы выполняСтся нСсколькими скриптами, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² сСкции scripts.

"scripts" : 
  [
    "scripts/stage-1-kernel-update.sh",
    "scripts/stage-2-clean.sh"
  ]

Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π² порядкС указания. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ скрипт Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ сСбя Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ€Π°Π½Π΅Π΅ выполняли Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ядро. Π’Ρ‚ΠΎΡ€ΠΎΠΉ скрипт занимаСтся ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΎΠΉ систСмы ΠΊ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅ Π² ΠΎΠ±Ρ€Π°Π·. Она Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² очисткС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ с Π»ΠΎΠ³Π°ΠΌΠΈ, Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, кСшами. Π­Ρ‚ΠΎ позволяСт ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±Ρ€Π°Π·. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π½ΠΈΠΌΠΈ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ packer/scripts

БСкция post-processors описываСт постобработку Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΏΡ€ΠΈ Π΅Π΅ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅. ΠœΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π°Π΅ΠΌ имя Ρ„Π°ΠΉΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ сохранСн Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (artifact). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ имя задаСтся Π½Π° основС Ρ€Π°Π½Π΅Π΅ созданной ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ artifact_version Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ Π·Π°Π΄Π°Π»ΠΈ Ρ€Π°Π½Π΅Π΅:

"output": "centos-{{user `artifact_version`}}-kernel-5-x86_64-Minimal.box",

packer build

Для создания ΠΎΠ±Ρ€Π°Π·Π° систСмы достаточно ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ packer ΠΈ Π² Π½Π΅ΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

    packer build centos.json

Если всС Π² порядкС, Ρ‚ΠΎ, согласно Ρ„Π°ΠΉΠ»Π° config.json Π±ΡƒΠ΄Π΅Ρ‚ скачан исходный iso-ΠΎΠ±Ρ€Π°Π· CentOS, установлСн Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ Π² автоматичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ ядро ΠΈ осущСствлСн экспорт Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½Π°ΠΌΠΈ Ρ„Π°ΠΉΠ». Если Π½Π΅ вносилось ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‚ΠΎ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Ρ„Π°ΠΉΠ» centos-7.7.1908-kernel-5-x86_64-Minimal.box. Он ΠΈ являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ packer.

vagrant init (тСстированиС)

ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅ΠΌ тСстированиС созданного ΠΎΠ±Ρ€Π°Π·Π°. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ Π΅Π³ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π² vagrant:

    vagrant box add --name centos-7-5 centos-7.7.1908-kernel-5-x86_64-Minimal.box

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π΅Π³ΠΎ Π² спискС ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² (ваш Π²Ρ‹Π²ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ):

    vagrant box list

centos-7-5 (virtualbox, 0)

Он Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ centos-7-5, Π΄Π°Π½Π½ΠΎΠ΅ имя ΠΌΡ‹ Π·Π°Π΄Π°Π»ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° name ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ провСсти тСстированиС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π°. Для этого создадим Π½ΠΎΠ²Ρ‹ΠΉ Vagrantfile ΠΈΠ»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΡΡ. Для Π½ΠΎΠ²ΠΎΠ³ΠΎ создадим Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ test ΠΈ Π² Π½Π΅ΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ:

    mkdir test

    vagrant init centos-7-5

Для ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅ΠΌ Π·Π°ΠΌΠ΅Π½Ρƒ значСния box_name Π½Π° имя ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π°. Π‘ΠΎΠΎΡ‚Π²Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ строка ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π²ΠΈΠ΄:

:box_name => "centos-7-5",

Π’Π΅ΠΏΠ΅Ρ€ΡŒ запустим Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌΡΡ ΠΊ Π½Π΅ΠΉ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π² Π½Π΅ΠΉ Π½ΠΎΠ²ΠΎΠ΅ ядро:

    vagrant up

... vagrant ssh

ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹:

[vagrant@kernel-update ~]$ uname -r 5.3.1-1.el7.elrepo.x86_64

Если всС Π² порядкС, Ρ‚ΠΎ машина Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° ΠΈ загрузится с Π½ΠΎΠ²Ρ‹ΠΌ ядром. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это 5.3.1.

Π£Π΄Π°Π»ΠΈΠΌ тСстовый ΠΎΠ±Ρ€Π°Π· ΠΈΠ· локального Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°:

    vagrant box remove centos-7-5

Vagrant cloud

ПодСлимся ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ с сообщСством. Для этого зальСм Π΅Π³ΠΎ Π² Vagrant Cloud. МоТно Π·Π°Π»ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· web-интСрфСйс, Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ vagrant позволяСт это ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· CLI. Логинимся Π² vagrant cloud, указывая e-mail, ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΈ описаниС Π²Ρ‹Π΄Π°Π½ΠΎΠ³ΠΎ Ρ‚ΠΎΠΊΠ΅Π½Π° (ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ)

    vagrant cloud auth login
    Vagrant Cloud username or email: <user_email>
    Password (will be hidden): 
    Token description (Defaults to "Vagrant login from DS-WS"):
    You are now logged in.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ бокс:

    vagrant cloud publish --release <username>/centos-7-5 1.0 virtualbox \
    centos-7.7.1908-kernel-5-x86_64-Minimal.box

Π—Π΄Π΅ΡΡŒ:

cloud publish - Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π· Π² ΠΎΠ±Π»Π°ΠΊΠΎ;
release - ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π·Π° послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ;
<username>/centos-7-5 - username, ΡƒΠΊΠ°Π·Π°Π½Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ имя ΠΎΠ±Ρ€Π°Π·Π°;
1.0 - вСрсия ΠΎΠ±Ρ€Π°Π·Π°;
virtualbox - ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€;
centos-7.7.1908-kernel-5-x86_64-Minimal.box - имя Ρ„Π°ΠΉΠ»Π° Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π°;

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ сообщСниС:

Complete! Published /centos-7-5 tag: /centos-7-5-cli username: name: centos-7-5 private: false ... providers: virtualbox

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ создан ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π² vagrant cloud ΠΎΠ±Ρ€Π°Π· Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· Π²ΠΈΡ€Ρ‚ΡƒΠ»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ обновлСниями ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ΠΎΠΌ прСдустановлСнного ПО. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ ΠΏΡ€ΠΈ создании MySQL-кластСра ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π· с прСдустановлСнным MySQL, Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ настройки (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΡƒΡŽΡΡ Ρ‡Π°ΡΡ‚ΡŒ). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ сущСствСнно экономя Π·Π°Ρ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ врСмя.

Last updated

Was this helpful?