部署RoR生产环境到阿里云ECS (一)

简介: 关于如何在阿里云ECS(Ubuntu16.04)上部署RubyonRails的一些心得,希望分享给更多的rubyist知道; 本文讨论的是如何在阿里云上部署rails生产环境; 首先ECS创建的时候阿里云会一个root账号和一个管理员密码,ssh root@ip_address(公网) 配以密码不是特别方便,建议在本机电脑上创建一对公钥私钥,并且把公钥上传到阿里云的ESC服务器,可以参考我的openssh讨论。

关于如何在阿里云ECS(Ubuntu16.04)上部署RubyonRails的一些心得,希望分享给更多的rubyist知道;

本文讨论的是如何在阿里云上部署rails生产环境;

首先ECS创建的时候阿里云会一个root账号和一个管理员密码,ssh root@ip_address(公网) 配以密码不是特别方便,建议在本机电脑上创建一对公钥私钥,并且把公钥上传到阿里云的ESC服务器,可以参考我的openssh讨论

在可以实现 ssh server-name以后,我们会发现现在登陆的是root用户,root用户拥有的权限太高,不小心的操作就会对linux系统造成不可逆的破坏,所以一般的建议是新建一个新的用户,我个人也强烈建议这么做,除非对linux系统命令非常熟悉知道自己在干什么。

创建新的linux用户

在linux(Ubuntu16.04)系统中, 可以通过下面的命令来创建:

$ adduser rails

在弹出的对话里面只要提供密码和密码验证,后面的问题都直接回车就行;

$ usermod -aG sudo rails

这个命令是添加新的用户到sudo这个用户组。在linux系统中,不可避免的要使用一些只有系统管理员才能使用的命令,sudo前缀可以让当前用户暂时获取root的资格并且以root的身份去运行一些命令,比如services,但是只有sudo组里的用户才能使用这个sudo命令。

$ cat /etc/passwd

可以用来查看本机当前所用的用户, 新用户添加以后,/root/rails/ 就自动创建,就是当前用户的默认路径。
现在我们可以切换到我们新建的用户了

$ su - rails

可以通过于之前相同的方法上传过id_rsa.pub到 /home/rails/.ssh,以后都可以通过ssh rails@ip_address来登陆

安装必要的软件

现在我们的登陆账户是rails了, 现在可以安装git上传下载代码,然后安装rbenv,rbenv,rails,nodejs。

安装git

$ sudo apt-get install git

使用git命令以前要先设置全局用户

$ git config --global user.name = "YOUR NAME"
$ git config --global user.email = "YOUR@EMAIL.COM"

或者:

$ vim ~/.gitconfig
[color]
        ui = true
[user]
        name = YOUR NAME
        email = YOUR@EMAIL.COM
[push]
        default = current
[pull]
        default = current

如果不幸的你和我一样github激活了多重验证,你需要在你的服务器端生成一对公钥私钥,然后把公钥添加到你的github账户可以参考这个github帮助

别忘了添加一下这行到你的 ~/.ssh/config文件中;

Host github.com
  IdentityFile ~/.ssh/github_rsa # 用你自己的私钥

这样你访问git clone git@github.com ... 的时候就能自动使用你刚刚生成的私钥作为ssh连接了。

安装rbenv作为ruby的版本管理

$ sudo apt-get update
$ sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev

这么多必要的包谁也记不住,网上的帖子很多,总归是前任总结的经验教训,发帖的目的不就是广为传播这些记不住的冷知识嘛,好了可以正式下载rbenv了, 我们直接从它的github下载源码,github上也有他的安装说明,我就从简说明了

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc

添加路径是为了全局的使用rbenv给我们提供的一些ruby和gem的使用工具, 具体的安装可以参考github。我以前一直使用chruby和ruby-install来作为轻量级的ruby版本管理,事实证明rbenv提供的路径工具能非常方便帮助我们通过systemD脚本来运行railsAPP,所以我建议大家直接使

用rbenv,如果有人为为什么不用rvm,都是累啊,太庞大了,相当于雇100人管理只有几人的公司,我们的小机受不了啊,bug多什么的也就是听说,我也就用了一年就换chruby了。

安装ruby

rbenv安装好了以后,我们可以通过他的插件ruby-build来安装ruby

$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

这样我们就能直接安装使用rbenv install命令了。

$ rbenv install 2.5.0

你也可以安装自己需要的版本

$ rbenv global 2.5.0

设置全局ruby版本,然后就是安装rails和nodejs,安装nodejs是因为rails的assets管理需要用到。

$ gem install rails --no-ri --no-rdoc
$ sudo apt-get install nodejs
$ rails -v
$ node -v

检测安装的rails版本和nodejs版本;

下载rails APP代码

不知不觉写了这么多了,我最恨最怕就是tl;dr(too long, don't read); 所以后一半的内容下回再发表吧,¯_(ツ)_/¯相

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
1天前
|
编解码 前端开发 安全
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
在我们选购阿里云服务器的过程中,不管是新用户还是老用户通常都是通过阿里云的活动去买了,一是价格更加实惠,二是活动中的云服务器配置比较丰富,足可以满足大部分用户的需求,但是面对琳琅满目的云服务器实例、带宽和云盘选项,如何选择更适合自己,成为许多用户比较关注的问题。本文将介绍如何在阿里云的活动中选择合适的云服务器实例、带宽和云盘,以供参考和选择。
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
|
10天前
|
存储 弹性计算 运维
阿里云日常运维-购买服务器
这篇文章是关于如何在阿里云购买和配置云服务器ECS的教程。
41 6
阿里云日常运维-购买服务器
|
10天前
|
网络协议 网络安全
基于bind软件部署DNS服务器
关于如何使用bind软件部署DNS服务器的教程,包括DNS服务器的类型、基于bind软件的部署步骤、验证DNS服务器可用性的指导,以及如何进行DNS正向解析的实现。
12 2
基于bind软件部署DNS服务器
|
2天前
|
弹性计算
阿里云美国服务器需要备案吗?必看!
阿里云美国服务器无需ICP备案,适用于希望避开备案流程的用户。不同于中国大陆地区服务器,美国服务器及中国香港服务器均无需备案。用户可直接解析域名使用。阿里云提供美国云服务器ECS与轻量应用服务器两种选择,分别满足不同需求
37 9
|
4天前
|
网络安全 开发工具 云计算
服务器看代码阿里云
随着云计算技术的发展,阿里云作为国内领先的云计算服务提供商,其服务器受到广大用户青睐。本文主要介绍如何在阿里云服务器上便捷地查看与管理代码,如使用SSH连接服务器并通过命令行工具打开文件,以及利用Git进行版本控制和协作开发,提高代码管理效率。无论个人开发者还是企业团队,都能借助阿里云服务器高效地部署与管理应用程序,提升工作效率及产品质量。
30 10
|
10天前
|
存储 关系型数据库 MySQL
使用Docker快速部署Mysql服务器
本文介绍了如何使用Docker快速部署MySQL服务器,包括下载官方MySQL镜像、启动容器、设置密码、连接MySQL服务器以及注意事项。
81 18
|
8天前
|
人工智能 运维 Cloud Native
专访阿里云:AI 时代服务器操作系统洗牌在即,生态合作重构未来
AI智算时代,服务器操作系统面临的挑战与机遇有哪些?
|
10天前
|
弹性计算 安全 测试技术
阿里云的ECS云服务器应用例
在未来的远程办公时代,“未来空间”打造了一个高效、灵活且安全的在线协作平台,采用阿里云ECS云服务器作为核心基础设施。ECS提供按需付费的弹性计算能力,确保平台响应迅速并能应对流量高峰。其集成的安全特性如安全组和云盾,构建了多层次防护体系,保障数据安全。此外,ECS与阿里云其他服务无缝集成,如RDS、CDN和OSS,实现了高效的数据管理和全球低延迟访问。结合阿里云的机器学习服务,“未来空间”开发了智能会议摘要和情绪分析功能,提升了用户体验。凭借ECS的强大支持,该平台不仅实现了全球团队的高效协作,还赢得了市场的广泛认可,成为远程办公领域的标杆。
|
10天前
|
弹性计算 开发框架 数据可视化
阿里云虚拟主机和云服务器有什么区别?多角度全解析对比
阿里云虚拟主机与云服务器ECS的主要区别在于权限与灵活性。虚拟主机简化了网站搭建流程,预装常用环境,适合初级用户快速建站;而云服务器提供全面控制权,支持多样化的应用场景,如APP后端、大数据处理等,更适合具备技术能力的用户。尽管虚拟主机在价格上通常更优惠,但随着云服务器价格的下降,其性价比已超越虚拟主机,成为更具吸引力的选择。

热门文章

最新文章