通过rclone结合阿里云OSS或者AWS S3发布和上线代码
在进行项目的开发时,在多数测试和上线操作的场景中,我们总是需要把代码或者打包好的代码部署到一个中间的服务器或者存储上。在不同给的情况下,尤其是在很多人合作的情形下,我们就会或多或少的遇到下面的问题:
- 如果大家都在同一个办公场地,代码部署到一个内部的服务器中会很方便(或者以专用网络的形式的访问公司的数据中心),但是在远程办公的条件下(比如在疫情期间),就会存在很多安全性的问题。而且,在家办公的场景中,因为每个人的网络条件不一样,网络访问的便捷性也很成问题。
- 不同的开发和运维人员需要设置不同的权限,需要有一个统一的授权系统来管理权限和授权,而且授权机制的管理最好可以和持续集成的服务可以很好地结合。
- 为了方便版本回滚和问题排查,需要解决历史版本的代码或者软件包的保存问题。而且历史版本都保存的话,也会需要可以扩展,廉价且有冗余保障的存储空间。
- 使用git等代码库存放需要打包的代码,会造成代码库的体积过大的,每一次fetch或者pull都非常的慢,消耗大量的时间。
- 直接使用服务器作为这个代码中转很容易受到服务器故障的影响,如果是公司内网的服务器甚至还会受到停电等问题的影响。
我们再这篇文章里介绍一下rclone结合阿里云OSS和AWS S3来说明一个方法,对于上述问题都可以提供更好的帮助。首先我们来看一下配置和使用方法。
rclone的安装与实用
rclone是一个类似于rsync的文件系统的命令行同步工具,区别在于,rclone是针对各种的云存储开发的,而且可以完成本地与云存储,以及不同的云存储之间的文件操作。
安装rclone最简单的方法就是直接执行远程的安装脚本(当然也可以根据具体发行版参考文档进行安装):
curl https://rclone.org/install.sh | sudo bash
在Linux上完成安装之后,rclone会默认从配置文件~/.config/rclone/rclone.conf
中获取rclone的配置。我们既可以通过rclone的config命令来交互式修改这个配置,也可以直接编辑这个配置文件。
首先,我们来看一个阿里云OSS的配置(可以粘贴在rclone.conf中):
[oss-beijing] type = s3 provider = Alibaba env_auth = false access_key_id = <YOUR_ACCESS_KEY_ID> secret_access_key = <YOUR_SECRET_ACCESS_KEY> endpoint = <YOUR_REGION>.aliyuncs.com acl = private storage_class = Standard
这里需要需要解释一下,其中[oss-beijing]是一个本地给阿里云OSS某一个区域的别名,在命令行中用来当做前缀使用,比如oss-beijing:my-bucket-name就是这个区域下面叫做my-bucket-name的桶(Bucket),而endpoint也要指定为对应的区域EndPoint(这个值可以在阿里云控制台查看到)。access_key_id和secret_access_key需要替换成权限适合的密钥对。
AWS S3的rclone的配置则更为简单:
[s3-beijing] type = s3 provider = AWS env_auth = true region = cn-north-1 endpoint = https://s3.cn-north-1.amazonaws.com.cn
在这里指定endpoint
为https://s3.cn-north-1.amazonaws.com.cn
是为了rclone能够在AWS中国区的cn-north-1工作(宁夏区则需要另外一个地址)。而env_auth
被指定为true,则是可以避免在rclone.conf中写上AWS的key和secret,而是直接使用~/.aws/中的配置。当然后,如果在环境中配置AWS使用了named profile时,也可以在运行rclone时,通过指定环境变量AWS_PROFILE=<your_profile_name>
来使用某一个profile。
这个时候就可以使用一些命令来访问某些桶了:
# 列出my-bucket-name下的目录 rclone lsd oss-beijing:my-bucket-name rclone lsd s3-beijing:my-bucket-name # 以json形式列出my-bucket-name下的目录和文件 rclone lsjson oss-beijing:my-bucket-name rclone lsjson s3-beijing:my-bucket-name # 以json形式递归的列出my-bucket-name下目录和文件 # 这里的所谓递归其实并不是准确的描述,主要还是指列出Bucket下面全部的item rclone lsjson oss-beijing:my-bucket-name -R rclone lsjson s3-beijing:my-bucket-name -R
那么,在打包完成时,需要做的事情就是把本地的对应的目录同步到阿里云OSS或者S3中即可:
rclone sync <LOCAL_PATH> oss-beijing:my-bucket-name/target-path/ rclone sync <LOCAL_PATH> s3-beijing:my-bucket-name/target-path/
而在其他的主机上,也很方便将阿里云OSS或者S3中的对应目录同步回来:
rclone sync oss-beijing:my-bucket-name/target-path/ <LOCAL_PATH> rclone sync s3-beijing:my-bucket-name/target-path/ <LOCAL_PATH>
注意sync命令会将目标路径完全同步为和本地一致的结构。
有关rclone具体使用方法,大家可以继续参考其官方文档。
一些需要注意的地方
回到一开始考虑的各种问题,在这里我们来补充一些需要注意的地方
- 对于版本问题,建议在打包和同步的时候,把代码的版本号作为目录名同步到远端的存储中,这样在阿里云OSS或者S3就可以保存全部的代码包的历史。需要进行历史的冗余备份时,可以直接通过每个云服务商自己提供的机制来进行桶的复制,甚至还可以通过rclone来进行跨云服务商备份。如果不需要保存历史比较久的版本,也可以设置自动过期的机制。
- 在权限管理方便,可以通过[阿里云的RAM]()和AWS的IAM为每一个参与建立单独的账号,并且可以在可以访问的Bucket的层面赋予权限。这样,每个账户可以通过自己的key/secret来进行访问。
- 在rclone的lsjson命令中访问的数据中,有文件或者目录的创建时间等元信息,在同一个桶的路径下,可以通过这些来区分出最新同步的版本。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【云栖号案例 | 新零售】宏宝莱传统生产企业建站案例
云栖号案例库:【点击查看更多上云案例】不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 公司介绍 宏宝莱饮品创建于1992年,多次被评为最受消费者喜爱饮料及冷饮品牌之一。 随着产品线不断完善与丰富,“品牌影响力”和“线上获客”成为业务部门成为重要指标。 业务痛点 基于传统线下业务拓展模式,业务员无法短时间覆盖全部区域的经销商、冷饮店与小卖部,业务效率很低。 产品种类繁多,业务员无法在短期内掌握,业务开展更多依靠于线下传单、产品手册,转化率大打折扣。 原有的网站是由集团公司IT部门来搭建、部署和运维的,项目完结交付后,运维工作将由总公司移交到我们分公司,但是分公司运维人员技术积累有限,缺乏网站运维经验。 解决方案 全面应用计算技术 云商心选建站为我们量身打造了定制建站服务,云架构包括云服务器ECS、云数据库RDS、全站加速CDN、云盾等基础产品,确保网站快速、安全、稳定,服务可用性达到99.9%,性能更出色。 建站专家量身定制解决方案 阿里云的资深设计师为我们提供了1对1服务,熟练运用各种设计风格与交互体验,匠心打造。整个服务流程均在线完成,有效解决建...
- 下一篇
【云栖号案例 | 新零售】洲际酒店集团上云案例
云栖号案例库:【点击查看更多上云案例】不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 公司介绍 洲际酒店集团是全球领先的酒店管理集团,旗下拥有十三大闻名遐迩的品牌,是率先进入中国市场的国际酒店集团之一;在全球特许经营、租赁、委托管理和拥有的酒店有近5,400家,遍布近100个国家和地区,并有超过1,700家在建酒店。 选择阿里云 随着业务的快速扩张,洲际酒店集团大中华区IT中心正在从分散式管理向集中管理转化,需要快速构建高可用、高弹性、安全稳定和可以支撑业务连续性的基础平台。 阿里云结合洲际酒店集团业务需求,定制出完善的交付方案,专属技术服务经理在核心系统迁移、备案合规政策咨询、促销业务保障等各个环节,不仅提供了及时可靠的支持,更是通过积极主动的服务,使得洲际的团队能够更好地关注与发展核心业务系统。 获得的成效 从合作伊始,阿里云就展现出极强的执行力与专业性,无论是海外还是国内,业务探讨还是技术方案,都能够迅速调动相应专家,给出最佳解决方案,助力洲际酒店集团构建了高可用、高弹性、安全稳定和可以支撑业务连续性的基础平台,加速洲际酒店集团在华业务的拓展...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程