5.14. 准备 bootstrap Ignition 文件
OpenShift Container Platform 安装过程依赖于从 bootstrap Ignition 配置文件创建的 bootstrap 机器。
编辑 文件并上传该文件。然后,创建一个 Red Hat OpenStack Platform(RHOSP)用来下载主文件的辅助 bootstrap Ignition 配置文件。
先决条件
-
您有安装程序生成的 bootstrap Ignition 文件,即
bootstrap.ign。 安装程序元数据文件中的基础架构 ID 被设置为环境变量(
$INFRA_ID)。- 如果没有设置变量,请参阅 创建 Kubernetes 清单和 Ignition 配置文件。
您可以使用 HTTP(S)来存储 bootstrap Ignition 文件。
- 所记录的步骤使用 RHOSP 镜像服务(Glance),但也可以使用 RHOSP 存储服务(Swift)、Amazon S3、内部 HTTP 服务器或临时 Nova 服务器。
流程
运行以下 Python 脚本:该脚本修改 bootstrap Ignition 文件,以设置主机名,并在运行时设置 CA 证书文件:
import base64 import json import os with open('bootstrap.ign', 'r') as f: ignition = json.load(f) files = ignition['storage'].get('files', []) infra_id = os.environ.get('INFRA_ID', 'openshift').encode() hostname_b64 = base64.standard_b64encode(infra_id + b'-bootstrap\n').decode().strip() files.append( { 'path': '/etc/hostname', 'mode': 420, 'contents': { 'source': 'data:text/plain;charset=utf-8;base64,' + hostname_b64 } }) ca_cert_path = os.environ.get('OS_CACERT', '') if ca_cert_path: with open(ca_cert_path, 'r') as f: ca_cert = f.read().encode() ca_cert_b64 = base64.standard_b64encode(ca_cert).decode().strip() files.append( { 'path': '/opt/openshift/tls/cloud-ca-cert.pem', 'mode': 420, 'contents': { 'source': 'data:text/plain;charset=utf-8;base64,' + ca_cert_b64 } }) ignition['storage']['files'] = files; with open('bootstrap.ign', 'w') as f: json.dump(ignition, f)使用 RHOSP CLI,创建使用 bootstrap Ignition 文件的镜像:
$ openstack image create --disk-format=raw --container-format=bare --file bootstrap.ign <image_name>获取镜像的详情:
$ openstack image show <image_name>记录
file值;它遵循v2/images/<image_ID>/file模式。注意验证您创建的镜像是否活跃。
检索镜像服务的公共地址:
$ openstack catalog show image-
将公共地址与
镜像文件值组合,并在存储位置保存结果。位置遵循<image_service_public_URL>/v2/images/<image_ID>/file模式。 生成身份验证令牌并保存令牌 ID:
$ openstack token issue -c id -f value将以下内容插入到名为
$INFRA_ID-bootstrap-ignition.json的文件中,并编辑占位符以匹配您自己的值:{ "ignition": { "config": { "merge": [{ "source": "<storage_url>",1 "httpHeaders": [{ "name": "X-Auth-Token",2 "value": "<token_ID>"3 }] }] }, "security": { "tls": { "certificateAuthorities": [{ "source": "data:text/plain;charset=utf-8;base64,<base64_encoded_certificate>"4 }] } }, "version": "3.2.0" } }- 保存辅助 Ignition 配置文件。
bootstrap Ignition 数据将在安装过程中传递给 RHOSP。
bootstrap Ignition 文件包含敏感信息,如 clouds.yaml 凭证。确保将其保存在安全的地方,并在完成安装后将其删除。