如何使用Ansible通过多网站configurationpipe理多服务器?

我已经研究Ansible提供新的服务器,这很好。 我的播放安装MySQL,Nginx和所有其余的。 现在我想知道使用它作为configurationpipe理工具的最佳方式是什么。

我们在每台服务器上运行多个网站。 对我来说,这意味着每个服务器上的一般Nginx设置以及每个站点/域所需的特定configuration。 我记得当我需要时(我们可以说新的见解或安全性),我可以使用Ansible独立更新一般设置和特定configuration。

我需要在这种情况下做什么? 这是否需要我保留一个variables,保存所有的网站,他们在哪个网站? 或者,有更好的select吗?

  • 如何将parameter passing给傀儡模块?
  • pipe理服务器,应用程序,configuration和他们的联系人
  • Linux服务器configurationpipe理的testing框架
  • Ansible:为不同的主机使用不同的sudo用户
  • 木偶:pipe理(大量)Apache虚拟主机
  • 我如何(稳健地)在域中的Windows工作站上远程执行任务?
  • 2 Solutions collect form web for “如何使用Ansible通过多网站configurationpipe理多服务器?”

    模板的一个特性就是模板的function。

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

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

    www_sites: { host1: "www.mysite1.com", host2: "www.mysite2.com", } 

    然后,nginx conf文件的模板可以包含以下几行:

     server { listen 80; server_name {{ www_sites[inventory_hostname_short] }}; access_log logs/{{ www_sites[inventory_hostname_short] }}.access.log main; 

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

    我使用vars来为那个主机做特定的东西。 我的build议是尽可能地将主人分组,并使用组variables。 请记住,Ansible playbooks在git或SVN版本控制方面非常棒,所以你可以跟踪你的改变。

    有些东西可能对你vars_prompt ,就是使用vars_prompt ,特别是如果你没有在cron上运行你的手册。

    希望这可以帮助!

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.