如何自动化VPS服务器创建和配置?

时间:2016-01-19 12:43:25

标签: linux bash ssh installation automation

我遇到了当前托管服务提供商的问题。我有大约30台VPS服务器,这些服务器都是在购买后手动配置的。我的计划没有API访问权限,很快我就不得不将我的基础架构扩展到数百个VPS服务器,这些服务器无法手动完成(理想情况下是快照?)。

默认的Linux发行版(debian)通过附加软件包(其中几十个)进行了增强,例如apache,percona-server,git,qt5-default,proftpd,phantomjs(这是手动编译的),仅举几例。此外,还对配置文件进行了一些手动更改。

我实际上有一个文本文件,其中包含所有复制/粘贴操作的列表,我在购买新服务器后会像机器人一样执行。

如何开始自动化此过程?我将有一个CSV或DB,其中包含服务器IP,SSH登录名和密码列表。我应该从远程SSH登录开始,然后执行bash脚本吗?可以从目标计算机上的某个预定义位置下载该文件。

我面临的最大挑战是自动编辑配置文件,在安装percona-sql,proftpd和添加用户名时填写密码查询。此外,使用apt-get install时自动启用。

这样的事情有框架吗?非常感谢任何帮助。

我的计划到目前为止:

  1. 创建服务器列表(使用IP,SSH登录名+密码)
  2. 编写一个bash(或其他语言?)脚本来登录每个服务器
  3. 在远程计算机上,在那里下载另一个bash脚本并执行它
  4. 后一个脚本安装apache,percona-sql,proftpd,创建用户,编辑配置文件等。
  5. 退出,​​继续下一个服务器
  6. 步骤4是我最需要帮助的。

2 个答案:

答案 0 :(得分:2)

我建议您查看SaltstackAnsible等配置管理工具。如果您想自动化基础架构,那就是要走的路。这需要一些时间来学习,但请相信我,你将节省更多时间,提供自动化程度。

例如,Saltstack您将同时拥有一个salt-master控制多个salt-minion(您的服务器?)。 它有许多模块可以帮助您配置几乎任何您想要的东西。

因此,只需一个命令,您就可以在所有服务器上执行所需操作。您只需要在服务器上安装代理(salt-minion)以便能够控制它们,或者您可以使用Saltstack和SSH。

查看文档here

答案 1 :(得分:1)

您绝对不想手动执行所有配置,您想要花些时间学习的内容称为DevOps

  

DevOps的前提是所有技术基础设施元素都可以通过代码进行控制。随着云的兴起,它可以通过Web服务实时完成。基础设施自动化解决了必须物理存在于数据中心以配置硬件和进行网络更改的问题

如果您查看配置管理部分,您会发现有许多不同的工具/框架可以自动化您的基础架构。

Chef很受欢迎。 DZone有一个很棒的refcard on Chef,它提供了完整概述的基础知识,可以帮助您入门。厨师网站本身也有一些很棒tutorials