초보자 프로그래밍 과정을 위해 학생들에게 VM을 배포하고 있습니다. 속도를 높이기 위해 처음부터 Ubuntu를 설치하는 대신 실행할 수있는 완전히 설정된 이미지를 제공 할 계획입니다.
그것을 설정하기 위해 희생적인 호스트 이름, 사용자 이름 및 암호를 부여했습니다. 학생들이 일어 났을 때 이것을 바꾸는 가장 깨끗한 방법은 무엇입니까?
이 요점 까지는 호스트 이름으로 신뢰할 수없는 발전을 보였지만 사용자 이름으로 인해 변경에 저항하고 있습니다.
나는 이것이 첫 번째 실험실에서 일어날 것으로 예상되는 한 가능한 고통없이 프로세스가되기를 원합니다.
내가 취해야 할 완전히 다른 접근법이있을 수 있습니다. 나는 모든 제안에 열려 있습니다.
#!/bin/bash
clear
toilet " CODE1161 " --metal --font future
echo ""
toilet "Let's get started!" --metal --font future
echo ""
echo "We need to make this computer be YOURS"
echo "We need a name for you and your computer, make it short or it'll take up a lot of space."
echo "My computer is called um and my name is ben, so I get ben@um:~$ as my command prompt."
echo ""
read -p "Enter a name for your computer:" compname
read -p "Enter your name: " username
echo ""
toilet "$username@$compname~$" --gay --font wideterm
echo ""
echo "What do you think? If you hate it, press ctrl+c and do this again"
read -p "otherwise, just press enter." sacrificial
# set the host name, in a million places, for some unknown reason.
echo "1"
sed -i "/127\.0\.1\.1\s*vc/ { c \
127.0.1.1 $compname
}" /etc/hosts
echo "2"
sudo hostname -b $compname
echo "3"
sudo hostnamectl set-hostname $compname
echo "4"
sudo groupadd $username
echo "5"
sudo usermod -d /home/$username -m -g $username -l $username ben
expect
대화 형 프로세스를 수행하여 비 대화식으로 만드는 데 사용한 적이 있습니다. 기본적으로 expect
특정 출력을 가진 스크립트를 작성하고 스크립트 에 응답이 이미 알려져 있습니다. Ben은 사용자 입력을 기다렸다가이를 기반으로 명령을 실행하려고합니다. 물론, 적어도 하루에 한 번 틀렸으므로 이것이 사실 일 수 있습니다.
exec bash
있지만 기술적으로 중첩 된 터미널을 열 것입니다.
expect
- admin-magazine.com/Articles/Automating-with-Expect-Scripts