Perkiraan waktu penyelesaian: 3 jam
Pemilik komponen yang dapat dioperasikan: OLT/Node
Profil keterampilan: engineer deployment
Mesin bootstrapper adalah sistem informasi (IS) server pertama yang diinstal di sel air-gapped Google Distributed Cloud (GDC) dan digunakan untuk mem-bootstrap sistem informasi Distributed Cloud yang tersisa. Mesin di-reimage sebagai node cluster pekerja setelah pemeriksaan awal.
Gunakan server standar pertama di rak ketiga untuk bootstrapper. Misalnya, untuk verifikasi lab, kami menggunakan xx-ac-bm15, yang merupakan server teratas di rak ketiga ac yang tidak memiliki base sebagai bagian dari tag aset. Meskipun
bootstrapper dapat berupa mesin apa pun di rak, karena tidak ada
persyaratan khusus untuk bootstrapper, mesin tertentu distandardisasi untuk
tujuan ini. Namun, Anda tidak boleh menggunakan server dengan base dalam namanya di 3 rak pertama, karena server tersebut digunakan untuk cluster operasi dan admin root.
9.1. Menginstal OS
Hubungkan ke komputer bootstrapper menggunakan monitor dan keyboard.
Tetapkan IP di port Jaringan Khusus iLO. Gunakan alamat dalam rentang IP pengelolaan dengan 160 sebagai octet terakhir.
Tetapkan IP workstation ke alamat lain di subnet yang sama dan hubungkan sementara ke port Ethernet belakang dengan kabel Ethernet crossover.
9.1.1. Penginstalan oleh workstation dengan file ISO lokal
Dari browser workstation offline, hubungkan ke konsol iLO mesin bootstrapper dan buka menu Remote Console & Media di struktur navigasi. Jangan gunakan media jarak jauh melalui iLO USB.
Klik Virtual Media dan tentukan URL Media Virtual di Connect CD/DVD-ROM.
Opsional: Pilih Boot saat Reset berikutnya. Jika Boot on Next reset dipilih, server akan di-boot ke image ini hanya pada mulai ulang server berikutnya. Image akan dikeluarkan secara otomatis saat server dimulai ulang untuk kedua kalinya sehingga server tidak melakukan booting ke image ini dua kali. Jika kotak centang ini tidak dicentang, gambar akan tetap terhubung hingga dikeluarkan secara manual.
Validasi dengan mengklik Sisipkan Media.
Agar mesin bootstrapper dapat melakukan booting dari image
.iso, Anda harus mereset mesin:- Di konsol iLO, klik Power & Thermal - Server Power.
- Klik Reset. Anda dapat membuka Konsol Virtual untuk memantau reset mesin dan booting file
.iso.
Setelah bootstrap selesai, tentukan login dan sandi untuk terhubung ke mesin bootstrapper (akun root). Bootstrapper di-bootstrap menggunakan file ISO yang dibuat oleh Google, sehingga Google menentukan sandi root default.
Sebagai operator, Anda memiliki akses ke sandi dan dapat membuat pengguna lain jika diperlukan.
ISO bootstrapper sudah berisi semua alat yang diperlukan, seperti docker dan
kubectl, sehingga Anda tidak perlu menginstalnya secara terpisah.
9.1.2. Penginstalan melalui ISO yang di-burn ke drive USB
9.1.2.1. Membakar ISO ke drive USB
- Pengontrol sistem menggunakan image rocky, yang memungkinkan Anda menggunakan perintah dd atau antarmuka pengguna (UI) "Disks".
Dengan UI Disks:
- Colokkan flash drive.
- Klik flash drive di menu navigasi, lalu menu hamburger di menu bar. Klik Restore Disk Image dan arahkan ke bootstrapper ISO yang didownload.

Dengan dd:
Untuk menentukan disk mana yang merupakan drive USB, jalankan:
sudo fdisk -lGunakan Ukuran disk untuk menentukan apakah perangkat adalah USB. Ingat nama perangkat untuk beberapa langkah berikutnya.
Pasang disk berdasarkan nama perangkat seperti yang diberikan pada langkah sebelumnya:
sudo umount <device name>Format drive:
sudo mkfs.vfat <device name>Salin ISO ke drive:
sudo dd bs=4M if=<path to ISO file> of=<device name> status=progress
9.1.2.2. Melakukan booting menggunakan drive boot USB
- Colokkan flash drive USB ke port USB depan (bukan yang bertanda iLO).
- Pilih Momentary Press pada tombol daya di antarmuka iLO. Tunggu hingga tombol virtual berubah warna menjadi kuning, yang menunjukkan bahwa mesin telah dimatikan.
- Pilih Administrasi, lalu Urutan Boot.
- Di bagian Status Boot Sekali > Pilih Boot Sekali, pilih USB drive.
- Pilih Momentary Press pada tombol daya di antarmuka iLO; verifikasi
bahwa tombol virtual berubah menjadi hijau. Penginstalan OS bersifat otomatis, begitu juga dengan
mulai ulang. Setelah konsol menampilkan perintah
bootstrapper login, penginstalan bootstrapper selesai. - Lepaskan drive USB.
9.1.3. Penginstalan logging audit
Untuk menginstal dan mengaktifkan logging audit bootstrapper secara manual:
Salin blok berikut ke file baru di
/etc/bash.bootstrapper_audit.shfunction log_previous_cmd() { rc=$? ; [[ "$rc" -eq 130 ]] && return line="rc=${rc};;pwd=$(pwd);;ppid=${PPID}" line="${line};;started=$(history 1|awk 'NR==1{$0=gensub(/^.{0,7}([^ ]*) /,"\\1;;cmd=","g",$0)}1')" logger --priority local6.info --id="$$" "${line}" } export PROMPT_COMMAND='log_previous_cmd' export HISTTIMEFORMAT='%G-%m-%dT%T 'Tambahkan baris ini ke bagian akhir
/etc/bash.bashrc[ -f /etc/bash.bootstrapper_audit.sh ] && . /etc/bash.bootstrapper_audit.shSetelah perubahan ini disimpan, semua shell baru akan mencatat entri log audit ke jurnal sistem.
(opsional) Memverifikasi bahwa logging audit berfungsi
Untuk memverifikasi bahwa log audit berhasil direkam, jalankan perintah berikut dan verifikasi bahwa output serupa dikeluarkan:
USER@bootstrapper:~$ echo 'a command' USER@bootstrapper:~$ sudo journalctl -eo short-iso -p info SYSLOG_FACILITY=22 2024-10-12T00:30:24+0000 bootstrapper USER[96558]: rc=0;;pwd=/root;;ppid=96479;;started=2024-10-12T00:30:24;;cmd=date 2024-10-12T00:30:47+0000 bootstrapper USER[96558]: rc=0;;pwd=/root;;ppid=96479;;started=2024-10-12T00:30:47;;cmd=echo 'a command'(opsional) Menonaktifkan logging audit
Jika ada kemungkinan kecil bahwa logging audit dicurigai memengaruhi operasi bootstrapper lainnya, fitur ini dapat dinonaktifkan dengan cepat di shell saat ini menggunakan:
USER@bootstrapper:~$ unset PROMPT_COMMANDSetelah yakin bahwa log audit tidak memengaruhi apa pun, aktifkan kembali di shell saat ini dengan:
source /etc/bash.bashrc
9.2. Menyiapkan antarmuka dan rute pengelolaan
Bagian ini menyiapkan antarmuka pengelolaan dan rute yang diperlukan untuk proses bootstrapping.
9.2.1. Menemukan IP pengelolaan, CIDR, dan alamat gateway
Temukan IP pengelolaan bootstrapper dalam file
cellcfg/serv-core.yaml:yq eval -r 'select(.metadata.annotations."system.private.gdc.goog/bootstrapper" == "true") | .spec.managementNetwork.ips[0]' PATH_TO_SERV_CORE_FILEGanti
PATH_TO_SERV_CORE_FILEdengan jalur ke filecellcfg/serv-core.yaml.Bootstrapper diidentifikasi oleh anotasi
system.private.gdc.goog/bootstrapper: "true". Alamat IP pengelolaan dispec.managementNetwork.ips[0]adalah172.22.80.76dalam contoh:apiVersion: system.private.gdc.goog/v1alpha1 kind: Server metadata: annotations: lcm.private.gdc.goog/claim-by-force: "true" helm.sh/resource-policy: keep system.private.gdc.goog/bootstrapper: "true" creationTimestamp: null labels: system.private.gdc.goog/rack-name: mb-aa name: mb-aa-bm13 namespace: gpc-system spec: bmc: credentialsRef: name: bmc-credentials-mb-aa-bm13 namespace: gpc-system ip: 172.22.80.108 mac: 5c:ba:2c:42:a9:68 protocol: redfish redfish: systemPath: /redfish/v1/Systems/1 dataplaneNetwork: {} encryptDisk: true firmwareInstall: true secureErase: true luks: enable: false managementNetwork: ips: - 172.22.80.76 link: LOM1Temukan rentang alamat CIDR yang diperlukan untuk menetapkan alamat IP antarmuka pengelolaan. Informasi ini tersedia dalam kuesioner CIQ.
Contoh CIQ:
oobManagementCIDRs: - ipFamily: IPv4 ipv4: 172.23.16.0/24 - ipFamily: IPv4 ipv4: 172.23.17.0/24 - ipFamily: IPv4 ipv4: 172.23.18.0/24 - ipFamily: IPv4 ipv4: 172.23.19.0/24Dalam contoh ini, rentang CIDR
172.23.16.0/22mencakup semua alamat CIDR pengelolaan yang tercantum.Temukan alamat gateway yang digunakan oleh bootstrapper saat berkomunikasi ke jaringan pengelolaan. Jika bootstrapper berada di rak
ac, temukan nama resourceCIDRClaimdengan perintah:grep -A 10 -B 10 "ac-mgmtsw01-server-os-cidr" cellcfg/pnet-core.yaml`.Outputnya akan terlihat seperti berikut:
apiVersion: system.private.gdc.goog/v1alpha1 kind: CIDRClaim metadata: annotations: lcm.private.gdc.goog/claim-by-force: "true" labels: cidrclaims.system.private.gdc.goog/cidr-category: internal cidrclaims.system.private.gdc.goog/cidr-org: root cidrclaims.system.private.gdc.goog/node-type: leaf network.private.gdc.goog/mgmtnw-device-category: server-os network.private.gdc.goog/mgmtsw: ag-ac-mgmtsw01 name: ag-ac-mgmtsw01-server-os-cidr namespace: root spec: ipv4Spec: staticCidrBlocks: - 172.28.120.128/26 parentCidrClaimName: server-os-mgmt-network-cidrDengan
172.28.120.128/26yang ditemukan diipv4Spec.staticCidrBlocksresourceCIDRClaimbernamaag-ac-mgmtsw01-server-os-cidr, alamat gateway adalah alamat IP pertama di172.28.120.128/26, yaitu172.28.120.129.
9.2.2. Mengonfigurasi alamat IP antarmuka pengelolaan
ip address add dev MGMT_INTERFACE MGMT_IP/MGMT_SUBNET_PREFIX
Ganti kode berikut:
MGMT_INTERFACE: contoh nama antarmuka pengelolaan adalahens15f0. Gunakan alamat MAC dicellcfg/serv-core.yamluntuk mengidentifikasi antarmuka mana yang digunakan untuk jaringan pengelolaan.MGMT_IP: alamat IP pengelolaan yang ditemukan di bagian Temukan IP dan CIDR pengelolaan.MGMT_SUBNET_PREFIX: awalan subnet CIDR pengelolaan (seperti22untuk172.23.16.0/22dari contoh sebelumnya). Untuk mengetahui informasi selengkapnya, lihat Menemukan IP pengelolaan dan CIDR.
Kemudian, jalankan skrip di bootstrapper. Skrip ini menetapkan alamat IP ke antarmuka pengelolaan dan membuat rute default untuk rentang CIDR pengelolaan.
9.2.3. Mengaktifkan antarmuka pengelolaan
Bagian ini memberikan petunjuk untuk mengaktifkan antarmuka pengelolaan. Identifikasi antarmuka pengelolaan dengan menemukan alamat MAC antarmuka pengelolaan di bootstrapper dalam cellcfg/serv-core.yaml, dan silangkan alamat MAC ini dalam output ip a di bootstrapper.
Dalam contoh ini, nilai antarmuka pengelolaan adalah ens15f0. Gunakan nilai Anda sendiri saat mengikuti petunjuk ini. Tambahkan alamat IP dengan alamat IP pengelolaan yang ada di file cellcfg/serv-core.yaml:
apiVersion: system.private.gdc.goog/v1alpha1
kind: Server
metadata:
annotations:
lcm.private.gdc.goog/claim-by-force: "true"
helm.sh/resource-policy: keep
system.private.gdc.goog/bootstrapper: "true"
creationTimestamp: null
labels:
system.private.gdc.goog/rack-name: ma-ac
name: ma-ac-bm15
namespace: gpc-system
spec:
bmc:
credentialsRef:
name: bmc-credentials-ma-ac-bm15
namespace: gpc-system
ip: 172.29.8.208
mac: 5c:ba:2c:42:28:2e
protocol: redfish
redfish:
systemPath: /redfish/v1/Systems/1
dataplaneNetwork: {}
encryptDisk: true
firmwareInstall: true
secureErase: true
luks:
enable: false
managementNetwork:
ips:
- 172.29.24.147
link: LOM1
provider: external
serverHardware:
bmhNetworkRef:
name: ma-ac-bm15
dataplaneNICPorts:
- mac: 5c:ba:2c:61:83:90
name: s1p1
- mac: 5c:ba:2c:61:83:98
name: s1p2
machineClassName: o1-standard1-64-gdc-metal
managementNICPort:
mac: 98:f2:b3:28:0b:70
name: LOM1
portBond:
name: s1p1-s1p2
networkBondModeType: 802.3ad
nicPortNames:
- s1p1
- s1p2
status: {}
Dalam file YAML contoh ini, alamat IP pengelolaan adalah 172.29.24.147. Panjang awalan /26 digunakan sebagai blok CIDR yang ditemukan di Menemukan alamat IP, CIDR, dan gateway pengelolaan adalah /26.
Tambahkan alamat IP pengelolaan ke antarmuka pengelolaan:
sudo ip addr add 172.29.24.147/26 dev ens15f0,
Selanjutnya, tetapkan antarmuka menggunakan perintah ip ini:
ip link set ens15f0 up
Untuk memeriksa apakah konfigurasi antarmuka berhasil, gunakan ip link show ens15f0:
ip link show ens15f0
Outputnya mirip dengan berikut ini, dengan pesan UP yang menunjukkan keberhasilan:
6: ens15f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 98:f2:b3:28:0b:70 brd ff:ff:ff:ff:ff:ff
inet 172.29.24.147/26 brd 172.29.24.191 scope global ens15f0
valid_lft forever preferred_lft forever
inet6 fe80::9af2:b3ff:fe28:b70/64 scope link
valid_lft forever preferred_lft forever
9.2.4. Menyiapkan konfigurasi perutean
MGMT_GATEWAY=MGMT_GATEWAY
MGMT_CIDR=MGMT_CIDR
MGMT_INTERFACE=MGMT_INTERFACE
ip route add $MGMT_CIDR via $MGMT_GATEWAY dev $MGMT_INTERFACE proto static"
Ganti kode berikut:
MGMT_GATEWAY: alamat IP gateway yang ditemukan di bagian Temukan IP pengelolaan, CIDR, dan alamat gateway.MGMT_CIDR: CIDR pengelolaan berasal dari CIQ. Lihat bagian Menemukan IP pengelolaan, CIDR, dan alamat gateway.MGMT_INTERFACE: contoh nama antarmuka pengelolaan adalahens15f0. Orang dapat menggunakan alamat MAC dicellcfg/serv-core.yamluntuk mengidentifikasi antarmuka mana yang digunakan untuk jaringan pengelolaan.
Kemudian, jalankan skrip di bootstrapper.
9.3. Mengonfigurasi clock bootstrapper
Pada tahap ini, belum ada server NTP. Kita perlu menyetel jam bootstrapper secara manual ke waktu yang cukup akurat (dalam waktu 1 detik dari waktu nyata) dalam UTC. Pastikan untuk menggunakan "AM" atau "PM", kecuali jika Anda yakin bahwa Anda menggunakan model waktu 24 jam. Setelan jam yang salah akan memiliki efek yang tidak dapat diperbaiki pada tahap selanjutnya.
date --set "DATE_TIME_UTC"
Ganti DATE_TIME_UTC dengan tanggal dan waktu dalam
UTC, seperti 2023-03-21 01:14:30 AM UTC.
9.4. Login ke server bootstrapper
Jika Anda logout dari server bootstrapper, Anda dapat login kembali di lokasi fisik mesin bootstrapper atau menggunakan pengontrol sistem.
9.4.1. Login mesin fisik
Login ke server bootstrapper dari mesin fisik:
Hubungkan keyboard, mouse, dan monitor ke mesin bootstrapper.
Login ke mesin menggunakan nama pengguna dan sandi default.
9.4.2. Login pengontrol sistem
Login ke server bootstrapper menggunakan pengontrol sistem:
Pergi ke troli darurat dengan pengontrol sistem.
Jalankan perintah berikut:
ssh ubuntu@BOOTSTRAPPER_IP_ADDRESSGanti BOOTSTRAPPER_IP_ADDRESS dengan alamat IP server bootstrapper.
9.5. Struktur File
Semua operasi berikutnya dilakukan sebagai pengguna root. Berikut adalah struktur direktori yang direkomendasikan, tetapi tidak wajib.
root
├── kubeconfigs/ - recommend creating this directory to keep track of the many kubeconfigs
└── .kube/config - location of bootstrap(KIND) cluster kubeconfig
└── full-release-y.y.y-gdch.yyy - Extraction of the gdch tar from step download-files
├── bootstrapper.iso
├── docs
├── examples
├── gdcloud
├── harbor
├── oci
└── operations_center
└── root-admin/root-admin-kubeconfig - where the root-admin kubeconfig will be put after root-admin creation
└── full-release-y.y.y-gdch.yyy-hotfix - if necessary, hotfixes will be extracted to another folder
├── README - explains how to apply the hotfix
├── oci - directory containing the hotfix
├── config - this is for the output of the "create configuration files" step
├── output/cellcfg - initial CRs applied to the bootstrap cluster
├── output/assets
├── devices.csv - HW file useful to have for debugging
├── cables.csv - HW file useful to have for debugging
├── ciq.yaml - HW file useful to have for debugging