首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Ansible管理多个网站配置的多服务器?

问如何使用Ansible管理多个网站配置的多服务器?
EN

Server Fault用户
提问于 2015-10-14 20:24:17
回答 2查看 2.2K关注 0票数 4

我已经研究了Ansible提供新的服务器,这是很好的工作。我的游戏是安装MySQL,Nginx和所有其他的。现在,我想知道使用它作为配置管理工具的最佳方法是什么。

我们在每个服务器上运行多个网站。对我来说,这意味着在每个服务器上设置一个通用的Nginx,以及每个站点/域所需的特定配置。我想,当我需要时,我可以用Ansible独立地更新一般设置和特定配置(比如新的洞察力或安全性)。

在这种情况下我该怎么办?这需要我保留一个变量来保存所有的站点以及它们在哪个站点上吗?或者,有没有更好的选择?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2015-10-14 21:14:28

模板的一个特性是它的模板功能,您可以使用它来达到这个目的。

模板模块允许您为每个主机部署一个具有唯一值的文件。当前正在处理的主机的名称保存在inventory_hostname和inventory_hostname_short变量中(后者是主机名的第一个虚线组件)。

可以将主机特定的变量保存在group_vars/all中的字典中。例如:

代码语言:javascript
复制
www_sites: {
    host1: "www.mysite1.com",
    host2: "www.mysite2.com",
  }

然后,nginx conf文件的模板可以包括如下内容:

代码语言:javascript
复制
server {
  listen       80;
  server_name  {{ www_sites[inventory_hostname_short] }};
  access_log   logs/{{ www_sites[inventory_hostname_short] }}.access.log  main;

Ansible使用的Jinja2模板语言的文档可以找到这里。

票数 0
EN

Server Fault用户

发布于 2015-10-14 21:04:26

我用vars对那个有问题的主机做一些具体的事情。我的建议是尽可能多地将主机分组,并使用组变量。请记住,对于git或SVN中的版本控制来说,Ansible剧本是非常棒的,因此您可以跟踪您的更改。

一些可能对您有用的东西是使用vars_prompt,特别是如果您没有在cron上运行您的剧本。

希望这能有所帮助!

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/729018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档