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?