Ruby 服务器方面的问题,求支招

xjz19901211 · 2013年08月08日 · 最后由 XSQ_1022 回复于 2020年03月22日 · 4397 次阅读

自己写了一个项目部署管理的,目前遇到的问题:

  1. 我用 Net::SSH 登陆到服务器后,用 sudo apt-get 安装软件要输密码,我在自己的虚拟机里可以正常安装的。怎么解决 sudo 操作要密码的问题?

  2. 服务器安装软件我都是通过 sudo apt-get 一个个的安装,有什么简单的庘,可以直接 ssh 到服务器上,然后自动安装指定软件的?

虽说现在已经可以在自己虚拟机里自动部署上一个项目并运行了,但功能还是弱爆了。。。

visudo (nopassword

1 sudoers

echo "your_user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

2 gem install mina , 写到 mina setup 里

第一个 直接输入你的密码就行了。 第二个 查看 http://ruby-china.org/wiki/install-rails-on-ubuntu-12-04-server Server 版 Ubuntu 12.04 $ curl -L https://raw.github.com/gist/2521307/install-rails-12-04-server.sh | bash

@xiaogui

  1. 后台上运行的 ssh,我在网页上操作,没法输入密码
  2. 这些我都知道,我现在要做的就是一个网页,你点一个按钮,就自动把这些操作全做好了

@Saito @alvin2ye 1.都是修改服务器配置啊,这个问题。。是我不了解。。。 2.我现在就是用 mina,没想用他都自动安装软件去了,这个可以试试

现在最恶心的就是部署项目。。。

https://ymate.me 是不是类似这种?

老谢这样折腾部署啊!顶

@kaka 是被部署折腾了。。。

@046569 我要弄的应该就是这种类型的网站吧,管理虚拟机服务器,Rails 项目的部署及备份等管理

想法是美好的,自己实现确是痛苦的。。

https://github.com/xjz19901211/deploy_helper 还在起点跑的。。

还想做做类似云服务,来专门管理各个项目的数据库,在项目运行时传入数据地址用户名密码,或是弄个专门的 Gem 什么的。。

@kaka 自己瞎折腾最有味了,哈哈

@ouyang 谢谢,原来已经有这么个东东了,准备试用下,可以我就不用自己写了,哈哈

@ouyang 看了下使用,发现还只是一个工具简化了一些操作,而不是一个应用专门来配置管理这一群的服务器与项目

@ouyang 不过还是有很多地方可以借鉴的,因为我连这些自动化的都没有做到。。。

#15 楼 @xjz19901211 同时管理 100 台服务器都没问题:D chef 本来就是干这事的。

#15 楼 @xjz19901211 折腾是有味,但是要有足够的时间

@ouyang 我想要的是可以在网页上显示我的所有服务器列表,可以对其中的一个或多个服务器下达指令(重启,更新,安装什么软件),或是对这个服务器中部署的项目下达指令(重启或是其它的)

#19 楼 @xjz19901211

读:http://ruby-china.org/topics/12997 中的 3.2。使用 chef-server 或者 hosted chef

我写的示范项目是基于 chef-solo 的示范,但是改为 chef-server 非常容易,无需更改代码。

@kaka 周末或是晚上下班。。。

最近又在弄新版的 blog,顺序练手,用 Sinatra + AngularJS + SeaJS 做个应用,完全用 ajax 请求操作,弄好后我得买个 vps,不放 github 上了,嘿嘿

@ouyang 我觉得这又是一个大工程,我又得弄上几个月 有个问题请指点下,关于部署方面我看到的都是把项目 clone 本地再部署到服务器,为什么不是直接指定一个 git 地址,直接在服务器上运行脚本 clone 项目,然后做各种初始操作?

工作,工作。。。。

#22 楼 @xjz19901211 ssh 密钥、数据库密码信息,如无特殊情况,不许置入版本管理中。所以,一般需要 git clone 到本地。

有了 mina,做部署非常之方便

#10 楼 @xjz19901211 若是开放接口让你自定义 Bash 脚本,能否简化你的工作?

可以看看 Ansible 网上已经有人用 Ansible 配置 ruby 开发环境和部署环境 https://github.com/tobyhede/ansible-centos-rails-nginx-passenger https://www.google.com/search?newwindow=1&safe=off&client=firefox-a&hs=ugJ&rls=org.mozilla%3Aen-US%3Aofficial&q=Ansible+rails&oq=Ansible+rails&gs_l=serp.3..0l2.3094.3861.0.3996.5.4.0.1.1.0.147.252.2j1.3.0....0...1c.1.24.serp..1.4.254.3PCow5JNasg

另外我自己也搞了一套 Ansible 的 ruby 部署配置。自动配置 rails 环境,通过一条命令,新建一个 puma 应用环境,并添加好系统用户,数据库用户和 nginx 配置文件. https://github.com/mangege/kimi

#26 楼 @046569 能详细一点吗?谢谢

#27 楼 @cxh116 谢谢,又知道了一个好东西,哈哈

#28 楼 @xjz19901211 比如你以前每台都要安装 Nginx,你需要apt-get install nginx,现在就是让你上传安装的脚本,然后勾选服务器,批量安装,如同你挨个 SSH 上去。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号