Puncte:0

Serverul automat instalează fișierul de configurare cheile de nivel superior âlate-commandsâ nu pot folosi wget sau curl

drapel ps

Am întâmpinat o problemă legată de instalarea automată a serverului.

Acesta este mediul meu: Server: centos 7.6 x86_64 (este un sistem kvm) Nodul 1: fără sistem Nodul 2: fără sistem

Vreau să instalez automat sistemul Ubuntu-20.04.3 Server.

Despre Server1 instalez tftpd,dhcpd,httpd. niste configuratii de genul asta:

# tftpd
# cat /etc/xinetd.d/tftp
serviciu tftp
{
    socket_type = dgram
    protocol = udp
    așteaptă = da
    utilizator = root
    server = /usr/sbin/in.tftpd
    server_args = -s /var/lib/tftpboot
    dezactivare = da
    per_sursă = 11
    cps = 100 2
    steaguri = IPv4
}


# dhcpd
# cat /etc/dhcp/dhcpd.conf
ddns-update-style none;
subnet 10.10.8.0 netmask 255.255.252.0 {
     routere opționale 10.10.11.254;
     opțiune domain-name-servers 10.10.9.250;
     opțiunea subnet-mask 255.255.252.0;
     interval dynamic-bootp 10.10.11.10 10.10.11.220;
     default-lease-time 21600;
     max-lease-time 43200;
     următorul server 10.10.11.245;
     nume de fișier „pxelinux.0”;
}

# httpd
# cat /etc/httpd/conf.d/tftp.conf
<Director /var/lib/tftpboot>
        Opțiuni +FollowSymLinks +Indecși
        Solicitați toate acordate
</Director>
Alias ​​/tftp /var/lib/tftpboot

Fișiere în /var/lib/tftpboot

# ll /var/lib/tftpboot/
æ»ç¨é 1328744
drwxrwxrwx 2 rădăcină rădăcină 22 12æ 8 18:40 grub
-rwxrwxrwx 1 rădăcină rădăcină 86017541 11æ 25 17:40 initrd
-rwxrwxrwx 1 rădăcină rădăcină 31 11æ 25 17:45 metadate
-rwxrwxrwx 1 root root 336 12æ 8 20:03 network.sh
-rwxrwxrwx 1 root root 1435512 4æ 16 2020 pixelinux.0
-rwxrwxrwx 1 rădăcină rădăcină 1261371392 8æ 24 17:09 ubuntu-20.04.3-live-server-amd64.iso
-rwxrwxrwx 1 rădăcină rădăcină 1353 12æ 8 20:03 ubuntu_init.sh
-rwxrwxrwx 1 root root 2856 12æ 8 20:17 user-data
-rwxrwxrwx 1 rădăcină rădăcină 11772160 11æ 25 17:40 vmlinuz

grub.cfg

# cat grub/grub.cfg
implicit=instalare automată
timeout=5
timeout_style=meniu

set menu_color_normal=alb/negru
set menu_color_highlight=negru/gri deschis

intrarea de meniu „Focal Live Installer - automated” --id=autoinstall {
    echo „Se încarcă nucleul...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-am autoinstald6-server. ds=nocloud-net\;s=http://10.10.11.245/tftp/ ---
    echo „Se încarcă discul Ram...111”
    initrd /initrd
}
intrarea de meniu „Focal Live Installer” --id=install {
    echo „Se încarcă nucleul...22”
    linux /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 „Se încarcă discul Ram...22”
    initrd /initrd
}

meta-date

# metadate pentru pisici
instance-id: focal-autoinstall

datele utilizatorului

# de date despre utilizator pisică
#cloud-config
autoinstalare:
  apt:
    geoip: adevărat
    preserve_sources_list: false
    primar:
    - arcade: [amd64, i386]
      uri: http://mirrors.aliyun.com/ubuntu
    - arcade: [implicit]
      uri: http://ports.ubuntu.com/ubuntu-ports
  datele utilizatorului:
    fus orar: Asia/Shanghai
    disable_root: false
    chpasswd:
      lista: |
        rădăcină:$6$YMYlEcE71$/bcl2qd2rSYePvOkmgAyQR/h/
  identitate: {hostname: 111, parola: $6$ereNXNuj9WVUt77B$.dbpuHaLernNl6qq6r14meIk1W5VAyaMV9.,
    nume real: 11, nume de utilizator: 11}
  tastatură: {aspect: noi, comutare: nul, variantă: ''}
  local: en_US.UTF-8
  reţea:
    ethernet:
      eno12399:
        critic: adevărat
        dhcp-identifier: mac
        dhcp4: adevărat
        servere de nume:
          adrese: [10.10.9.250]
      eno12409: {dhcp4: adevărat}
      eno12419: {dhcp4: adevărat}
      eno12429: {dhcp4: adevărat}
      eno8303: {dhcp4: adevărat}
      eno8403: {dhcp4: adevărat}
    versiunea: 2
  proxy: http://mirrors.aliyun.com/ubuntu
  ssh:
    permit-pw: adevărat
    chei-autorizate: []
    install-server: adevărat
  depozitare:
    grub:
      reorder_uefi: Fals
    config:
    - {ptable: gpt, cale: /dev/sda, șterge: superblock-recursive, preserve: false, nume: '', grub_device: false,
      tip: disc, id: disc-sda}
    - {dispozitiv: disk-sda, dimensiune: 536870912, ștergere: superbloc, steag: boot, număr: 1,
      preserve: false, grub_device: true, tip: partiție, id: partiție-2}
    - {fstype: fat32, volum: partiție-2, păstrare: false, tip: format, id: format-2}
    - {dispozitiv: disc-sda, dimensiune: -1, ștergere: superbloc, steag: '', număr: 2,
      preserve: false, grub_device: false, tip: partiție, id: partiție-3}
    - {fstype: xfs, volum: partiție-3, păstrare: false, tip: format, id: format-3}
    - {cale: /, dispozitiv: format-3, tip: mount, id: mount-3}
    - {cale: /boot/efi, dispozitiv: format-2, tip: mount, id: mount-2}
  actualizări: securitate
  pachete:
  - Linux-generic
  - instrumente de plasă
  comenzi întârziate:
  - curtin in-target --target=/target -- /usr/bin/wget -P /root/ http://10.10.11.245/tftp/ubuntu_init.sh
  - curtin in-target --target=/target -- /usr/bin/wget -P /root/ http://10.10.11.245/tftp/network.sh
  - curtin in-target --target=/target -- /usr/bin/bash /root/ubuntu_init.sh
  #- curtin in-target --target=/target -- sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && systemctl restart sshd
  #- curtin in-target --target=/target -- systemctl stop ufw.service && systemctl disable ufw.service
  #- curtin in-target --target=/target -- echo -e "NTP=ntp1.aliyun.com\nFallbackNTP=ntp.ubuntu.com" >> /etc/systemd/timesyncd.conf && systemctl restart systemd-timesyncd
  versiunea: 1

Ubuntu_init.sh

#!/bin/bash
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin da/' /etc/ssh/sshd_config

systemctl reporniți sshd

systemctl stop ufw.service
systemctl dezactivați ufw.service
# 
echo -e „NTP=ntp1.aliyun.com\nFallbackNTP=ntp.ubuntu.com” >> /etc/systemd/timesyncd.conf
systemctl reporniți systemd-timesyncd
# 
cat >> /etc/security/limits.conf << EOF
* soft nofile 655350
* hard nofile 655350
* soft nproc 655350
* hard nproc 655350
root soft nofile 655350
root hard nofile 655350
root soft nproc 655350
root hard nproc 655350
EOF
########################################
cp /etc/sysctl.conf /etc/sysctl.conf.bak
cat > /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 = 5000
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
EOF

/sbin/sysctl -p

Problema mea

Când rulez instalarea automată pxe pe Dell R750 sau alte mașini cu servere de servicii UEFI deschise. tftp,dhcpd,httpd sunt ok. dar când serverul execută „comenzi-târzii” ca wget sau răsuci apoi raportați o eroare. alte comenzi bash pot executa nu au nicio eroare, cum ar fi ecou ,sed,systemctl începe serviciul și așa mai departe.

atunci când eroarea de instalare automată, atunci raportați o eroare și instalarea sistemului este întreruptă. eu folosesc wget pot descărca fișierul bash de pe serverul meu httpd și exectue.

poza pentru asta: poza de eroare

Dacă deschideți încet poza de eroare, iată textul de eroare descris:

start: subiquity/Late/run/command_0: curtin in-target --target=/target -- /usr/bin/wget -P /root/ http://10.10.11.245/tftp/ubuntu_init.sh
start: subiquity/Meta/status_GET
finish: subiquity/Late/run/command_0: Comanda '['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']' a returnat starea de ieșire diferită de zero 8.ip a 

jurnal 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 Init/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 Init/21.2-3-g899bfaa9-0ubuntu2~20.04.1"
10.10.11.94 - - [13/Dec/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/Dec/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/Dec/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/Dec/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/Dec/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/Dec/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/Dec/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/Dec/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/Dec/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/Dec/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/Dec/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/Dec/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/Dec/2021:15:59:35 +0800] „GET /tftp/vendor-data HTTP/1.1” 404 214 „-” „Cloud-Init/21.2-3-g899bfaa9-0ubuntu2~ 20.04.1"

Il execut manual fara eroare.


Dacă cineva știe cum să remediez această problemă sau are același lucru ca și cu problema mea, vă rugăm să-mi trimiteți un mesaj, mulțumesc.

dacă nu m-am exprimat clar, poți sublinia.

muru avatar
drapel us
Vă rugăm să nu postați imagini cu text. Copiați textul aici și utilizați formatarea codului. Se pare că scrie „exit status 8”, care pentru [`wget`](https://manpages.ubuntu.com/manpages/jammy/en/man1/wget.1.html) este „8 Server a emis o eroare raspuns."
bowfgc avatar
drapel ps
thx, actualizez textul descris. dacă serverul httpd nu răspunde, de ce pot folosi descărcarea `wget` manual fără eroare.@muru
muru avatar
drapel us
Mulțumiri. Aveți acces la jurnalele serverului pentru a vedea ce s-ar putea întâmpla? Ce eroare primești când folosești curl?
bowfgc avatar
drapel ps
da, îmi verific jurnalul httpd, nimic, doar înregistrez niște solicitări, GET `ubuntu-20.04.3.iso`, `meta-data`,`user-data`, postez intrarea jurnalului în articol.
Puncte:0
drapel jp

Problema dvs. este probabil cauzată de proxy config

  proxy: http://mirrors.aliyun.com/ubuntu

Am descoperit că dacă specificați un proxy, atunci tot traficul web va folosi acel proxy. The wget încercarea de a descărca scriptul este trimisă prin proxy și eșuează.

Una dintre modalitățile prin care proxy este folosit ca variabilele de mediu Http proxy și https_proxy va fi setat la dvs proxy valoare în mediul de instalare. La efectuarea cererilor web wget folosește aceste variabile de mediu pentru a determina proxy-ul. Iată câteva linii de comandă simple pe care le puteți încerca în shell-ul mediului de instalare (sau într-adevăr orice sistem Linux) pentru a le verifica.

Acest lucru ar trebui să funcționeze, deoarece nu este setat niciun proxy.

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

Acest lucru ar trebui să eroeze și să iasă cu codul de returnare al 8 cum arată jurnalele tale.

http_proxy=http://mirrors.aliyun.com/ubuntu wget http://10.10.11.245/tftp/ubuntu_init.sh
eco $?

Opțiuni

Acestea sunt câteva modalități disponibile de a rezolva acest lucru

  • nu configura a proxy.
  • comenzi_devreme nu par a fi afectate de proxy, așa că funcționează pentru a descărca scriptul.
  comenzi timpurii:
    - /usr/bin/wget -P /run/ http://10.10.11.245/tftp/ubuntu_init.sh
  • dezactivați variabila de mediu relevantă în comenzi târzii. Acest lucru ar trebui făcut pentru fiecare comandă.
  comenzi întârziate:
    - http_proxy= curtin in-target --target /target -- /usr/bin/wget -P /root/ http://10.10.11.245/tftp/ubuntu_init.sh

Note

Am testat folosind Ubuntu 20.04.3 instalator (subicitatea 21.08.2)

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.