在阿里云上配置Fedora CoreOS(阿里云)
本指南介绍如何在阿里云上配置新的Fedora CoreOS(FCOS)节点。Fedora目前不在阿里云中发布Fedora CoreOS镜像,因此您必须从Fedora下载阿里云镜像并将其上传到您的对象存储服务(OSS)存储桶中。
先决条件
在配置FCOS计算机之前,您必须具有包含自定义设置的Ignition配置文件。如果您没有,请参见 生成Ignition文件 。
如果您不想使用Ignition入门,可以使用 加力支撑 并通过云提供商提供SSH密钥,然后从那里继续。
您还需要访问阿里巴巴云帐户,并 激活的对象存储服务(OSS) 。 下面的示例使用 阿里云命令行工具 和 JQ 作为命令行JSON处理器。
下载阿里云镜像
Fedora CoreOS被设计为自动更新,每个流有不同的时间表。 选择好相关流后,下载、验证、解压最新的阿里云镜像:
STREAM="stable"
coreos-installer download --decompress -s "${STREAM}" -p aliyun -f qcow2.xz
或者,您也可以从 下载页面 。按照该页面上的说明验证下载,然后将其解压缩。
上传图片到阿里云
+ .创建阿里云OSS(对象存储服务)存储桶示例
REGION="ap-southeast-1"
BUCKET_NAME="my-bucket"
BUCKET_URL="oss://${BUCKET_NAME}"
aliyun oss mb "${BUCKET_URL}" --region="${REGION}" --acl=private
+ .上传FCOS至阿里云OSS存储桶示例
DOWNLOADED_IMAGE="./image.qcow2"
IMAGE_NAME="my-fcos-image"
IMAGE_BLOB="${IMAGE_NAME}.qcow2"
aliyun oss cp "${DOWNLOADED_IMAGE}" "${BUCKET_URL}/${IMAGE_BLOB}" \
--region="${REGION}" --acl=private
+ .FCOS导入阿里云ECS示例
TASK_ID=$(aliyun ecs ImportImage \
--region="${REGION}" \
--DiskDeviceMapping.1.OSSBucket="${BUCKET_NAME}" \
--DiskDeviceMapping.1.OSSObject="${IMAGE_BLOB}" \
--ImageName="${IMAGE_NAME}" \
| jq --raw-output .TaskId)
+ .超时等于一小时的等待示例
aliyun ecs DescribeTasks --region="${REGION}" --TaskIds="${TASK_ID}" \
--waiter expr='TaskSet.Task[0].TaskStatus' to=Finished timeout=3600
+ .确定导入的FCOS映像的ID的示例
IMAGE_ID=$(aliyun ecs DescribeImages --region="${REGION}" --ImageName="${IMAGE_NAME}" \
| jq --raw-output .Images.Image[0].ImageId)
+ .删除上载的Blob示例
aliyun oss rm "${BUCKET_URL}/${IMAGE_BLOB}" --region "${REGION}"
创建vSwitch
阿里云中不存在默认私有网络或私有网络交换机。因此,要创建任何实例,必须存在vSwitch。选择一些现有的或通过以下步骤创建一个。
+ .创建新VPC的示例
VPC_CIDR="172.16.0.0/12"
VPC_NAME="fcos-test"
VPC_ID=$(aliyun vpc CreateVpc --region="${REGION}" \
--CidrBlock="${VPC_CIDR}" --VpcName="${VPC_NAME}" \
| jq --raw-output .VpcId)
+ .示例选择一些可用区
ZONE_ID=$(aliyun ecs DescribeZones --region="${REGION}" \
| jq --raw-output .Zones.Zone[0].ZoneId)
+ .创建新vSwitch的示例
VSWITCH_CIDR="172.16.0.0/16"
VSWITCH_NAME="${VPC_NAME}"
VSWITCH_ID=$(aliyun vpc CreateVSwitch \
--region="${REGION}" \
--CidrBlock="${VSWITCH_CIDR}" \
--VpcId="${VPC_ID}" \
--VSwitchName="${VSWITCH_NAME}" \
--ZoneId="${ZONE_ID}" \
| jq --raw-output .VSwitchId)
启动ECS实例
+ .上载SSH公钥的示例
KEY_PAIR_NAME="fcos-key"
PUBLIC_KEY_PATH="<Please fill the path to your public key>"
PUBLIC_KEY_BODY=$(cat ${PUBLIC_KEY_PATH})
aliyun ecs ImportKeyPair --region="${REGION}" \
--KeyPairName="${KEY_PAIR_NAME}" --PublicKeyBody="${PUBLIC_KEY_BODY}"
+ .创建ECS实例示例
INSTANCE_NAME="my-fcos-vm"
INSTANCE_TYPE="ecs.t6-c1m1.large"
INSTANCE_ID=$(aliyun ecs CreateInstance \
--region="${REGION}" \
--KeyPairName="${KEY_PAIR_NAME}" \
--ImageId="${IMAGE_ID}" \
--InstanceName="${INSTANCE_NAME}" \
--InstanceType="${INSTANCE_TYPE}" \
--InternetChargeType=PayByTraffic \
--InternetMaxBandwidthIn=5 \
--InternetMaxBandwidthOut=5 \
--VSwitchId="${VSWITCH_ID}" \
| jq --raw-output .InstanceId)
+ .分配公有IP地址示例
PUBLIC_IP=$(aliyun ecs AllocatePublicIpAddress \
--region="${REGION}" --InstanceId="${INSTANCE_ID}" \
| jq --raw-output .IpAddress)
+ .启动实例示例
aliyun ecs StartInstance --region="${REGION}" --InstanceId="${INSTANCE_ID}"
+ .示例等待和确定公有IP地址
aliyun ecs DescribeInstanceStatus --InstanceId.1="$INSTANCE_ID" --region="${REGION}" \
--waiter expr='InstanceStatuses.InstanceStatus[0].Status' to=Running timeout=600
+ .连接示例
ssh core@"${PUBLIC_IP}"
通过添加参数,您可以使用您的Ignition文件启动一个自定义实例 --UserData=$(cat <Path to your Ignition config> | base64 -w0)
发送到 aliyun ecs CreateInstance
创建新实例的命令。