고쳐 쓰다: 1. docker 버그를 우회하도록 관리되었으며 현재 #2에서 작업 중입니다."스토리지 구성 실패: 요청한 파티션 구성표를 할당할 수 없습니다"정보
여기와 우리 회사의 주니어 엔지니어가 Kickstart 파일을 사용하여 ISO에서 RHEL OVF를 구축했습니다. 새 버전의 RHEL을 사용하고 있으며 Kickstart 설치를 사용하여 설치를 자동화하려고 하면 현재 스크립트가 실패합니다. 또한 Packer 및 Docker 컨테이너를 사용하여 이러한 설치 스크립트 중 일부를 실행합니다.
VMware ESXi를 사용하여 가상 머신(RHEL OS)을 가져오고 구성/설치를 시작했습니다. 그런 다음 작업이 완료되면 이를 종료하고 해당 가상 머신에서 OVF를 생성합니다.
#1. 이제 VM과 RHEL 설치를 모니터링하면 Docker가 설치되지 않은 것으로 표시되기 시작합니다. 해결됨
- 그럼 나한테 말해주는데스토리지 구성 실패: 요청한 파티션 구성표를 할당할 수 없습니다.:
따라서 기본적으로 VMware ESXi의 자동 설치와 관련된 메시지가 표시되지 않도록 프로그래밍 방식으로 이러한 질문에 대답하는 방법을 알아내면 됩니다.
하지만 테스트를 위해 1분 전에 이러한 질문에 수동으로 답변했으며 VM이 종료되지 않아(반드시 그래야 함) 시간이 초과되었으므로 이는 또 다른 문제가 될 것입니다.
누구든지 나를 올바른 방향으로 안내할 수 있습니까? 저는 Linux 전문가가 아니며 RHEL의 "자동화된" 킥스타트 전체를 처음 접하는 사람입니다.
@telcoM 여기 댓글에 한줄씩 답변해드리겠습니다
난 아무것도 안 보여환매핵심 단어.(리뷰를 하다가 발견했습니다.환매기간이 생성되는 중입니다.포장 노동자설치하다). 나물론일부 패키지 선언이 나열되어 있지만%post
실제로는 docker가 주석 처리되어 있습니다. 댓글을 삭제하고 다시 빌드를 시도했지만 여전히 같은 메시지가 표시됩니다. 그런 다음-docker
제외하려고 시도했지만 도커 패키지를 요청하는 동일한 메시지가 나타납니다. 아래에 나열된 내용은 다음과 같습니다.%post
여기에는 몇 가지 펌웨어 패키지가 더 있지만 명확성을 위해 제거했습니다.
%packages --nobase
@core
authconfig
system-config-firewall-base
tmpwatch
bzip2
eject
time
unzip
zip
which
sos
java
bind
bind-chroot
#vim
#dos2unix
#sudo
-docker
open-vm-tools
-postfix
-rhnsd
-yum-rhn-plugin
-subscription-manager
-chrony
%end
%packages
kickstart 파일의 선언 아래에 Jfrog Artifactory에서 가져온 몇 가지 사용자 정의 저장소가 있습니다 .
%post --log=/root/kickstart-post.log
set -x
cat > /etc/yum.repos.d/test.repo <<'CAT'
[test1]
name=test1
username=
password=
baseurl=https://artifactory.MyWebsite.com/artifactory/MyUrl
gpgcheck=0
enabled=1
[test2]
name=test2
baseurl=http://127.0.0.1:8080/__RHEL_VER__
gpgcheck=0
enabled=1
[test3]
name=test3
username=
password=
baseurl=https://artifactory.MyWebsite.com/artifactory/MyURL
gpgcheck=0
enabled=1
CAT
yum install -y A-Huge-List-Of-Apps-And-Libs-Here
yum install -y http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
- 파티셔닝 및 스토리지와 관련하여 이는 더 간단합니다.
bootloader --location=mbr --driveorder=sda --append="fips=1 crashkernel=auto rhgb quiet" --password=
zerombr
clearpart --all --initlabel --drives=sda,sdb
part /boot --fstype=ext4 --size=512
part pv.01 --size=36000 --grow --ondrive=sda
part pv.02 --size=1000 --grow --ondrive=sdb
volgroup vg_root pv.01
volgroup vg_perstore pv.02
logvol / --fstype=xfs --name=lv_root --vgname=vg_root --size=7000 --grow
logvol /export/home --fstype=xfs --name=lv_home --vgname=vg_root --size=1000
logvol /opt --fstype=xfs --name=lv_opt --vgname=vg_root --size=4096
logvol /tmp --fstype=xfs --name=lv_tmp --vgname=vg_root --size=2048
logvol /var --fstype=xfs --name=lv_var --vgname=vg_root --size=2048
logvol /var/core --fstype=xfs --name=lv_core --vgname=vg_root --size=128
logvol /var/crash --fstype=xfs --name=lv_crash --vgname=vg_root --size=1000
logvol /var/getlogs --fstype=xfs --name=lv_getlogs --vgname=vg_root --size=2000
logvol /var/viewlogs --fstype=xfs --name=lv_viewlogs --vgname=vg_root --size=1000
logvol /var/log --fstype=xfs --name=lv_log --vgname=vg_root --size=1000
logvol /var/log/audit --fstype=xfs --name=lv_audit --vgname=vg_root --size=725
logvol /var/log/logins --fstype=xfs --name=lv_logins --vgname=vg_root --size=96
logvol /var/log/root_logins --fstype=xfs --name=lv_root_logins --vgname=vg_root --size=32
logvol /var/cache/yum --fstype=xfs --name=lv_repo --vgname=vg_root --size=1000
logvol /var/opt/BurgerKing --fstype=xfs --name=lv_varopt --vgname=vg_root --size=20000
logvol swap --name=lv_swap --vgname=vg_root --size=4096
logvol /var/opt/perstore --fstype=xfs --name=lv_perstore --vgname=vg_perstore --size=500 --grow
%addon com_redhat_kdump --disable
%end
여기서 제가 찾아야 할 다른 것이 있나요?
답변1
스크린샷의 첫 번째 오류는 다음과 같습니다.
You have specified that the package 'docker' should be installed. This package
does not exist. Would you like to ignore this package and continue with
installation?
RHEL 7.x 설치 미디어에는 이름이 지정된 패키지가 포함되어 있지 않습니다 docker
. 설치하려면 kickstart 파일에서 키워드를 사용하여 하나 이상의 패키지 저장소를 구성해야 합니다 repo
.
섹션 헤더 줄 --ignoremissing
에 추가하여 Docker 없이도 설치가 성공할 수 있는지 확인할 수 있습니다. %packages
결국 손실되거나 파손된 것은 Docker에 대한 종속성을 나타냅니다.
두 번째 이미지에서는 다음 줄을 놓친 것 같습니다.
storage configuration failed: Unable to allocate requested partition scheme.
이는 Kickstart 파일에 지정된 스토리지 구성이 VM에 구성된 가상 디스크와 분명히 일치하지 않음을 의미합니다. 두 번째 메시지가 표시되었을 수 있습니다.
Not enough space in file systems for the current software selection. An additional 1233.25 MiB is needed.
설치 프로그램은 요청한 파티션을 적용할 수 없기 때문에 사용자가 유효한 스토리지 구성을 수동으로 제공할 때까지 설치 프로그램에는 실제로 패키지에 사용할 수 있는 공간이 없습니다. 따라서 사용자가 요청한 마지막 오류 메시지도 표시됩니다.
No disks selected: please select at least one disk to install to.
Unable to allocate requested partition scheme.
당신은 갖고 싶어 할 것입니다킥스타트 구문 참조이를 준비하고 실제 사용을 위해 Kickstart 설명서를 읽어 보십시오.
마지막 오류 이전의 메시지는 가상 디스크의 크기가 46.88GiB 및 2000MiB임을 나타냅니다. 참고하시기 바랍니다,깁바이너리 기반 단위로 표시되므로 46.88 GiB = 46.88 * (1024^3) 바이트 = 약 50 337 016 710바이트입니다. 이는 필요한 가상 디스크 크기를 다음과 같이 지정했기 때문일 수 있습니다.50GB= 50 000 000 000바이트(VMware에 적합한 가장 가까운 높은 값으로 반올림됨) 및 바이트와 더 높은 단위 간 변환 시 약간의 반올림 오류가 발생함.
논리 볼륨의 최소 크기의 합은 vg_root
47269이므로 논리 볼륨의 최소 크기는 part pv.01
이 값 이상이어야 합니다. 또한 다양한 요구 사항(데이터 정렬 등)을 충족하기 위해 파티션 크기를 약간 늘릴 수 있으므로 파티션의 실제 최소 용량 요구 사항은 pv.01
디스크 /boot
의 46.88GiB 용량 보다 커질 수 있습니다 . 이러한 Kickstart 설정을 유지하려면 VM에 할당된 디스크 크기를 약간 늘린 다음 Kickstart가 작동하면 아래쪽으로 조정하십시오.
RHEL 7.x Kickstart 설명서에는 --nobase
이 %packages
섹션에 대한 옵션이 포함되어 있지 않습니다.이는 더 이상 사용되지 않는 옵션인 것으로 보이며 버그 보고서 이후 문서에서 제거되었습니다.
" 일부 사용자 정의 저장소" 는 %post
설치 후 스크립트처럼 보이며 %packages
. . 스크립트가 올바른 섹션에 없으면 설치 프로그램은 스크립트 명령을 설치할 패키지 이름으로 해석하려고 시도하며 해당 패키지 이름의 형식이 잘못되었으므로 결국 임의의 패키지 모음을 설치하려고 할 수 있습니다. 의존 관계와 함께. 이것은 설치 시도를 설명할 수 있습니다 .%end
%packages
%post
%end
docker
설치가 완료된 후 가상 머신이 자동으로 종료되도록 하려면 poweroff
킥스타트 구성 파일의 주요 부분에 이 키워드가 포함된 줄이 있어야 합니다. 그러나 자동 종료 기능이 부족하면 "레일을 벗어나" 수동 입력이 필요한 설치로 인해 발생할 수도 있습니다.