Я не мог точно понять, как это сказать в моем поиске; если бы кто-нибудь мог сказать мне, как это называется, и указать мне ресурс, я был бы очень признателен.
TL; DR: для установки CentOS я хочу, чтобы пользователи могли смотреть %Почта Раздел файла кикстарта работает на физическом экране, поэтому его можно отслеживать. Человек нажимает клавишу ввода на клавиатуре, чтобы начать установку, и тот же человек будет наблюдать за процессом установки на мониторе перед ним. Я хочу, чтобы они видели, что он делает.
Я понимаю структуру так:
Установка CentOS читает файл кикстарта.
Раздел% pre кикстарта выполняется в «корневом» контексте живого образа установщика.
Раздел% post выполняется в «корневом» контексте система установки, что позволяет мне выполнять такие действия, как «yum -y update» и т. д., чтобы повлиять на установленную систему.
Я знаю, что в нормальной среде могу перенаправить вывод команды на терминал с помощью:
cat "file.txt" > /dev/tty3
Проблема в том, что эта команда перенаправляет вывод на версия / dev / tty3 для chroot jail, который не отображается на экране установки. Я хочу, чтобы он выводился непосредственно на экран "родительской" установки, поэтому, если он каким-то образом распознает родительский каталог, это будет что-то вроде
cat "file.txt" > ../../../dev/tty3
Или что-то.
Кто-нибудь может помочь?
Оказывается, я на самом деле просто придурок. Перенаправление терминала в% post работает нормально; хотя я не понимаю почему.
Вот соответствующий раздел моего кикстарта; проблема заключалась в том, что я перенаправлял вывод каждой команды с помощью «>>» и забыл, что он не отображается на экране; для этого вам нужно использовать "| tee -a". Я настолько увлекся логикой перенаправления терминала, что пропустил очевидную ошибку.
Следующее работает в файле кикстарта CentOS 7.3 для выполнения того, что я хотел:
%post --interpreter /bin/bash --log=/root/post_section.log
#Take note of our current tty
c=`tty`
#Set the file descriptors of our shell to the input and output of
#tty 6
exec < /dev/tty6 > /dev/tty6
#Change the visible terminal to terminal 6
chvt 6
#Clear the screen on TTY6
clear
#Do DevOps shit
yum -y install python epel-release python-pip git
echo ""
echo "Cloning deploy_devops..."
cd /root
git clone http://<REMOVED>devops.git
cd deploy-devops
echo "Kicking off deploy_devops.py..."
time python devops.py
echo "All done."
#Change the visible terminal back to #1
chvt 1
#Put our file descriptors back to the original terminal
exec < $c > $c
%end