Tempo estimado até à conclusão: 3 horas
Proprietário do componente operável: OLT/Node
Perfil de competências: engenheiro de implementação
A máquina de arranque é o primeiro sistema de informações (SI) do servidor instalado numa célula isolada do Google Distributed Cloud (GDC) e é usada para arrancar os restantes sistemas de informações da nuvem distribuída. A máquina é reposta como um nó do cluster de trabalho após as verificações prévias.
Use o primeiro servidor padrão no terceiro rack para o instalador autónomo. Por exemplo, para a validação de laboratório, usamos xx-ac-bm15, que é o servidor mais importante no terceiro rack ac que não tem base como parte da etiqueta de recurso. Embora o
bootstrapper possa ser qualquer máquina no rack, uma vez que não existem
requisitos específicos para o bootstrapper, é padronizada uma máquina específica para este
fim. No entanto, não deve usar nenhum dos servidores com base no nome nos primeiros 3 racks, uma vez que são usados para clusters de administrador principal e de operações.
9.1. Instale o SO
Ligue-se à máquina de arranque através de um monitor e um teclado.
Defina o IP na porta de rede dedicada do iLO. Use um endereço no intervalo de IP de gestão com 160 como o último octeto.
Defina o IP da estação de trabalho para qualquer outro endereço na mesma sub-rede e ligue-se temporariamente à porta Ethernet traseira através de um cabo Ethernet cruzado.
9.1.1. Instalação por estação de trabalho com ficheiro ISO local
No navegador da estação de trabalho offline, estabeleça ligação à consola iLO da máquina de arranque e aceda ao menu Remote Console & Media na árvore de navegação. Não use conteúdo multimédia remoto através do USB iLO.
Clique em Virtual Media e especifique o URL do suporte virtual em Ligar CD/DVD-ROM.
Opcional: selecione Arranque na próxima reposição. Quando a opção Arranque no próximo reinício está selecionada, o servidor é iniciado com esta imagem apenas no próximo reinício do servidor. A imagem é removida automaticamente no segundo reinício do servidor para que o servidor não arranque duas vezes com esta imagem. Se esta caixa de verificação não estiver selecionada, a imagem permanece ligada até ser removida manualmente.
Valide clicando em Inserir multimédia.
Para que a máquina de arranque seja iniciada a partir da imagem
.iso, tem de repor a máquina:- Na consola iLO, clique em Power & Thermal - Server Power.
- Clique em Repor. Pode abrir a consola virtual para monitorizar a reposição da máquina e o arranque do ficheiro
.iso.
Assim que a inicialização estiver concluída, especifique o início de sessão e a palavra-passe para estabelecer ligação à máquina de arranque (conta de raiz). O bootstrapper é inicializado através de um ficheiro ISO criado pela Google, pelo que a Google especifica uma palavra-passe de raiz predefinida.
Enquanto operador, tem acesso à palavra-passe e pode criar outro utilizador, se necessário.
A ISO do programa de arranque já contém todas as ferramentas necessárias, como docker e kubectl, pelo que não precisa de as instalar separadamente.
9.1.2. Instalação através de ISO gravado na unidade USB
9.1.2.1. Grave o ISO na unidade USB
- O controlador do sistema usa uma imagem rocky, que lhe permite usar o comando dd ou a interface do utilizador (UI) "Discos".
Com a IU Discos:
- Ligue uma unidade flash.
- Clique em Unidade flash no menu de navegação e, de seguida, no menu de hambúrguer na barra de menu. Clique em Restaurar imagem de disco e aponte para o programa de arranque o ISO transferido.

Com dd:
Para determinar qual o disco que é a unidade USB, execute:
sudo fdisk -lUse o tamanho do disco para determinar se o dispositivo é o USB. Memorize o nome do dispositivo para os passos seguintes.
Monte o disco pelo nome do dispositivo, conforme indicado no passo anterior:
sudo umount <device name>Formate a unidade:
sudo mkfs.vfat <device name>Copie o ficheiro ISO para a unidade:
sudo dd bs=4M if=<path to ISO file> of=<device name> status=progress
9.1.2.2. Arranque através da unidade de arranque USB
- Insira uma unidade USB na porta USB frontal (não na porta marcada como iLO).
- Selecione Momentary Press no botão ligar/desligar na interface iLO. Aguarde que o botão virtual mude de cor para amarelo, o que indica que a máquina foi desligada.
- Selecione Administração e, de seguida, Ordem de arranque.
- Na secção Estado do arranque único > Selecionar arranque único, selecione Unidade USB.
- Selecione Pressão momentânea no botão de alimentação na interface iLO; verifique se o botão virtual fica verde. A instalação do SO é automática, tal como o reinício. Quando a consola apresentar um comando
bootstrapper login, a instalação do bootstrapper está concluída. - Remova a unidade USB.
9.1.3. Instalação do registo de auditoria
Para instalar e ativar manualmente o registo de auditoria do programa de arranque:
Copie o seguinte bloco para um novo ficheiro em
/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 'Anexar esta linha ao fim de
/etc/bash.bashrc[ -f /etc/bash.bootstrapper_audit.sh ] && . /etc/bash.bootstrapper_audit.shAssim que estas alterações forem guardadas, todas as novas shells vão registar entradas do registo de auditoria no diário do sistema.
(Opcional) Verifique se o registo de auditoria está a funcionar
Para verificar se os registos de auditoria estão a ser gravados com êxito, execute o seguinte comando e verifique se é emitido um resultado semelhante:
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'(opcional) Desative o registo de auditoria
No caso improvável de suspeitar que o registo de auditoria está a afetar outras operações do programa de arranque, pode desativar rapidamente a funcionalidade na shell atual com:
USER@bootstrapper:~$ unset PROMPT_COMMANDDepois de se certificar de que o registo de auditoria não está a afetar nada, reative-o na shell atual com:
source /etc/bash.bashrc
9.2. Configure a interface de gestão e o trajeto
Esta secção configura a interface de gestão e o caminho necessário para o processo de arranque.
9.2.1. Encontre o IP de gestão, o CIDR e o endereço do gateway
Encontre o IP de gestão do bootstrapper no ficheiro
cellcfg/serv-core.yaml:yq eval -r 'select(.metadata.annotations."system.private.gdc.goog/bootstrapper" == "true") | .spec.managementNetwork.ips[0]' PATH_TO_SERV_CORE_FILESubstitua
PATH_TO_SERV_CORE_FILEpelo caminho para o ficheirocellcfg/serv-core.yaml.O bootstrapper é identificado pela anotação
system.private.gdc.goog/bootstrapper: "true". O endereço IP de gestão emspec.managementNetwork.ips[0]é172.22.80.76no exemplo: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: LOM1Encontre o intervalo de endereços CIDR necessário para definir o endereço IP da interface de gestão. Esta opção está disponível no questionário CIQ.
Exemplo de 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/24Neste exemplo, o intervalo CIDR
172.23.16.0/22abrange todos os endereços CIDR de gestão indicados.Encontre o endereço do gateway usado pelo bootstrapper quando comunica com a rede de gestão. Se o bootstrapper estiver localizado no rack
ac, encontre o nome do recursoCIDRClaimcom o comando:grep -A 10 -B 10 "ac-mgmtsw01-server-os-cidr" cellcfg/pnet-core.yaml`.O resultado tem o seguinte aspeto:
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-cidrCom o
172.28.120.128/26encontrado emipv4Spec.staticCidrBlocksdo recursoCIDRClaimdenominadoag-ac-mgmtsw01-server-os-cidr, o endereço do gateway é o primeiro endereço IP em172.28.120.128/26, que é172.28.120.129.
9.2.2. Configure o endereço IP da interface de gestão
ip address add dev MGMT_INTERFACE MGMT_IP/MGMT_SUBNET_PREFIX
Substitua o seguinte:
MGMT_INTERFACE: um exemplo de nome de interface de gestão éens15f0. Use o endereço MAC nocellcfg/serv-core.yamlpara identificar a interface usada para a rede de gestão.MGMT_IP: o endereço IP de gestão encontrado na secção Encontre o IP de gestão e o CIDR.MGMT_SUBNET_PREFIX: o prefixo da sub-rede CIDR de gestão (como22para172.23.16.0/22do exemplo anterior). Para mais informações, consulte o artigo Encontre o IP de gestão e o CIDR.
Em seguida, execute o script no bootstrapper. Este script atribui o endereço IP à interface de gestão e cria uma rota predefinida para o intervalo CIDR de gestão.
9.2.3. Ative a interface de gestão
Esta secção fornece instruções para ativar a interface de gestão. Identifique a interface de gestão encontrando o endereço MAC da interface de gestão no bootstrapper em cellcfg/serv-core.yaml e consulte este endereço MAC na saída ip a no bootstrapper.
Neste exemplo, o valor da interface de gestão é ens15f0. Use o seu próprio valor quando seguir estas instruções. Adicione o endereço IP com o endereço IP de gestão encontrado no ficheiro 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: {}
Neste ficheiro YAML de exemplo, o endereço IP de gestão é 172.29.24.147. É usado um comprimento do prefixo de /26 como o bloco CIDR encontrado em Encontre o IP de gestão, o CIDR e o endereço do gateway, que é /26.
Adicione o endereço IP de gestão à interface de gestão:
sudo ip addr add 172.29.24.147/26 dev ens15f0,
Em seguida, defina a interface através deste comando ip:
ip link set ens15f0 up
Para verificar se a configuração da interface foi bem-sucedida, use ip link show ens15f0:
ip link show ens15f0
O resultado é semelhante ao seguinte, com a mensagem UP a indicar êxito:
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. Configure a configuração de encaminhamento
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"
Substitua o seguinte:
MGMT_GATEWAY: o endereço IP do gateway encontrado na secção Encontre o IP de gestão, o CIDR e o endereço do gateway.MGMT_CIDR: o CIDR de gestão é do CIQ. Consulte a secção Encontre o IP de gestão, o CIDR e o endereço do gateway.MGMT_INTERFACE: um exemplo de nome de interface de gestão éens15f0. Pode usar o endereço MAC emcellcfg/serv-core.yamlpara identificar que interface é usada para a rede de gestão.
Em seguida, execute o script no bootstrapper.
9.3. Configure o relógio do programa de arranque
Neste momento, ainda não existem servidores NTP. Temos de definir manualmente o relógio do bootstrapper para uma hora razoavelmente precisa (no prazo de 1 segundo da hora real) em UTC. Certifique-se de que usa "AM" ou "PM", a menos que tenha a certeza de que está a usar o relógio de 24 horas. Um relógio definido incorretamente tem efeitos irreparáveis em fases posteriores.
date --set "DATE_TIME_UTC"
Substitua DATE_TIME_UTC pela data e hora em UTC, como 2023-03-21 01:14:30 AM UTC.
9.4. Inicie sessão no servidor de arranque
Se tiver terminado sessão no servidor de arranque, pode iniciar sessão novamente na localização física da máquina de arranque ou através do controlador do sistema.
9.4.1. Início de sessão na máquina física
Inicie sessão no servidor de arranque automático a partir da máquina física:
Ligue um teclado, um rato e um monitor à máquina de arranque.
Inicie sessão na máquina com o nome de utilizador e a palavra-passe predefinidos.
9.4.2. Início de sessão do controlador do sistema
Inicie sessão no servidor de arranque com o controlador do sistema:
Aceda ao carrinho de emergência com o controlador do sistema.
Execute o seguinte comando:
ssh ubuntu@BOOTSTRAPPER_IP_ADDRESSSubstitua BOOTSTRAPPER_IP_ADDRESS pelo endereço IP do servidor de arranque.
9.5. Estrutura de ficheiros
Todas as operações subsequentes são realizadas como utilizador raiz. Segue-se uma estrutura de diretórios recomendada, mas não obrigatória.
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