Score:0

เซิร์ฟเวอร์อัตโนมัติติดตั้งไฟล์ config คีย์ระดับบนสุด âlate-commandsâ ไม่สามารถใช้ wget หรือ curl

ธง ps

ฉันพบปัญหาเกี่ยวกับการติดตั้งเซิร์ฟเวอร์อัตโนมัติ

นี่คือสภาพแวดล้อมของฉัน: เซิร์ฟเวอร์: centos 7.6 x86_64 (เป็นระบบ kvm) Node1: ไม่มีระบบ Node2: ไม่มีระบบ

ฉันต้องการติดตั้งระบบเซิร์ฟเวอร์ Ubuntu-20.04.3 โดยอัตโนมัติ

เกี่ยวกับ Server1 ฉันติดตั้ง tftpd,dhcpd,httpd การกำหนดค่าบางอย่างเช่นนี้:

#tftpd
#แมว /etc/xinetd.d/tftp
บริการ tftp
{
    socket_type = dgram
    โปรโตคอล = udp
    รอ = ใช่
    ผู้ใช้ = ราก
    เซิร์ฟเวอร์ = /usr/sbin/in.tftpd
    server_args = -s /var/lib/tftpboot
    ปิดการใช้งาน = ใช่
    per_source = 11
    cps = 100 2
    ค่าสถานะ = IPv4
}


#dhcpd
# แมว /etc/dhcp/dhcpd.conf
ddns-update-style ไม่มี;
ซับเน็ต 10.10.8.0 เน็ตมาสก์ 255.255.252.0 {
     เราเตอร์ตัวเลือก 10.10.11.254;
     ตัวเลือกโดเมนเนมเซิร์ฟเวอร์ 10.10.9.250;
     ตัวเลือกซับเน็ตมาสก์ 255.255.252.0;
     ช่วงไดนามิก bootp 10.10.11.10 10.10.11.220;
     เวลาเช่าเริ่มต้น 21600;
     เวลาเช่าสูงสุด 43200;
     เซิร์ฟเวอร์ถัดไป 10.10.11.245;
     ชื่อไฟล์ "pxelinux.0";
}

#httpd
#แมว /etc/httpd/conf.d/tftp.conf
<ไดเร็กทอรี /var/lib/tftpboot>
        ตัวเลือก +FollowSymLinks +ดัชนี
        ต้องได้รับอนุญาตทั้งหมด
</ไดเร็กทอรี>
นามแฝง /tftp /var/lib/tftpboot

ไฟล์ใน /var/lib/tftpboot

# ll /var/lib/tftpboot/
æ»ç¨é 1328744
drwxrwxrwx 2 ราก ราก 22 12æ 8 18:40 ด้วง
-rwxrwxrwx 1 ราก 86017541 11æ 25 17:40 เริ่มต้น
-rwxrwxrwx 1 ราก ราก 31 11æ 25 17:45 ข้อมูลเมตา
-rwxrwxrwx 1 ราก ราก 336 12æ 8 20:03 network.sh
-rwxrwxrwx 1 รูทรูท 1435512 4æ 16 2020 pxelinux.0
-rwxrwxrwx 1 รูทรูท 1261371392 8æ 24 17:09 ubuntu-20.04.3-live-server-amd64.iso
-rwxrwxrwx 1 รูท 1353 12æ 8 20:03 ubuntu_init.sh
-rwxrwxrwx 1 รูทรูท 2856 12æ 8 20:17 user-data
-rwxrwxrwx 1 รูท 11772160 11æ 25 17:40 vmlinuz

grub.cfg

#ด้วงแมว/grub.cfg
ค่าเริ่มต้น = ติดตั้งอัตโนมัติ
หมดเวลา=5
timeout_style=เมนู

ตั้งค่า menu_color_normal=ขาว/ดำ
ตั้งค่า menu_color_highlight=สีดำ/สีเทาอ่อน

เมนูรายการ "Focal Live Installer - อัตโนมัติ" --id=autoinstall {
    echo "กำลังโหลด Kernel...1111"
    linux /vmlinuz root=/dev/ram0 ramdisk_size=1500000 root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://10.10.11.245/tftp/ubuntu-20.04.3-live-server-amd64.iso ติดตั้งอัตโนมัติ ds=nocloud-net\;s=http://10.10.11.245/tftp/ ---
    echo "กำลังโหลด Ram Disk...111"
    initrd/initrd
}
เมนูรายการ "Focal Live Installer" --id=install {
    echo "กำลังโหลด Kernel...22"
    ลินุกซ์ /vmlinuz root=/dev/ram0 ramdisk_size=1500000 ramdisk_size=1500000 ip=dhcp url=http://10.10.11.245/tftp/ubuntu-20.04.3-live-server-amd64.iso
    echo "กำลังโหลด Ram Disk...22"
    initrd/initrd
}

ข้อมูลเมตา

# ข้อมูลเมตาของแมว
รหัสอินสแตนซ์: focal-autoinstall

ข้อมูลผู้ใช้

# ข้อมูลผู้ใช้แมว
#cloud-config
ติดตั้งอัตโนมัติ:
  ถนัด:
    geoip: จริง
    การเก็บรักษา_sources_list: เท็จ
    หลัก:
    - ส่วนโค้ง: [amd64, i386]
      ยูริ: http://mirrors.aliyun.com/ubuntu
    - ส่วนโค้ง: [ค่าเริ่มต้น]
      ยูริ: http://ports.ubuntu.com/ubuntu-ports
  ข้อมูลผู้ใช้:
    เขตเวลา: เอเชีย/เซี่ยงไฮ้
    ปิดการใช้งาน_root: เท็จ
    chpasswd:
      รายการ: |
        รูท: $6$YMYlEcE71$/bcl2qd2rSYePvOkmgAyQR/h/
  ตัวตน: {ชื่อโฮสต์: 111, รหัสผ่าน: $6$ereNXNuj9WVUt77B$.dbpuHaLernNl6qq6r14meIk1W5VAyaMV9.,
    ชื่อจริง: 11, ชื่อผู้ใช้: 11}
  แป้นพิมพ์: {รูปแบบ: เรา, สลับ: null, ตัวแปร: ''}
  ภาษา: en_US.UTF-8
  เครือข่าย:
    อีเธอร์เน็ต:
      eno12399:
        สำคัญ: จริง
        ตัวระบุ dhcp: mac
        dhcp4: จริง
        เนมเซิร์ฟเวอร์:
          ที่อยู่: [10.10.9.250]
      eno12409: {dhcp4: จริง}
      eno12419: {dhcp4: จริง}
      eno12429: {dhcp4: จริง}
      eno8303: {dhcp4: จริง}
      eno8403: {dhcp4: จริง}
    รุ่น: 2
  พร็อกซี: http://mirrors.aliyun.com/ubuntu
  ssh:
    อนุญาต pw: จริง
    คีย์ที่ได้รับอนุญาต: []
    ติดตั้งเซิร์ฟเวอร์: จริง
  พื้นที่จัดเก็บ:
    ด้วง:
      reorder_uefi: เท็จ
    การกำหนดค่า:
    - {ptable: gpt, เส้นทาง: /dev/sda, ลบ: superblock-recursive, รักษา: เท็จ, ชื่อ: '', grub_device: เท็จ,
      ประเภท: ดิสก์, id: disk-sda}
    - {อุปกรณ์: disk-sda, ขนาด: 536870912, เช็ด: superblock, แฟล็ก: บูต, หมายเลข: 1,
      รักษา: เท็จ, grub_device: จริง, ประเภท: พาร์ติชัน, id: พาร์ติชัน-2}
    - {fstype: fat32, ปริมาณ: พาร์ติชั่น-2, รักษา: เท็จ, ประเภท: รูปแบบ, รหัส: รูปแบบ-2}
    - {อุปกรณ์: disk-sda, ขนาด: -1, ลบ: superblock, ตั้งค่าสถานะ: '', จำนวน: 2,
      รักษา: เท็จ, grub_device: เท็จ, ประเภท: พาร์ติชัน, id: พาร์ติชัน-3}
    - {fstype: xfs, ปริมาณ: พาร์ติชัน-3, รักษา: เท็จ, ประเภท: รูปแบบ, รหัส: รูปแบบ-3}
    - {เส้นทาง: /, อุปกรณ์: รูปแบบ-3, ประเภท: เมานต์, รหัส: เมานต์-3}
    - {เส้นทาง: /boot/efi, อุปกรณ์: รูปแบบ-2, ประเภท: เมานต์, รหัส: เมานต์-2}
  อัปเดต: ความปลอดภัย
  แพ็คเกจ:
  - ลินุกซ์ทั่วไป
  - เครื่องมือสุทธิ
  คำสั่งล่าช้า:
  - เคอร์ตินในเป้าหมาย --target=/target -- /usr/bin/wget -P /root/ http://10.10.11.245/tftp/ubuntu_init.sh
  - เคอร์ตินในเป้าหมาย --target=/target -- /usr/bin/wget -P /root/ http://10.10.11.245/tftp/network.sh
  - เคอร์ตินในเป้าหมาย --target=/target -- /usr/bin/bash /root/ubuntu_init.sh
  #- curtin ในเป้าหมาย --target=/target -- sed -i 's/#PermitRootLogin ห้ามรหัสผ่าน/PermitRootLogin ใช่/' /etc/ssh/sshd_config && systemctl รีสตาร์ท sshd
  #- curtin ในเป้าหมาย --target=/target -- systemctl หยุด ufw.service && systemctl ปิดการใช้งาน ufw.service
  #- curtin ในเป้าหมาย --target=/target -- echo -e "NTP=ntp1.aliyun.com\nFallbackNTP=ntp.ubuntu.com" >> /etc/systemd/timesyncd.conf && systemctl รีสตาร์ท systemd-timesyncd
  รุ่น: 1

Ubuntu_init.sh

#!/bin/bash
sed -i 's/#PermitRootLogin ห้ามรหัสผ่าน/PermitRootLogin ใช่/' /etc/ssh/sshd_config

systemctl รีสตาร์ท sshd

systemctl หยุด ufw.service
systemctl ปิดใช้งาน ufw.service
# 
echo -e "NTP=ntp1.aliyun.com\nFallbackNTP=ntp.ubuntu.com" >> /etc/systemd/timesyncd.conf
systemctl รีสตาร์ท systemd-timesyncd
# 
แมว >> /etc/security/limits.conf << EOF
* ซอฟต์โนไฟล์ 655350
* ฮาร์ดโนไฟล์ 655350
* ซอฟต์ nproc 655350
* ฮาร์ด nproc 655350
รูตซอฟต์โนไฟล์ 655350
รูตฮาร์ดโนไฟล์ 655350
รูทซอฟต์ nproc 655350
รูตยาก nproc 655350
อฟ
########################################
cp /etc/sysctl.conf /etc/sysctl.conf.bak
แมว > /etc/sysctl.conf << EOF
vm.swappiness = 0
kernel.sysrq = 1

net.ipv4.neigh.default.gc_stale_time = 120

net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
net.ipv4.tcp_max_tw_buckets = 5,000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_slow_start_after_idle = 0
อฟ

/sbin/sysctl -p

ปัญหาของฉัน

เมื่อฉันเรียกใช้การติดตั้งอัตโนมัติ pxe บน Dell R750 หรือเครื่องเซิร์ฟเวอร์บริการ UEFI แบบเปิดอื่นๆ tftp,dhcpd,httpd ก็โอเค แต่เมื่อเซิร์ฟเวอร์ดำเนินการ "late-commands" เช่น ว้าว หรือ ขด แล้วรายงานข้อผิดพลาด คำสั่งทุบตีอื่น ๆ สามารถดำเนินการได้โดยไม่มีข้อผิดพลาดเช่น เสียงสะท้อน ,เสด,systemctl เริ่มบริการ และอื่น ๆ

เมื่อเกิดข้อผิดพลาดในการติดตั้งอัตโนมัติ ให้รายงานข้อผิดพลาดและทำให้การติดตั้งระบบนี้เสียหาย ฉันใช้ ว้าว สามารถดาวน์โหลดไฟล์ bash จากเซิร์ฟเวอร์ httpd ของฉันและดำเนินการ

รูปภาพสำหรับสิ่งนี้: รูปผิดพลาด

หากคุณเปิดรูปภาพข้อผิดพลาดช้า นี่คือข้อความแสดงข้อผิดพลาดที่อธิบาย:

เริ่มต้น: subiquity/Late/run/command_0: curtin in-target --target=/target -- /usr/bin/wget -P /root/ http://10.10.11.245/tftp/ubuntu_init.sh
เริ่มต้น: subiquity/Meta/status_GET
เสร็จสิ้น: subiquity/Late/run/command_0: คำสั่ง '['system-cat', '--level-prefix=false', '--identifier=subiquity_log.3140', 'sh', 'c', 'curtin in -target --target=/target --/usr/bin/wget -P /root/ http://10.10.11.245/tftp/ubuntu_init.sh']' ส่งคืนสถานะการออกที่ไม่ใช่ศูนย์ 8.ip a 

บันทึก httpd

10.10.11.94 - - [13/Dec/2021:15:58:40 +0800] "GET /tftp/ubuntu-20.04.3-live-server-amd64.iso HTTP/1.1" 200 1261371392 "-" "Wget"
10.10.11.94 - - [13/Dec/2021:15:59:01 +0800] "GET /tftp/ubuntu-20.04.3-live-server-amd64.iso HTTP/1.1" 200 1261371392 "-" "Cloud- เริ่มต้น/21.2-3-g899bfaa9-0ubuntu2~20.04.1"
10.10.11.94 - - [13/Dec/2021:15:59:13 +0800] "GET /tftp/ubuntu-20.04.3-live-server-amd64.iso HTTP/1.1" 200 1261371392 "-" "Cloud- เริ่มต้น/21.2-3-g899bfaa9-0ubuntu2~20.04.1"
10.10.11.94 - - [13/ธ.ค./2021:15:59:25 +0800] "GET /tftp/meta-data HTTP/1.1" 200 31 "-" "Cloud-Init/21.2-3-g899bfaa9-0ubuntu2~ 20.04.1"
10.10.11.94 - - [13/ธ.ค./2021:15:59:25 +0800] "GET /tftp/user-data HTTP/1.1" 200 2772 "-" "Cloud-Init/21.2-3-g899bfaa9-0ubuntu2~ 20.04.1"
10.10.11.94 - - [13/ธ.ค./2021:15:59:25 +0800] "GET /tftp/vendor-data HTTP/1.1" 404 214 "-" "Cloud-Init/21.2-3-g899bfaa9-0ubuntu2~ 20.04.1"
10.10.11.94 - - [13/ธ.ค./2021:15:59:26 +0800] "GET /tftp/vendor-data HTTP/1.1" 404 214 "-" "Cloud-Init/21.2-3-g899bfaa9-0ubuntu2~ 20.04.1"
10.10.11.94 - - [13/ธ.ค./2021:15:59:27 +0800] "GET /tftp/vendor-data HTTP/1.1" 404 214 "-" "Cloud-Init/21.2-3-g899bfaa9-0ubuntu2~ 20.04.1"
10.10.11.94 - - [13/ธ.ค./2021:15:59:28 +0800] "GET /tftp/vendor-data HTTP/1.1" 404 214 "-" "Cloud-Init/21.2-3-g899bfaa9-0ubuntu2~ 20.04.1"
10.10.11.94 - - [13/ธ.ค./2021:15:59:29 +0800] "GET /tftp/vendor-data HTTP/1.1" 404 214 "-" "Cloud-Init/21.2-3-g899bfaa9-0ubuntu2~ 20.04.1"
10.10.11.94 - - [13/ธ.ค./2021:15:59:30 +0800] "GET /tftp/vendor-data HTTP/1.1" 404 214 "-" "Cloud-Init/21.2-3-g899bfaa9-0ubuntu2~ 20.04.1"
10.10.11.94 - - [13/ธ.ค./2021:15:59:31 +0800] "GET /tftp/vendor-data HTTP/1.1" 404 214 "-" "Cloud-Init/21.2-3-g899bfaa9-0ubuntu2~ 20.04.1"
10.10.11.94 - - [13/ธ.ค./2021:15:59:32 +0800] "GET /tftp/vendor-data HTTP/1.1" 404 214 "-" "Cloud-Init/21.2-3-g899bfaa9-0ubuntu2~ 20.04.1"
10.10.11.94 - - [13/ธ.ค./2021:15:59:33 +0800] "GET /tftp/vendor-data HTTP/1.1" 404 214 "-" "Cloud-Init/21.2-3-g899bfaa9-0ubuntu2~ 20.04.1"
10.10.11.94 - - [13/ธ.ค./2021:15:59:34 +0800] "GET /tftp/vendor-data HTTP/1.1" 404 214 "-" "Cloud-Init/21.2-3-g899bfaa9-0ubuntu2~ 20.04.1"
10.10.11.94 - - [13/ธ.ค./2021:15:59:35 +0800] "GET /tftp/vendor-data HTTP/1.1" 404 214 "-" "Cloud-Init/21.2-3-g899bfaa9-0ubuntu2~ 20.04.1"

ฉันดำเนินการด้วยตนเองโดยไม่มีข้อผิดพลาด


ถ้าใครรู้วิธีแก้ไขปัญหานี้หรือมีปัญหาเดียวกับฉัน โปรดส่งข้อความถึงฉัน ขอบคุณ

ถ้าผมพูดไม่ชัดก็ชี้ให้เห็นได้

muru avatar
us flag
กรุณาอย่าโพสต์ภาพข้อความ คัดลอกข้อความที่นี่และใช้การจัดรูปแบบรหัส ดูเหมือนว่าจะมีข้อความว่า "exit status 8" ซึ่งสำหรับ [`wget`](https://manpages.ubuntu.com/manpages/jammy/en/man1/wget.1.html) คือ "8 Server ออกข้อผิดพลาด การตอบสนอง."
bowfgc avatar
ps flag
ขอบคุณฉันอัปเดตข้อความอธิบาย หากเซิร์ฟเวอร์ httpd ไม่ตอบสนอง เหตุใดฉันจึงใช้ `wget` ดาวน์โหลดด้วยตนเองได้โดยไม่มีข้อผิดพลาด@muru
muru avatar
us flag
ขอบคุณ. คุณมีสิทธิ์เข้าถึงบันทึกของเซิร์ฟเวอร์เพื่อดูว่าเกิดอะไรขึ้นหรือไม่ คุณได้รับข้อผิดพลาดอะไรเมื่อใช้ curl?
bowfgc avatar
ps flag
ใช่ ฉันตรวจสอบบันทึก httpd ของฉัน ไม่มีอะไร แค่บันทึกคำขอบางอย่าง GET `ubuntu-20.04.3.iso`, `meta-data`, `user-data` ฉันโพสต์รายการบันทึกประจำวันใน ariticle
Score:0
ธง jp

ปัญหาของคุณน่าจะเกิดจาก หนังสือมอบฉันทะ การกำหนดค่า

  พร็อกซี: http://mirrors.aliyun.com/ubuntu

ฉันพบว่าหากคุณระบุพร็อกซี ปริมาณการใช้เว็บทั้งหมดจะใช้พร็อกซีนั้น เดอะ ว้าว กำลังพยายามดาวน์โหลดสคริปต์ของคุณผ่านพร็อกซีและล้มเหลว

หนึ่งในวิธีที่ หนังสือมอบฉันทะ ที่ใช้คือตัวแปรสภาพแวดล้อม http_proxy และ https_proxy จะถูกตั้งค่าเป็นของคุณ หนังสือมอบฉันทะ ค่าในสภาพแวดล้อมการติดตั้ง เมื่อทำการร้องขอเว็บ ว้าว ใช้ตัวแปรสภาพแวดล้อมเหล่านี้เพื่อกำหนดพร็อกซี ต่อไปนี้เป็นบรรทัดคำสั่งง่ายๆ ที่คุณสามารถลองใช้ในเชลล์สภาพแวดล้อมของตัวติดตั้ง (หรือระบบ Linux จริงๆ) เพื่อยืนยัน

สิ่งนี้ควรใช้งานได้เนื่องจากไม่ได้ตั้งค่าพร็อกซี

http_proxy= wget http://10.10.11.245/tftp/ubuntu_init.sh

สิ่งนี้ควรเกิดข้อผิดพลาดและออกด้วยรหัสส่งคืนของ 8 เหมือนบันทึกของคุณแสดง

http_proxy=http://mirrors.aliyun.com/ubuntu wget http://10.10.11.245/tftp/ubuntu_init.sh
ก้อง $?

ตัวเลือก

นี่เป็นวิธีที่มีอยู่สองสามวิธีในการแก้ไขปัญหานี้

  • อย่ากำหนดค่า หนังสือมอบฉันทะ.
  • early_commands ดูเหมือนจะไม่ได้รับผลกระทบจาก หนังสือมอบฉันทะดังนั้นจึงใช้ได้กับการดาวน์โหลดสคริปต์
  คำสั่งเริ่มต้น:
    - /usr/bin/wget -P /run/ http://10.10.11.245/tftp/ubuntu_init.sh
  • ยกเลิกการตั้งค่าตัวแปรสภาพแวดล้อมที่เกี่ยวข้องใน คำสั่งล่าช้า. สิ่งนี้จะต้องทำสำหรับแต่ละคำสั่ง
  คำสั่งล่าช้า:
    - http_proxy= curtin ในเป้าหมาย --target /target -- /usr/bin/wget -P /root/ http://10.10.11.245/tftp/ubuntu_init.sh

หมายเหตุ

ฉันทดสอบโดยใช้อูบุนตู 20.04.3 ตัวติดตั้ง (ความย่อย 21.08.2)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา