小编Mic*_*ael的帖子

什么用户将Ansible运行我的命令?

背景

我的问题似乎很简单,但它变得越来越复杂.

基本上,我真的厌倦了手动维护我的服务器(在后台尖叫),我觉得是时候找到一种方法让服务器管理员更加适宜居住.就在那时我找到了Ansible.好吧?当然要为我想要自动化的一切制作bash脚本(更响亮的尖叫).

有什么问题?

我很难搞清楚我的Ansible playbook会运行某些东西的用户.我还需要能够指定某些用户运行的用户.以下是一些特定用例:

将repo克隆为另一个用户:

我的目的是从另一个用户运行我的node.js webapp,我们称之为bill(只能使用sudo来运行我创建的启动节点服务器的脚本,而不是root或我的用户可以对所有命令使用sudo).要做到这一点,我需要能够让Ansible的git模块克隆我的git repo作为账单.我该怎么办?

知道Ansible将如何获得根源:

据我所知,您可以通过定义'user'和playbook文件的开头来设置Ansible将连接到您正在维护的服务器的用户.这是我不明白的:如果我告诉它通过我的用户名,joe连接,并要求它通过apt模块更新包,它将如何获得root权限?Sudo通常会提示我输入密码,我宁愿保持这种方式(为了安全起见).

最后的要求

我已经搜索了Ansible文档,完成了一些(我认为是彻底的)谷歌搜索,并且通常只是试图自己弄清楚,但这些信息仍然让我无法理解.

我是Ansible的新手,虽然它主要是直接前进,但如果我能够准确理解Ansible的运行方式,运行的用户以及我在何时/何处可以指定在不同时间使用的用户,我将会受益匪浅.

提前谢谢你

linux git node.js ansible

46
推荐指数
2
解决办法
4万
查看次数

我可以扩展nodejs应用程序的最佳方法是什么?

基础

现在我的一些朋友和我正在尝试开发一个在nodejs中制作的浏览器游戏.这是一个多人自上而下的射击游戏,客户端和服务器端代码中的大多数都是用javascript编写的.我们有一个很好的总体方向,我们想进去,我们在开发游戏方面有很多乐趣.制作这款游戏​​时我们的目标之一就是让它尽可能地作弊.做到这一点,我们所有的游戏逻辑都在服务器端处理.客户端仅通过Web套接字将其输入发送到服务器,并且服务器使用游戏中发生的事情更新客户端(也是Web套接字).这是我们问题的开始.

所有的服务器端数学都变得非常沉重,我们发现我们需要以某种方式扩展以处理超过10个玩家(我们希望能够容纳更多).起初我们认为我们可以根据需要垂直扩展,但由于nodejs是单线程的,因此只能利用一个核心.这意味着获得更强大的服务器无助于解决这个问题.我们唯一的解决方案是横向扩展.

我们为什么要问这里

我们还没有找到任何关于如何扩展nodejs游戏的好例子.我们的用例非常特别,虽然我们已经尽力做到了这一点,但我们真的可以从外部意见和建议中受益

细节

我们已经对如何解决这个问题投入了大量的思考.我们已经研究了一个多星期了.这是我们到目前为止所做的事情:

四种类型的服务器

我们将任务分成4种不同的"类型"服务器.每个人都将完成一项特定的任务.

代理服务器

代理服务器将位于整个堆栈的前端,并且是可从Internet直接访问的唯一服务器(可能有更多这些服务器).它会有haproxy,它会将所有连接路由到Web服务器.我们之所以选择haproxy,是因为它具有丰富的功能集,可靠性和几乎无与伦比的速度.

Web服务器

Web服务器将接收Web请求,并为所有Web页面提供服务.他们还将处理游说创建/管理和游戏创建/管理.要做到这一点,他们会告诉游戏服务器它有什么游说,用户在那个大厅,以及他们将要玩的游戏的信息.然后,Web服务器将更新游戏服务器关于用户输入,并且游戏服务器将更新游戏中发生的事件的Web服务器(谁将更新客户端).Web服务器将使用TCP套接字与游戏服务器就任何类型的管理进行通信,并且在与游戏更新进行通信时将使用UDP套接字.这将全部用nodejs完成.

游戏服务器

游戏服务器将处理有关游戏的所有游戏数学和变量更新.游戏服务器还与数据库服务器通信,以记录游戏中玩家的酷炫统计数据.这将通过nodejs完成.

数据库服务器

db服务器将托管数据库.事实证明这部分是最简单的,因为我们找到了rethinkdb,这是有史以来最酷的数据库.这很容易扩展,奇怪的是,它是扩展我们的应用程序最简单的部分.

其他一些细节

如果你无法解决整个问题,那么看看这个,这是我们认为我们将如何扩展的半准确图表.

如果你只是好奇,或者认为看看我们的游戏可能会有所帮助,那么它目前在这里处于未扩展状态.

我们不想要的一些事情

  • 我们不想使用nodejs的集群模块.它不稳定(这里说),它不能扩展到其他服务器,只能扩展到其他处理器.我们想要实现横向扩展.

我们的问题,总结一下

我们希望我们朝着正确的方向前进,我们已完成了我们的功课,但我们不确定.我们当然可以采取一些技巧,以正确的方式做到这一点.

谢谢

我意识到这是一个很长的问题,做出深思熟虑的答案并不容易,但我真的很感激.

谢谢!!

javascript sockets scalability node.js autoscaling

24
推荐指数
1
解决办法
7166
查看次数

如何按域分隔流量?

背景

我目前在LAN上运行多个低功耗服务器.他们都运行不同的服务,但其中一些是相似的.我还拥有3个域,并为这些域提供了许多子域.

那么,你的问题是什么?

好吧,正如我之前所说的,我的一些服务真的很相似,并且运行在同一个端口上(我有一个Owncloud服务器,我的网站托管在另一个上).这意味着如果我想将owncloud.mydomain.com转到我的Owncloud服务器,并且www.mydoamain.com转到我的网络服务器,我有一点问题.这两个子域都只是去我家,服务使用相同的端口.我无法真正区分每个子域的流量.

编辑:它还需要能够指导许多类型的流量,如SSH,HTTPS和FTP

可能的解决方案

我只是在不同的端口上运行不同的服务,但不是最佳的.这意味着看起来很奇怪,人们将更难以使用我的任何服务,而这通常是我不喜欢的.

我在同一台服务器上考虑过类似的服务,但它们是一些非常糟糕的服务器.我宁愿不必做任何类似的事情.此外,由于服务器有点旧,很高兴知道如果其中一个服务器死了,至少我会有其他服务.我认为这个选项并不好.

最好的解决方案:我听说有一项服务具有我正在寻找的名为haproxy的确切功能.我唯一的问题是我不知道如何使用这项服务,我特别不知道如何得到我想要的用途.

我的最后一个问题

我很乐意让haproxy工作,我只需要知道如何按照我需要的方式设置它.如果有人有关于如何专门做我想要的教程的链接(我已经找到了如何让haproxy工作,而不是我想要的方式)那么我会非常感激.我会自己寻找,但我已经拥有,我甚至不知道该搜索什么.谁能帮我吗?

谢谢

subdomain port networking haproxy

4
推荐指数
1
解决办法
2280
查看次数