Salve a tutti,
sto cercando disperatamente da giorni di creare una ISO autoinstallante che abbia anche una repository per docker e una per i driver Nvidia e che poi installi automaticamente anche questi pacchetti. Innanzitutto, essendo ancora un newbie, ho creato una ISO senza pacchetti aggiuntivi e il tutto ha funzionato.
Dopodiche' ho cercato di creare una repo per docker ma non va in alcun modo. Quando carico la ISO in virtualbox mi da un errore nella scelta del software (non riconosce docker-ce e docker-ce-selinux).
Qui il mio file kickstart:#version=RHEL7
# System authorization information
auth --enableshadow --enablemd5
# Install OS instead of upgrade
install
# Reboot after installation
reboot --eject
# License agreement
eula --agreed
# Use text mode install
text
# Firewall configuration
firewall --disabled
firstboot --disable
ignoredisk --only-use=sda
# Keyboard layouts
# old format: keyboard us
# new format:
keyboard --vckeymap=de-nodeadkeys --xlayouts='de (nodeadkeys)'
# System language
lang de_DE.UTF-8
# Installation logging level
logging --level=debug
# Network information
%include /tmp/network.ks
# Use CDROM installation media
cdrom
# Root password
rootpw --plaintext password
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# System timezone
timezone Europe/Berlin --isUtc
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part / --fstype="ext4" --size=10000
part /data --fstype="ext4" --size=18461
part /info --fstype="ext4" --size=2000
part /boot --fstype="ext3" --size=256
part swap --fstype="swap" --size=2048
repo --name="docker-repo" --baseurl=https://download.docker.com/linux/centos/7/x86_64/stable/
%packages --excludedocs
@core
docker-ce
docker-ce-selinux
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
%pre
interface=$(ip addr | grep -i broadcast | awk '{ print $2 }' | head -1 | sed 's/://g')
echo "network --bootproto=dhcp --device=${interface} --onboot=on" > /tmp/network.ks
%end
Questi sono gli step che ho utilizzato per creare l'ISO:Pre-requisito:
Innanzitutto ho scaricato in una nuova cartella "temp" una minimal ISO dal sito centos
1. Create needed folder structure as root
mkdir -p ~/kickstart_build/isolinux/{images,ks,LiveOS,Packages,postinstall}
2. Copy needed content
mkdir -p /mnt/iso
mount -o loop /temp/CentOS-7-x86_64-Minimal-1708.iso /mnt/iso
cp /mnt/iso/.discinfo ~/kickstart_build/isolinux/
cp /mnt/iso/isolinux/* ~/kickstart_build/isolinux/
rsync -av /mnt/iso/images/ ~/kickstart_build/isolinux/images/
cp /mnt/iso/LiveOS/* ~/kickstart_build/isolinux/LiveOS/
ll /mnt/iso/repodata/ | grep -i comps
-rw-r--r--. 1 root root 157580 1. Apr 01:43 0e6e90965f55146ba5025ea450f822d1bb0267d0299ef64dd4365825e6bad995-c7-x86_64-comps.xml.gz
cp /mnt/iso/repodata/0e6e90965f55146ba5025ea450f822d1bb0267d0299ef64dd4365825e6bad995-c7-x86_64-comps.xml.gz ~/kickstart_build/
cd ~/kickstart_build/
gunzip 0e6e90965f55146ba5025ea450f822d1bb0267d0299ef64dd4365825e6bad995-c7-x86_64-comps.xml
mv 0e6e90965f55146ba5025ea450f822d1bb0267d0299ef64dd4365825e6bad995-c7-x86_64-comps.xml comps.xml
3. Copy all your packages and create repodata
rsync -av /mnt/iso/Packages/ ~/kickstart_build/isolinux/Packages/
cd ~/kickstart_build/isolinux
createrepo -g ~/kickstart_build/comps.xml .
4. Prepare Kickstart file
mkdir ~/kickstart_build/isolinux/ks
touch ~/kickstart_build/isolinux/ks/ks.cfg
Il file kickstart e' quello sopra menzionato
4. Create your custom CentOS 7 ISO file and test it
cd ~/kickstart_build/
mkisofs -o centos-7-custom.iso -b isolinux.bin -c boot.cat -no-emul-boot -V 'CentOS 7 x86_64' -boot-load-size 4 -boot-info-table -R -J -v -T isolinux/
Fondamentalmente non mi crea la repo docker e mi da l'errore. Ho cercato anche di scaricare i pacchetti docker e poi copiarli nella ISO, ma credo che faccio qualcosa di sbagliato con il comando
createrepo
e con il file comps.xml.
Per questo mi chiedo, se qualcuno di voi ha gia' fatto qualcosa del genere, puo' aiutarmi?
Grazie mille