1.
准备与前提
- 注册Oracle Cloud账号并开通付款方式,控制台选择区域:ap-singapore-1(新加坡)。
- 安装并配置OCI CLI(oci setup),导出环境变量:OCI_CLI_PROFILE, COMPARTMENT_ID, TENANCY、USER、FINGERPRINT、KEY_FILE等。
- 准备自定义镜像文件(qcow2/vmdk/raw)或决定使用Marketplace官方镜像。
2.
在对象存储上传镜像(Console & CLI)
- 控制台:Storage → Object Storage → 新建Bucket → 上传镜像文件。记下Bucket名字和Namespace。
- CLI示例:oci os object put --bucket-name my-bucket --name ubuntu-custom.qcow2 --file ./ubuntu.qcow2 --region ap-singapore-1。
- 验证上传成功并记录对象名、大小与etag。
3.
导入对象存储为自定义镜像并创建实例
- 控制台:Compute → Custom Images → Import Image → 选择Object Storage来源,填写Namespace/Bucket/Object,点击导入。
- CLI示例(简化):oci compute image create --compartment-id $COMP --display-name "ubuntu-cust" --launch-mode NATIVE --image-source-details '{"sourceType":"objectStorageTuple","namespaceName":"
","bucketName":"my-bucket","objectName":"ubuntu-custom.qcow2"}' --region ap-singapore-1。
- 导入完成后:Compute → Instances → Create Instance,选择该自定义镜像,填写Subnet(VCN)、Availability Domain,上传SSH公钥,选择Boot Volume大小。
4.
网络与安全规则配置(VCN/NSG/Security List)
- 创建VCN与Subnet(或使用既有),确认Subnet位于ap-singapore-1。
- 配置Security Lists或Network Security Groups:允许Ingress TCP 22 (SSH)、80/443 (HTTP/HTTPS)、其他需要的端口(如rsync 873)。
- 若需要公网访问,分配并绑定弹性公网IP(Public IP),在实例显示页面点击Attach Public IP。
5.
镜像同步与服务集成(搭建本地镜像源)
- 在实例上安装同步工具与HTTP服务,例如:sudo apt-get install debmirror nginx rsync cron。
- debmirror示例同步命令:sudo debmirror --host=archive.ubuntu.com --root=ubuntu --dist=focal --section=main,restricted,universe,multiverse /var/www/html/ubuntu。
- 配置nginx作为镜像索引:在/etc/nginx/sites-available/default设置root /var/www/html; 开放80端口。
- 使用crontab定时同步并监控日志:0 3 * * * /usr/bin/debmirror ... >> /var/log/mirror.log 2>&1。
6.
自动化初始化(cloud-init 示例)
- 在实例启动时自动配置用户与软件,可在创建实例时注入user-data:
#cloud-config
users: - name: opc
ssh_authorized_keys: ["<你的公钥>"]
packages: [nginx, rsync, debmirror]
runcmd: - systemctl enable --now nginx - debmirror ...
7.
备份与快照策略
- 使用Block Volume与定期Snapshot:在Console → Block Storage → Volumes → Create Snapshot或使用CLI oci bv volume backup create。
- 重要镜像可定期导出为Object Storage自定义镜像(再次导入),以及保留快照与跨区域复制作为灾备。
8.
监控与告警集成
- 启用Oracle Monitoring服务:创建Metric、Alarm(如磁盘使用、CPU > 80% 持续5分钟)。
- 可安装Prometheus Node Exporter并通过Prometheus拉取,或使用OCI Logging将日志推送至Logging服务并建立日志查询告警。
9.
常见问题:镜像导入失败怎么办?
- 问:导入时报错“unsupported format/size”。
- 答:检查镜像格式(建议qcow2或raw),确认文件未损坏并小于单对象上传限制;必要时在本地使用qemu-img convert转换为qcow2再上传。
10.
常见问题:如何保证镜像源同步稳定?
- 问:同步经常中断或速度慢怎么办?
- 答:使用rsync或debmirror加上断点续传选项,配置多个上游镜像并分时段同步,设置合理的并发与带宽限制;在新加坡使用就近上游以降低延迟。
11.
常见问题:如何做成本与安全优化?
- 问:在Oracle新加坡部署如何降低成本并保证安全?
- 答:选择合适的实例形态(按需或预留)、合理调整Boot/Block Volume大小并使用自动快照生命周期;使用NSG代替过宽的Security List,关闭不必要端口,启用Cloud Guard/Logging和按需扩展资源。
来源:甲骨文新加坡vps镜像与服务集成 上手配置最佳实践