4.8. 创建并配置基本 GCP 实例
要创建并配置符合 GCP 操作和安全要求的 GCP 实例,请完成以下步骤。
步骤
从存储桶中压缩的文件创建镜像。
gcloud compute images create BaseImageName --source-uri gs://BucketName/BaseImageName.tar.gz
$ gcloud compute images create BaseImageName --source-uri gs://BucketName/BaseImageName.tar.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
[admin@localhost ~] $ gcloud compute images create rhel-76-server --source-uri gs://user-rhelha/rhel-server-76.tar.gz Created [https://www.googleapis.com/compute/v1/projects/MyProject/global/images/rhel-server-76]. NAME PROJECT FAMILY DEPRECATED STATUS rhel-76-server rhel-ha-testing-on-gcp READY
[admin@localhost ~] $ gcloud compute images create rhel-76-server --source-uri gs://user-rhelha/rhel-server-76.tar.gz Created [https://www.googleapis.com/compute/v1/projects/MyProject/global/images/rhel-server-76]. NAME PROJECT FAMILY DEPRECATED STATUS rhel-76-server rhel-ha-testing-on-gcp READYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从镜像创建模板实例。基本 RHEL 实例所需的最小值为 n1-standard-2。如需了解更多配置选项,请参阅 gcloud 计算实例创建。
gcloud compute instances create BaseInstanceName --can-ip-forward --machine-type n1-standard-2 --image BaseImageName --service-account ServiceAccountEmail
$ gcloud compute instances create BaseInstanceName --can-ip-forward --machine-type n1-standard-2 --image BaseImageName --service-account ServiceAccountEmailCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
[admin@localhost ~] $ gcloud compute instances create rhel-76-server-base-instance --can-ip-forward --machine-type n1-standard-2 --image rhel-76-server --service-account account@project-name-on-gcp.iam.gserviceaccount.com Created [https://www.googleapis.com/compute/v1/projects/rhel-ha-testing-on-gcp/zones/us-east1-b/instances/rhel-76-server-base-instance]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS rhel-76-server-base-instance us-east1-bn1-standard-2 10.10.10.3 192.227.54.211 RUNNING
[admin@localhost ~] $ gcloud compute instances create rhel-76-server-base-instance --can-ip-forward --machine-type n1-standard-2 --image rhel-76-server --service-account account@project-name-on-gcp.iam.gserviceaccount.com Created [https://www.googleapis.com/compute/v1/projects/rhel-ha-testing-on-gcp/zones/us-east1-b/instances/rhel-76-server-base-instance]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS rhel-76-server-base-instance us-east1-bn1-standard-2 10.10.10.3 192.227.54.211 RUNNINGCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过 SSH 终端会话连接到实例。
ssh root@PublicIPaddress
$ ssh root@PublicIPaddressCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更新 RHEL 软件。
- 使用红帽订阅管理器(RHSM)注册。
-
启用订阅池 ID(或使用
--auto-attach命令)。 禁用所有软件仓库。
subscription-manager repos --disable=*
# subscription-manager repos --disable=*Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用以下软件仓库。
subscription-manager repos --enable=rhel-9-server-rpms
# subscription-manager repos --enable=rhel-9-server-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
dnf update命令。dnf update -y
# dnf update -yCopy to Clipboard Copied! Toggle word wrap Toggle overflow
在运行的实例(原位安装)中安装 GCP Linux 客户机环境。
具体步骤请参阅原位安装客户机环境。
- 选择 CentOS/RHEL 选项。
- 复制命令脚本,并将它粘贴到命令提示符处,来立即运行脚本。
对实例进行以下配置更改。这些更改基于自定义镜像的 GCP 建议。如需更多信息,请参阅 gcloudcompute 镜像列表。
-
编辑
/etc/chrony.conf文件,并删除所有 NTP 服务器。 添加以下 NTP 服务器。
metadata.google.internal iburst Google NTP server
metadata.google.internal iburst Google NTP serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 删除任何持久的网络设备规则。
rm -f /etc/udev/rules.d/70-persistent-net.rules rm -f /etc/udev/rules.d/75-persistent-net-generator.rules
# rm -f /etc/udev/rules.d/70-persistent-net.rules # rm -f /etc/udev/rules.d/75-persistent-net-generator.rulesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将网络服务设置为自动启动。
chkconfig network on
# chkconfig network onCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
sshd 服务设置为自动启动。systemctl enable sshd systemctl is-enabled sshd
# systemctl enable sshd # systemctl is-enabled sshdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将时区设为 UTC。
ln -sf /usr/share/zoneinfo/UTC /etc/localtime
# ln -sf /usr/share/zoneinfo/UTC /etc/localtimeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:编辑
/etc/ssh/ssh_config文件,并在文件的末尾添加以下行。这将在较长的不活跃时间段内使您的 SSH 会话保持活跃。Server times out connections after several minutes of inactivity. Keep alive ssh connections by sending a packet every 7 minutes.
# Server times out connections after several minutes of inactivity. # Keep alive ssh connections by sending a packet every 7 minutes. ServerAliveInterval 420Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
/etc/ssh/sshd_config文件,并根据需要进行以下更改:ClientAliveInterval 420 设置是可选的;这会使 SSH 会话在长时间处于非活动状态期间保持活跃状态。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
编辑
禁用密码访问。
ssh_pwauth from 1 to 0. ssh_pwauth: 0
ssh_pwauth from 1 to 0. ssh_pwauth: 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要在以前的版本中,您可以启用密码访问来允许 SSH 会话访问来配置实例。您必须禁用密码访问。所有 SSH 会话访问都必须是无密码的。
从订阅管理器取消实例注册。
subscription-manager unregister
# subscription-manager unregisterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 清除 shell 历史记录。为下一个流程保留实例运行。
export HISTSIZE=0
# export HISTSIZE=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow